Verifone Merchant Orders API

Operations to manage merchant orders.

OpenAPI Specification

verifone-merchant-orders-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: 3D Secure 3DS Authentication Merchant Orders API
  version: 3.43.0
  description: Operations for listing and retrieving 3DS authentication records. Use these endpoints to query historical authentication results filtered by amount, currency, card, status, and more.
servers:
- url: https://emea.gsc.verifone.cloud/oidc/3ds-service
  description: EMEA Production
- url: https://us.gsc.verifone.cloud/oidc/3ds-service
  description: Americas Production
- url: https://nz.gsc.verifone.cloud/oidc/3ds-service
  description: New Zealand Production
- url: https://cst.test-gsc.vfims.com/oidc/3ds-service
  description: Global Sandbox
- url: https://uscst-gb.gsc.vficloud.net/oidc/3ds-service
  description: Americas Sandbox
security:
- BearerAuth: []
- BasicAuth: []
tags:
- name: Merchant Orders
  description: Operations to manage merchant orders.
paths:
  /orders/merchant:
    post:
      tags:
      - Merchant Orders
      summary: Create Merchant Order
      description: Adds a new merchant to the system and optionally allows for ordering hardware and services.
      operationId: addMerchantDraft
      parameters:
      - $ref: '#/components/parameters/saveDraftHeaderParam'
      - $ref: '#/components/parameters/validateAcquirerHeaderParam'
      - $ref: '#/components/parameters/validateACHHeaderParam'
      - $ref: '#/components/parameters/validateCompanyIdentityHeaderParam'
      - $ref: '#/components/parameters/SimplifiedFlowHeaderParam'
      requestBody:
        description: Merchant to add
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantOrder'
      responses:
        '200':
          description: Create Merchant Order Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOrderResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
components:
  schemas:
    DomesticAccount:
      title: Domestic Bank Account
      description: A Domestic Bank Account structure extending the base account.
      allOf:
      - $ref: '#/components/schemas/Account'
      - properties:
          accountName:
            description: Name of the account as known by the financial institution operating the account.
            type: string
          sortCode:
            description: The UK Sorting Code identifier the sort code is xx xx xx.
            type: string
            pattern: ^[0-9]{6,6}$
          bsb:
            description: An Australian/New Zealand term for the Bank State Branch indicator. It is a 6 digit value constructed with the first 2 digits identifying the bank.
            type: string
            pattern: ^[0-9]{6,6}$
          routingTransitNumber:
            type: string
            description: Routing transit number for the bank account. A routing transit number is a nine-digit number used to identify a bank or financial institution when clearing funds or processing checks. Established by the American Bankers Association (ABA).
            pattern: ^[0-9]{9,9}$
          accountNumberType:
            description: "The type of the `accountNumber` which asserts the format of the number:\n - `BANKGIRIT`: Up to 9 characters (example: 123-4567 or 1234-5678)\n - `PLUSGIROT`: Up to 24 characters; starts with \"SE50\"\n - `DEFAULT`: Format-less value"
            type: string
            enum:
            - BANKGIROT
            - PLUSGIROT
            - DEFAULT
            default: DEFAULT
          accountNumber:
            description: The number of the account.
            type: string
    AmountSimple:
      title: Amount Simple Type
      type: string
      description: 'The value, which can be anything from:

        - An integer. For currencies that are not typically fractional, such as `JPY`. - A three-place decimal fraction. For currencies that are subdivided into thousandths, such as `TND`.

        *The required number of decimal places for a currency code is according to [ISO 4217](https://wikipedia.org/wiki/ISO_4217). However the following table documents exception to ISO 4217 that is also allowed:*


        |Code|Currency|Decimals|Fixed minor units|

        |--------|-----------|---------|-----------|

        |ISK|Iceland Krona|2|.00|

        '
      maxLength: 32
      pattern: ^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$
    TerminalParameters:
      title: Parameters
      description: Deprecated - Please use `paymentAppParameters`.
      type: object
      deprecated: true
      properties:
        transactionOptions:
          $ref: '#/components/schemas/TransactionOptions'
        limits:
          $ref: '#/components/schemas/TransactionLimits'
        receiptOptions:
          $ref: '#/components/schemas/ReceiptOptions'
        tipOptions:
          $ref: '#/components/schemas/TipOptions'
    EmailAddress:
      title: Email Address
      maxLength: 254
      minLength: 3
      type: string
      format: email
      pattern: ^[a-zA-Z0-9!#$%&'*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+[.].+$
      description: A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1.
    SigningInformation:
      description: Information on the signing request.
      type: object
      properties:
        provider:
          type: string
          description: Signing Provider used
          enum:
          - SIGNICAT
          - ADOBE
          - DOKOBIT
        providerRef:
          type: string
          description: Signing Provider reference to the signing request
        signedFileUrl:
          type: string
          description: URL to the signed file
        signingRequests:
          type: array
          items:
            $ref: '#/components/schemas/SignersInformation'
      required:
      - provider
      - providerRef
    httpError500:
      title: HTTP 500 Error
      type: object
      description: Unexpected Server Error
      allOf:
      - $ref: '#/components/schemas/ErrorResp'
      - properties:
          code:
            type: string
            enum:
            - '500'
            default: '500'
          title:
            type: string
            enum:
            - Internal Server Error
            default: Internal Server Error
          message:
            type: string
            default: The server encountered an unexpected condition which prevented it from fulfilling the request.
          timestamp:
            description: "The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone."
            type: string
            format: date-time
          type:
            type: string
            enum:
            - API_ERROR
            default: API_ERROR
          param:
            description: The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.
            type: string
      required:
      - code
      - title
      - message
      - type
      additionalProperties: false
    ContactTypeEnum:
      title: Contact Type
      description: 'An indicator for the type of contact.


        |Value|Description|

        |----|-----------|

        |BUSINESS|Generic business contact information, e.g. info@example.com|

        |DISPUTE_HANDLING|Generic contact information specific to dispute handling, e.g. disputes@example.com|

        |OWNER|Individual contact information of the owner of the Entity, e.g. ben.jerry@example.com|

        |PERSONAL|Personal contact information of the person representing the Entity, e.g. bjerr83@example-personal-email-domain.com|'
      type: string
      enum:
      - BUSINESS
      - DISPUTE_HANDLING
      - OWNER
      - PERSONAL
      default: BUSINESS
    OrderId:
      description: Verifone allocated ID for the Order.
      type: string
      format: uuid
    ExternalOnboarding:
      description: External merchant onboarding details
      type: object
      discriminator:
        propertyName: provider
        mapping:
          BANKAXEPT: '#/components/schemas/BankAxeptExternalOnboarding'
      properties:
        provider:
          title: External Onboarding Provider
          description: The third-party provider used for merchant onboarding.
          type: string
          enum:
          - BANKAXEPT
          default: BANKAXEPT
        agreementId:
          type: string
          format: uuid
          description: 'Agreement or onboarding order identifier returned by the third-party provider when onboarding is initiated.

            '
        agreementStatus:
          type: string
          description: 'Latest onboarding or agreement status received from the third-party provider.

            '
    PackageBundleId:
      description: The Verifone allocated ID for the package bundle.
      type: string
      pattern: ^[A-Za-z0-9_-]*$
      maxLength: 100
    MerchantOrderResponse:
      allOf:
      - $ref: '#/components/schemas/MerchantOrder'
      - properties:
          orderId:
            $ref: '#/components/schemas/OrderId'
          status:
            $ref: '#/components/schemas/OrderStatusEnum'
          createdUserUid:
            $ref: '#/components/schemas/CreatedUserId'
          createdBy:
            $ref: '#/components/schemas/UserName'
          createdDate:
            type: string
            description: The created date for this order.
            format: date-time
          modifiedUserUid:
            description: The assigned User_ID corresponding to the Order Modified By.
            type: string
            format: uuid
          modifiedBy:
            $ref: '#/components/schemas/UserName'
          modifiedDate:
            type: string
            description: The last modified date for this order.
            format: date-time
          orderType:
            type: string
            default: MerchantOrder
          entityUid:
            $ref: '#/components/schemas/EntityUid'
          merchantCompanyEntityUid:
            $ref: '#/components/schemas/MerchantCompanyEntityUid'
          merchantCompanyGroupEntityUid:
            description: For Group Feature, `entityType = MERCHANT_COMPANY_GROUP``.
            type: string
            format: uuid
          internal:
            $ref: '#/components/schemas/InternalAllocatedInformationNewCompanyAndSite'
      required:
      - orderId
      - status
      - orderType
      - entityUid
      - merchantCompanyEntityUid
    CardProductSurcharge:
      description: Surcharging settings
      type: object
      properties:
        ProductId:
          type: string
          description: Link to the card product which this surcharge applies to. Contact Verifone for card products applicable to your estate.
          pattern: ^.*$
          minLength: 0
          maxLength: 150
        SurchargeType:
          description: 'Surcharge Type (Domestic)


            0 - Not configured


            1 - Fixed Amount


            2 - Percentage'
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-2]'
        SurchargeValue:
          description: Specifies the value of the surcharge depending on the surcharge type. Can be a fixed value (eg 2.5 = $2.50) or a percentage (eg 1.2 = 1.2%).
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
        MaxSurchargeAdjAmount:
          description: Applicable only when Surcharge Type is Percentage. Amount is in default Terminal currency, represented as a decimal number. Specifies the maximum surcharge amount; if the calculated surcharge is above this value, the Surcharge Max Adjustment amount will be applied instead.
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          default: '0'
        MinSurchargeAdjAmount:
          description: Applicable only when Surcharge Type is Percentage. Amount is in default Terminal currency, represented as a decimal number. Specifies the minimum surcharge amount; if the calculated surcharge is below this value, the Surcharge Min Adjustment amount will be applied instead.
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          default: '0'
        MaxSurchargeableAmount:
          description: Amount is in default Terminal currency, represented as a decimal number. When the transaction amount is above this maximum, no surcharge will be applied.
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          default: '0'
        MinSurchargeableAmount:
          description: Amount is in default Terminal currency, represented as a decimal number. When the transaction amount is below this minimum, no surcharge will be applied.
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+(\.[0-9]{1,2})?$
          default: '0'
        UseDomesticConfigForInternational:
          description: When enabled (true), surcharging of transactions that utilize international payment methods follows the surcharge parameter settings and rules as defined for domestic payment methods; and the international configuration variants are ignored. When disabled (false), unique International configuration parameters will control surcharging of transactions that utilize international payment methods.
          type: string
          default: '1'
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
      required:
      - ProductId
      - SurchargeType
      - SurchargeValue
    Phone:
      title: Phone number
      description: A simple Phone Number
      type: object
      additionalProperties: false
      properties:
        callingCode:
          description: Country Calling Code. Mapped to PARTY_PHONE.CALLING_CODE or VENUE_PHONE.CALLING_CODE
          type: string
        value:
          description: The actual phone number less country code and/or extension.
          type: string
          minLength: 5
        extension:
          description: The internal extension number where applicable or known.
          type: string
        isPrimary:
          description: Indicates that the phone is a the primary phone. Mapped to PARTY_PHONE_PRIMARY
          type: boolean
          default: false
        phoneType:
          $ref: '#/components/schemas/PhoneTypeEnum'
      required:
      - value
      - phoneType
    httpError504:
      title: HTTP 504 Error
      type: object
      description: Gateway Timeout Error
      allOf:
      - $ref: '#/components/schemas/ErrorResp'
      - properties:
          code:
            type: string
            enum:
            - '504'
            default: '504'
          title:
            type: string
            enum:
            - Gateway Timeout
            default: Gateway Timeout
          message:
            type: string
            default: The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
          timestamp:
            description: "The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone."
            type: string
            format: date-time
          type:
            type: string
            enum:
            - API_ERROR
            default: API_ERROR
          param:
            description: The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.
            type: string
      required:
      - code
      - title
      - message
      - type
      additionalProperties: false
    MerchantContract:
      type: object
      properties:
        brokerId:
          type: string
          maxLength: 100
          description: ID of the broker, if one is being used
        legalStructure:
          type: string
          description: Legal Structure
          enum:
          - PROPRIETOR_OWN_BEHALF
          - PROPRIETOR_NOT_OWN_BEHALF
          - SHARED_LESS_25_PERC_EACH
        contacts:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/ContactAddressType'
        settlementAccount:
          $ref: '#/components/schemas/SettlementAccount'
        domesticSettlementAccount:
          $ref: '#/components/schemas/DomesticSettlementAccount'
        serviceStartDate:
          type: string
          description: The requested date for this service to start.
          format: date-time
        terminalRentalStartDate:
          type: string
          format: date-time
          description: 'The date until which terminal rental is exempt for this contract (also labelled "Rent Exemption Until" / DE: "Mietfreiheit bis zum"). If not set, consumers should fall back to serviceStartDate.

            '
        proprietorAct:
          type: boolean
          description: Is proprietor is acting on its own behalf (true) or is not acting on own behalf (false)
        documents:
          type: array
          items:
            $ref: '#/components/schemas/MerchantDocument'
        replacementAgreement:
          $ref: '#/components/schemas/ReplacementAgreement'
      description: Used if merchant contract is to be processed
    IBANIdentifier:
      title: IBAN
      description: "International Bank Account Number (ISO 13616-1:2007).\n The use of an IBAN is mandated for all SEPA transactions.\nThere are 66 countries that support this format. The length will vary by country. Norway has the shortest format, 15 characters, currently Malta is the longest with 31 characters.\n"
      type: string
      pattern: ^[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$
    Notification:
      description: Object containing the sent date-time and template used for the notification.
      type: object
      properties:
        sentDateTime:
          description: Date and Time when the notification was sent.
          type: string
          format: date-time
        template:
          description: Template name used for the notification.
          type: string
        responseReferenceId:
          description: An ID from Messaging Service's response.
          type: string
    InternalAllocatedInformationNewCompanyAndSite:
      description: Internally allocated identifiers. This is for verifone use only and is subject to change.
      type: object
      allOf:
      - $ref: '#/components/schemas/InternalAllocatedInformation'
      - properties:
          ecomSiteEntityUid:
            type: string
            format: uuid
            description: Entity uid of the ecom site.
    PrintOptionsEnum:
      title: Receipt Printing Option
      description: 'Defines the receipt print options. - Possible values are: <br />Never Print - NEVER<br />Prompt for print - PROMPT<br />Always Print - ALWAYS<br />Always Print when Signature is Captured - ALWAYS_WITH_SIGNATURE'
      type: string
      enum:
      - NEVER
      - PROMPT
      - ALWAYS
      - ALWAYS_WITH_SIGNATURE
    MerchantOrder:
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseOrderData'
      - properties:
          packageDetails:
            $ref: '#/components/schemas/PackageDetails'
          contract:
            $ref: '#/components/schemas/MerchantContract'
          merchant:
            $ref: '#/components/schemas/BaseMerchant'
      required:
      - merchant
    BaseProcessorParameters:
      description: Payment Processor Parameters related to Merchant onboarding.
      type: object
      properties:
        processor:
          title: Payment Provider ContractType Processor Acquirer Type
          description: A type indicator for the contract that is being processed.
          type: string
          enum:
          - ABS_ISO
          - ABS_PDM
          - ABS_WEB
          - AMEX
          - BANKAXEPT
          - BANQUE_CHABRIERES
          - BARCLAYS
          - BFCOI
          - BNPP_ATC
          - BNP_PARIBAS
          - BNPP_VERS_ATOS
          - BRED
          - CAISSE_D_EPARGNE
          - CBA
          - CEDICAM
          - CIC
          - CM_ARKEA
          - CREDIT_AGRICOLE
          - CREDIT_DU_NORD_VERS_ATOS
          - CREDIT_DU_NORD_VERS_NATIXIS
          - CREDIT_MUTUEL
          - CREDITGUARD
          - DANKORT
          - EFTPOS_NZ
          - ELAVON
          - FDRC
          - FIRSTDATA
          - GICC
          - GIVEX
          - GLOBALPAY
          - GPP2
          - HSBC
          - IKANO
          - INTERCARD
          - ISRACARD
          - LA_BANQUE_POSTAL
          - LCL
          - LES_BANQUES_POPULAIRES
          - LLOYDS_CARDNET
          - MAESTRO
          - MOBILEPAY
          - NETS
          - OTHER
          - PAYPAL
          - PAYPAL_ECOM
          - PELECARD
          - RESURS_BANK
          - RTS
          - SG
          - SIMULATOR
          - SWEDBANK_PAY
          - SWISH
          - TIETO_EVRY
          - VERIFONE_AU
          - VIPPS
          - WESTPAC
          - WORLDPAY
          - WPAY_AU
          - FISERV_AU
          - CUSCAL_AU
          - CHASE_US
          - ELAVON_US
          - FISERV_US
          - TSYS_US
          - GLOBALPAYMENTS_US
          - VANTIV_US
          - HEARTLAND_US
          - TELECHECK_US
          - SC_AMEX
          - SC_EVRY
          - SC_LUOTTOKUNTA
          - SC_NETS_DK
          - SC_NETS_NO
          - SC_SWEDBANK_SE
          - SVS_US
          - SVS_UK
          - VALUELINK_US
          - VALUELINK_CA
          - VALUTEC_US
          - UNIFY_GIVEX
          default: TSYS_US
        tidList:
          description: A pool of terminal IDs issued by the Acquiring Institution. This pool is intended to be used for the POIs that's capable of initiating multiple payment requests in parallel (e.g. Checkout Page and Virtual Terminal)
          type: array
          uniqueItems: true
          items:
            type: string
      discriminator:
        propertyName: processor
        mapping:
          GIVEX: '#/components/schemas/ProcessorParametersGivex'
          GLOBALPAYMENTS_US: '#/components/schemas/ProcessorParametersUSGPEAST'
          TSYS_US: '#/components/schemas/ProcessorParametersUSTSYS'
          CHASE_US: '#/components/schemas/ProcessorParametersUSCHASE'
          ELAVON_US: '#/components/schemas/ProcessorParametersUSELAVON'
          FISERV_US: '#/components/schemas/ProcessorParametersUSFIRSTDATA'
          VANTIV_US: '#/components/schemas/ProcessorParametersUSVANTIV'
          HEARTLAND_US: '#/components/schemas/ProcessorParametersUSHeartland'
          TELECHECK_US: '#/components/schemas/ProcessorParametersUSTelecheck'
          FISERV_AU: '#/components/schemas/ProcessorParametersFiservAU'
          CUSCAL_AU: '#/components/schemas/ProcessorParametersCuscalAU'
          WPAY_AU: '#/components/schemas/ProcessorParametersWpayAU'
          SVS_UK: '#/components/schemas/ProcessorParametersSVS'
          SVS_US: '#/components/schemas/ProcessorParametersSVS'
          VALUELINK_US: '#/components/schemas/ProcessorParametersValuelink'
          VALUELINK_CA: '#/components/schemas/ProcessorParametersValuelink'
          VALUTEC_US: '#/components/schemas/ProcessorParametersValutecUS'
          VERIFONE_AU: '#/components/schemas/ProcessorParametersVerifoneAU'
          SC_AMEX: '#/components/schemas/ProcessorParametersSC'
          SC_EVRY: '#/components/schemas/ProcessorParametersSC'
          SC_LUOTTOKUNTA: '#/components/schemas/ProcessorParametersSC'
          SC_NETS_DK: '#/components/schemas/ProcessorParametersSC'
          SC_NETS_NO: '#/components/schemas/ProcessorParametersSC'
          SC_SWEDBANK_SE: '#/components/schemas/ProcessorParametersSC'
          OTHER: '#/components/schemas/ProcessorParametersOTHER'
          UNIFY_GIVEX: '#/components/schemas/ProcessorParametersUnifyGivex'
      required:
      - processor
    OrderReference:
      description: Client reference for the Order.
      type: string
      minLength: 1
    LastChangeTime:
      description: Time status detailed status last changed.
      type: string
      format: date-time
    httpError429:
      title: HTTP 429 Error
      type: object
      description: The resource exists the number of requests has exceeded the specified quota.
      allOf:
      - $ref: '#/components/schemas/ErrorResp'
      - properties:
          code:
            type: string
            enum:
            - '429'
            default: '429'
          title:
            type: string
            enum:
            - Too Many Requests
            default: Too Many Requests
          message:
            type: string
            default: The number of requests from this client is restricted to a specified quota.
          timestamp:
            description: "The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone."
            type: string
            format: date-time
          type:
            type: string
            enum:
            - RATE_LIMIT_ERROR
            default: RATE_LIMIT_ERROR
          param:
            description: The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.
            type: string
      required:
      - code
      - title
      - message
      - type
      additionalProperties: false
    BaseMerchant:
      description: details of the merchant
      type: object
      properties:
        merchantType:
          type: string
        merchantName:
          $ref: '#/components/schemas/MerchantName'
        merchantId:
          maxLength: 75
          pattern: ^[a-zA-Z0-9]+$
          type: string
          description: The identifier assigned to this Merchant Entity.
        merchantLogoUrl:
          pattern: ^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
          type: string
          description: Valid merchant logo url
        altVfiEntityId:
          $ref: '#/components/schemas/AltVfiEntityId'
        parentEntityUid:
          type: string
          format: uuid
          description: If specified this will add the merchant company or site under a specific entity within Verifone systems.
        industry:
          $ref: '#/components/schemas/Industry'
        primaryContact:
          $ref: '#/components/schemas/ContactType'
        requestedDateOfShipment:
          $ref: '#/components/schemas/RequestedDateOfShipment'
        mcc:
          $ref: '#/components/schemas/MCC'
        parameters:
          $ref: '#/components/schemas/TerminalParameters'
        paymentAppParameters:
          $ref: '#/components/schemas/PaymentAppParameters'
        settlement:
          $ref: '#/components/schemas/SettlementDetails'
        entityUid:
          $ref: '#/components/schemas/EntityUidDeprecated'
        tradingAddress:
          $ref: '#/components/schemas/AddressWithoutType'
        shippingAddress:
          $ref: '#/components/schemas/AddressWithoutType'
        billingAddress:
          $ref: '#/components/schemas/AddressWithoutType'
        companyLabels:
          type: array
          description: Free form labels/tags that can be attached to an entity to enable grouping and searching
          maxLength: 10
          items:
            type: string
            description: Logical grouping of companies. A tag or label which is meaningful to the customer which groups merchant company legal entities, e.g Restaurants, Retail, Timezone etc.
            maxLength: 30
        siteLabels:
          type: array
          description: Free form labels/tags that can be attached to an entity to enable grouping and searching
          maxLength: 10
          items:
            type: string
            description: Logical grouping of sites. A tag or label which is meaningful to the customer which groups merchant sites, e.g Area, Timezone etc.
            maxLength: 30
      discriminator:
        propertyName: merchantType
        mapping:
          NewCompanyAndSite: '#/components/schemas/SmallMerchant'
          ExistingCompanyNewSite: '#/components/schemas/ExistingCompanyNewSite'
          SmallMerchant: '#/components/schemas/SmallMerchant'
      required:
      - contacts
      - mcc
      - merchantType
      - tradingAddress
      - primaryContact
    NotificationReminders:
      description: A container for all supported notification reminders.
      type: object
      properties:
        econtract:
          $ref: '#/components/schemas/NotificationReminder'
        draft:
          $ref: '#/components/schemas/NotificationReminder'
        docRequired:
          $ref: '#/components/schemas/NotificationReminder'
      additionalProperties: false
    VmssSchemeStatus:
      description: Scheme Status
      type: string
      enum:
      - 'NA '
      - PENDING
      - ERROR
      - COMPLETE
    PaymentAppParameters:
      title: Base Parameters
      description: Payment Parameters - these can be specified per merchant and/or overridden at the poi level. If no values are specified then default template values will be applied.
      type: object
      properties:
        AccountVerifyEnabled:
          description: Enable Account verification for this merchant
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        AllowDisableMerchantPreferredAppSelection:
          description: Display the option to disable merchant preferred app selection in the 'Prompt For Card' screen
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        PurchaseEnabled:
          description: Enable Purchase transactions for this merchant.
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        PurchaseAndCashoutEnabled:
          description: Enable prompting for a cashout amount as part of a purchase transaction.
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        ManualPurchaseAndCashoutEnabled:
          description: Enable Manual Card Entry for Purchase with Cashout.
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        PurchaseSurchargeEnabled:
          description: 'Enables surcharging for Purchase (+ Cash + Tip)

            transactions. Surchargeable amount - this is the amount in

            the transaction where a surcharge can be applied to.

            Purchase only - surchargeable amount is the purchase

            amount. Purchase + Cash - surchargeable amount is the

            purchase amount only. Purchase + Cash + Tip -

            surchargeable amount is the purchase amount only. Purchase

            + Tip - surchargeable amount is the purchase amount only.'
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        ContactlessSurchargeEnabled:
          description: Enable contactless surcharging.
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        CashOutOnlySurchargeEnabled:
          description: Enables surcharging for Cashout only transactions.
          type: string
          minLength: 1
          maxLength: 1
          pattern: '[0-1]'
        PreauthCompletionSurchargeType:
          description: '0 - Disabled: Pre-Auth/Completion transactions are not subject to surcharge


            1 - Pre-Auth: Surcharge is applied to Pre-Auth (initial) transaction


            2 - Completion: Surcharge is applied to Completion transaction'
          type: string
          minLength

# --- truncated at 32 KB (107 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/verifone/refs/heads/main/openapi/verifone-merchant-orders-api-openapi.yml