openapi: 3.1.0
info:
  version: 1.7.60
  title: Shift4 Payment API
  contact:
    url: https://www.shift4.com/contact-us/
servers:
  - url: https://api.shift4test.com/api/rest/v1
    description: Host Direct Test URL
  - url: https://api.shift4api.net/api/rest/v1
    description: Host Direct Production URL
components:
  securitySchemes:
    AccessToken:
      type: apiKey
      name: AccessToken
      in: header
      description: >
        A security credential used to authenticate API requests and all
        [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20reference%20guide.pdf)
        authorizeClient/preauthorizeClient requests. An Access Token is the
        alias for the merchant account and interface being used. 


        Example:
          ```
          AccessToken: EA79FB05-3AA7-4500-AF9A-73F986FF2C1D
          ```
    HMAC-SHA256:
      type: http
      scheme: hmac-sha256
      description: >
        Authentication using HMAC-256 signatures as the authorization scheme.


        Sent in the `Authorization` header in the following format:


        `Authorization`: **HMAC-SHA256**
        `Credential`={value}&`Signature`={value}


        | Argument      | Description                                      |

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

        | HMAC-SHA256   | Authorization scheme.                            |

        | Credential    | The ID of the key used to compute the signature. |

        | Signature     | base64 encoded HMACSHA256 value.                 |


        Example: 
          ```
          Authorization: HMAC-SHA256 Credential=AESKEY1&Signature=8SFtIc6zQlswxAZqDKXL+BpRmlDvIWyjOwU8wdl0zK4=
          ```
  parameters:
    InterfaceVersion:
      required: true
      name: InterfaceVersion
      in: header
      schema:
        type: string
        maxLength: 11
        example: '2.1'
      description: >
        Refers to the version of the program or application that is sending
        requests to Shift4. The following special characters are not
        allowed&colon;  $ % &colon; ^ - ~ < > , ? “ ” ‘ ’ { } [ ] \ + =
    InterfaceName:
      required: true
      name: InterfaceName
      in: header
      schema:
        type: string
        maxLength: 25
        example: ForwardPOS
      description: >
        Refers to the name of the program or application that is sending
        requests to Shift4. This should be the name of the program that you
        purchased or created. The following special characters are not
        allowed&colon;  $ % &colon; ^ - ~ ` < > , ? “ ” ‘ ’ { } [ ] \ + =
    CompanyName:
      required: true
      name: CompanyName
      in: header
      schema:
        type: string
        maxLength: 26
        example: PAWS
      description: >
        Refers to the vendor or partner that designed and certified the
        interface. The information you use in this field should match what
        Shift4 has on file or what was agreed upon in your Integration Plan. The
        following special characters are not allowed&colon;  $ % &colon; ^ - ~ `
        < > , ? “ ” ‘ ’ { } [ ] \ + =
    AccessToken:
      required: true
      name: AccessToken
      in: header
      schema:
        type: string
        format: uuid
        maxLength: 52
        example: EA79FB05-3AA7-4500-AF9A-73F986FF2C1D
      description: >
        A security credential used to authenticate API requests and all
        [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20reference%20guide.pdf)
        authorizeClient/preauthorizeClient requests. An Access Token is the
        alias for the merchant account and interface being used. The Access
        Token is required in all requests except an [Access Token
        Exchange](/apis/payments-platform-rest/openapi/credentials/accesstokenexchange)
        request, which generates an Access Token using an `authToken` and
        `clientGuid`.
    Invoice:
      required: true
      name: Invoice
      in: header
      schema:
        $ref: '#/components/schemas/TransactionInvoice'
    ApiOptions:
      required: false
      name: ApiOptions
      in: header
      schema:
        type: string
        maxLength: 255
      example: ALLOWPARTIALAUTH,RETURNEXPDATE
      description: >
        API Options modify the request being made. Multiple API Options can be
        sent in a comma separated list with no spaces. See the [API
        Options](/guides/appendices/api-options.md) section for more
        information.
    ReceiptColumns:
      required: false
      name: ReceiptColumns
      in: header
      schema:
        type: integer
        example: 40
        maxLength: 48
      description: >
        Send this field if you want Shift4 to format the receipt text instead of
        returning individual fields. The value sent will correlate to the column
        width of the formatted receipt that we return. (This also allows the
        receipt text to wrap to fit the paper size of the printed receipt.) See
        the [Printing Receipts](/guides/core-concepts/printing-receipts) section
        of this document for more information on formatted receipts.
    TokenValue:
      name: Token
      in: header
      schema:
        type: string
        maxLength: 16
        example: '8048471746471119'
      description: This field is used to specify the token for the payment method.
    ReversalReason:
      name: ReversalReason
      in: header
      schema:
        type: string
        minLength: 2
        maxLength: 2
        enum:
          - '01'
          - '02'
          - '03'
          - '04'
          - '05'
          - '06'
          - '07'
          - '08'
          - '09'
      example: '01'
      description: |
        Specifies the reason for the reversal.

        Value|Description
        -----|-----------
        01   | Timeout
        02   | POS lost connection
        03   | Merchant cancellation
        04   | Customer cancellation
        05   | EMV card removed prematurely
        06   | EMV card declined issuer approval
        07   | PIN PAD unavailable
        08   | Chip error
        09   | Suspected Fraud
    CardNumber:
      name: CardNumber
      in: header
      schema:
        type: string
        maxLength: 32
        example: '4321000000001119'
      description: >
        The payment card number. This field will always be masked when returned
        in a response.
    P2PEData:
      name: P2PEData
      in: header
      schema:
        type: string
        maxLength: 2048
      description: The full output of a P2PE keypad/magnetic swipe reader (MSR).
    P2PEFormat:
      name: P2PEFormat
      in: header
      schema:
        type: string
        minLength: 2
        maxLength: 2
        enum:
          - '01'
          - '02'
          - '03'
          - '04'
          - '05'
      example: '01'
      description: |
        Classifies the type of payment device being used for P2PE.

        Value|Description
        -----|-----------
        01   | IDTech Enhanced Encryption format, USB KB mode
        02   | IDTech Enhanced Encryption format, USB HID mode
        03   | Ingenico format
        04   | VeriFone format
        05   | Shift4 TDES DUKPT format
    P2PEKsn:
      name: P2PEKsn
      in: header
      schema:
        type: string
        maxLength: 20
      example: '6299495001100E200041'
      description: |
        **Conditional: Required when `p2pe.format` == "05"**

        The key serial number which was used to encrypt the P2PE data.
    TokenSerialNumber:
      name: SerialNumber
      in: header
      schema:
        type: string
        maxLength: 10
        example: '266'
      description: >
        In requests that require the use of a shared card token that is held by
        another merchant account, such as in TokenStore or TokenShare®, this
        field is used to specify the serial number for the account where the
        card token is stored.
    TrackData:
      name: TrackData
      in: header
      schema:
        type: string
        maxLength: 128
      example: ;4321000000001119=2212201999999?
      description: >
        **Conditional: Send in the initial authorization/sale request when
        processing a swiped MSR transaction. This field is not specified when
        using True P2PE® (point-to-point encryption) or a UTG-controlled PIN
        pad.**


        Card swipe data exactly as read by an MSR.
    ApiOptionsGetMerchant:
      required: false
      name: ApiOptions
      in: header
      schema:
        type: string
        maxLength: 255
      example: RETURNPROCESSORS
      description: >
        API Options modify the request being made. Multiple API Options can be
        sent in a comma separated list with no spaces. See the [API
        Options](/guides/appendices/api-options.md) section for more
        information.


        Value            | Description

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

        RETURNPROCESSORS | Returns the processor information and card ranges the
        merchant is configured for.
    TerminalID:
      required: true
      name: TerminalId
      in: header
      schema:
        type: string
        maxLength: 32
        example: '1742'
      description: >
        The API Terminal ID configured in UTG TuneUp must be specified in this
        field.
    TerminalIDDevicesInfo:
      name: TerminalId
      in: header
      schema:
        type: string
        maxLength: 32
        example: '1742'
      description: >
        **Conditional: Required for UTG, optional for Commerce Engine.**
          
        The API Terminal ID assigned to the device. 


        For UTG it is configured in TuneUp and must be included in the request


        For Commerce Engine it is defined in the Terminal Management System
        (TMS) and is optional. If sent, it must match the value defined in the
        TMS.
    BusinessDateTotals:
      required: true
      name: BusinessDate
      in: header
      schema:
        type: string
        format: ISO 8601
        minLength: 10
      example: '2021-04-15T09:18:23.283-07:00'
      description: The business date you want to obtain the totals report for.
    Inclusive:
      required: false
      name: Inclusive
      in: header
      schema:
        type: string
        enum:
          - 'Y'
          - 'N'
      description: >
        Indicates whether or not you want the batch to include transactions for
        every day leading up to the `BusinessDate`. If this parameter is not
        sent, the assumed value will be 'Y'.
    PaymentLinksLimit:
      name: Limit
      in: header
      schema:
        type: number
        maximum: 100
      description: |
        Maximum number of returned objects
    PaymentLinksStartingAfterId:
      name: StartingAfterId
      in: header
      schema:
        type: string
      description: >
        Cursor used for pagination (getting the next page). For example, if you
        make a list request and receive 10 objects, where the last object has
        `id=some-example-id` - then you can make another request with
        `startingAfterId=some-example-id` to get the next page of that list.
    PaymentLinksEndingBeforeId:
      name: EndingBeforeId
      in: header
      schema:
        type: string
      description: >
        Cursor used for pagination (getting the previous page). For example, if
        you make a list request and receive 10 objects, where the first object
        has `id=some-example-id` - then you can make another request with
        `endingBeforeId=some-example-id` to get the previous page of that list
    PaymentLinksDateTimeAfter:
      name: DatetimeAfter
      in: header
      schema:
        type: string
        format: ISO 8601
        example: '2024-05-21T09:18:23.283-07:00'
      description: |
        Returns only records strictly after the specified timestamp
    PaymentLinksDateTimeBefore:
      name: DatetimeBefore
      in: header
      schema:
        type: string
        format: ISO 8601
        example: '2024-05-21T09:18:23.283-07:00'
      description: |
        Returns only records strictly before the specified timestamp
    PaymentLinksId:
      name: PaymentLinkId
      in: header
      required: true
      schema:
        type: string
      description: |
        Used for selecting payment link by id
    PaymentLinksIdOptional:
      name: PaymentLinkId
      in: header
      schema:
        type: string
      description: |
        Used for selecting payment link by id
    CheckoutSessionsStatus:
      name: Status
      in: header
      schema:
        type: string
        enum:
          - active
          - paid
          - expired
          - failed
      description: >
        Filter checkout sessions by their current status. When omitted, all
        sessions are returned.


        | Value     |
        Description                                                                                   
        |

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

        | `active`  | Session is open — payment not yet completed, not expired,
        and within the allowed failure count |

        | `paid`    | Payment was completed
        successfully                                                            
        |

        | `expired` | Session expired or was deleted without a successful
        payment                                    |

        | `failed`  | Payment was attempted but reached the maximum number of
        failed attempts                        |


        An invalid value returns HTTP 400 with error code
        `invalid_header_format`.
    CheckoutSessionsId:
      name: CheckoutSessionId
      in: header
      required: true
      schema:
        type: string
      description: |
        Used for selecting checkout session by id
    AuthorizationHMACSHA256:
      name: Authorization
      required: true
      in: header
      schema:
        type: string
        example: >-
          Authorization: HMAC-SHA256
          Credential=AESKEY1&Signature=8SFtIc6zQlswxAZqDKXL+BpRmlDvIWyjOwU8wdl0zK4=
      description: |
        HMAC-SHA256 signature
    Shift4AppId:
      name: Shift4AppId
      in: header
      schema:
        type: string
        example: Commerce Engine
      description: |
        Shift4 application identifier
    Shift4AppVersion:
      name: Shift4AppVersion
      in: header
      schema:
        type: string
        example: 2.4.0
      description: |
        Shift4 application version number
    MagicCubeDeviceId:
      required: true
      name: deviceId
      in: path
      schema:
        type: string
        example: GOiQMwBhSQ8THouJ
      description: |
        MagicCube Device Id
    IdempotencyId:
      required: true
      name: IdempotencyId
      in: header
      schema:
        type: string
        format: uuid
        description: >
          Unique identifier for the request. Each request must contain a unique
          `requestId` value. 


          Any reattempts due to timeout or error scenarios should include the
          same `requestId` as the original request to ensure idempotence.
    MID:
      required: true
      name: mid
      in: query
      schema:
        type: string
        maxLength: 10
        example: 123456
      description: |
        The Shift4 MID number
    SourceIP:
      name: sourceIp
      in: query
      schema:
        type: string
        example: 63.57.84.101
      description: >
        Public source IP Address where the request originates, not the IP
        Address of the web server.
    EmailAddress:
      name: emailAddress
      in: query
      schema:
        type: string
        example: janedoe@email.com
      description: |
        Email address
    EmailDomain:
      name: emailDomain
      in: query
      schema:
        type: string
        example: gmail.com
      description: |
        Email domain
    FullName:
      name: fullName
      in: query
      schema:
        type: string
        example: John Smith
      description: |
        Full Name
    Token:
      name: token
      in: query
      schema:
        type: string
        example: '8058471748284111'
      description: |
        Token
  schemas:
    DateTime:
      type: string
      format: ISO 8601
      example: '2024-05-21T09:18:23.283-07:00'
      description: >
        The date and time in ISO 8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).


        Must be sent as the local date/time of the merchant. For example, a
        request processed at a merchant in the Pacific time zone at 9:18am on
        April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    CredentialAccessToken:
      type: string
      format: uuid
      maxLength: 52
      example: EA79FB05-3AA7-4500-AF9A-73F986FF2C1D
      readOnly: true
      description: >
        A security credential used to authenticate API requests and all
        [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20reference%20guide.pdf)
        authorizeClient/preauthorizeClient requests. An Access Token is the
        alias for the merchant account and interface being used. The Access
        Token is required in all requests except an [Access Token
        Exchange](/apis/payments-platform-rest/openapi/credentials/accesstokenexchange)
        request, which generates an Access Token using an `authToken` and
        `clientGuid`.
    CredentialAuthToken:
      type: string
      format: uuid
      maxLength: 51
      example: 3504489F-A774-88E0-80114FBBC925E207
      writeOnly: true
      description: >
        A unique encrypted identifier that refers to a specific merchant
        account. It is required when making an [Access Token
        Exchange](/apis/payments-platform-rest/openapi/credentials/accesstokenexchange)
        request. For detailed information about the AuthToken, please see
        [Authentication](/guides/quickstart#access-token-exchange)
    CredentialClientGuid:
      type: string
      format: uuid
      maxLength: 51
      example: A3B18F21-AD17-8416-0626C4C9F1CA86A7
      writeOnly: true
      description: >
        The Client GUID is a unique identifier that is used to identify an
        interface across all of the merchant accounts that use it. The same
        Client GUID can be used for all versions of the same interface. If a
        completely new interface is certified, then you will receive a new
        Client GUID, which must be hard coded into the application and must not
        be a configurable field. The Client GUID is required when making an
        [Access Token
        Exchange](/apis/payments-platform-rest/openapi/credentials/accesstokenexchange).
        For detailed information about the Client GUID, please see
        [Authentication](/guides/quickstart#access-token-exchange).


        **Requirement: The Client GUID supplied by your API Analyst must be hard
        coded into your application because it will permanently identify your
        interface across all merchant accounts.**
    CredentialApiSerialNumber:
      type: string
      maxLength: 10
      example: '266'
      readOnly: true
      description: >
        The serial number for the merchant account. This field is only used for
        backwards compatibility with older interfaces and has been replaced by
        the Access Token.
    CredentialApiPassword:
      type: string
      maxLength: 32
      example: 9YCR23G7%BY#9+
      readOnly: true
      description: >
        A credential used to authenticate the API Serial Number when processing
        a request. This field is only used for backwards compatibility with
        older interfaces and has been replaced by the Access Token.
    Credential:
      type: object
      required:
        - authToken
        - clientGuid
      properties:
        accessToken:
          $ref: '#/components/schemas/CredentialAccessToken'
        authToken:
          $ref: '#/components/schemas/CredentialAuthToken'
        clientGuid:
          $ref: '#/components/schemas/CredentialClientGuid'
        apiSerialNumber:
          $ref: '#/components/schemas/CredentialApiSerialNumber'
        apiPassword:
          $ref: '#/components/schemas/CredentialApiPassword'
    ServerName:
      type: string
      maxLength: 50
      example: TM01CE
      description: |
        The name of the server that processed the request.
    Server:
      type: object
      readOnly: true
      properties:
        name:
          $ref: '#/components/schemas/ServerName'
    ErrorCode:
      type: integer
      maxLength: 5
      readOnly: true
      example: 64100
      description: >
        Code indicating the type of error that occurred. Refer to the [Error
        Codes](/guides/appendices/error-codes) section of this document for more
        details.


        **Note: This is currently only supported for European merchant
        processing.**
    ErrorSeverity:
      type: string
      enum:
        - Info
        - Error
        - Alert
      readOnly: true
      example: Info
      description: >
        Severity level of the error.


        | Severity |
        Description                                                       |

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

        | Info     | Action not required - Data input/formatting is
        incorrect          |

        | Error    | Action may be required - Communication, timeout or network
        issue  |

        | Alert    | Action required - System
        issue                                    |
    ErrorShortText:
      type: string
      maxLength: 16
      readOnly: true
      example: NOT IN CARDRANGE
      description: >
        Abbreviated error message that is always returned if an error condition
        exists
    ErrorLongText:
      type: string
      maxLength: 255
      readOnly: true
      example: Card type not recognized
      description: |
        Extended error message that is returned if an error condition exists.
    ErrorPrimaryCode:
      type: integer
      maxLength: 4
      readOnly: true
      example: 9842
      description: >
        Code indicating the type of error that occurred. Refer to the [Error
        Codes](/guides/appendices/error-codes) section of this document for more
        details.
    ErrorSecondaryCode:
      type: integer
      maxLength: 4
      readOnly: true
      example: 0
      description: >
        This code supplements the code specified in the `error.primaryCode`
        field to provide additional information about the error that occurred.
    Error:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        severity:
          $ref: '#/components/schemas/ErrorSeverity'
        shortText:
          $ref: '#/components/schemas/ErrorShortText'
        longText:
          $ref: '#/components/schemas/ErrorLongText'
        primaryCode:
          $ref: '#/components/schemas/ErrorPrimaryCode'
        secondaryCode:
          $ref: '#/components/schemas/ErrorSecondaryCode'
    LighthouseDataResponse:
      type: string
      example: >-
        eyJwYXltZW50SWQiOiI4NWM0MWNhNy01NzVjLTQzNGUtODIyZi0xYzZlOTE0ZDAzODYiLCJyZW1haW5pbmdBbW91bnQiOjB9
      description: >
        Base64 encoded JSON formatted data that will be returned from Lighthouse
        to be passed back to SkyTab. This data will contain variable
        information.
    AmountTotal:
      type: number
      maxLength: 14
      example: 160
      description: >
        The amount being charged for a particular transaction. If other amount
        fields are sent, they must be included in the total amount. Amount
        cannot be zero.
    AmountTax:
      type: number
      maxLength: 14
      example: 15
      description: >
        The amount of sales tax charged for a transaction. The tax amount is
        used by businesses to track tax expenses for accounting purposes.
        Identifying the tax amount also helps consumers understand the total
        amount that they were billed.  This field is part of Level 2 card data.
    AmountTaxIndicator:
      type: string
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Value|Description
        -----|-----------
        Y    | Tax is included
        N    | Tax is not included
    AmountCashback:
      type: number
      maxLength: 14
      example: 20
      description: >
        Specifies the cashback amount in a transaction. When using a
        UTG-controlled PIN pad with the ALLOWCASHBACK API Option, this field
        will return the cashback amount requested by the consumer. The interface
        can also send the desired cashback amount in a request by adding it to
        the `amount.total` and including it in the `amount.cashback` field. This
        will bypass prompting the consumer for a cashback amount.
    IIASAmount:
      type: number
      maxLength: 14
      example: 34
      description: |
        The subtotal for this type of healthcare expenses.
    IIASType:
      type: string
      minLength: 2
      maxLength: 2
      example: 4T
      enum:
        - 4O
        - 4S
        - 4T
        - 4U
        - 4V
        - 4W
        - 4X
      description: >
        This code classifies eligible healthcare expenses.


        Value|Description

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

        4O   | Cash Disbursement (Discover Only) – Amount of Cash Back Being
        Requested

        4S   | Healthcare (Visa/MC Only) – Qualified Medical Expenses or
        Over-the-Counter

        4T   | Transit (Visa Only) – Transit Fare Media (e.g., Commuter and
        Parking Passes, Mass Transit Vouchers, and Tickets)

        4U   | RX (Visa/MC Only)

        4V   | Vision (Visa Only)

        4W   | Clinical (Visa Only)

        4X   | Dental (Visa Only)
    IIASAmounts:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/IIASAmount'
        type:
          $ref: '#/components/schemas/IIASType'
    IIASAmountsArray:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/IIASAmounts'
      example:
        - type: 4S
          amount: 75
        - type: 4W
          amount: 25
      description: >
        **Conditional: Send in the request if processing for a health care
        merchant.**


        For Vision related charges you must send only `iiasAmounts.type = 4V`
        and the corresponding `iiasAmounts.amount` value.


        For all other charges, the first entry in the array should have an
        amount representing the total of all healthcare costs, and
        `iiasAmounts.type = 4S`.  Any subsequent entries should contain the
        subtotal for each of the other expense types involved in this
        transaction.
    AmountTip:
      type: number
      maxLength: 14
      example: 20
      description: |
        **Conditional: Send in the request if a tip is included.**

        The tip amount of the transaction.
    AmountCheckTotal:
      type: number
      maxLength: 14
      writeOnly: true
      example: 200
      description: >
        Optional field specifying the total amount of the entire bill/invoice
        that this transaction is part of. It can be larger than `amount.total`
        in scenarios where the check is being split or if a portion of the check
        was already paid in cash or another form of payment.
    AmountObjectNoSurcharge:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with a $20 tip and $8 tax would be `128.00` in the `total` field,
        `20.00` in the `tip` field and `8.00` in the `tax` field.


        Note: For merchants that are configured to allow multiple currencies,
        the amount  fields can specify up to three decimal places. However, the
        number of decimal  places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
        - tax
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
        tax:
          $ref: '#/components/schemas/AmountTax'
        taxIndicator:
          $ref: '#/components/schemas/AmountTaxIndicator'
        cashback:
          $ref: '#/components/schemas/AmountCashback'
        iiasAmounts:
          $ref: '#/components/schemas/IIASAmountsArray'
        tip:
          $ref: '#/components/schemas/AmountTip'
        checkTotal:
          $ref: '#/components/schemas/AmountCheckTotal'
    ClerkNumericId:
      type: integer
      maxLength: 5
      example: 1576
      description: >
        A number used to identify the point-of-sale (POS) or property management
        system (PMS) clerk or user. The value cannot be 0. An interface must be
        able to dynamically populate this field (not use a hardcoded value),
        unless the interface will be used exclusively for e-commerce.
    Clerk:
      type: object
      required:
        - numericId
      properties:
        numericId:
          $ref: '#/components/schemas/ClerkNumericId'
    TransactionInvoice:
      type: string
      maxLength: 10
      example: '0510093358'
      description: >
        10-digit invoice number assigned by the interface to identify a
        transaction. An invoice number serves as a unique key that identifies a
        transaction within a batch in Shift4's Gateway.


        **Note: For US and Canadian processing: Although the invoice number is
        sent as a JSON string it is a numeric value. No alpha characters are
        allowed.**


        **For processing outside of the US and Canada alpha characters are
        allowed.**
    TransactionNotes:
      type: string
      maxLength: 4096
      example: Transaction notes are added here
      description: >
        A free-form notes field that supports the use of HTML tags.  This can be
        used for reference in [Lighthouse Transaction
        Manager](https://ltm.shift4test.com/) and is not sent to the
        authorization host. Escaped quotation marks should not be sent in the
        Notes field.
    TransactionBusinessDate:
      type: string
      format: ISO 8601
      minLength: 10
      example: '2021-04-15'
      description: >
        Desired business date of a transaction. Include when overriding the
        existing business date of a transaction. The overriding date may be
        earlier or later than the existing date. (yyyy-mm-dd)
    AmexPropertyCode:
      type: string
      maxLength: 15
      example: '21546782948'
      description: >
        The code that contains a Merchant-assigned store or location number (or
        name) that uniquely identifies where the transaction took place.
    TransactionAmex:
      type: object
      properties:
        propertyCode:
          $ref: '#/components/schemas/AmexPropertyCode'
    AutoEstimatedDays:
      type: integer
      maxLength: 2
      example: 5
      description: |
        Estimated contract length of car rental.
    AutoCheckIn:
      type: object
      description: |
        **Conditional: Utilize this object for Auto Rental transactions**
      properties:
        estimatedDays:
          $ref: '#/components/schemas/AutoEstimatedDays'
    AirlineCarrierCode:
      type: string
      maxLength: 4
      example: '5472'
      description: |
        The code of the airline carrier issuing the ticket.
    AirlineCarrierName:
      type: string
      maxLength: 19
      example: American Airlines
      description: |
        The name of the airline carrier issuing the ticket.
    AirlineConjunctionTicketIndicator:
      type: string
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'N'
      description: >
        Indicates whether the itinerary contains more than four segments of
        travel.


        Value  | Description       

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

        Y      | Yes

        N      | No
    AirlineDocumentType:
      type: string
      maxLength: 2
      enum:
        - '01'
        - '02'
        - '03'
        - '04'
        - '05'
        - '06'
        - '07'
        - '08'
        - '09'
        - '10'
        - '11'
        - '12'
        - '13'
        - '14'
        - '15'
        - '16'
        - '17'
        - '18'
        - '19'
        - '20'
        - '21'
        - '22'
        - '23'
        - '24'
        - '25'
        - '26'
        - '27'
        - '28'
        - '29'
        - '30'
        - '31'
        - '32'
        - '33'
        - '34'
        - '35'
        - '36'
        - '37'
        - '38'
        - '39'
        - '41'
        - '42'
        - '43'
        - '44'
        - '45'
        - '46'
        - '47'
        - '48'
        - '49'
        - '50'
        - '51'
        - '52'
        - '60'
        - '64'
        - '65'
        - '66'
        - '67'
        - '68'
        - '69'
        - '70'
        - '71'
        - '72'
        - '73'
        - '74'
        - '75'
        - '76'
        - '77'
        - '78'
        - '79'
        - '80'
        - '81'
        - '82'
        - '83'
        - '84'
        - '85'
        - '86'
        - '87'
        - '88'
        - '89'
        - '90'
        - '91'
        - '92'
        - '93'
      example: '93'
      description: >
        This field contains the airline Document Type code, which indicates the
        purpose of this transaction. This information may appear on the
        descriptive bill on the Cardmember's statement, or be used to resolve
        billing inquiries and disputes. The codes entered in the Transaction
        Type and Document Type fields are used together to describe the purpose
        of this transaction.


        Value | Description 

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

        01    | Passenger Ticket

        02    | Additional Collection

        03    | Excess Baggage

        04    | Misc. Charge Order (MCO) / Prepaid Ticket Auth

        05    | Special Service Ticket

        06    | Supported Refund

        07    | Unsupported Refund

        08    | Lost Ticket Application

        09    | Tour Order Voucher

        10    | Ticket by Mail

        11    | Undercharge Adjustment

        12    | Group Ticket

        13    | Exchange Adjustment

        14    | SPD/Air Freight

        15    | In-flight Adjustment

        16    | Agency Passenger Ticket

        17    | Agency Tour Order/Voucher

        18    | Agency Misc. Charge Order (MCO)

        19    | Agency Exchange Order

        20    | Agency Group Ticket

        21    | Debit Adjustment Duplicate Refund/Use

        22    | In-flight Merchandise Ordered

        23    | Catalogue Merchandise Ordered

        24    | In-flight Phone Charges

        25    | Frequent Flyer Fee/Purchase

        26    | Kennel Charge

        27    | Animal Transportation Charge

        28    | Firearms Case

        29    | Upgrade Charge

        30    | Credit Unused Transportation

        31    | Credit Class of Service Adjustment

        32    | Credit Denied Boarding

        33    | Credit Misc. Refund

        34    | Credit Lost Ticket Refund

        35    | Credit Exchange Refund

        36    | Credit Overcharge Adjustment

        37    | Credit Multiple Unused Tickets

        38    | Exchange Order

        39    | Self-Service Ticket(s)

        41    | In-flight Duty Free Purchase

        42    | Senior Citizen Discount Booklets

        43    | Club Membership Fee

        44    | Coupon Book

        45    | In-flight Charges

        46    | Tour Deposit

        47    | Frequent Flyer Overnight Delivery Charge

        48    | Frequent Flyer Fulfillment

        49    | Small Package Delivery

        50    | Vendor Sale

        51    | Miscellaneous Tax(es) Fee(s)

        52    | Travel Agency Fee

        60    | Vendor Refund Credit

        64    | Duty Free Sale

        65    | Preferred Seat Upgrade

        66    | Cabin Upgrade

        67    | Lounge/Club Access or Day Pass

        68    | Agent Assisted Reservation. Ticketing Fee

        69    | Ticket Change or Cancel Fee

        70    | Trip Insurance

        71    | Unaccompanied Minor

        72    | Standby Fee

        73    | Curbside Baggage

        74    | Inflight Medical Equipment

        75    | Ticket or Pass Print Fee

        76    | Checked Sporting/Special Equipment

        77    | Dry Ice Fee

        78    | Mail/Postage Fee

        79    | Club Membership Fee - Temporary/Trial

        80    | Frequent Flyer Activation/Reinstatement

        81    | Gift Certificate

        82    | Onboard/Inflight Prepaid Voucher

        83    | Optional Services Fee

        84    | Advanced Purchase - Excess Baggage

        85    | Advanced Purchase - Preferred Seat Upgrade

        86    | Advanced Purchase - Cabin Upgrade

        87    | Advanced Purchase - Optional Services

        88    | WiFi

        89    | Packages

        90    | Inflight Entertainment/Internet Access

        91    | Overweight Bag Fee

        92    | Sleep Sets

        93    | Special Purchase Fee
    AirlineElectronicTicketIndicator:
      type: string
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Indicates if an electronic ticket was issued.

        Value  | Description       
        -------|-------------------
        Y      | Yes
        N      | No  
    AirlineInternetIndicator:
      type: string
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Indicates if this is an internet transaction.

        Value  | Description       
        -------|-------------------
        Y      | Yes
        N      | No  
    AirlineIssueDate:
      type: string
      format: ISO 8601
      example: '2021-04-12T15:39:01.594-07:00'
      description: >
        The date the ticket was issued to the customer. The date and time in ISO
        8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    AirlineNumberOfCities:
      type: number
      maxLength: 2
      example: 5
      description: >
        The number of airports or cities for each leg on the ticket (including
        origination and destination cities).
    AirlineNumberOfCarriers:
      type: number
      maxLength: 2
      example: 5
      description: |
        This field contains the number of airline carriers.
    AirlineNumberOfPassengers:
      type: number
      maxLength: 3
      example: 5
      description: |
        The number of passengers in the transaction.
    AirlinePassengerArrivalDate:
      type: string
      format: ISO 8601
      example: '2021-04-14T15:39:01.594-07:00'
      description: >
        Date that the ticket holder is scheduled to arrive at their destination
        at the time of issuance of the original ticket. The date and time in ISO
        8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    AirlinePassengerDepartureDate:
      type: string
      format: ISO 8601
      example: '2021-04-13T15:39:01.594-07:00'
      description: >
        Date that the ticket holder is scheduled to depart at the time of
        issuance of the original ticket. The date may be a future one.  The date
        and time in ISO 8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    AirlinePassengerNameRecord:
      type: string
      maxLength: 6
      example: MXCTIF
      description: >
        A passenger name record (PNR) is a record in the database of a computer
        reservation system (CRS) that contains the itinerary for a passenger or
        a group of passengers travelling together
    AirlineRestrictedTicketIndicator:
      type: string
      maxLength: 1
      example: '1'
      enum:
        - '0'
        - '1'
      description: |
        Indicates whether this ticket is non-refundable.

        Value  | Description       
        -------|-------------------
        0      | No restriction
        1      | Restricted (non-refundable) ticket
    AirlineTicketChangeIndicator:
      type: string
      maxLength: 1
      enum:
        - C
        - 'N'
      example: C
      description: >
        Indicates why a ticket was changed.  This field should contain spaces or
        one of the below codes.


        Value  | Description 

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

        C      | Change to existing ticket

        N      | New ticket
    AirlineTicketTranType:
      type: string
      maxLength: 3
      enum:
        - TKT
        - REF
        - EXC
        - MSC
      example: TKT
      description: >
        This field contains the ticket transaction type code assigned to this
        transaction.


        Value  | Description 

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

        TKT    | Ticket Purchase

        REF    | Refund

        EXC    | Exchange Ticket

        MSC    | Miscellaneous (non-Ticket Purchase- and non-Exchange
        Ticket-related transactions only)
    AirlineTypeIndicator:
      type: string
      maxLength: 1
      enum:
        - R
        - O
        - M
      example: M
      description: >
        Indicates if this ticket is a round trip, multi-city, or one-way
        ticket. 


        Value  | Description 

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

        R      | Round-Trip

        O      | One Way

        M      | Multi-City
    AirlineTicketsPassengerName:
      type: string
      maxLength: 40
      example: Doe Jane M Mrs
      description: >
        Name of the passenger to whom the ticket was issued.  This field
        contains the Passenger Name in format:


        `SURNAME FIRSTNAME MIDDLEINITIAL TITLE`


        Example: "Doe Jane M Mrs"
    AirlineTicketsTicketNumber:
      type: string
      maxLength: 15
      example: '344567890234567'
      description: |
        The ticket number provided by the Carrier for the passenger.
    AirlineTicketsTicketFare:
      type: number
      maxLength: 14
      example: 350
      description: >
        Ticket fare is the total amount for each ticket, including service fee
        or any other fee for each ticket.
    AirlineTickets:
      type: object
      required:
        - passengerName
        - ticketNumber
        - ticketFare
      properties:
        passengerName:
          $ref: '#/components/schemas/AirlineTicketsPassengerName'
        ticketNumber:
          $ref: '#/components/schemas/AirlineTicketsTicketNumber'
        ticketFare:
          $ref: '#/components/schemas/AirlineTicketsTicketFare'
    AirlineTicketsArray:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/AirlineTickets'
      example:
        - ticketNumber: 412345678901234
          passengerName: Jane Doe
          ticketFare: 350
        - ticketNumber: 412345678901236
          passengerName: John Smith
          ticketFare: 250
      description: >
        Array of ticket number and passenger name. Note: At least one instance
        of ticket number and passenger name info should be provided.
    AirlineFlightLegsCarrierCode:
      type: string
      maxLength: 2
      example: DL
      description: >
        Code indicating name of carrier (United Airlines, Jet Blue, etc.) for
        the leg.
    AirlineFlightLegsCouponNumber:
      type: number
      maxLength: 1
      example: 1
      description: |
        Number of coupons in the ticket for the leg.
    AirlineFlightLegsDestAirportCode:
      type: string
      maxLength: 5
      example: YXX
      description: |
        Indicates destination city's airport code for the leg.
    AirlineFlightLegsFare:
      type: number
      maxLength: 14
      example: 300
      description: >
        This field contains the total Fare for this trip segment. This is not
        the total amount billed to the customer.
    AirlineFlightLegsFareBasis:
      type: string
      maxLength: 24
      example: YE3MAU
      description: >
        This field contains primary and secondary discount codes that indicate
        the class of service and fare level associated with the ticket for the
        leg. Truncate at 24 bytes, if necessary.
    AirlineFlightLegsFlightNumber:
      type: string
      maxLength: 5
      example: '2490'
      description: |
        Number of the airline flight to be taken on Leg of the trip.
    AirlineFlightLegsLegArrivalDateTime:
      type: string
      format: ISO 8601
      example: '2021-04-15T09:18:23.283-07:00'
      description: >
        The date and time the flight is scheduled to arrive for the leg. The
        date and time in ISO 8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    AirlineFlightLegsLegDepartureDateTime:
      type: string
      format: ISO 8601
      example: '2021-04-12T15:39:01.594-07:00'
      description: >
        The date and time the flight is scheduled to depart for the leg. The
        date and time in ISO 8601 format including the timezone offset
        (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    AirlineFlightLegsOriginAirportCode:
      type: string
      maxLength: 5
      example: AUH
      description: |
        Indicates origination city's airport code for the leg.
    AirlineFlightLegsServiceClass:
      type: string
      maxLength: 2
      example: FC
      description: |
        Indicates service class for leg.

        Value  | Description 
        -------|---------------
        FC     | First Class
        BC     | Business Class
        EC     | Economy/Coach Class
    AirlineFlightLegsStopOverCode:
      type: string
      maxLength: 1
      example: X
      description: >
        Indicates whether a stopover is allowed on this ticket for leg. The
        entry must be a D, O, or X.


        Value  | Description 

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

        O      | Stopover allowed

        X      | Stopover not allowed

        D      | Destination point
    AirlineFlightLegsTripLegInfo:
      type: string
      maxLength: 35
      example: Trip Leg Info 1
      description: |
        Description of leg or stage of trip.
    AirlineFlightLegs:
      type: object
      required:
        - carrierCode
        - destAirportCode
        - fare
        - fareBasis
        - flightNumber
        - legArrivalDateTime
        - legDepartureDateTime
        - originAirportCode
        - serviceClass
        - stopOverCode
        - tripLegInfo
      properties:
        carrierCode:
          $ref: '#/components/schemas/AirlineFlightLegsCarrierCode'
        couponNumber:
          $ref: '#/components/schemas/AirlineFlightLegsCouponNumber'
        destAirportCode:
          $ref: '#/components/schemas/AirlineFlightLegsDestAirportCode'
        fare:
          $ref: '#/components/schemas/AirlineFlightLegsFare'
        fareBasis:
          $ref: '#/components/schemas/AirlineFlightLegsFareBasis'
        flightNumber:
          $ref: '#/components/schemas/AirlineFlightLegsFlightNumber'
        legArrivalDateTime:
          $ref: '#/components/schemas/AirlineFlightLegsLegArrivalDateTime'
        legDepartureDateTime:
          $ref: '#/components/schemas/AirlineFlightLegsLegDepartureDateTime'
        originAirportCode:
          $ref: '#/components/schemas/AirlineFlightLegsOriginAirportCode'
        serviceClass:
          $ref: '#/components/schemas/AirlineFlightLegsServiceClass'
        stopOverCode:
          $ref: '#/components/schemas/AirlineFlightLegsStopOverCode'
        tripLegInfo:
          $ref: '#/components/schemas/AirlineFlightLegsTripLegInfo'
    AirlineFlightLegsArray:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/AirlineFlightLegs'
      example:
        - tripLegInfo: Trip Leg Info 1
          couponNumber: 1
          legDepartureDateTime: '2021-04-12T15:39:01.594-07:00'
          legArrivalDateTime: '2021-04-15T09:18:23.283-07:00'
          fare: 300
        - tripLegInfo: Trip Leg Info 2
          couponNumber: 2
          legDepartureDateTime: '2021-04-12T15:39:01.594-07:00'
          legArrivalDateTime: '2021-04-15T09:18:23.283-07:00'
          fare: 500
      description: >
        Array of flight trip leg info. Maximun 4 legs to a trip allowed. Note:
        At least one instance of flight trip leg info should be provided.
    AirlineAncillaryServicesServiceCode:
      type: string
      enum:
        - BF
        - BG
        - CF
        - CG
        - CO
        - FF
        - GF
        - GT
        - IE
        - LG
        - MD
        - ML
        - OT
        - PA
        - PT
        - SA
        - SB
        - SF
        - ST
        - TS
        - UN
        - UP
        - WI
      maxLength: 2
      example: BF
      description: |
        This field describes the type of service that has been provided.

        Value | Description 
        ------|---------------
        BF    | Bundled Service
        BG    | Baggage Fee
        CF    | Change Fee
        CG    | Cargo
        CO    | Carbon Offset
        FF    | Frequent Flyer
        GF    | Gift Card
        GT    | Ground Transport
        IE    | In-Flight Entertainment
        LG    | Lounge
        MD    | Medical
        ML    | Meal/Beverage
        OT    | Other
        PA    | Passenger Assist Fee
        PT    | Pets
        SA    | Seat Fees
        SB    | Standby
        SF    | Service Fee
        ST    | Store
        TS    | Travel Service
        UN    | Unaccompanied Travel
        UP    | Upgrades
        WI    | Wi-Fi
    AirlineAncillaryServicesServiceFee:
      type: number
      maxLength: 14
      example: 2
      description: >
        This field contains the amount associated with the value provided in
        ancillary Service Code.
    AirlineAncillaryServices:
      type: object
      required:
        - serviceCode
        - serviceFee
      properties:
        serviceCode:
          $ref: '#/components/schemas/AirlineAncillaryServicesServiceCode'
        serviceFee:
          $ref: '#/components/schemas/AirlineAncillaryServicesServiceFee'
    AirlineAncillaryServicesArray:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/AirlineAncillaryServices'
      example:
        - serviceCode: BF
          serviceFee: 2
        - serviceCode: BG
          serviceFee: 3
      description: |
        Array of ancillary service code and fees.

        **Conditional: Send if any ancillary services were charged.**
    AirlineTravelAgencyCode:
      type: string
      maxLength: 8
      example: '05172343'
      description: >
        Code identifying travel agency if the ticket was issued by a travel
        agency.


        **Conditional: Send if a travel agency service was used.**
    AirlineTravelAgencyName:
      type: string
      maxLength: 25
      example: State Travel
      description: |
        Name of travel agency if the ticket was issued by a travel agency.

        **Conditional: Send if a travel agency service was used.**
    AirlineExchangeTicketNumber:
      type: string
      maxLength: 15
      example: '507212345678768'
      description: |
        The original ticket number that was replaced by a new ticket number.
    AirlineRequest:
      type: object
      description: >
        **Conditional: Utilize this object for Airline transactions in
        Authorization/Sale requests when possible. If unable to provide this
        data at Authorization, this object must be sent in subsequent Capture
        requests for the transaction.**
      required:
        - carrierCode
        - carrierName
        - conjunctionTicketIndicator
        - documentType
        - electronicTicketIndicator
        - internetIndicator
        - issueDate
        - numberOfCities
        - numberOfCarriers
        - numberOfPassengers
        - passengerArrivalDate
        - passengerDepartureDate
        - passengerNameRecord
        - restrictedTicketIndicator
        - ticketChangeIndicator
        - ticketTranType
        - tickets
        - flightLegs
        - typeIndicator
      properties:
        carrierCode:
          $ref: '#/components/schemas/AirlineCarrierCode'
        carrierName:
          $ref: '#/components/schemas/AirlineCarrierName'
        conjunctionTicketIndicator:
          $ref: '#/components/schemas/AirlineConjunctionTicketIndicator'
        documentType:
          $ref: '#/components/schemas/AirlineDocumentType'
        electronicTicketIndicator:
          $ref: '#/components/schemas/AirlineElectronicTicketIndicator'
        internetIndicator:
          $ref: '#/components/schemas/AirlineInternetIndicator'
        issueDate:
          $ref: '#/components/schemas/AirlineIssueDate'
        numberOfCities:
          $ref: '#/components/schemas/AirlineNumberOfCities'
        numberOfCarriers:
          $ref: '#/components/schemas/AirlineNumberOfCarriers'
        numberOfPassengers:
          $ref: '#/components/schemas/AirlineNumberOfPassengers'
        passengerArrivalDate:
          $ref: '#/components/schemas/AirlinePassengerArrivalDate'
        passengerDepartureDate:
          $ref: '#/components/schemas/AirlinePassengerDepartureDate'
        passengerNameRecord:
          $ref: '#/components/schemas/AirlinePassengerNameRecord'
        restrictedTicketIndicator:
          $ref: '#/components/schemas/AirlineRestrictedTicketIndicator'
        ticketChangeIndicator:
          $ref: '#/components/schemas/AirlineTicketChangeIndicator'
        ticketTranType:
          $ref: '#/components/schemas/AirlineTicketTranType'
        typeIndicator:
          $ref: '#/components/schemas/AirlineTypeIndicator'
        tickets:
          $ref: '#/components/schemas/AirlineTicketsArray'
        flightLegs:
          $ref: '#/components/schemas/AirlineFlightLegsArray'
        ancillaryServices:
          $ref: '#/components/schemas/AirlineAncillaryServicesArray'
        travelAgencyCode:
          $ref: '#/components/schemas/AirlineTravelAgencyCode'
        travelAgencyName:
          $ref: '#/components/schemas/AirlineTravelAgencyName'
        exchangeTicketNumber:
          $ref: '#/components/schemas/AirlineExchangeTicketNumber'
    CardOnFileType:
      type: string
      enum:
        - S01
        - S02
        - U01
        - U02
        - U03
        - U04
        - U05
        - U06
        - U07
        - U08
        - U09
      example: S01
      description: >
        This field specifies the type of the card-on-file transaction.


        Below is a table showing the valid values for use cases where the
        cardholder is entering their card data to store on file.


        | Value  | Initiator  | Recurring | 3D Secure |
        Description                                                                                                                                                                                                                                                                                                                                                    
        |

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

        | S01    | Cardholder | No        | Yes       | Used when the initial
        transaction/card verification request is not for a recurring
        payment.                                                                                                                                                                                                                                                                                       
        |

        | S02    | Cardholder | Yes       | Yes       | Used when the initial
        transaction/card verification request is for a recurring payment.
        Requires sending `cardOnFile.recurringFrequency` and
        `cardOnFile.recurringExpiry`                                                                                                                                                                                             
        |


        Below is a table showing the valid values for uses cases where you
        already have a card on file and are using that existing card to process
        a transaction.


        | Value  | Initiator  | Recurring | 3D Secure |
        Description                                                                                                                                                                                                                                                                                                                                                    
        |

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

        | U01    | Cardholder | No        | Yes       | Unscheduled transaction
        using the card on file initiated by the
        cardholder                                                                                                                                                                                                                                                                                     
        |

        | U02    | Merchant   | No        | No        | Unscheduled transaction
        using the card on file initiated by the
        merchant                                                                                                                                                                                                                                                                                       
        |

        | U03    | Merchant   | Yes       | No        | Merchant initiated
        recurring payment using the card on
        file                                                                                                                                                                                                                                                                                                    
        |

        | U04    | Merchant   | No        | No        | Identifies a transaction
        as a Reauthorization COF
        transaction.                                                                                                                                                                                                                                                                                                 
        |

        | U05    | Merchant   | No        | No        | Identifies a transaction
        as a Resubmission COF transaction. Only certain merchant categories are
        able to send a resubmission, and it can only be done if the original
        authorization attempt was declined due to insufficient
        funds.                                                                                                                            
        |

        | U06    | Merchant   | No        | No        | Identifies a transaction
        as an Estimated Authorization COF
        transaction.                                                                                                                                                                                                                                                                                        
        |

        | U07    | Merchant   | No        | No        | Identifies a transaction
        as a Delayed Charges COF transaction. For example, a hotel might charge
        a customer for room damages after the guest has already checked
        out.                                                                                                                                                                                          
        |

        | U08    | Merchant   | No        | No        | Identifies a transaction
        as an Incremental COF transaction. For example, a hotel which authorized
        a customer’s card for one night at check-in might increase the
        authorization amount to cover two nights when the customer decides to
        extend their stay. Shift4 automatically detects this scenario and sends
        the appropriate value to the processor. |

        | U09    | Merchant   | No        | No        | Identifies a transaction
        as a No Show COF transaction. For example, a hotel might charge a
        customer who does not show up for a booked
        stay.                                                                                                                                                                                                                    
        |


        See the [Card On File
        Transactions](/guides/advanced-concepts/card-on-file-transactions)
        section for additional details.
    CardOnFileRecurringExpiry:
      type: string
      example: '20250401'
      minLength: 8
      maxLength: 8
      description: >
        Date after which no further authorizations shall be performed. This
        field is limited to 8 characters, and the accepted format is YYYYMMDD.


        **Conditional: This field is required if it's the first recurring
        transaction (`cardOnFile.type = S02`). This field is not needed if the
        transaction is not recurring or if the transaction is a subsequent
        recurring transaction.**
    CardOnFileRecurringFrequency:
      type: string
      example: '15'
      minLength: 1
      maxLength: 4
      description: >
        Indicates the minimum number of days between authorizations.


        **Conditional: 'This field is required if it's the first recurring
        transaction (`cardOnFile.type = S02`). This field is not needed if the
        transaction is not recurring or if the transaction is a subsequent
        recurring transaction.**
    CardOnFileTransactionId:
      type: string
      maxLength: 15
      example: Z62537846172646
      description: >
        This field is returned in the initial COF response, and ties subsequent
        COF transactions to the original authorization.


        For example, if a merchant runs a Sale on a card for the first time,
        they will receive a transactionId back in the response.  A month later,
        when the merchant wants to perform an additional Sale with the card on
        file, they would send a Sale request including the transactionId they
        received from the first sale.


        **Conditional: Must be sent in subsequent COF requests if you are not
        processing with a Global Token Vault token. If using Global Token Vault
        tokens then this field is not required**
    CardOnFileTransactionLinkId:
      type: string
      maxLength: 22
      example: Z871868461726461879548
      description: >
        A unique identifier assigned to each transaction to link related events
        throughout the transaction lifecycle. This field is supported for
        Mastercard brand only.


        For example, if a merchant runs a Sale on a card for the first time,
        they will receive a transactionLinkId back in the response.  A month
        later, when the merchant wants to perform an additional Sale with the
        card on file, they would send a Sale request including the
        transactionLinkId they received from the first sale.


        **Conditional: Must be sent in subsequent COF requests if you are not
        processing with a Global Token Vault token. If using Global Token Vault
        tokens then this field is not required**
    CardOnFile:
      type: object
      description: >
        **Conditional: Send this object when the transaction being performed is
        using a card on file or when the request will result in storing a card
        on file.**


        See the [Card On File
        Transactions](/guides/advanced-concepts/card-on-file-transactions)
        section for more information.
      properties:
        type:
          $ref: '#/components/schemas/CardOnFileType'
        recurringExpiry:
          $ref: '#/components/schemas/CardOnFileRecurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/CardOnFileRecurringFrequency'
        transactionId:
          $ref: '#/components/schemas/CardOnFileTransactionId'
        transactionLinkId:
          $ref: '#/components/schemas/CardOnFileTransactionLinkId'
    HotelEstimatedDays:
      type: integer
      maxLength: 2
      example: 5
      description: >
        Used to communicate the estimated number of days of a guest’s stay. This
        value is included in an
        [Authorization](/apis/payments-platform-rest/openapi/transactions/transactionsauthorization)
        request for a consumer’s hotel stay.
    HotelCheckIn:
      type: object
      description: |
        **Conditional: Utilize this object for Hotel transactions**
      properties:
        estimatedDays:
          $ref: '#/components/schemas/HotelEstimatedDays'
    PurchaseCardCustomerReference:
      type: string
      maxLength: 25
      example: D019D09309F2
      description: >
        A unique value used to identify the consumer or transaction. If a
        merchant has a significant amount of revenue from purchasing card
        customers, the interface would use this field to collect the consumer’s
        purchase order or employee identification number. In lodging
        transactions, this may be unique transaction details, such as a
        reservation code or third-party booking source.  This field is part of
        Level 2 card data.
    PurchaseCardDestinationPostalCode:
      type: string
      maxLength: 9
      example: '94719'
      description: >
        When items are shipped, the ZIP/postal code to which merchandise will be
        shipped; otherwise, the ZIP/postal code where the goods or services are
        rendered.  This field is part of Level 2 card data.
    PurchaseCardProductDescriptors:
      type: array
      items:
        type: string
      maxLength: 40
      example:
        - Hamburger
        - Fries
        - Soda
        - Cookie
      description: >
        A text description of the items purchased or services sold. This can be
        a generic text description of what the merchant sells (such as
        “Groceries”) or specific transaction data (such as the name of the item
        sold). At least one product descriptor field is required in a sale or
        authorization request.


        Note: The productDescriptors array is limited to 4 elements. Each
        element can contain a maximum of 40 characters.
    PurchaseCard:
      type: object
      required:
        - customerReference
        - destinationPostalCode
        - productDescriptors
      properties:
        customerReference:
          $ref: '#/components/schemas/PurchaseCardCustomerReference'
        destinationPostalCode:
          $ref: '#/components/schemas/PurchaseCardDestinationPostalCode'
        productDescriptors:
          $ref: '#/components/schemas/PurchaseCardProductDescriptors'
    TransactionVendorReference:
      type: string
      maxLength: 50
      example: 12382-01
      description: >
        Optional field for information that can be searched in the merchant
        portal.
    TransactionAuthType:
      type: string
      maxLength: 2
      enum:
        - '1'
        - '2'
      example: '2'
      description: >
        Specifies whether or not the authorization amount can be modified post
        authorization. Specifying the transaction as a 'Final Authorization' can
        result in lower transaction rates, however the transaction amount can
        not be incremented or decremented. It must be captured for the exact
        amount that it was authorized.


        If this field is not included in the request the transaction will be
        processed as a 'Pre-Authorization'.


        Value| Description

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

        1    | Final Authorization

        2    | Pre-Authorization
    TransactionSource:
      type: string
      minLength: 1
      maxLength: 2
      example: '6'
      enum:
        - '6'
      description: >
        **Conditional: Must be sent when processing transactions on an
        unattended device.**


        Transaction source type. 


        Value  | Description       

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

        6      | Unattended Cardholder Activated Terminal (UCAT)
    TransactionOriginalDate:
      type: string
      format: ISO 8601
      example: '2021-04-15T09:18:23.283-07:00'
      description: >
        The date and time of the original transaction request in ISO 8601 format
        including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).


        Must be an exact match for the value sent in the original transaction
        request.
    DeviceTerminalIdComEng:
      type: string
      maxLength: 32
      example: '1742'
      description: >
        This field is optional and is for backwards compatibility with existing
        vendors that are used to processing via UTG controlled devices.


        Since Commerce Engine is running directly on the payment device it does
        not require a `device.terminalId` to be specified. 
    ReceiptColumns:
      type: integer
      example: 40
      maxLength: 2
      description: >
        Send this field if you want Shift4 to format the receipt text instead of
        returning individual fields. The value sent will correlate to the column
        width of the formatted receipt that we return. (This also allows the
        receipt text to wrap to fit the paper size of the printed receipt.) See
        the [Printing Receipts](/guides/core-concepts/printing-receipts) section
        of this document for more information on formatted receipts.
    StatementSuffix:
      type: string
      maxLength: 15
      example: KDNYZUHQ1
      description: >
        Custom description that will be appended to the merchant name on the
        customer's statement. For most card brands, the merchant DBA name can be
        a maximum of 25 characters. Sending this value will cause the merchant
        name to be truncated to 9 characters. Shift4 will add an asterisk
        between the merchant name and the `statementSuffix` value.


        For example, for a merchant named `Joe's Warehouse Emporium` that
        processes a transaction with `statementSuffix` value of `KDNYZUHQ1`, the
        merchant statement will show as `Joe's War*KDNYZUHQ1`.


        **Note: The value that displays on customer statements from card issuers
        is beyond Shift4's control. We will submit the transaction data as
        described above, however issuers may modify or truncate that data as
        they see fit. To best accommodate different issuer limitations, we will
        truncate the merchant name to the minimum possible value (9 characters)
        in order to attempt to leave the most room for the statementSuffix to
        populate on issuer statements.**
    CurrencyCode:
      type: string
      format: ISO 4217 3 Character Alphabetic Code
      example: USD
      description: >
        Transaction currency code. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.


        **Note: This is currently supported when processing for a merchant
        outside of the US and Canada. If processing for a US or Canadian
        merchant then this field will be ignored and the transaction will
        process in the merchant's configured currency.**
    CustomerAddressLine1:
      type: string
      maxLength: 30
      example: 65 Easy St
      description: >
        Cardholder’s street address exactly as it appears on their billing
        statement. This field is used in AVS.
    CustomerFirstName:
      type: string
      maxLength: 30
      example: John
      description: >
        Specifies a consumer’s first name. This field is used in AVS. If the
        interface sends this field, the value specified by the interface will be
        returned in the response, unless the API Option
        [USECARDNAME](/guides/appendices/api-options#usecardname) is included in
        the request and a Commerce Engine or UTG-controlled PIN pad is in use.
        If the interface does not send the `customer` object, the consumer's
        name will be returned in the `customer` object if the name is present in
        the card's EMV or track data.
    CustomerMiddleName:
      type: string
      maxLength: 30
      example: Andrew
      description: |
        Specifies a consumer’s middle name.
    CustomerLastName:
      type: string
      maxLength: 30
      example: Smith
      description: >
        Specifies a consumer’s last name. This field is used in AVS. If the
        interface sends this field, the value specified by the interface will be
        returned in the response, unless the API Option
        [USECARDNAME](/guides/appendices/api-options#usecardname) is included in
        the request and a Commerce Engine or UTG-controlled PIN pad is in use.
        If the interface does not send the `customer` object, the consumer's
        name will be returned in the `customer` object if the name is present in
        the card's EMV or track data.
    CustomerPostalCode:
      type: string
      minLength: 1
      maxLength: 9
      example: '65144'
      description: >
        Cardholder’s ZIP/postal code from their billing statement. This field is
        used in AVS. Do not include special characters.


        **Note: This field only allows alphanumeric characters (a-z, A-Z, 0-9).
        Special characters including - are not allowed. If you are sending in
        zip+4 you must not include the dash so 89134-1234 would be sent as
        891341234**
    CustomerEmailAddress:
      type: string
      maxLength: 80
      example: john.smith@email.com
      description: |
        Customer email address.
    CustomerIpAddress:
      type: string
      maxLength: 20
      example: 63.57.84.101
      description: >
        Public source IP Address where the request originates, not the IP
        Address of the web server.
    Customer:
      type: object
      properties:
        addressLine1:
          $ref: '#/components/schemas/CustomerAddressLine1'
        firstName:
          $ref: '#/components/schemas/CustomerFirstName'
        middleName:
          $ref: '#/components/schemas/CustomerMiddleName'
        lastName:
          $ref: '#/components/schemas/CustomerLastName'
        postalCode:
          $ref: '#/components/schemas/CustomerPostalCode'
        emailAddress:
          $ref: '#/components/schemas/CustomerEmailAddress'
        ipAddress:
          $ref: '#/components/schemas/CustomerIpAddress'
    CardPresent:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        **Conditional: Send in the initial authorization/sale request**


        Indicates whether a card was present (‘Y’) or not (‘N’) at the time a
        transaction took place. This should be set appropriately in the initial
        authorization/sale request.  In subsequent requests, this field should
        be left blank or should not be sent.


        **Note:** Subsequent request here does not apply to the secondary
        request for card on file type transactions or reuse of the same card. An
        example of a subsequent request would be a capture after an
        authorization. You would not include `card.present` in the capture,
        which is the subsequent request. Another example is when performing an
        incremental authorization where you perform an authorization, followed
        by an incremental authorization then a capture. The second authorization
        (incremental) and the capture are the subsequent requests where you
        would not include `card.present`.
    CardType:
      type: string
      enum:
        - CC
        - DB
        - GC
        - HF
        - PL
        - YC
      example: VS
      description: >
        An abbreviation used to specify the type of card that will be used when
        processing a transaction.  If an interface sends a value that is not
        listed here, that value will be ignored.


        Value| Description

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

        CC   | When using a UTG-controlled device, this value will force a card
        to process as credit.

        DB   | When using a UTG-controlled device, this value will force a card
        to process as debit.  When using a non-UTG-controlled PIN pad, this
        value must be sent when processing a debit transaction.

        GC   | Gift Card

        HF   | HSA/FSA Card

        PL   | Private Label

        YC   | IT’S YOUR CARD
    ApiOptions:
      type: array
      items:
        type: string
      example:
        - RETURNEXPDATE
        - ALLOWPARTIALAUTH
      writeOnly: true
      description: >
        API Options modify the request being made. See the [API
        Options](/guides/appendices/api-options.md) section for more
        information.
    TipPresetType:
      type: string
      enum:
        - none
        - percent
        - amount
      example: percent
      description: >
        The tip option selected by the cardholder.


        | Value   |
        Description                                                                                                       
        |

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

        | none    | Skips the preset screen and goes direclty to the other tip
        amount screen.                                          |

        | percent | Display the preset screen showing preset percentages. Must
        include `tip.preset1`, `tip.preset2`, and `tip.preset3` |

        | amount  | Display the preset screen showing preset amounts. Must
        include `tip.preset1`, `tip.preset2`, and `tip.preset3`.    |
    TipPresetDefault:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
        - none
      example: '2'
      description: >
        The preset value that is selected by default. If not sent in the request
        it will default to to preset 2.


        | Value | Description           |

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

        | 1     | Preset 1 is selected  |

        | 2     | Preset 2 is selected  |

        | 3     | Preset 3 is selected  |

        | none  | No preset is selected |
    TipPreset1:
      type: number
      example: 15
      description: >
        The preset value for the preset number 1. If `presetType = percent` send
        the percentage value. If `presetType = amount` send the amount value.
    TipPreset2:
      type: number
      example: 20
      description: >
        The preset value for the preset number 2. If `presetType = percent` send
        the percentage value. If `presetType = amount` send the amount value.
    TipPreset3:
      type: number
      example: 25
      description: >
        The preset value for the preset number 3. If `presetType = percent` send
        the percentage value. If `presetType = amount` send the amount value.
    TipHeader:
      type: string
      maxLength: 100
      example: Would you like to add a tip?
      description: >
        Optional field to override the header text. If not sent, the header text
        will display `Add Tip` in the terminal's configured language.
    TipBasisNotification:
      type: boolean
      example: true
      description: >
        Send as `true` if you want to display the tip basis notification text on
        the tip screen. Must also include `amount.tipBasis` in the request if
        sending as `true`.


        Default: `false`
    TipDisplayNoTip:
      type: boolean
      example: true
      description: >
        Send as `true` if you want to display No Tip instead of Cash Tip on the
        tip entry screen.


        Default: `false`
    TipObject:
      type: object
      description: >
        The optional `tip` object allows integrators to control the display and
        behavior of the tip screen presented to customers during payment
        processing.
      required:
        - presetType
      properties:
        presetType:
          $ref: '#/components/schemas/TipPresetType'
        presetDefault:
          $ref: '#/components/schemas/TipPresetDefault'
        preset1:
          $ref: '#/components/schemas/TipPreset1'
        preset2:
          $ref: '#/components/schemas/TipPreset2'
        preset3:
          $ref: '#/components/schemas/TipPreset3'
        headerText:
          $ref: '#/components/schemas/TipHeader'
        basisNotification:
          $ref: '#/components/schemas/TipBasisNotification'
        displayNoTip:
          $ref: '#/components/schemas/TipDisplayNoTip'
    UILanguageRequest:
      type: string
      example: en
      description: >
        ISO 639-1 2-letter language code specifying the UI display language for
        the transaction (e.g. "en", "fr", "de"). When provided, overrides the
        device's configured default language for the duration of the session.
        Value persists across transactions until a new value is passed. Send
        default to reset the device back to its default language.
    UIMode:
      type: string
      enum:
        - light
        - dark
      example: dark
      description: >
        Set the UI to light mode by sending `light` or dark mode by sending
        `dark`
    UISuppressFinalResult:
      type: boolean
      example: 'true'
      description: >
        When `true`, the terminal suppresses the final transaction result
        screen.
    SafFloorLimitCredit:
      type: number
      maxLength: 14
      example: 250.25
      description: >
        Sets the offline floor limit for the transaction. If lower than the
        configured credit floor limit, it overrides the limit. If higher than or
        equal to the configured limit, it's ignored.
    SafFloorLimit:
      type: object
      properties:
        credit:
          $ref: '#/components/schemas/SafFloorLimitCredit'
    transactions_authorization_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    DeviceCloud:
      type: boolean
      example: true
      description: >
        Indicates the transaction will be processed via the Commerce Engine
        solution for cloud based POS/PMS systems. Value must be sent as `true`
        in order to route the request to the payment device at the merchant
        location.
    DeviceManufacturer:
      type: string
      enum:
        - Ingenico
        - Innowi
        - PAX
        - Verifone
        - Castles
        - Miura
      example: PAX
      description: |
        Specifies the company which manufactured the device.
    DeviceSerialNumber:
      type: string
      maxLength: 64
      example: '1170301234'
      description: |
        Specifies the serial number of the device.
    DeviceCommerceEngineCloud:
      type: object
      required:
        - cloud
        - manufacturer
        - serialNumber
      properties:
        cloud:
          $ref: '#/components/schemas/DeviceCloud'
        manufacturer:
          $ref: '#/components/schemas/DeviceManufacturer'
        serialNumber:
          $ref: '#/components/schemas/DeviceSerialNumber'
    transactions_authorization_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2023-08-31T07:20:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    DeviceTerminalId:
      type: string
      maxLength: 32
      example: '1742'
      description: >
        To prompt a specific UTG-controlled PIN pad in a request, the API
        Terminal ID configured in UTG TuneUp must be specified in this field.
    DevicePromptPostalCode:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        When using a UTG-controlled PIN pad:


        Value|Description

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

        Y    | Force the PIN pad to prompt the consumer for a ZIP/Postal Code.

        N    | Do not force the PIN pad to prompt the consumer for a ZIP/Postal
        Code.


        **Note: Use only when you want to override MCE (Manual Card Entry)
        settings in UTG.**
    DevicePromptCardSecurityCode:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        When using a UTG-controlled PIN pad:


        Value|Description

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

        Y    | Force the PIN pad to prompt the consumer for a CSC.

        N    | Do not force the PIN pad to prompt the consumer for a CSC.


        **Note: Use only when you want to override MCE (Manual Card Entry)
        settings in UTG.**
    DevicePromptStreetNumber:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        When using a UTG-controlled PIN pad:


        Value|Description

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

        Y    | Force the PIN pad to prompt the consumer for the street number of
        their billing address.

        N    | Do not force the PIN pad to prompt the consumer for the street
        number of their billing address.


        **Note: Use only when you want to override MCE (Manual Card Entry)
        settings in UTG.**
    transactions_authorization_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          terminalId: '1742'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    AmountSurcharge:
      type: number
      maxLength: 14
      example: 5
      description: >
        **Conditional: Send in the request if a surcharge was applied to the
        transaction.**


        In a sale or authorization transaction, the `surcharge` field specifies
        a fee amount that a consumer is charged in addition to the transaction
        amount. The fee amount is also added into `amount.total`. For example,
        if the transaction request had `amount.total = 100` and the
        `surcharge.percentage` was 1.5% the transaction would include
        `amount.total = 101.50` and `amount.surcharge = 1.50`
    Amount:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with a $20 tip and $8 tax would be `128.00` in the `total` field,
        `20.00` in the `tip` field and `8.00` in the `tax` field.


        Note: For merchants that are configured to allow multiple currencies,
        the amount  fields can specify up to three decimal places. However, the
        number of decimal  places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
        - tax
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
        tax:
          $ref: '#/components/schemas/AmountTax'
        taxIndicator:
          $ref: '#/components/schemas/AmountTaxIndicator'
        cashback:
          $ref: '#/components/schemas/AmountCashback'
        iiasAmounts:
          $ref: '#/components/schemas/IIASAmountsArray'
        surcharge:
          $ref: '#/components/schemas/AmountSurcharge'
        tip:
          $ref: '#/components/schemas/AmountTip'
        checkTotal:
          $ref: '#/components/schemas/AmountCheckTotal'
    TransactionS4RiskIdRequest:
      type: string
      example: EC52377F-5A8E-4534-BE7A-CF779A35BE45
      description: >
        Unique transaction identification number generated by Shift4 to identify
        a specific risk transaction and a field that can be searched in LTM.



        **Conditional: must be sent if [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess) was
        completed prior to processing the transaction.**
    TransactionDeferredAuth:
      type: string
      minLength: 1
      maxLength: 1
      example: D
      enum:
        - D
      description: >
        **Conditional: Must be sent if the transaction is deferred**


        Specifies that a transaction is the result of a deferred authorization.
        For example, a transaction that was accepted while in an offline state
        and is being uploaded after coming back online.


        Value  | Description       

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

        D      | Transaction is a deferred authorization
    TransactionExemptionAction:
      type: string
      example: '02'
      enum:
        - '02'
      description: >
        Indicates the merchant preference regarding SCA exemption.


        Value  | Description       

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

        02     | Request an exemption as part of the payment request. 



        **Note:** If no value is provided, and you are using the 3DS Adviser
        module, the Shift4 Payment Gateway requests an exemption (if applicable)
        as part of the 3D secure process.
    TransactionExemptionReason:
      type: string
      example: '01'
      enum:
        - '01'
        - '02'
        - '04'
      description: >
        **Conditional: required when sending `transaction.exemptionAction =
        02`**


        Value  | Description       

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

        01     | Low value transaction (below 30 EUR or equivalent)

        02     | Low risk transaction (TRA)1

        04     | Secure Corporate Cards 3
    CardExpirationDate:
      type: integer
      minLength: 3
      maxLength: 4
      format: MMYY
      example: 1230
      description: >
        **Conditional: Send only when card data is manually entered or when
        using a token. This field should not be specified when using an
        encrypted device.**


        Card expiration date in MMYY format. This value should only be populated
        in the initial sale/authorization request.
    CardTokenValue:
      description: >
        This field is used to specify a card token. Whenever CHD is sent in a
        request, a card token will be returned in this field. Your interface
        should be designed to store this card token for future use. The latest
        card token received should be used in any subsequent request that
        references the same card data.
      type: string
      maxLength: 16
      example: '8048471746471119'
    CardTokenRequired:
      type: object
      required:
        - value
      properties:
        value:
          $ref: '#/components/schemas/CardTokenValue'
    CardSecurityCodeIndicator:
      type: string
      minLength: 1
      maxLength: 1
      writeOnly: true
      example: '1'
      enum:
        - '0'
        - '1'
        - '2'
        - '9'
      description: |
        This field indicates the presence of a CSC.

        Value|Description
        -----|-----------
        0    | CSC not provided by user.
        1    | CSC provided.
        2    | CSC illegible.
        9    | CSC not on card, or card did not have a CSC.
    CardSecurityCodeResult:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: M
      enum:
        - M
        - 'N'
        - P
        - S
        - U
        - 'Y'
        - '1'
        - '2'
        - '3'
      description: >
        **Conditional: Returned if `card.securityCode.indicator` and
        `card.securityCode.value` are sent in the request.**


        The result of a CSC check. This field will be used by Shift4 to
        determine the value sent in the `card.securityCode.valid` field (based
        on the merchant’s list of accepted verification results as configured
        with Shift4).


        Value|Description

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

        M    | CSC matched.

        N    | CSC did not match.

        P    | CSC not processed.

        S    | CSC should have been present.

        U    | Issuer unable to process.

        Y    | CVC1 incorrect.

        1    | CSC Unavailable - processor / card type does not support this
        parameter.

        2    | An unrecognised result code was returned by the processor.

        3    | No result code was returned by the processor.
    CardSecurityCodeValid:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: 'Y'
      description: >
        **Conditional: Returned if `card.securityCode.indicator` and
        `card.securityCode.value` are sent in the request.**


        A simplified CSC check result based on the value in the
        `card.securityCode.result` field and the merchant’s accepted
        verification results as configured with Shift4. The value returned will
        be ‘Y’ if CSC verification passed or ‘N’ if CSC verification did not
        pass.
    CardSecurityCodeValue:
      type: string
      maxLength: 4
      writeOnly: true
      example: '333'
      description: >
        The three- or four-digit Card Security Code found on a payment card.
        This value should only be sent in an initial sale/authorization request.
        It should not be stored by the interface. When sending
        `card.securityCode.value`, `card.securityCode.indicator` must also be
        sent.
    CardSecurityCode:
      type: object
      description: >
        **Conditional: Send only when card data is manually entered. This object
        should not be specified when using an encrypted device. This object
        should be sent for initial card on file request but is not required for
        subsequent merchant initiated  charges.**
      required:
        - indicator
        - value
      properties:
        indicator:
          $ref: '#/components/schemas/CardSecurityCodeIndicator'
        result:
          $ref: '#/components/schemas/CardSecurityCodeResult'
        valid:
          $ref: '#/components/schemas/CardSecurityCodeValid'
        value:
          $ref: '#/components/schemas/CardSecurityCodeValue'
    RiskTranIdRequest:
      type: string
      example: DDWT0P3LG6LL
      description: >
        The risk tranId value received in the [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess)
        response.


        **Conditional: must be sent if [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess) was
        completed prior to processing the transaction.**
    RiskAssessmentRequest:
      type: string
      enum:
        - A
        - D
        - R
        - E
      example: A
      description: >
        The risk assessment value received in the [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess)
        response.


        **Conditional: must be sent if [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess)  was
        completed prior to processing the transaction.**
    RiskTransactionRequest:
      type: object
      description: >
        **Conditional: must be sent if [Risk
        Assessment](/apis/payments-platform-rest/openapi/risk/riskassess) was
        completed prior to processing the transaction.**
      properties:
        tranId:
          $ref: '#/components/schemas/RiskTranIdRequest'
        assessment:
          $ref: '#/components/schemas/RiskAssessmentRequest'
    ReportingDataCustomerInfoFirstName:
      type: string
      example: John
      maxLength: 30
      description: |
        Customer's first name
    ReportingDataCustomerInfoLastName:
      type: string
      example: Smith
      maxLength: 30
      description: |
        Customer's last name
    ReportingDataCustomerInfoDateOfBirth:
      type: string
      example: '01281980'
      minLength: 8
      maxLength: 8
      description: |
        Customer's date of birth in MMDDYYYY format
    ReportingDataCustomerInfoGender:
      type: string
      example: male
      maxLength: 20
      description: |
        Customer's gender
    ReportingDataCustomerInfoBaggage:
      type: string
      example: carryon
      maxLength: 20
      description: |
        Description for the customer's baggage
    ReportingDataCustomerInfoSeats:
      type: string
      example: 1A
      maxLength: 3
      description: |
        Customer's assigned seat
    ReportingDataCustomerInfoBoardingPriority:
      type: string
      example: '3'
      maxLength: 3
      description: |
        Customer's boarding priority
    ReportingDataCustomerInfo:
      type: object
      properties:
        firstName:
          $ref: '#/components/schemas/ReportingDataCustomerInfoFirstName'
        lastName:
          $ref: '#/components/schemas/ReportingDataCustomerInfoLastName'
        dateOfBirth:
          $ref: '#/components/schemas/ReportingDataCustomerInfoDateOfBirth'
        gender:
          $ref: '#/components/schemas/ReportingDataCustomerInfoGender'
        baggage:
          $ref: '#/components/schemas/ReportingDataCustomerInfoBaggage'
        seats:
          $ref: '#/components/schemas/ReportingDataCustomerInfoSeats'
        boardingPriority:
          $ref: '#/components/schemas/ReportingDataCustomerInfoBoardingPriority'
    ReportingDataCustomerInfoArray:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/ReportingDataCustomerInfo'
      example:
        - firstName: Jane
          lastName: Smith
          dateOfBirth: '12011983'
          gender: female
          baggage: checked
          seats: 1A
          boardingPriority: '1'
        - firstName: John
          lastName: Smith
          dateOfBirth: '01281980'
          gender: male
          baggage: carryon
          seats: 1B
          boardingPriority: '1'
      description: >
        Array of customer information objects. The maximum number of customer
        information objects that can be sent is 10.
    ReportingDataPspDataPspId:
      type: string
      maxLength: 64
      example: PSP Name XYZ
      description: |
        PSP identifier / label
    ReportingDataPspDataPspMid:
      type: string
      maxLength: 32
      example: '123456'
      description: |
        PSP merchant identifier (MID).
    ReportingDataPspDataPspTid:
      type: string
      maxLength: 32
      example: '12345678'
      description: |
        PSP terminal identifier (TID).
    ReportingDataPspDataPspTxnTraceNo:
      type: string
      maxLength: 32
      example: '000013'
      description: |
        PSP transaction trace number.
    ReportingDataPspDataPspTxnDate:
      type: string
      format: date
      example: '20260110'
      description: |
        PSP transaction date (YYYYMMDD).
    ReportingDataPspDataPspTxnTime:
      type: string
      format: 24-hour time
      example: '235959'
      description: |
        PSP transaction time (hhmmss)
    ReportingDataPspDataPspResponseCode:
      type: string
      maxLength: 16
      example: '00'
      description: |
        PSP host response code.
    ReportingDataPspDataPspResponseText:
      type: string
      maxLength: 256
      example: Payment Approved
      description: |
        PSP host response description/text.
    ReportingDataPspData:
      type: object
      description: >
        Payment service provider (PSP) metadata for third-party processed
        transactions.
      properties:
        pspId:
          $ref: '#/components/schemas/ReportingDataPspDataPspId'
        pspMid:
          $ref: '#/components/schemas/ReportingDataPspDataPspMid'
        pspTid:
          $ref: '#/components/schemas/ReportingDataPspDataPspTid'
        pspTxnTraceNo:
          $ref: '#/components/schemas/ReportingDataPspDataPspTxnTraceNo'
        pspTxnDate:
          $ref: '#/components/schemas/ReportingDataPspDataPspTxnDate'
        pspTxnTime:
          $ref: '#/components/schemas/ReportingDataPspDataPspTxnTime'
        pspResponseCode:
          $ref: '#/components/schemas/ReportingDataPspDataPspResponseCode'
        pspResponseText:
          $ref: '#/components/schemas/ReportingDataPspDataPspResponseText'
    ReportingData:
      type: object
      description: |
        Used to send non-payment related data for reporting purposes.
      properties:
        customerInfo:
          $ref: '#/components/schemas/ReportingDataCustomerInfoArray'
        pspData:
          $ref: '#/components/schemas/ReportingDataPspData'
    mPOSType:
      type: string
      enum:
        - '00'
        - '01'
        - '02'
        - '03'
      example: '01'
      description: >
        mPOS (mobile POS) device type indicator


        Value| Description

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

        00   | mPOS Accessory/dongle with contact and contactless interfaces,
        with or without PIN pad.

        01   | Mobile device based contactless only mPOS without PIN support.

        02   | mPOS Accessory/dongle with contact and contactless interfaces and
        PIN on Glass support 

        03   | Mobile device based contactless only mPOS with PIN on Glass
        support.
    mPOS:
      type: object
      description: >
        **Conditional: Send in the request if transaction is coming from an
        mPOS**
      properties:
        type:
          $ref: '#/components/schemas/mPOSType'
    DCCRateTimeStamp:
      type: string
      format: ISO 8601
      example: '2024-07-09T13:34:25.049-07:00'
      description: >
        The date and time of the DDC rate lookup in ISO 8601 format including
        the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    DCCCurrencyCode:
      type: string
      format: ISO 4217 3 Character Alphabetic Code
      example: CAD
      description: >
        Cardholder's transaction currency code. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
    DCCForeignAmount:
      type: number
      maxLength: 14
      example: 180
      description: |
        Foreign Currency Amount
    DCCConversionRate:
      type: string
      maxLength: 20
      example: 1.35
      description: >
        Foreign Currency Exchange Rate. The rate at which one currency can be
        exchanged for another currency.
    DCCMarginPercentage:
      type: string
      maxLength: 10
      example: 9.99
      description: >
        This value is the foreign exchange markup percentage including the
        decimal. For example 9.99% will be returned as `9.99`
    DCCCurrencyMinorUnits:
      type: number
      example: 2
      description: >
        Foreign Currency Minor Unit. Indicates the number of digits after the
        decimal separator as specified by either MasterCard, VISA, or the ISO
        4217 standard.
    DCCTransactionID:
      type: string
      maxLength: 50
      example: 1A2820D2G334
      description: >
        A unique identifier returned in the ratelookup response to link with the
        initial authorization, Sale transaction types.
    DCCConversionIndicator:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - '0'
        - '1'
        - '2'
      example: '1'
      description: >
        Specifies whether or not the cardholder opted into dynamic currency
        conversion.


        Value | Description

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

        0     | Convertible but declined by cardholder (cardholder chose to pay
        in merchant currency)

        1     | Converted (cardholder opted to pay in their currency)

        2     | Nonconvertible (DCC cannot be used)
    DCCDiffOverECB:
      type: string
      maxLength: 5
      example: '0.35'
      description: >
        Difference of GB Reference Rate over ECB Reference Rate in percentage
        (%), if applicable including decimal. This field is applicable only for
        conversion between currencies of EU countries, e.g. EUR --> DKK or SEK
        --> CZK.


        This field will not be returned if the transaction is not in Scope of EU
        Regulation 2019/518.
    DCCMarginOverECB:
      type: string
      maxLength: 5
      example: '2.85'
      description: >
        Markup of offered exchange rate over ECB Reference Rate in percentage
        (%), if applicable. This field is applicable only for conversion between
        currencies of EU countries, e.g. EUR --> DKK or SEK --> CZK.


        This field will not be returned if the transaction is not in scope of EU
        Regulation 2019/518.
    DCCDisplayUnit:
      type: number
      example: 2
      description: >
        Display unit for currency. 


        It is the exponent of the base currency in an exchange rate pair e.g.
        for a JPY merchant converting to EUR, where `dcc.displayUnit` = 2 will
        show JPY in 100 (10^2) units: JPY 100 = EUR 0.7961
    DCCProvider:
      type: string
      enum:
        - WAY4
        - GLOBAL_BLUE
      example: GLOBAL_BLUE
      description: |
        DCC Provider
    DCCTransactionRequest:
      type: object
      description: >
        Object containing Dynamic Currency Conversion (DCC) information. Must
        contain all fields received in the [DCC Rate
        Lookup](/apis/payments-platform-rest/openapi/dcc/dccratelookup)
        response.


        **Conditional: must be included in the request if the cardholder was
        given the option to pay in their currency, even if they opted out.**
      properties:
        rateTimeStamp:
          $ref: '#/components/schemas/DCCRateTimeStamp'
        currencyCode:
          $ref: '#/components/schemas/DCCCurrencyCode'
        foreignAmount:
          $ref: '#/components/schemas/DCCForeignAmount'
        conversionRate:
          $ref: '#/components/schemas/DCCConversionRate'
        marginPercentage:
          $ref: '#/components/schemas/DCCMarginPercentage'
        currencyMinorUnits:
          $ref: '#/components/schemas/DCCCurrencyMinorUnits'
        transactionId:
          $ref: '#/components/schemas/DCCTransactionID'
        conversionIndicator:
          $ref: '#/components/schemas/DCCConversionIndicator'
        diffOverEcb:
          $ref: '#/components/schemas/DCCDiffOverECB'
        marginOverEcb:
          $ref: '#/components/schemas/DCCMarginOverECB'
        displayUnit:
          $ref: '#/components/schemas/DCCDisplayUnit'
        provider:
          $ref: '#/components/schemas/DCCProvider'
    SurchargePercentage:
      type: number
      example: 2
      maximum: 99.99
      description: |
        The surcharge percentage that can be applied to a transaction.
    SurchargeRequest:
      type: object
      description: >
        **Conditional: Must be sent in the request if a surcharge is applied to
        the transaction.**
      properties:
        percentage:
          $ref: '#/components/schemas/SurchargePercentage'
    transactions_authorization_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    CardTokenSerialNumber:
      description: >
        In requests that require the use of a shared card token that is held by
        another merchant account, such as in a TokenStore or TokenShare®, this
        field is used to specify the serial number for the account where the
        card token is stored.
      type: string
      maxLength: 10
      example: '266'
    CardTokenRequiredLegacy:
      type: object
      required:
        - value
      properties:
        value:
          $ref: '#/components/schemas/CardTokenValue'
        serialNumber:
          $ref: '#/components/schemas/CardTokenSerialNumber'
    transactions_authorization_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    P2PEData:
      type: string
      maxLength: 2048
      example: >-
        027101801F2D1E00939B%*432100******1119^VS/DUAL
        TRACK^2212******?*;432100******1119=2212******?*CECE3FCE7781142BEC8D0E267AE89F5D3C7E235BF1A70E637951E8D93003E5A2586C336CA4A3B31F6639B04005BB12A716D8BC4D3AB125C27AB11A9DDC02816569D42A20B036EE5E2C71CB70565FB43B000000000000000000000000000000000000000000000000000000000000000000000000000000003434345434363138343962994950010038200415953903
      description: |
        The full output of a P2PE keypad/magnetic swipe reader (MSR).
    P2PEFormatIDTech:
      type: string
      minLength: 2
      maxLength: 2
      enum:
        - '01'
        - '02'
      example: '01'
      description: |
        Classifies the type of payment device being used for P2PE.

        Value|Description
        -----|-----------
        01   | IDTech Enhanced Encryption format (Keyboard Mode)
        02   | IDTech Enhanced Encryption format (USB HID Mode)
    P2PEType0102IDTECH:
      type: object
      required:
        - data
        - format
      properties:
        data:
          $ref: '#/components/schemas/P2PEData'
        format:
          $ref: '#/components/schemas/P2PEFormatIDTech'
    transactions_authorization_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        apiOptions:
          - ALLOWPARTIALAUTH
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    AccountType:
      type: string
      example: '00'
      minLength: 2
      maxLength: 2
      description: >
        The type of financial institution account.


        **Conditional: Must be sent if processing Interac debit EMV contact
        transactions**


        | Value | Description  |

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

        | 00    | Chequing     |

        | 01    | Savings      |
    TransactionPinBlock:
      type: string
      maxLength: 16
      example: '1234567890123456'
      description: >
        Encrypted PIN data received from a POS-controlled PIN pad (not
        controlled by the UTG).
    TransactionPinKsn:
      type: string
      maxLength: 20
      example: FFFF4950010293927772
      description: >
        Key serial number (KSN) received from a POS-controlled PIN pad (not
        controlled by the UTG). This field is a hexadecimal field that should be
        padded with leading ‘F’s.
    TransactionPin:
      type: object
      writeOnly: true
      description: >
        **Conditional: Include in the request for PIN debit and EMV Online PIN
        transactions. This object does not apply to UTG-controlled devices.**
      properties:
        block:
          $ref: '#/components/schemas/TransactionPinBlock'
        ksn:
          $ref: '#/components/schemas/TransactionPinKsn'
    DeviceModel:
      type: string
      maxLength: 50
      example: A800
      description: |
        **Conditional: Required when using a non-UTG-controlled device.**

        Specifies the model of the device.
    DeviceCapabilityContactlessEMV:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports contactless EMV.  If this
        input method can be supported by the device, but the input method is
        currently disabled for all transactions on the device, then the value
        'N' should be sent.
    DeviceCapabilityContactlessMSR:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports contactless magstripe.  If
        this input method can be supported by the device, but the input method
        is currently disabled for all transactions on the device, then the value
        'N' should be sent.
    DeviceCapabilityEMV:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports EMV.  If this input method
        can be supported by the device, but the input method is currently
        disabled for all transactions on the device, then the value 'N' should
        be sent.
    DeviceCapabilityManualEntry:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports manual entry.  If this
        input method can be supported by the device, but the input method is
        currently disabled for all transactions on the device, then the value
        'N' should be sent.
    DeviceCapabilityMagstripe:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports magstripe.  If this input
        method can be supported by the device, but the input method is currently
        disabled for all transactions on the device, then the value 'N' should
        be sent.
    DeviceCapabilityPIN:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports PIN entry (for debit or
        EMV). If this input method can be supported by the device, but the input
        method is currently disabled for all transactions on the device, then
        the value 'N' should be sent.
    DeviceCapabilityQuickChip:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports quick chip.  If this input
        method can be supported by the device, but the input method is currently
        disabled for all transactions on the device, then the value 'N' should
        be sent.
    DeviceCapabilitySignature:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device supports signature capture.  If this
        input method can be supported by the device, but the input method is
        currently disabled for all transactions on the device, then the value
        'N' should be sent.
    DeviceCapability:
      type: object
      writeOnly: true
      description: |
        **Conditional: Required when using a non-UTG-controlled device.**
      properties:
        contactlessEMV:
          $ref: '#/components/schemas/DeviceCapabilityContactlessEMV'
        contactlessMSR:
          $ref: '#/components/schemas/DeviceCapabilityContactlessMSR'
        EMV:
          $ref: '#/components/schemas/DeviceCapabilityEMV'
        manualEntry:
          $ref: '#/components/schemas/DeviceCapabilityManualEntry'
        magstripe:
          $ref: '#/components/schemas/DeviceCapabilityMagstripe'
        PIN:
          $ref: '#/components/schemas/DeviceCapabilityPIN'
        quickChip:
          $ref: '#/components/schemas/DeviceCapabilityQuickChip'
        signature:
          $ref: '#/components/schemas/DeviceCapabilitySignature'
    P2PEFormatType05:
      type: string
      minLength: 2
      maxLength: 2
      enum:
        - '05'
      example: '05'
      description: >
        Classifies the type of payment device being used for P2PE.


        Value|Description

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

        05   | [Shift4 TDES DUKPT
        format](/guides/core-concepts/p2pe-format#tdes-dukpt---format-05)
    P2PEKSN:
      type: string
      maxLength: 20
      example: '6299495001100E200041'
      description: |
        The key serial number which was used to encrypt the P2PE data.
    P2PEType05TDESDUKPTEMV:
      type: object
      description: >
        See [P2PE Format 05 TDES
        DUKPT](/guides/core-concepts/p2pe-format#tdes-dukpt---format-05) for
        more information.
      required:
        - format
        - ksn
      properties:
        format:
          $ref: '#/components/schemas/P2PEFormatType05'
        ksn:
          $ref: '#/components/schemas/P2PEKSN'
    EMVEmptyCandidateList:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        When EMV is attempted but fallback occurs due to an empty candidate
        list, this field should be sent as 'Y' and `emv.fallback` should also be
        sent as 'Y'.  If this field is not sent, a value of 'N' is assumed.
    EMVTlvData:
      type: string
      writeOnly: true
      example: >-
        4F07A0000000041010500A4D61737465724361726457203CCEB572BE7DD0A38E62E6BD70E3DAACE9B46BD3BF65E188E7D8D68D2178DE1A5A10B1794BAC083B08F0A1444F189A5493255F201A546573742F4361726420303920202020202020202020202020205F24032512315F25031511015F2D02656E5F3401018407A0000000041010950508200000009B02C8009F02060000000004449F03060000000000009F34031E03009F3704C5BF918D9F390105
      description: >
        This field will contain all EMV tags in standard TLV format including
        the P2PE encrypted tags (5A and 57).  The P2PE encrypted tags (5A and
        57) will have the entire TLV string encrypted and the encrypted data
        will be in a TLV format using the same tag. For example, tag 5A would
        look like the following:

        - Encrypted: 5A103737DA95D8062F647A0FF747CC496570

        - Decrypted: 5A084761739001010010
    EMV:
      type: object
      writeOnly: true
      description: >
        **Conditional: Required when processing an EMV transaction without using
        a UTG.**
      required:
        - tlvData
      properties:
        emptyCandidateList:
          $ref: '#/components/schemas/EMVEmptyCandidateList'
        tlvData:
          $ref: '#/components/schemas/EMVTlvData'
    CardEntryMode:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - '1'
        - '2'
        - C
        - E
        - M
        - Q
        - R
      example: M
      description: >
        **Conditional: The Card Entry Mode should be sent in an initial request;
        in subsequent requests, it should be left blank or not sent. When using
        a Universal Transaction Gateway® (UTG®)-controlled PIN pad, this field
        should be left blank or not sent in a request; the UTG will capture the
        card entry mode and return it in the response. When P2PE data is being
        sent from a non-UTG controlled device, this field is not needed**


        The method used to capture a payment card in an authorization/sale
        request. 


        Value|Description

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

        1    | Track 1 Only or Dual Track (Track 1 & 2)

        2    | Track 2 Only

        C    | EMV Contactless via card or mobile wallet

        E    | EMV Chip

        M    | Manual Entry

        Q    | QR Code

        R    | Contactless MSD
    transactions_authorization_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMV'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    EMVFallback:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        When EMV is attempted but fallback occurs for any reason, this field
        should be sent as 'Y'.  If this field is not sent, a value of 'N' is
        assumed.
    EMVFallbackOnly:
      type: object
      description: |
        **Conditional: Required when processing an EMV fallback transaction.**
      properties:
        fallback:
          $ref: '#/components/schemas/EMVFallback'
    P2PEType05TDESDUKPTMSR:
      type: object
      description: >
        See [P2PE Format 05 TDES
        DUKPT](/guides/core-concepts/p2pe-format#tdes-dukpt---format-05) for
        more information.
      required:
        - data
        - format
        - ksn
      properties:
        data:
          $ref: '#/components/schemas/P2PEData'
        format:
          $ref: '#/components/schemas/P2PEFormatType05'
        ksn:
          $ref: '#/components/schemas/P2PEKSN'
    transactions_authorization_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    P2PEDataOnguardSDEEMV:
      type: string
      maxLength: 2048
      example: >-
        FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
      description: >
        EMV TLV Data for tags 5A and 57 encrypted with AES 256 DUKPT. Contains
        the following information, separated by colons:
          
        Value           | Description

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

        ksn             | The key serial number (24 byte hex)

        track indicator | `E` indicating EMV TLV Data

        length          | The length of the encrypted data

        encrypted data  | Encrypted TLV containing tags 57 and 5A


        Example:
        `FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9`
    P2PEFormatOnguardSDE:
      type: string
      minLength: 2
      maxLength: 2
      enum:
        - '03'
      example: '03'
      description: |
        Classifies the type of payment device being used for P2PE.

        Value|Description
        -----|-----------
        03   | Ingenico Onguard SDE Format
    P2PEType03OnguardSDEEMV:
      type: object
      description: >
        See [P2PE Format 03 Ingenico On-Guard
        SDE](/guides/core-concepts/p2pe-format#ingenico-on-guard-sde---format-03)
        for more information.
      required:
        - data
        - format
      properties:
        data:
          $ref: '#/components/schemas/P2PEDataOnguardSDEEMV'
        format:
          $ref: '#/components/schemas/P2PEFormatOnguardSDE'
    EMVTlvDataOnguardSDE:
      type: string
      writeOnly: true
      example: >-
        4F07A0000000041010500A4D6173746572436172645F201A546573742F4361726420303920202020202020202020202020205F24032512315F25031511015F2D02656E5F3401018407A0000000041010950508200000009B02C8009F02060000000004449F03060000000000009F34031E03009F3704C5BF918D9F390105
      description: >
        This field will contain all EMV tags in standard TLV format except tags
        5A and 57, which will be sent encrypted in the `p2pe.data` field.
    EMVOnguardSDE:
      type: object
      writeOnly: true
      description: >
        **Conditional: Required when processing an EMV transaction without using
        a UTG.**
      required:
        - tlvData
      properties:
        emptyCandidateList:
          $ref: '#/components/schemas/EMVEmptyCandidateList'
        tlvData:
          $ref: '#/components/schemas/EMVTlvDataOnguardSDE'
    transactions_authorization_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: 2023-124-13T09:18:23.283-07:00
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    P2PEDataOnguardSDEMSR:
      type: string
      maxLength: 2048
      example: >-
        FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
      description: >
        Track information encrypted with AES 256 DUKPT. Contains the following
        information, separated by colons:
          
        |Value           | Description

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

        |ksn             | The key serial number (24 byte hex)

        |track indicator | `1` = track 1 only<br />`2` = track 2 only<br />`3` =
        manual entry<br />`4` = dual track<br />

        |length          | The length of the encrypted data

        |encrypted data  | Encrypted track/manual entry data


        Dual Track Example:
        `FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270`


        Manual entry Example:
        `FFFF495A0000000200000006:3:0032:E394820DB97AF927B9B5E05F356750BBF5DFCCB3BC18B87E8FC3C9BC596229E7`
    P2PEType03OnguardSDEMSR:
      type: object
      description: >
        See [P2PE Format 03 Ingenico On-Guard
        SDE](/guides/core-concepts/p2pe-format#ingenico-on-guard-sde---format-03)
        for more information.
      required:
        - data
        - format
      properties:
        data:
          $ref: '#/components/schemas/P2PEDataOnguardSDEMSR'
        format:
          $ref: '#/components/schemas/P2PEFormatOnguardSDE'
    transactions_authorization_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: 2023-124-13T09:18:23.283-07:00
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    CardNumber:
      type: string
      maxLength: 32
      example: '4321000000001119'
      description: >
        The payment card number entered in an initial authorization/sale
        request. This field will always be masked when returned in a response.
    transactions_authorization_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - customer
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - entryMode
            - number
            - expirationDate
            - securityCode
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
            entryMode:
              type: string
              minLength: 1
              maxLength: 1
              enum:
                - M
              example: M
              description: >
                The method used to capture a payment card in an
                authorization/sale request. 


                Value|Description

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

                M    | Manual Entry
            present:
              $ref: '#/components/schemas/CardPresent'
        customer:
          type: object
          required:
            - postalCode
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
            emailAddress:
              $ref: '#/components/schemas/CustomerEmailAddress'
            ipAddress:
              $ref: '#/components/schemas/CustomerIpAddress'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
          securityCode:
            indicator: '1'
            value: '333'
          type: VS
        clerk:
          numericId: 1576
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    ExtendedCardData:
      type: string
      maxLength: 4096
      example: >-
        eyJ0aHJlZURTZWN1cmUiOnsiY3J5cHRvZ3JhbSIgOiAiRUhYRjhoZmpBaVhOQUtJQUFBQldYQUFERWhFUiIsInNlY3VyaXR5TGV2ZWxJbmRpY2F0b3IiIDogIjI0MSJ9LCJjYXJkQnJhbmRUb2tlbiI6eyJyZXF1ZXN0b3JJZCIgOiAiMDEyMzQ1Njc4OTAxIn19
      description: >
        Base64 encoded string received from the i4Go call. This is used to pass
        extended card information for processing 3D Secure, Apple Pay and Google
        Pay requests via i4Go.
    transactions_authorization_3dsecurei4Go:
      title: Wallet/3D Secure Using i4Go
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - extendedCardData
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        extendedCardData:
          $ref: '#/components/schemas/ExtendedCardData'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        extendedCardData: >-
          eyJjYXJkQnJhbmRUb2tlbiI6eyJyZXF1ZXN0b3JJZCI6IjA0MDAxMDAzMDI3MyJ9LCJ0aHJlZURTZWN1cmUiOnsicHJvZ3JhbVByb3RvY29sIjoxLCJlY29tbUluZGljYXRvciI6NywieGlkIjoiRkU4OTRBN0NDNzI3NDVCRTIyRThBRkMzNjE2OUM2NUI5QkIwMjIxM0NGMTFBNDAzMTI0MjBDNUQ0MDU0RDY5QyIsImNyeXB0b2dyYW0iOiJCRC91UWZVQU9mMythTVVDbHV0eE1BQUNBQUE9Iiwic2VjdXJpdHlMZXZlbEluZGljYXRvciI6MjQxLCJhdXRoZW50aWNhdGlvblNvdXJjZSI6MSwid2FsbGV0SUQiOjEwM319
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    ThreeDSecureCryptogram:
      type: string
      example: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
      maxLength: 80
      description: |
        Ecommerce Cryptogram information
    ThreeDSecureEcommIndicator:
      type: string
      enum:
        - '5'
        - '6'
        - '7'
      example: '5'
      maxLength: 1
      description: >
        E-commerce Indicator as provided by the application generating the
        cryptogram.


        Value| Description

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

        5    | Secure electronic commerce transaction

        6    | Authentication attempted, non-authenticated security transaction

        7    | Non-authenticated Security Transaction
    ThreeDSecureSecurityLevelIndicator:
      type: string
      example: '241'
      maxLength: 3
      description: >
        This field contains the electronic commerce indicators representing the
        security level and cardholder authentication associated with the
        transaction. This field must be present in all Auth Request messages for
        electronic commerce transactions.


        First 2 positions:


        Value| Description

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

        21   | Channel encryption; cardholder certificate not used (preferred
        value for Mastercard SecureCode, Identity Check, and all eCommerce)

        22   | Masterpass-generated transaction

        24   | Digital Secure Remote Payment (DSRP) with UCAF Data

        91   | No security protocol; cardholder certificate not used


        Third position:


        Value| Description

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

        0    | UCAF Data collection is not supported by the merchant; or the
        merchant supports SecureCode or Identity Check but has chosen not to
        undertake it on this transaction; or authentication failed and merchant
        desires to proceed with the transaction.

        1    | UCAF data collection is supported by the merchant and UCAF data
        must be present and contain an attempt AAV

        2    | UCAF data collection is supported by the merchant and UCAF data
        must be present and contain a fully authenticated AAV

        3    | UCAF data collection is supported by the merchant and UCAF
        (Mastercard assigned Static Accountholder Authentication Value) data
        must be present. Note that the UCAF Data is required for Static AAV
        transactions. This value identifies participation in one of the
        following programs: Maestro Recurring Payments Program, Mastercard
        Utility Payment Program, Maestro Static AAV for Masterpass

        4    | Merchant has chosen to share authentication data within
        authorization; UCAF data collection not supported
    ThreeDSecureProgramProtocol:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
        - '9'
      example: '2'
      maxLength: 1
      description: >
        Indicates the 3D Secure protocol version. 


        **Required when processing for merchants in the United States. For
        merchants outside of the United States use the `threeDSecure.version`
        field instead.**

         |Value| Description
         |-----|----------------------------|
         | 1   | EMV 3-D Secure Version 2.1 |
         | 2   | EMV 3-D Secure Version 2.2 |
         | 3   | EMV 3-D Secure Version 2.3 |
         | 4   | EMV 3-D Secure Version 2.4 |
         | 5   | EMV 3-D Secure Version 2.5 |
         | 6   | EMV 3-D Secure Version 2.6 |
         | 7   | EMV 3-D Secure Version 2.7 |
         | 8   | EMV 3-D Secure Version 2.8 |
         | 9   | EMV 3-D Secure Version 2.9 |
    ThreeDSecureVersion:
      type: string
      enum:
        - '2.0'
        - 2.1.0
        - 2.2.0
      example: '2'
      maxLength: 1
      description: >
        Indicates the 3D Secure protocol version. 


        **Required when processing for merchants outside of the United States.
        For merchants in the United States use the
        `threeDSecure.programProtocol` field instead.**
    ThreeDSecureDirectoryServerTranId:
      type: string
      example: 07e54000-2721-4df9-aa51-04fa0e079aa8
      maxLength: 36
      description: >
        The Directory Server Transaction ID is generated by the EMV 3DS
        Mastercard Directory Server during the authentication transaction and
        passed back to the merchant with the authentication results. This field
        allows the merchant to pass the Directory Server Transaction ID during
        authorization in order to link authentication and authorization data for
        Mastercard Identity Check.
    ThreeDSecureAuthenticationSource:
      type: string
      enum:
        - '2'
      writeOnly: true
      example: '2'
      minLength: 1
      maxLength: 1
      description: |
        Authentication Source for the cryptogram value.

        Value| Description
        -----|------------
        2    | ACS
    ThreeDSecureCAVVResult:
      type: string
      example: '2'
      maxLength: 1
      description: >
        This is a response field that contains 3–D Secure Electronic Commerce
        Transaction Response Code that contains the Visa Cardholder
        Authentication Verification Value (CAVV) or the American Express
        Verification Value (AEVV) results code.


        Value | Description

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

        Blank | CAVV not present or CAVV not verified, issuer has not selected
        CAVV verification option

        0     | CAVV could not be verified or CAVV data was not provided when
        expected

        1     | CAVV failed verification-cardholder authentication

        2     | CAVV passed verification-cardholder authentication

        3     | CAVV passed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 07 from the Issuer Attempts Server
        indicates that authentication was attempted. Issuer attempts CAVV key
        was used to generate the CAVV.

        4     | CAVV failed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 07 from the Issuer Attempts Server
        indicates authentication was attempted. Issuer attempts CAVV key was
        used to generate the CAVV.

        5     | Reserved for future use

        6     | Reserved for future use

        7     | CAVV failed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 07 from Visa Attempts Service
        indicates that an authentication attempt was performed. Visa attempts
        CAVV key was used to generate the CAVV. Note that Results Code value of
        7 is also valid for American Express SafeKey responses, including those
        for non-U.S. cards.

        8     | CAVV passed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 07 from Visa Attempts Service
        indicates that an authentication attempt was performed. Visa attempts
        CAVV key was used to generate the CAVV. Note that Results Code value of
        8 is also valid for American Express SafeKey responses, including those
        for non-U.S. cards.

        9     | CAVV failed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 08 from Visa Attempts Service
        indicates that an authentication attempt was performed when the Issuer
        ACS was not available. Visa attempts CAVV key was used to generate the
        CAVV. Note that Results Code value of 9 is also for American Express
        SafeKey responses, including those for non-U.S. cards.

        A     | CAVV passed verification-attempted authentication. A 3-D Secure
        Authentication Results Code value of 08 from Visa Attempts Service
        indicates that an authentication attempt was performed when the Issuer
        ACS was not available. Visa attempts CAVV key was used to generate the
        CAVV. Note that Results Code value of A is also for American Express
        SafeKey responses, including those for non-U.S. cards.

        B     | CAVV passed verification-attempted authentication, no liability
        shift. Only Visa generates this code; issuers do not.

        C     | CAVV was not verified-attempted authentication (for Visa use
        only). If 3-D Secure Authentication Results Code value is 07 in the CAVV
        and the issuer did not return a CAVV results code in the authorization
        response, or CAVV results code = 0 in the response message and the CAVV
        encryption keys do not exist in V.I.P., V.I.P. sets the value to C in
        CAVV results code.

        D     | CAVV was not verified-cardholder authentication (for Visa use
        only). If 3-D Secure Authentication Results Code value is 00 in the CAVV
        and the issuer did not return a CAVV results code in the authorization
        response, or CAVV results code = 0 in the response message and the CAVV
        encryption keys do not exist in V.I.P., V.I.P. sets the value to D in
        CAVV results code.

        U     | CAVV Unchecked [AX]
    ThreeDSecureAuthenticationValue:
      type: string
      writeOnly: true
      example: <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv>
      maxLength: 80
      description: >
        Used only if both CAVV/UCAF and TAVV present in the transactions token
        contains the Visa token authentication verification value (TAVV) to
        support 3-D Secure (3DS) validation for token-based card-on-file,
        e-commerce, and application-based e-commerce transactions. Visa will
        allow two separate cryptograms in the authorization; one for token
        validation (TAVV) and one for cardholder authentication (Cardholder
        Authentication Verification Value).
    ThreeDSecureTAVVResult:
      type: string
      example: '2'
      maxLength: 1
      description: |
        TAVVResult (Visa token authentication verification value).

        Value| Description
        -----|------------
        1    | TAVV cryptogram failed validation
        2    | TAVV cryptogram passed validation
    ThreeDSecureWalletID:
      type: string
      writeOnly: true
      example: '103'
      maxLength: 3
      description: >
        Provides information about transactions initiated through the Masterpass
        Online platform or through the Mastercard Digital Enablement Service
        (MDES) and identifies the Wallet Provider.


        Value| Description

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

        103  | Apple Pay

        216  | Google Pay

        217  | Samsung Pay

        327  | Merchant tokenization program
    ThreeDSecure:
      type: object
      required:
        - cryptogram
        - ecommIndicator
        - securityLevelIndicator
        - directoryServerTranId
        - authenticationSource
        - programProtocol
        - version
      properties:
        cryptogram:
          $ref: '#/components/schemas/ThreeDSecureCryptogram'
        ecommIndicator:
          $ref: '#/components/schemas/ThreeDSecureEcommIndicator'
        securityLevelIndicator:
          $ref: '#/components/schemas/ThreeDSecureSecurityLevelIndicator'
        programProtocol:
          $ref: '#/components/schemas/ThreeDSecureProgramProtocol'
        version:
          $ref: '#/components/schemas/ThreeDSecureVersion'
        directoryServerTranId:
          $ref: '#/components/schemas/ThreeDSecureDirectoryServerTranId'
        authenticationSource:
          $ref: '#/components/schemas/ThreeDSecureAuthenticationSource'
        cavvResult:
          $ref: '#/components/schemas/ThreeDSecureCAVVResult'
        authenticationValue:
          $ref: '#/components/schemas/ThreeDSecureAuthenticationValue'
        tavvResult:
          $ref: '#/components/schemas/ThreeDSecureTAVVResult'
        walletID:
          $ref: '#/components/schemas/ThreeDSecureWalletID'
    CardBrandTokenRequestorID:
      type: string
      writeOnly: true
      example: '12345678901'
      maxLength: 12
      description: >
        This field uniquely identifies the pairing of token requestor with the
        token domain. It is assigned by the token service provider and is unique
        within the token vault.


        For Apple Pay requests, this is mapped from the
        `token.paymentData.data.deviceManufacturerIdentifier` field
    CardBrandTokenAssuranceLevel:
      type: string
      readOnly: true
      example: '01'
      maxLength: 2
      description: >
        This is a response field defined by the token service provider. This
        Visa, Discover, or Mastercard value indicates the assigned confidence
        level of the token-to-PAN/cardholder binding.
    CardBrandTokenPANLast4:
      type: string
      readOnly: true
      example: '6810'
      maxLength: 4
      description: >
        This is a response field that contains 4 characters that represent the
        last 4 digits of the actual cardholder PAN.
    CardBrandTokenAcctRangeStatus:
      type: string
      readOnly: true
      example: 'N'
      maxLength: 1
      description: >
        This is a response field contains a one-character value that indicates
        the Visa regulatory status of the actual card number for which the token
        represents.


        Value| Description

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

        space| Blank/no value

        R    | Regulated

        N    | Non-Regulated
    CardBrandToken:
      type: object
      required:
        - requestorId
      properties:
        requestorId:
          $ref: '#/components/schemas/CardBrandTokenRequestorID'
        assuranceLevel:
          $ref: '#/components/schemas/CardBrandTokenAssuranceLevel'
        panLast4:
          $ref: '#/components/schemas/CardBrandTokenPANLast4'
        acctRangeStatus:
          $ref: '#/components/schemas/CardBrandTokenAcctRangeStatus'
    transactions_authorization_3dsecurecardnumber:
      title: 3D Secure Using Card Number
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_authorization_3dsecuretoken_gtv:
      title: 3D Secure Using GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_authorization_3dsecuretoken_legacy:
      title: 3D Secure Using Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    ThreeDSecureAuthenticationSourceWallet:
      type: string
      enum:
        - '1'
      writeOnly: true
      example: '1'
      minLength: 1
      maxLength: 1
      description: |
        Authentication Source for the cryptogram value.

        Value| Description
        -----|------------
        1    | inApp
    ThreeDSecureCryptogramWallet:
      type: string
      example: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
      maxLength: 80
      description: >
        Ecommerce Cryptogram information


        For Apple Pay transactions this is mapped from the 
        `token.paymentData.data.paymentData.onlinePaymentCryptogram` field.


        For Google Pay transactions this is mapped from the 
        `paymentMethodDetails.cryptogram` field.


        For Samsung Pay transactions this is mapped from the 
        `3DS.data.cryptogram` field.
    ThreeDSecureEcommIndicatorWallet:
      type: string
      enum:
        - '5'
        - '6'
        - '7'
      example: '5'
      maxLength: 1
      description: >
        E-commerce Indicator as provided by the application generating the
        cryptogram.


        Value| Description

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

        5    | Secure electronic commerce transaction

        6    | Authentication attempted, non-authenticated security transaction

        7    | Non-authenticated Security Transaction


        For Apple Pay transactions this is mapped from the 
        `token.paymentData.data.paymentData.eciIndicator` field.


        For Google Pay transactions this is mapped from the 
        `paymentMethodDetails.eciIndicator` field.


        For Samsung Pay transactions this is mapped from the 
        `3DS.data.eci_indicator` field.
    ThreeDSecureSecurityLevelIndicatorWallet:
      type: string
      writeOnly: true
      example: '241'
      maxLength: 3
      description: >
        This field contains the electronic commerce indicators representing the
        security level and cardholder authentication associated with the
        transaction. This field must be present in all Auth Request messages for
        electronic commerce transactions.


        For Apple Pay and Google Pay transactions this value should be sent as
        `241`


        First 2 positions:


        Value| Description

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

        24   | Digital Secure Remote Payment (DSRP) with UCAF Data


        Third position:


        Value| Description

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

        1    | UCAF data collection is supported by the merchant and UCAF data
        must be present and contain an attempt AAV
    ThreeDSecureXIDWallet:
      type: string
      example: hq0BA9EAAAGXIJcAGAAAABKU0+s=
      maxLength: 80
      description: >
        Unique tracking number set by the merchant and sent to the Issuer
        Authentication/Service in the Authentication Request message.


        For Apple Pay transactions this is mapped from the 
        `token.transactionIdentifier` field.


        For Google Pay transactions this is mapped from the  `messageId` field.


        For Samsung Pay transactions this is mapped from the  `3DS.data.utc`
        field.
    ThreeDSecureProgramProtocolWallet:
      type: string
      enum:
        - '1'
        - '2'
      writeOnly: true
      example: '2'
      maxLength: 1
      description: >
        Program Protocol must be provided by the merchant if they are
        participating in Mastercard 3D Secure and have previously authenticated
        using the Mastercard Identity Check or SecureCode program. It identifies
        the type of 3D-Secure program.


        Value| Description

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

        2    | EMV 3-D Secure [3DS 2.0]


        For Apple Pay and Google Pay transactions this should always be sent as
        `2`.
    ThreeDSecureWallet:
      type: object
      properties:
        authenticationSource:
          $ref: '#/components/schemas/ThreeDSecureAuthenticationSourceWallet'
        cryptogram:
          $ref: '#/components/schemas/ThreeDSecureCryptogramWallet'
        ecommIndicator:
          $ref: '#/components/schemas/ThreeDSecureEcommIndicatorWallet'
        securityLevelIndicator:
          $ref: '#/components/schemas/ThreeDSecureSecurityLevelIndicatorWallet'
        xid:
          $ref: '#/components/schemas/ThreeDSecureXIDWallet'
        programProtocol:
          $ref: '#/components/schemas/ThreeDSecureProgramProtocolWallet'
        walletID:
          $ref: '#/components/schemas/ThreeDSecureWalletID'
    transactions_authorization_applepay:
      title: Apple Pay
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecureWallet'
        cardBrandToken:
          type: object
          properties:
            requestorId:
              $ref: '#/components/schemas/CardBrandTokenRequestorID'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          authenticationSource: '1'
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          walletID: '103'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_authorization_googlepay:
      title: Google Pay
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecureWallet'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          authenticationSource: '1'
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          walletID: '216'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    AmountTotalIncremental:
      type: number
      maxLength: 14
      example: 160
      description: >
        The amount being charged for a particular transaction. If other amount
        fields are sent, they must be included in the total amount. Amount
        cannot be zero.


        When processing an incremental authorization the high balance amount
        must be sent.  For example, if the original authorization is $100 and
        the transaction is being incremented  by $60 then the total amount would
        be sent as $160.
    AmountIncremental:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with a $20 tip and $8 tax would be `128.00` in the `total` field,
        `20.00` in the `tip` field and `8.00` in the `tax` field.


        Note: For merchants that are configured to allow multiple currencies,
        the amount  fields can specify up to three decimal places. However, the
        number of decimal  places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
        - tax
      properties:
        total:
          $ref: '#/components/schemas/AmountTotalIncremental'
        tax:
          $ref: '#/components/schemas/AmountTax'
        taxIndicator:
          $ref: '#/components/schemas/AmountTaxIndicator'
        tip:
          $ref: '#/components/schemas/AmountTip'
        surcharge:
          $ref: '#/components/schemas/AmountSurcharge'
    TransactionInvoiceIncremental:
      type: string
      maxLength: 10
      example: '0510093358'
      description: >
        10-digit invoice number assigned by the interface to identify a
        transaction. An invoice number serves as a unique key that identifies a
        transaction within a batch in Shift4's Gateway. For incremental
        authorizations the invoice must match the invoice from the original
        authorization request.


        **Note: Although the invoice number is sent as a JSON string it is a
        numeric value. No alpha characters are allowed.**
    transactions_authorization_incremental:
      title: Incremental
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountIncremental'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceIncremental'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            authType:
              $ref: '#/components/schemas/TransactionAuthType'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        mPos:
          $ref: '#/components/schemas/mPOS'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
    CardExpirationDateResponse:
      type: integer
      minLength: 3
      maxLength: 4
      format: MMYY
      example: 1230
      description: >
        **Conditional: Requires API Option "RETURNEXPDATE".**


        Card expiration date in MMYY format. This value will only be populated
        if "RETURNEXPDATE" is included in the `apiOptions` array.        
    CardLevelResult:
      type: string
      readOnly: true
      example: 2C
      minLength: 2
      maxLength: 2
      description: >
        Classifies the type of card used in an authorization/sale request. This
        field is returned in a response if the data is provided by the
        processor. See [Card Level
        Results]/guides/appendices/card-level-results) for a complete list of
        values.
    CardMaskedNumber:
      type: string
      maxLength: 32
      example: XXXXXXXXXXXX1119
      description: |
        The card number field will always be masked when returned in a response.
    CardTypeResp:
      type: string
      enum:
        - AX
        - AP
        - BC
        - CI
        - DB
        - GC
        - JC
        - MC
        - NS
        - PL
        - SC
        - VS
        - WP
        - YC
      example: VS
      description: >
        An abbreviation used to specify the type of card that was used when
        processing a transaction.


        Value| Description

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

        AX   | American Express

        AP   | Alipay

        BC   | Backed Card       

        CI   | Citgo        

        DB   | Debit card

        GC   | Gift Card

        JC   | JCB

        MC   | Mastercard

        NS   | Discover/JCB/Novus

        PL   | Private Label

        SC   | Sears Canada

        VS   | Visa

        WP   | WeChat Pay

        YC   | IT’S YOUR CARD
    BalanceAmount:
      type: number
      readOnly: true
      maxLength: 14
      example: 24.33
      description: >
        The balance remaining on the card.  Depending on which processor is
        being used, the balance may be returned for a gift card, debit card, EBT
        card, or other stored value card.
    CardBalance:
      type: object
      readOnly: true
      properties:
        amount:
          $ref: '#/components/schemas/BalanceAmount'
    CardSecurityCodeResponse:
      type: object
      description: |
        **Conditional: Returned if card.securityCode was sent in the request.**
      properties:
        result:
          $ref: '#/components/schemas/CardSecurityCodeResult'
        valid:
          $ref: '#/components/schemas/CardSecurityCodeValid'
    CardTokenResponse:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/CardTokenValue'
    CardDebitType:
      type: string
      enum:
        - girocard
        - eftpos
        - Interac
        - Visa Interlink
        - Visa US Common Debit
        - Maestro Int'l
        - Maestro US Common Debit
        - Amex US Common Debit
        - Discover US Common Debit
        - DNA Debit
        - UnionPay
      example: girocard
      description: >
        Specifies the type of debit card that was used when processing a
        transaction.


        Only returned if `card.type` = `DB`
    CardBinResponseRETURNBIN:
      type: string
      readOnly: true
      maxLength: 8
      example: '541333'
      description: |
        **Conditional: Requires API Option "RETURNBIN".**

        The first 6 or 8 digits of the card.
    CustomerFirstNameResponse:
      type: string
      maxLength: 30
      example: John
      description: >
        Specifies a consumer’s first name. This field is returned whenever the
        customer name is supplied in the request or if the track/EMV data
        contains the cardholder name. 
    CustomerLastNameResponse:
      type: string
      maxLength: 30
      example: Smith
      description: >
        Specifies a consumer’s last name. This field is returned whenever the
        customer name is supplied in the request or if the track/EMV data
        contains the cardholder name. 
    ClerkResponse:
      type: object
      properties:
        numericId:
          $ref: '#/components/schemas/ClerkNumericId'
    DCCTransactionResponse:
      type: object
      description: >
        Object containing Dynamic Currency Conversion (DCC) information.


        **Conditional: Returned in the response if DCC was offered during the
        payment flow of a UTG/Commerce Engine controlled device or if the `dcc`
        object was included in the request.**
      required:
        - rateTimeStamp
        - currencyCode
        - foreignAmount
        - conversionRate
        - marginPercentage
        - currencyMinorUnits
        - transactionId
        - conversionIndicator
      properties:
        rateTimeStamp:
          $ref: '#/components/schemas/DCCRateTimeStamp'
        currencyCode:
          $ref: '#/components/schemas/DCCCurrencyCode'
        foreignAmount:
          $ref: '#/components/schemas/DCCForeignAmount'
        conversionRate:
          $ref: '#/components/schemas/DCCConversionRate'
        marginPercentage:
          $ref: '#/components/schemas/DCCMarginPercentage'
        currencyMinorUnits:
          $ref: '#/components/schemas/DCCCurrencyMinorUnits'
        transactionId:
          $ref: '#/components/schemas/DCCTransactionID'
        conversionIndicator:
          $ref: '#/components/schemas/DCCConversionIndicator'
        diffOverEcb:
          $ref: '#/components/schemas/DCCDiffOverECB'
        marginOverEcb:
          $ref: '#/components/schemas/DCCMarginOverECB'
        displayUnit:
          $ref: '#/components/schemas/DCCDisplayUnit'
        provider:
          $ref: '#/components/schemas/DCCProvider'
    DeviceTerminalIdRequired:
      type: string
      maxLength: 32
      example: '1742'
      description: >
        To prompt a specific UTG-controlled PIN pad in a request, the API
        Terminal ID configured in UTG TuneUp must be specified in this field.
    DeviceOnlyTIDResponse:
      type: object
      properties:
        terminalId:
          $ref: '#/components/schemas/DeviceTerminalIdRequired'
    EMVTlvDataResponse:
      type: string
      readOnly: true
      example: 910A0102030405060708090A
      description: |
        This field will contain the EMV response tags in standard TLV format.
    EMVResponse:
      type: object
      description: |
        Returned when processing a full EMV or EMV fallback transaction.
      properties:
        fallback:
          $ref: '#/components/schemas/EMVFallback'
        tlvData:
          $ref: '#/components/schemas/EMVTlvDataResponse'
    Receipt:
      type: object
      properties:
        key:
          type: string
          maxLength: 100
          example: ApplicationIdentifier
          description: >
            The identifier the interface vendor can use to programmatically
            determine where to print a specific value.
        printName:
          type: string
          maxLength: 100
          example: AID
          description: >
            The label that relates to the `printValue` field. When present in
            the response, this must be printed to the left of the `printValue`.
        printValue:
          type: string
          maxLength: 350
          example: AID
          description: >
            The value that relates to the `printName` field. This must be
            printed to the right of the `printName`.
    ReceiptArray:
      type: array
      items:
        $ref: '#/components/schemas/Receipt'
      example:
        - key: ApplicationIdentifier
          printName: AID
          printValue: A0000000031010
        - key: TerminalVerificationResults
          printName: TVR
          printValue: '8000'
        - key: IssuerApplicationData
          printName: IAD
          printValue: 06010A03A40002
        - key: TransactionStatusIndicator
          printName: TSI
          printValue: E800
        - key: AuthorizationResponseCode
          printName: ARC
          printValue: '00'
        - key: TransactionCurrencyCode
          printValue: USD$
        - key: ApplicationLabel
          printValue: CREDITO DE VISA
      description: |
        Array of receipt key/value pairs that should be printed on the receipt.
    MerchantMID:
      type: number
      maxLength: 10
      example: 15877
      description: |
        The merchant ID associated with the merchant account.
    MerchantName:
      type: string
      maxLength: 22
      example: Merchant XYZ
      description: |
        The merchant’s business name as configured with Shift4.
    MerchantResponse:
      type: object
      properties:
        mid:
          $ref: '#/components/schemas/MerchantMID'
        name:
          $ref: '#/components/schemas/MerchantName'
    SignatureData:
      type: string
      maxLength: 4194304
      example: >-
        iVBORw0KGgoAAAANSUhEUgAAA2kAAAEhCAYAAADlHOiOAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7EAAAOxAGVKw4bAACN0ElEQVR4Xu2dB5hU5dn3T97yJXnVqDTBWAABC2KhiFERUDQWLKioUWNAETQqRjT2CoioUbFFrNhBNEFFLIhSrIhiAaQEEI0NgdjzJvne99tvf7fc6zNnzu7OLjs7Z2b+v+s61+zOzsyeOeV57v/dnh9VVBIJIYQQQgghhEgF/7b2UQghhBBCCCFECpBIE0IIIYQQQogUIZEmhBBCCCGEEClCIk0IIYQQQgghUoREmhBCCCGEEEKkCHV3FEIIIYQQJc2//vWv6L//+7+jf/zjH9HXX38dbbDBBtF//ud/Rj/5yU9s+/d///e1rxQiHUikCSGEEEKIkuT//t//a8Ls008/jc4///xo9uzZ0f/7f/8v+tGPfhRtttlm0XHHHRcdf/zx0frrry+hJlKFRJoQQgghhCg5iJ4hzm699dbo6aefjpYvX27RNBdp//Ef/2ERtYsuuig68cQTTajxvBBpQCJNCCGEEEKUFAi0L7/8MjrppJOimTNnRn//+9+j//3f/43iZi9CrWnTptHEiROj7t27R//n//yftX8RorCocYgQQgghhCgZEGiffPJJNGjQoGj69OnRt99+G/3P//xPlkADnv/uu++i8ePHR//85z/XPitE4ZFIE0IIIYQQJQGi65tvvokuvPDCaMaMGRZBI72xJqhb++ijj+y9QqQFiTQhhBBCCFH0kM5I1Gz06NHRlClTchJoQITNNyHSgkSaEEIIIYQoahBjiDJqy+6++25LYcxFoMG//du/VW1CpAVdjUIIIYQQoqihnuzFF1+0KBrRNKJqIXRt9C0Orfd33nlnteAXqUIiTQghhBBCFC00Cvnqq6+iM88801ruU2MWQgfH9dZbL9p+++0TuzeyqPXPf/5zexQiLUikCSGEEEKIosTr0IYMGWIdHeMdGomOsf7Z2WefHQ0ePNgEWwiRNYRbly5dsv4mRCGRSBNCCCGEEEUHjT6oQxs3blw0a9YsW6g6hBqz//qv/4r69+8fDRgwIPrss8+y0h0RcZtttpltSncUaUIiTQghhBBCFB1Ezd56663olltuyerk6AKtZ8+e0RVXXBH95Cc/iZYtW5aVCkmKI1G0H//4x4n1akIUCok0IYQQQghRVLCm2ddffx2dddZZFiGLiy9SGHffffdozJgx0QYbbGDPLVmyJGstNMRbr169TKQJkSYk0oQQQgghRNFAxIwW+9dcc40Jr3gdGgJtww03jC644IJo0003tTRGFqtmC6NtPN+0adOoW7duahoiUodEmhBCCCGEKBq83f4999xjaY7hItSkOdLJcezYsdZWnwgZ0bNFixZZF8jwtYg5omjNmjVTPZpIHRJpQgghhBCiKCCtkTb7RNHi66G5QDvwwAOtFo2aNOrMEHUzZ87MiriR6ti7d+/opz/96dpnhEgPEmlCCCGEECL1eDdHBBoNQ4iMhRA1++Uvfxlde+21JtYQbbwHcfbmm29m1K3xN69HU6qjSCMSaUIIIYQQIvX84x//iObOnRs98sgj1m4/nrpIHdoZZ5wR/exnP6sSXqQ6Lly4MPrwww8zom78nWgbQg3BJkTa0FUphBBCCCFSDWKLLo6//e1vrWlIUprjfffdF+20004m2ByiaDNmzLDHUNQhzrp27aqujiK1SKQJIYQQQojUQkdG0hyJoH3yyScZtWXUnCG4evToYaLL69AAUUb0bc6cOVnvQZxRuxYKOiHShESaEEIIIYRILdSSvfzyy9F1111naY4hpC22a9fO6tRCgQZE20h1pB4tXB+N92y55ZZR8+bNo//4j/9Y+6wQ6UIiTQghhBBCpBLE1TfffGPt9lm8OhRbtM1ff/31o9NOO83WQ4tHxWgs8sEHH5iwC9dHI4rGe5TqKNKMRJoQQgghhEglpCveeuut0dSpU7O6OZLm+Otf/zo6/PDD7ec4pDiSIhmmOlK/RsStdevWEmki1UikCSGEEEKI1OFRNEQazULCaBhRs1atWkUDBgywaFp8MWreu2rVquj111/PaL1PemOXLl2ibbfdVgtYi1QjkSaEEEIIIVIFggxh9oc//MEWrQ7THL2b42WXXWb1aEl1ZUTdnnzyyaxURyJue+21V1b9mhBpQyJNCCGEEEKkCqJfr7zySvTAAw9kNQshTZFFq/fbb7/opz/9aZbYoqsj76H1PumSDq9DpKmroygGJNKEEEIIIURqoCsj0bM//elP9hhfhLply5bRKaecYtG0pIWoeT0NQ0h1DCNwvHe77bZTV0dRFEikCSGEEEKI1ECjDyJokyZNymgWQiSMyBkCLb5odQjvnz59emKq41FHHaWGIaIokEgTQgghhBCpwKNoCDRq0sIoGuKqffv20RFHHJGY5gie6kg9WryrY7NmzaJddtlFIk0UBRJpQgghhBCi4LjAQqC98847GV0ZEWQ0+7j55pst3bG6dEXSGxcsWBC99957Ge/3VEcWsVZXR1EMSKQJIUQZgPGDRxoDhkd+F0KINMH4tHTp0ujyyy+P/v73v1eNU97wgxTHDh061BgJo1GIpzqG4xzv79u3b7UROCHShkSaEEKUMAgyUobWrFkTvfvuu9Fzzz0XzZs3L/r666+zFoYVQohCgrC6//77bW20MApG5Ktt27bRJZdcUqPIov4sKdWR9xOFO+igg9TVURQNEmlCCFGiIMK++uqr6M4774wOOOAA21j4lcfTTz89+vjjjzMMGSGEKBSMV59++mn04IMPZrTNB6JgtNwnklZTFA1hR0fHFStWZHR1RJgRRUOoKdVRFAsSaUIIUYJgrGDwnHHGGZY6RH3H559/Hq1atcoeH3vssWjQoEH2mtBjLYQQjY3Xoo0YMSKr5T61Zy1atIiOPfbYWlMVEXeTJ0/OSHXk9byPKBpiT4hiQSJNCCFKDDzIpAuNGjUqeuKJJyy1ESHmRgspQaRAzpkzJ7r66qvNoBFCiELB+EQtGunY8cWnEVj9+vWLttpqqxrXNkPYUcdGPVqYys17WrdubV0daR4iRLEgkSaEECUEhgqe6CuvvDKaOHGiGS3hOkGOe64ff/xxi64lvUYIIfKNj0XXX3+9OY/CsQiB1aZNm2jIkCG1RtEQeg8//HC0evXqjEicpzry/qSFr4VIK7pahRCiRHBj55FHHonuvvvurLShOPwNj/PChQtrfJ0QQuQLxNWyZcuiV199NatGFmF12GGHWcv9mqJgjH04pObPn5+RGYCoI8WxW7duWhtNFB0SaUIIUSJg4Lz11lvR6NGjaxVoDsbNypUr7VEIIRoTdyzdfvvtVisbjlmIMmrRBg8eXGstGe/74IMPoilTpmQ0DOEzPNWxplRJIdKIRJoQQpQApAjhSb7sssvq1AyE9J927dopDUgI0eggqJYvXx5NmzYtq6MjUTTSHDfYYINaBRYOqhdeeMEEXyj0EHc0SKKro8Y4UWzoihVCiBKAtMWXX37Zujjm2lYfwwcjZtttt1VbaiFEo+JRNOpik6Jom2yySXTcccfVGkXjcxB4M2bMyBB6jGnNmjWLunfvrlRHUZRIpAkhRJHjxg7roRFNyyV10bum0aIfL3NNBflCCNHQIMref//96KGHHkqMog0bNixaf/31a3UgEY0j1ZFutfG10RBopDvKCSWKEYk0IYQocsLC+7D1dE3gWe7QoUN0+OGH1+qpFkKIhgZhRvSfmthQXBHhpxatT58+OY1NfA5LjcQ72fLeo446ygSfnFCiGJFIE0KIIgcj5YYbbrBoWi6t9PEwt2rVKrr22mstpUgF9UKIxoRxilb511xzjbXdD0FUsXA1Qq22CJhnEdB6P4zGUX+GSNPaaKKYkUgTQogihijaZ599Fs2bNy8rZSgJBBkpRCNHjow6d+6sKJoQotEh4j9p0qToww8/tLRHxBYb4oo6smOOOcbEWm3wOQsWLLC1HsNoHJkCvXv3ts9QwxBRrOjKFUKIIoYmIdSiUdtRWxQNY2W99daLTj/99OiAAw5QLZoQotFBjJGa+OyzzybWz/bs2TPnCD/jH2tChg4qxjTGNro6ygklihmJNCGEKFLwHLMeGu2rSflJMngcbxSy//77m0hDrMnDLIRobIj+E/mfO3dulpOIMWnAgAE5iSsicIg9ImlhR1vEXceOHW0jtVuIYkUztBBCFCmk+ngULWxfnYQ3CiHNkXRH1aEJIQqBN/pwxxJCjY3aMSL8jFO51JEh9p588knr7BhvGLLXXnspU0AUPRJpQghRhGCUUHBPR8faomh4kzfddFMTdDzKuyyEKAQ4k6gfmzx5ckb0CzH1s5/9LBo4cGC08cYb5ySuGPemT5+esewIkTgyBujqqLXRRLEjkSaEEEUIXuTZs2dHr7/+ekbBfBw80hg/Y8aMMQ+1DBchRKFAmD3//PNZjT4Yp9q0aRPttttuOUXREHtE5BBpjIUO76WjY/PmzZUtIIoeiTQhhChCMFAmTJiQtTZQCO2rqT0bMWKEFePjYVb6jxCiUDBu0S6fKFgIKYo0+iBFMZdaWT7n0UcftWyCeKpj37591TBElAQSaUIIUWTggf7888+tYL66xasRYxg8/fv3t9SfXI0fIYTIB0S8GLfmz5+fEf3CmUTka++9985JXJHa+NVXX0Xjxo2LvvnmG/udjfGtadOm1npfGQOiFNCMLYQQRQbCbMqUKVkF8yEYOzvvvLM1CiGaVtuisEIIkU+Ift14441ZNbQIKhp9INRyGadIdVy4cGG0ZMmSjM/hZ9Z+zGURbCGKAYk0IYQoIjBEMHJee+21ahuG0BikVatW0R133GH1aLnUeAghRL5AWJGayLiFWHOI+JOG/atf/coec4H3L1q0KCt1m0hartE4IYoBiTQhhCgiSHUkzXHGjBkZKUNOWIdGJ0el/QghCg1jlbfLD5cL8YYh22+/fU7OJJxSNB+599577TMRamyMe5tttlm03377qXutKBkk0oQQoojAQPG20/FUR/dKH3HEEbZoda6eaSGEyCdE/elGG4/+E/UaOnRozk2NcFKtWLHCxF7opOJzDj300Jzb9wtRDEikCSFEkYAoQ5wh0sI1hhw8yO3atYvOPfdci6apUYgQotAQOVu9erXV0SY1DOnUqVPOKYqMe0TkQrHnzqk+ffoo1VGUFJrBhRCiSMDAQaCR7hhfGw2DZ/3114+GDx8etWzZUnVoQohU4NF/hFWY6ohTiU6MW265ZU4OJXdSxRfCZj207bbbztZH09poopSQSBNCiCIgbBiCoRKmDLkn+fjjj4969Oghb7IQIhUwTtHog+hXUsMQujrWJdWRxftJdQydVIx3/jnKHhClhK5mIYQoAvBAU4vBQrDxtdHwSLdv3z469dRTtR6aECI1eA0Z0f94qiMRNCJpuUb9EXk0TOLRnVSMdYizgw46SE2SRMmhmVwIIVIOaT60r3722Wejb7/9NiNlCCOF+rPLLrtMaY5CiFThNWTUpIWNjhBUCLRcnUq8l0yCeD0u6Y1du3aNtthiC6U6ipJDIk0IIVIORsnLL78cXXfddRkpQ4Cxs++++0Z77LGH0hyFEKnBUx0RVkmpjnWJfhGFI4oWb+HPmEctWq4pk0IUExJpQgiRYkgXWrlyZXT11VdHX3/9dUYtBh5oPNGDBw9WmqMQIlUwViGq3nvvvYxxyxt9sNUl1THewp/xDpF21FFHKdVRlCSa0YUQIqVgjNAk5NFHH43efvvtrFo0jJ3u3bvbQrBawFUIkSY81TGsIQNv9IFjKZfoF6mOa9asiZ566qmMujYEHlG0Fi1aKNVRlCQSaUIIkVIwbubOnWtRtKSOjhg5rA2Uq7EjhBCNAWMVUS9v9OEwTiHSjjzyyJyjXzin5s+fH61atSojIkeK49FHH600b1GySKQJIUQKwTD55JNPoiFDhkTffPNNhnECeI47duxodR2Kogkh0gR1YwsXLrQtnupIV8dmzZrlHP1C5NHVFtHn8F4+g0wCjX/1gznmq6++ij7//PPob3/7mx3fsLmLKDwSaUIIkTIwcL788svoggsuMKEWdjNzPNWnefPmSvURQqQKxixq0cIaMvAoWq7RLwQeIuKFF17ISPdm/Ovbt68JNdr5i9xhfqFLMEsjDBw4MOrSpUvUs2fPaNasWYlzjSgcEmlCCJEiMGjwbo4ZMyZ64oknrPV+HG8YghdZBfNCiLSBsf/II49kGP2MW6QoUo+Wq0jj/RMmTMiK8vA5OKmU6pg7iDPmE5ZDGDt2rAkzlnX59NNPo6VLl0Znn312RrRSFB6JNCGESBEYJW+88UZ0ww03VBXch55owIvMGkMYO7l2RxNCiMaA6Bf1Y/EFrIn4+5pmuUS/GPcYA+fMmZNR18bnNG3atE4LYZcrHEPmFBx/77//fvTAAw+YOBsxYoQ1Y3Hxy3kieyOeVi8Ki0SaEEKkBK9DYwINjRsIhRreY6JoarsvhEgbjGMTJ06scjI5RP3rsqYZgoEW/oi0UDxQg0aqI5+j8S8bRBfCjCVbEMuvvPJKdOqpp0b7779/dO6555pYC+ucEb3rr79+tOuuuyozI2Xo6hZCiBTAhEmdwMUXXxy98847GQu2hmCUNGnSxLzIKpgXQqQNxBn1aGH0y7s6HnjggTmPWwiNyZMnZ6Q68jmIM8Y/pTp+77xjruBYMX8QHVu+fHk0derUaPjw4RY169+/fzRp0iSrQUO4uQOQaCbHkvnkzDPPjK699lr7XaSHH1We4Mw8GiGEEI2KF3Jff/31luaIlxOjJD48u6Gzzz77RPfcc0+00UYb5eSRFkKIxoCxDJGAOKDhh4sr0hJ/8Ytf2JqPpCrWNm7xPmqnaDLy6quvVgkLPqdTp062ZhpNQ8opksaxZcOhx8YxYSPauHjxYlvsm8jZyy+/bAIZ4UZUM4xCAscMoUz07JBDDomOP/74aMcdd7TMDDWhShcSaUIIUUAYginmpjj+vPPOM0+nT6rh8OxGzcYbbxyNGzcu2nfffeVJFkKkCsTB/fffb2l11Dg5CIKzzjrLNn6uDQTGY489Fp122mnWHt7Hwg022CAaNmxYzp9TLPD9EKaIsPgj8wGPHM+333676vGjjz6K3nrrLRNqXk+GyPL3xuFvpDOut956Vs987LHHRrvttpv9jviVwy99SKQJIUQBIZWH1CA8xky67jEGH5598mSSbdu2rbVKLjcvshAi/SAWzjnnHGtQEaY7Ej2j2+Puu++eU7MPGl1cfvnl0W233VbVcZBxkCVHZs6cGW211VZFEfVx8RUKr/BnhJX/TodFHkl35zkcdjznoozXhhtzhX9OaMqHYotjRNSMNEbOAYt/I9CIRhI541xoHkkvEmlCCFEg8BYjzKjT+PDDD7NqOJh8wwkXz7F7kfEoCyHKAwxyxApjBIY5hjUGNgY40RHqiwptbDNekW5HquOyZctsPyF0LiGywjEtCd5H/dQBBxxgTS4QJMD3JPKD2KOOqrHATPbNBRGP/jP7688B+xu+lhb3bIiuzz77zB5JaUeA8VpEmb+HR97n4otHf84/PwneC1wDHCc2rg+EGQ7Abt26VTVtIQODc1LbeRCFRyJNCCEKAEYXnRxJ55k+fXr097//fe1fvi/oZnJmEg0nX6Jn1GLgBc3FGy2EKH6oK8LIv/rqq62Rho8NW2+9tTWFoKU9P5MKjXGOcCuEEc5+0rBiwIABlqLoIAxOPvnk6JJLLok23HDDtc9m42Mdzqs///nPNjYSRXJ+9rOf2fqRhx56aFWDC94TFy8855/ljxA+D/67P8cjnxU+Tyo6ESdEFcITkYnQQmCxDytXrrT38Df/nfOD8PL38XeeY+Nn3+LP1RXOr4t1fkbMtWzZ0urMWrRoER1xxBEm0rgmXJgVWsiLuiGRJoQQjQyTKZP3yJEjozvvvNMMAZ+kmUR9DaEw9ZGJ1huGYIw1tgEmhGh8MOJJ/Rs0aFD0/PPPmzOH57j/Mc49asKY0KVLl2jbbbe1VuubbbaZ/R3DnEfGFTfS62uoh+aiixgft3gkQnTFFVdEd911V8Yi/OwbApO2+QhIf59/RrghchBpo0aNsoWWEX7APtMoafTo0fbZpDsigmgqgnAC3kt9FRvNS/g7P8+bNy9q06aN/czrETBsPM9r2PiZz2Ef3n33XfuZZk5s/J1H32ceffPfeeS8wLoIr5rgnDM3cAz93P/85z+Pttlmm2iHHXaI9thjj2jzzTe3LAtEmZ9/UbxIpAkhRCPCBM6Ej0fYOzn65M4k7OkoPB+KNAyUm2++OTrssMPUMESIMoH0xgcffLCqEUd1hj/GOwY5hjvGOYY80bUePXrY73Tv4zWIGyJSiB7GG3f28HtoDvJ/+Jv/PxcjdGxE4DA+IYQQM4gjfkdMIqJI4WZM4z18LiKH6Bfvd9FDNIr3tW7d2gQSr/XPQqQlfVcfG32fwfcrxL8Hj/6zEz7nPyf9Hn6m/70x4bj5OeX8+Tlt3769ibI999zThDjnmHPO39h4T3h8RHEjkSaEEI0EEz9e4PHjx0fnn3++GTZE1RwMEGo3SG3CSPHhmYkaw+jNN980Q4YJXAhR+jBGeCOOMDpVGxjqbuDzyJjhjxjyRFuoceV1m2yyidWSMbbwP9j42SNQLsJ8POIxvjG2EfXivfwewv9jPxx/Pfhj+J5QIIWUovjw8xEXZKSFdujQIdp0000tWoYoQ5C5WPPXSZSVNhJpQgjRCDDUYsBQf3bCCSdYalAYKWPiZUKmuPvJJ5/MqFHD8+ztq/GCCyHKA8QRUTREGlGohgLDns0dPvwcmoP+sz9WJ5ziJJmUdRURSZ8BxSRGOK4uwHhEgLH/LqpcMDOet2vXrkqUsSHGEGa8xjfmB/8MUT5IpAkhRJ7BwKEz25w5c6wFMlEyr7UA95xSh0HtBp3NPMLGRE4nM2rR+vTpY5O1EKI8IPXv8ccfj0499dToiy++yFksFYKGEleNKdKSPpPn2Bh7/edw43k28Nf4c/47Yow6MYQVIgwxRlMPnifllEee5++8x8UYc4E/x+eI8kYiTQgh8ghDLFEx2k+ffvrp0ccff2yGl8OETOrR8OHDreaCaBm1HQ6iDHGGSEOsMXkLIcoDRBnjAWPHE088kZFO6KIAeF2hBVxdxVX4vIsSvoPX6IYwNnoUyt+Xy2Ntf2MjlZx0T34mvRMnGSmgiKnVq1fbz2wsB8BzrVq1sjGd53C+kaLOviHCGMvZ/Ny44OLv/sj/8d/5WYjqkEgTQog8wfDKJP7GG29EQ4cOjRYvXpwh0JiomdDPOOMMa1tNGuQrr7yS8RoibBdffLG1sCbtUQhRXhB1Z7kOOjyyqDG/M3bgtKGJBIb+kiVLLB2SFGqEDo9E4xE83sSjocw9Fxc8+u/8zzA7wKHOlnEr6T38jtBBeDJO7rzzztG0adPsZ2B/eR3NRehcyVIDiCTEEvV0iCN+pmsjP8+fP9/+zmdST8dzCCeanfC/EGDx9/J3fkd08Tm8Ltx8P5OeAxddPOeb/02IdUUiTQgh8gBDK53ZFi5cGB111FFVETQfcpncMQ5OPPFEqznBCKPF/po1azJes+WWW0ZPP/20GRh4ZYUQ5QdjByKMTo9//etfzXnDYs+0XEcUIMhYuwshM2nSJEuNZExB1CGU6MSIWENMMb4kmX7+HEID+Nxw8+dwLCFyiDiR0sdnvvXWW7YgP0LNX0v0i8X3EZJ0p/X38MhnIMZcGCEqGee8i6XD61gvjUiivxbijxDutz8mvS7+XPg6IdKERJoQQjQwDKsYIIsWLaoSaAg2B2MCgcbfrrzySjNyLrroomjcuHFV3miMBoycfv36RbfccosZZUKI8gWR5REyxhCvX2KscFOOv3lUy6NoLs5oVkQjEro1Et3yRiSMRWFTEj47TPtjIx2QtED+5mKIR/43ooqaOZoieTMkHExEwIiMEa3y18Y3YN9J6aSLJSLUI2m8x51UCDs5qUS5IZEmhBANiAs02uWTvpgk0PAIH3jggdFNN91knmLWDOrWrZul5YTgfX7kkUdsrSPWwhFCiPrC2FTXSJo/hj+HIABZ/JmoHkKOzwfGK3cwsZh1TfAZpCr279/fUhD5HYgAhgv4C1FufH8nCiGEWGdCgUYNWnUCrWfPntGNN95oHb94D10fqcuIg6ecVCF1dBRCrCsILCJcRKQYW+Ib44y3emfjtWxhFCwOkTNSuknHdIEGiLSuXbvm5FxijKSGDCeVCzRApNENl4wCIcoRiTQhhGgAEFsUn1fXJMQFGh7nu+66ywQahhEGyrPPPpth4ACv33vvvS0tKck4EkKIQsMYN3PmzIyxjvEKcYYzqjYHE+MmYyBZBaFDC5HIgtp77bWXnFSibJFIE0KIdQSBRSQMgUaKowu0MH0IsYVAowaN+jIMD7zGCLsZM2aYR9q91bye9B6K5akXEUKItMH4xjhH5oDXogHRNxqa0MSEn2uC99HUhC38DMbHgw46yKJojIdClCO68oUQYh1AaCHQKJoPm4TEBRpeZQTapptuWuUZprj/4YcftrV4wjQf/r7bbrtZqiPRNiGESBuMWR999JFt4fjFmOVRtNqyABB5d999d8aYyXsYMxFppDwKUa5IpAkhRD3BMKEr2oQJEyyCRpezMO0HgUaKY69evcwQCQUaBgn1a7Nnz67qZubgPfZajNqMHCGEKAREvsgeCLMGgFRHHEy11aO5g4sxMBw3SXXcbrvtbJOTSpQzEmlCCFEPaHVNO+s777wzOv/88629dbiYK2k+3sWRGjRPcXR4Py2uw7bVgIHSrFmzqHv37hmvF0KINMF4R6pjOO7hVGLc2nPPPWsVWIx7Tz75ZPTBBx9kROJwTlGLpnpcUe5IpAkhRB3BuECU3XDDDdGoUaPs51BoIdDCddDiAg0wbDBQiKKFTUN4HWk+CLXa6jmEEKJQMIbNnTs3y8lEPVrTpk1rHL+IvFGP+8ILL9hjmB6OSBs0aFBOnSGFKGUk0oQQog6QlkPdGdGzMWPGWDSNqJjjAo30x9GjR2ekODqe6vj6669npPngNcZA6d27tz0KIUQaYcz729/+Fv31r3/Nqkfbf//9a80C8EwCRFoo8nifR9EQfEKUMxJpQgiRAwgritspkqfrInVo1KOFAg2jgsWp8QJfdNFFVW324/Ce9957z9ZHi79/yy23tFRHGShCiLTCuPX0009bNC1ej0ZXx9qiYDinJk+ebFE0zyRwJxX1uGoYIoREmhBC1ApGBMYEi7YeeeSR1jKfgve4BxlRduGFF9qGWKtOaCH2PM0nTHXEsPGGIWo7LYRIK4gsImnxTAAiYUTSanIyecOQJ554IuP9vKd169bR9ttvX2skTohyQFaAEELUgBsUNPjo37+/CbUkcbXRRhvZgqwnnXRSjQLNUx1pvR8aKN6qnyiaajGEEGmGFMVnnnkmKxOAejTGr5rq0XgvUTTSHcP3Ez07+OCDrR5XTiohJNKEEKJaMCaoOXvooYesxoxUx/h6PhgWP//5z0100fCDerSaDBTSgxYsWBCtWrUqw0AhEkerftpO1+SFFkKIQoLjas2aNdGHH36YNYbtt99+NUbBGDtxcj3//PP26GMpYybiDJGmVEchvkciTQghYmA4EOVi3bPzzjvPmoR89dVXGa2mPfLVtWvX6J577om6detmLfdr8wDzub54awgpjrvuuqvaTgshUg3Oq1mzZmXVoyHOiKTVJNIQdfPnz89aeoT3MP61adNGTioh1iKRJoQQAV5/RmMP6s/Gjx9v0bTQoPAOjnRhRKAh1HIRV3ig+WwiaWGqI59Hy2pa9qsWQwiRZhBnixYtynBaeT1aly5dahRZpHoTRSOFPEwZJ3qmBfyFyEQiTQgh1oKXl46N1Esg0GiRz+9hgxAMEGrOTjzxRIuIbbbZZmZg5GJYIPR88dbQQMG4oRYNoVdTqqQQQhQaxrG33norw3FFBgFp34yH1Y1h7qRicf/QSUWaZIsWLSySltQNV4hyRSJNCFH2eHojKY3XX3+9pTiy/g9e3zCdxxuE0F7/4osvtp/rEvni82bPnp31uYg8omiqxRBCpBmcS0nrozEObrvttjZGVuewIvJGR0eiaPGGIWeccYa62goRQ3eDEKKs8fRGujYOHDjQFqj+5JNPslJ5MCDwEk+cOLHWDo5JYNCsXr06mjJlSoYHms9o3ry5RdLkRRZCpBnGsSVLlli9bpgN4E1DqhvDeC3ijPRxnFQOUTdqeYmiyUklRCYSaUI0EExCeAfZwslLpBfE0tdff23pjQg01i6j/iz08nr9GY1BWLx1l112qbWDYxJE6iiWx0CJe6A9iiYvshAizeC8ostt6GgCImhNmjSpNrOA17/22mvWNCR8L6+nFo310ZTqLUQmsgiEWEc8EkM74ueee862pFQ5kR44L3RXxNgYOXJkdNppp1kkjXMW9w4TMcOIeOSRR6xzWX26L/r/QwyGXR35HD4P4ScvshAi7SCwvLOjg3Npww03jDp37pzoaGL8Y2wl1ZG50udFXksUbe+991ZXWyESkEgTYh3B6GbSOvDAA6MBAwbYRtOJOXPmZHWwEoWHKBbnhaYgRM/uuOOOqvb6bjxgLCCaNt5442j06NHRVVddZfVn9V1kmv/Jwq1cE6EXmVRH6jgQaXVJnRRCiELA+EW6Y3wc22abbSwqliTSyEx4//33zUkVijucYKR5k+qo8U+IbCTShFgHmHw+++yz6Mwzz4yWL19uCxRTdzRv3jxb/Pipp54yz6GEWuFBgGEgIMioi0CgJXVvDNMbqT/71a9+ZdG0dakXQ8iTShmP1CH69tprLxXMCyFSD2MX4owMhHjGAVG06sZIxr/HH3/cnGPhWMu4x/iay/qSQpQjuiuEWAeYsB566KFo5cqVVS2FPbWNiYxFkImyKfWxsGBQIJZZ+4zUxnPPPdfOD+cpPC8YGT/72c+iQYMG2fpn9a0/C/HrAcHHo+PRul69etU7QieEEI0FTknmM+a9+LhJ+/0kkYYo+/zzz80xFo5/RM5IcSTVsbo6NiHKHYk0IdYBJiAaT4TeQYeoDV0CL7zwQltTJlwXRjQeGBScI+oh+vfvb4/8Hqbr4MX17o2kN9Jevy7rn9UEhg3rorGFDUkwaLbbbruoY8eOSvURQqQe5rTFixdnpCwC41eHDh0SxzGE2bRp08yRGY5/OKZYa1JZBEJUj+4MIdaBmiYnYDIjfx+jPy4MRH7x6BkNXVj3jAgaDV3i6aecO6JlvXv3tuhZQ6Q3hiDOWcA6Hk1FAB588MEqmBdCFAWILOazUGwhsKjX3XrrrbMyDnwMvvPOOzOiaJ5S3qdPHxNpQohkJNKEWAcw5KkpatasWaJR76luc+fOjS655JKsnHyRH+LRM1JS+T30ACOM8ObSlYyaQk9vpD6ioVpBc/4RZ4i0MJLqkTu6RirVUQhRDDCufvzxxxkiDScXAo2UxbizifGWKBr12qGD0tvud+rUqVoHpxBCIk2IdQJjfpNNNrEaJ9aIwfCOG/gY6ngTqUl6+OGH1fExjyRFz6hDi4tjzhFijM6K48aNM5Hm3RsbMqqFMcP/T0p1pDFJ0vUihBBpg7GVBayJpIVjaXXZJLyecRcHGWOyZxHgoGLs3WeffZRFIEQtSKQJsY6Qtka0BmOfRYmTIjFMakxYF110UVXHxzD1TawbHEu8tnRupIuYR8+SWuvjxSV6Rlrjo48+apFQUm/y4dElejZjxgyLpobnm2umb9++iqIJIYoCnExejxaOZTicaBoSHz95PYtXz549OyuKRrMQtd0XonYk0oRYRzwqQ00T62khEIiQxD2ETFTffPNNdMEFF0RvvPGGhFoD4QJ4wYIFFjmrLXpGs46bb77ZzpUvTp2PwnXOLamOiLQw1ZH9ID2W60UiTQhRDCC64vVogNCKt99n7GN+I9WRcdgzR5gTmRsPOeSQvI27QpQSukOEaACYbDC4SZm74oorLP0jyQDHC/npp59GxxxzjNWpqeNj/cEQ4PiRgsOC1Ihjomi1Rc8eeeQRa9hBq/2kOsKGAmMGscgWGjb8T2rfmjdvrlRHIURRwBgWr0dj3mNsZSHrMCrGa1grdMKECTYWO4x9bdq0Udt9IXJEIk2IBoRJCOP/+uuvj1q1apU4EbmwoDU/k56EWt3xxiCk07Ao9fDhwxM7NyZFz7bYYotG8eKS4jh9+vTEro6kOvIohBDFAMIrqbPjzjvvbALNM0c8ivbcc89F3377bUY2A1G0wYMH25isKJoQtaO7RIgGhggaE9fIkSOrrXVCmLF22kknnVQV+RG146mN3hgEgfb8889bGmlY91Co6JmDoYJImzJlSoYI91RHmoY0xn4IIURDgDhbunRphkhjbmOMjUfR3n//fWu7H459jHctWrSwVEeleQuRGxJpQjQwCAQiNQcccEB0+umnJ3oN3dtIbdrQoUNt0WtF1KrHRc8XX3wRPfjgg5bayCPRMyJVaYmeORgq1XV17NWrlwk1pToKIYoBxl/GMRyK4ViLOGvfvn3GWMY4/dhjj5njLBz7EGY4JRmbNfYJkRsSaULkAcQAkxEi7cADD0ycmFyo0e3xhBNOsBRIhBrPi+/hWHBMODavvvqqCV+WO0hqDMIxJ4Vw4403tpQaOjc2ZvQsxFMdeQzPJ/tHFE2pjkKIYoFx9i9/+UuG6ALmtE033bQqksbfSXGkRjh0OvJ3X7xaY58QuSORJkSe8ImJRiK05ufnuFDztWSIqCHUFi1alBUZKkcQNmHd2YABAyx6RjG6L0odih9E2AYbbGDt9EltvPjii/PaubEm2K/qUh2pyaAeTamOQohigbGY9vthSjkwx4Xt9xn3br/99mqjaG3btlUUTYg6IJEmRB6hLgpP45VXXmn1UzWlPs6cOdPEyAsvvJBVcF1OYAgwyc+fP98aghx55JFWhJ4UaWTCR4ghyFiD7p577rH1dwoRPXMwTkhzTEp1JKqqBayFEMUE41h17fepv2Y842+M24g0xJrD33BQHnrooYlL0wghqkciTYg8g3GOaPjd735n6XcUWse7PhI5I4JGJI2IGkXXRIzinstSxid5xM2IESMscsaE/7e//c0m/TC6GKY24qG95ZZbLMWR3/HaFtIQQEg+/PDDWamOGCi03le6jxCimGBspm46FGmMwd40hJ8Z90hzxMEYvo7xmOZNRNE84iaEyA2JNCEaAYRay5YtoxtvvDEaN25cVSOLMKKCQc9ER8SIzpDUXtHFMN5WvtTwtEY6gl133XXR/vvvH91222323eN1Z961EdFLaiPH8pJLLrGFodNQkM45RGzPmTMnK9WxSZMmFklTqqMQophAdFGTFo7FjGneNMQdbDQMSYqi9evXT1E0IeqBRJoQjYSLCxbypG6KOrUkYeET3vjx461RBi3mk+qwih3E2Zo1a6IFCxZEZ511lokzRBqRtLg3FhA31J117NjROjaS2six9MhkY9eeJcE+L1y40LZw/9m/7t27ZwlzIYRIM8w5iDPmoFCkMR5Tj8ajR9GWL1+eNe4RRevUqZOcU0LUA4k0IRoRhASG+rbbbmtC45hjjjHhxmQWwmRIFAnBMnDgwKqOhknipZggIoinlVb6rLlzzjnnRD169DDBtWLFChOn8e9Higze2C233NIagiBwOW6kNpI6mAZx5iCkiaLFUx3ZT2rrtD6QEKKYYMwm1ZH2++GYhrNpp512sugY8xJRtHDhfsZlnJD77LOPzXmKoglRdyTShGhkPGWPCNCoUaNsLa/NNtvM0kHiggOjn8nxoYceshotvJWsDUYKZOjVTDsIL0QnkbNp06aZ8GS9MKKFLjzj38fFGWuKDRs2zJYqGDJkiKWKpiG1MQ7GCeJsxowZWamOTZs2tXXb4mJcCCHSDOPyxx9/nOg8Y+N55qekKBqZDjRyUi2aEPVDIk2IAkH6B1E0momwphcTGr/H00I8qkaNFt0O6QDJpIjgSbNYwwPrNXZM4KQyIjTZ/6lTp9r+h/ULjoszxBjNQOh6STpk69at7fm0TvicByKfRNJCY4Xz2bVrVxNqaYr6CSFEbTCWxevRgLGMZiDMQQ888IA9xqNoxx57rD1q3BOifujOEaKAMHl5+iMpf6NHj05sKgLemn727NmWJkj6HA02Vq1aZc/z9zAdpRAgzIj+Ub+wevVqa51/2mmnWW3dtddeawtSk+qIOEtqhkJa4DbbbBMdd9xxFjm79NJLTZxRi5Z2byyC1BewDr8b34nGJkRKhRB1h/sJscCWNG6I/IE4i9ejkQ3CeMyYNmHChMQo2i9+8Ytot912Uy2aEOvAjyqNusJadUIIg0mQnH5qtW699dboz3/+s0XQMP7jtymTJJMfk2SLFi0sGnf00UdHbdq0seeYJBGAjVEHwH4zQSNO2IgksTg3beg///xzew7hFvfEgk/2QPonYu68886zgnTETTFN8CwVQBrns88+a98XENqcH44Hj2lL0RQirSDGGPsYE3H4MC4ypnXu3NmiM9R3pt1xUwqQbo9TkGgZ5wI4DzvssEM0duzY6JRTTrE1LX25GP5GvTC1wwg11eEKUX8k0oRIEdyOTHakjrz99tuW3sgjv7vhHwdDhYmQ6Bv5/3SNJDJHRI7nEWy8hslzXWH/EFvsI/vj2zPPPGONTaZMmVKVxoiBFXpXQ0KRibBEnLHfiDOiZsXmfeWYrFy50tIaEabu7ef4ExW8+uqrzXARQtQO9w9j3osvvhhdfvnllkbMPcYYRv0uCyMjDhgrVOeZX3A+nXrqqdGkSZOq5iDmEzo20sCJNS3J5HBTEudanz59onvvvTfaaKONGsVRKESpIpEmRArhtkTkEElDACHWPvvsMxM/7rGMgwGDuGGSZEMwsHXp0iXq0KGDRar4O9Ec33hP0iSKkRRuHi1jW7JkiRWSz5o1K3rzzTejjz76yCZv37fqhBnwPzGqEJTbb7+9tWdmQifKxD4Xq2ec737//fdbF05q8ByOOeu4nXzyyUp3FCIHGPsY92jAM2jQIIvkML7wvEfeGT+6detmjYe4x4p13CgGSKfHifbOO+9Uje3MI3vssYc1sUJA+5zE+fEoGqmOiqIJsW5IpAmRYhBIpJgQpcGTefvtt1ukhueYGKu7fRFfGC4IIjYmVYwZxBobDUpatWplnmiacYRCjc/EM4oo5BGBxgSN+KCAnIkao8mjafy9pmHE9wWRwnbQQQeZOEOkYWwxkRd7GiB1du5tRlwD37t58+bW+IQCexmSQtQO9w8p09TcEsXx6E0I4xXj1kknnWTLcjCOcb+Jhod5YM8994yWLVtWNc7jUCOStmjRIpsjHMZyUhxphIVYS3IACiFyRyJNiCIAYUS0Bg/z448/bt0dqQPwNEjEXG24WGLzKBobE2lcpHkEjZ8RYR5J8+dqg8/j/zBpI8zweu+1114mzhBmPIdwLIVJnGND4XzPnj2zUh1ZI4i0H6U6ClE73DtEznB4MM55DVQSjGE4nljChJpcxhXRsDDWUwvI2IZYc9zh5g2rgLmE9MZx48bZuIeQE0KsGxJpQhQRCAJPg3z++eejyZMnW0dBjBk2F1KFwEUg4oSNxacPPPBAE2esEVYqUbM4iGeavNDFMp7qiAHZr18/GZBC5ABjG+May3QQRattLCNLoGPHjpZeRw2uotUNC/MNNdGkO5L26DCOYzqGUU5EGanrdClGrDEfCCHWDd1FQhQRCBwMftbconj+lltusc6BpPwwQZJeRyojXk5em89IFZ9NNIz9IVJEXRkeVNY0e/rpp62FPj+T/sL+8rpSE2iAYcl39TRHwEDBaEGcYtAIIWoGo5/MAFKGcULl4mwiikMaHp0HcZaIhoVzQAQtfi4Y6xBwDuMdHTeHDRumddGKFM6nZ+vwGJ5fUTgUSROiyPHoGgbOwoULrZCbmgA80TT58LoxDBoe2bjtc731mXARV2yeKskjAo01zXr06BFtvvnm5m1FmCBK8HDzmlJIZ6wJjBc8zNTPsAacF9bz/d2rjEAt9eMgxLrCvfPaa6/Zgve03M/VSGQcor4VR0mzZs1K0hFUKJhXaFx1wgknWN0tMG/ExzPGfXcaqqNj8cG9hzjDQYLTl4ZjZIAguBWdLiwSaUKUCNzKGDaIMgQZ3jBEGt0XvSMjjT9YmNS9o76FwwCijEnWH4nMtWvXztL32rdvH2266abWKp/1irwpCcLMBVw5wbFmwW5Pz/LjSCMDoohsTHRCiJqhvomIGB1Sv/3227XPfg9jkUdn3MnkMEYhDK666ipb7kK1UA0HKfQ33nhjNHLkyKxz4kKMMZ9MCmrRcEwpc6C44F7i3HKe2bAbyMQ544wzoqFDh2r+KjASaUKUKNzaGDR4yXzjdzaEGWLt008/zejOBRhDdCNkgm7ZsqVNwjwXRtH8ZzecyhWOIes43XbbbRbJBIwXPPp49lnwFRErhKgexiMyAIjG04THm1E4CK9evXpZYx7WY4ynNiIMPJKjroINB3MDqfQ33XSTnaMQP8YY9KyXxlqQOPLKfU4oNpjnZ8+eHQ0cONAcudgJ3G+777671XriABGFQyJNiDIljKKFwwCTLBOwT7YyeJLh2JHqSOczDEsmN0CUeRtqpToKUTuk1U2dOtUi0p5W53ikZuzYsebV//Wvf20Nevx+A8YqHCMYlSzoL8dIw4BI+93vfmdp20kijXPTpEmTquNOZoUoHsgEYa07nCMffvih3YecV+4znB40viKTRhQOuTyEKFMwbIiIYdAwufrmUTIGawmM6sFIZD2nNWvWZBiMeCF79+5tjzp+QtQO3nw61cYjZMCYdOyxx1okrXv37tEpp5ySldKIgCCSTU1b0meI+oHzjoZQ1Ykvj2AqY6D4YM5yEU4EDYEGnEcyaYYMGaLU1RQgkSaEEPWASY0i66TUK5Ye0AQnRO0gsHB0TJkyJaOlO+AsYtHqfffd1x7ZqDvjkb+FcD8+/PDD1nQkHvUR9YPj+P777yceT47/JptsYsY8nXvlkCoeEN84NYiUvfjii1VzGA5a6qnPO++8aKeddqpWnIvGQyJNCCHqAUYhdWehYckkR/qP1mwSIje4fxYsWGDRNOplQzASWaiaVDruJzaEAYvix6NpRAZWrFhhnxWvaRP1g/NBQ6Sk48nxRzzTVEpRtOICUTZ37lwTaYg1RDiZNaQ5st7n/vvvb7WGEt6FRyJNCCHqCAYh3n/y+MNUR4wVj6JpghOidjAYiYDFI9IYjURoSKfj0WtkvVFF3IgkOoDQY3H/+GeJ+oEjirrbsGYZOO44olgXTcZ8ccE5paZz8ODB1tXR5y9E93777RedfvrpJtb8fhOFRWdBCCHqCN5/0rMwBkMDBoOlW7duWV5+kX7wJvvSFXiXMWDCDQHA3+MGq6g/HHPSE2fMmJGV6kgUjQgaTXjCSA3RtDZt2tjaaPF0LD5j4sSJWfelqDtE0eheS1OkJDDoW7VqpShaEYFA43weffTR0SeffGK/A05FltW54oorLJVYWSDpQd0dhRDVghGFpw3jh8ewhX986HBvKh44NmoWeGTA52d/LHavK9+bFCA60bFGmhuXfDeMx1mzZlmxvTyR6YdrGkOFja6CrCeIl5l1BCmq92uca5YuZzvvvLMt4I4YR4hjoCqKUH8QU97VkeMeQutvugqSUhd3eiCiWXiX1Kyvvvpq7bPfQydIug3SQlx1ofUHx8R1110XDR8+PCsNleufxfs7duwog75IwMHEvIVAY45iDmfswtHBvUbq/rbbbmvnVqQHiTQhRBUuyjBaER88Uli8aNEiWwgbg2jp0qXmYU0CLxziZKuttrLJm3oFjFsWwcZTt/XWW5vhhHHL5OBCrpjAYHn33XetbTGpQBwzYHLr16+frdXEekEinbjTAYFAFIdUOxrA0IqaLmcYM+6ECEUa1ynXLTWHdO+kLorielLxZKjWD4TZqaeeaoKL8+FwnHF4PP3009GWW26ZNUZwD7KuGrUz1KGFNVO6D9cdjifH95e//KUdXx/jHIz5Z555xlIeRfphzMPpxELxDz74oDk5HJwaOEP23ntvNYBJIRJpQpQ5DAEM4hhJpHTRVp4NA4maKybspEhaEm7M8ogACzdEGUJt8803N+OKCb5z587mJfeoRDEItuq8+DV5/kVh4RrnOsbp8N1330V33XWXLeDKwsgINZ7n+nZxVhNcyzgacEgcf/zx0TnnnGMd0RS1qRscZxan7tKli0UuwzGF43nVVVdVdXJMAkcRa6eNGDHCzqnD+cFJNHPmTItoy+isG5wXji0RtNtvv90iaiEcz3322ceMfdamE+nGBdqYMWOiG2+80c4nzwHz7eGHHx7dcccdds8Vw/xbbkikCVGmYBQhvhAd8+fPt4J71irCg4pgc2HWUEOECzjEGBtCZrPNNou222676Mgjj7Q1kDyNjMhEWo0rvP+/+c1vLNXRvf98Lzz/pFl16tTJDEVReOLXONf3888/b23FcUi4MKsPnGM8z9Qg3nnnndGmm26aVSMlqofz8vbbb1tEmjQsh+OKuEJkcU9Vdy8huqdNm2apkjTxCc+jL7C82267STzXERwWODD69+9v58UNeoexG5F2//3323EW6cUF2qhRo8wxFQo0xirmqkcffdTGLs6rSB+SzUKUGUTCMFoxbB577DGLCCGSrr322mjevHk2MeOZxghqSB8On8X/RtgwcRDBIG3wz3/+sxlaPXv2tBoIjGk8uRhxafMhYQhy3EiN4/g4THCkABEdlDey8Ph1Rp3Z448/btc4RieRl/D6qq9AA/4HRs/rr78eXXTRRXbP8JzIDUQynn13dDg4akglpdV+Tc4O/oZAZosbmAiNcePG2TkWucP1y3V866232rWddD0zvmmMSz+IMc4h9xgCjTnXBRqOCzJaHnjggahly5YSaClGd5oQZQITLuIMEUaqCh5s6kEQaggmBvSahBkTMxEuBngMKdKQ4huRBU9dxIiqKRrmog1jDWN62bJlJhTZL1JtXnvtNUsnTJNY4/gsXLjQ0kBDA59jQut9vrvSqwoH1wnXC9fN+PHj7fpGoHGNI64xQDFUGup64nO4p6jPwdkgUZAb3PekOhKxQVCFcA+dccYZNsbUBOMRrznooIOyomWcB843AjAtY0cxwLngOqaZS/y8gMa24oB5ylMcb7jhhgzBzdyMA4S/IdQUaU43SncUosRhcGbCxSiiIxfRKpp/1NZSHJHFgM4gziM1V6RFeCMQctjDSZvPYWKgvoRIxaeffmobRjEb/4uNnxE4Nf1f/ieijzWShgwZYg1IMMgK3aDBazVuu+22qjoYjkHz5s2tO9YOO+ygJhIFgmsLwfTOO+9YKhbCzB0P9YmYIQL8+q7pegWu1z59+kT33nuvFeLLmK0Zxh68+DQyCLs6Ms5QT0b3uVzqnRhLcOaQCUATHzdEOXdEtYmm0cJfaai1w7EkQ4CsBsSzOxzC657rmmNJuiPXutId0wfjHfPUhRdeaE2R3DEFzE3M30T+TzzxRK2HVgRIpAlRomBYYgxhBD3xxBPRhAkTLJ0RQ5aBPOnWZ8BmEkYQsZEihreN4n46MyKgGOh5XWjEAp/Hxv/FWPKN9Vhobb548eJo7ty5ZgiwIRwxBJhAkvaF/4VXHa8fNWC//e1vTbixf4UwgtlHDEEifaRp+sSHYYkhSG5/06ZNZaA3MpwHT6FFQBMJQJxxbbnRXh1cw1zPnEM2rjk2ziHPU7OBcwOjh/uI/8N1y/0TwudQR4VQV01i7RA5J8LJuQojNtzfl1xySXTyySfbz7XBPclneZOLMHWS99N4hAYkOJRE9XAcuX84hiNHjrSffUzmXmBM93GN+4TmSDRJYrwT6YExjywCItGMRWEKNmMS98EFF1wQnXTSSXZ/aJxKPxJpQpQY3NIYkQzQNEnAgCFyxmCdJIjcIEUQka5Ie3HWUqGRBxECRBETM6+pqwDhfzHB83+ZQNgv0i1p6c8CtnSRJH0Q4YixlmRU83/x+LF4Kulr3vYcw7gxYd9feeUVE66kUvlxZOI766yzbGM/RePA8eeawaCk1uy+++6LVq5caY6J6sQZ1y+GCdc61zYba5/hhKDzKNcWhj7RHBdrbHwe7flpFvPHP/7R/k9cqGGwErmhbTn3i0iGscC7OoZLWHA/Ez2ra0SascO7PIbdVjkHRHxcTNR17ConuI+orYw3C/FjxqOfJ44rDVlozKLujunAx0Kuf+o5WVKE+yK8txBlzOtXXnmlRdMk0IqEypMrhCgRKg3Hiq+//rpi7ty5FZWDdcVGG21UUTnBoiZs42ffKgfpikpjtWLjjTeu6Ny5c8U111xj76ucpCsqDdWKSsN07ac2LHwun89+VhprFZVirWLYsGEVrVq1qqicPCoqjYCM/fR9rRRmFe3atasYP358ReVkVFFpSKz9xMahUgxUXHbZZRWVoixj35o3b15RKTTt2IvGgWPNNcC106tXr4oNN9ww8brxLbzWK0VZxSmnnFKxYMGCis8++6yiUnDbtVgp7ir+9a9/2fVZadys/U/fw+/8T147atSoikqDJ+t/8NkPPvigfY6onu+++65i+PDhds7C48f56du3rx3j+PGvCc7ZrFmzKlq2bFlRKeyqPo9z3rZt24o333zTXiOSYRzlmFca8DbGxs9J/N7iGPfs2dPGblF4GK+4p956662KLl262NhUKcqqzhf3AfMq9sDq1at1LxQZSkYVogTAY0YEAS/o9ddfbx5RUhxJ06q8z9e+6nuPW+XAbREEFnplAUvSgVgTjRQjUrWoPePv+YpU8bl8PhEoPLGkCl566aVRpTEVVYo1W7wWr1/oSffvR5rk6aefbqmbpLS5x7cxwFNJW3AeHfYRLz1brp5/UX+4fjn+pB5S+E4tEvUzRNOSroVKA8WirtTOUDPGtU6khkfqKkml5W9ci0TXiBJwfXKPhPA755frcvvtt7frNw77tnz58oz7TWTCfUyEnzqyMDUROP40ASHNOn78a4LzwjIepCHHxwxSITnfjTlOFBvcT0nNQrgPuHc6duyYMRdwfVNrzPEVhYVzQMSMrJSBAwdWZaX4GOTnkM7JNBAhgsYYJ4oHiTQhipx/rc1DZ80gDBUag9B9MBysHQZtxBmpjLfccoulAlG3gchwYVQXA2ld4X+RTsnkQfMNUgYxqgYPHmxrqGGwhQYC3xXhef7552d1rcon/A+MSibB0OBjwuOY8x1EfnGDhBTZE044wa5zjHDOS/w6d3FGPeUxxxxjqVl+rXOdIcrqY6zwuTTP4TEO13Lbtm0b9f4pNrh3SKvjHIb3kZ+vgw8+uM73EscbgYdzJ/5erg22UHyIHyBll0ZPpAojnkPhxTHFicf1Hl7TvIZxV86IwsKcxHl48sknzXFJCUE4FjJvkn5P12Ha8DPvS6AVHxJpQhQpDNJMrCw+jReNrlwLFizIiiowWDPJ8kjdDZE2mlwccsghFkVACCUZnY2NRypat25tzQOo7+nVq5dNNOH+YVjwHRFpvkBnvoUa4nDixIkZkyDHlGO3yy67mEEj8gfXM+ecxahpOEGtZVIk1Q12rnOub4TZ1VdfbdHahrrWq6s75HMxhNJwL6UV7p8XXngho14GEFfUy9T3/GB8sl4a5z506nB9MNaRYdAYzpxiwp0e1FjSEZVx1eF4tmrVypxh/BweU+C9bBJqhcHHQ5YZQaBRL4sjIpybcHrsv//+VoOmhfaLF4k0IYoMBmKMHVK+fL0zomhE08KBGjB4MCpJWaGw/sUXX4yOOOKIKoM1PvmmAYwCIh0e7Rs0aFBWmoZPUkxARElIhcynwcDxxvvPo8Oxo803qSThvomGBeOR6CmiPPQYh0Y+cA64TrhuEGdcO/yMcMJACaMB9YX/yXp+8f/NZ+NkIIVSIi0Zjhn36ZQpU8zp4bhBScMixqT6wLHv2rWr3Yvh8WecoMkP965EWiacg5deesla6YdZF34+fv/735tQ45qO3zucS5pRxe8DkX98PLziiiusUyM/h/cT8xJzPo15JNCKH4k0IYoIFyfU4VB3xjpDntoYTpgM1Bg8rNlEutekSZOsLS8phAzgaRRnIRgFHhG5+OKLo1GjRtUo1Gjxn6+UJo4rnng6ZvE/HSY+amHSKnZLAc4pXmI8+kSAcURgkISCnGPvqY1cK4j2XXfd1cQZtWNxA3NdwNBnH+IGP8KAe4v7TddCMpw3omh0dgzvIwQWqYpEpPm5PnDMGS+ocY3XC3INcf+Ghmy542PnNddck5WJwPGjy+lhhx1WlQIfPy+8n/sgPI8i/3AN45zFWXXHHXeYQAsjoO6UxVnBGmkSaMWPZhMhigCPnmFsEBFDoFF8Hx+kwSMK1HdgsNIkASOIwbvYvPx8F6JqtBVOKnzmu1PETg0bj/Fj0RAwMZJGikc+NGaY/EgnCfdHNAxc70RdcEAMHDjQ0nri6Y2Ir/Bap/kN1wFCCYO9IcWZw//HIRAXaexHjx49ZBBVA+cTRxLnkfMawrmiYQhCe10ELsee+htERvg53L+Mg/Esg3LF7y3SHN9+++0M8cr8gDC77LLLqgTajjvumHVecFz95S9/yboPRH7w+f+jjz6yRaipQ4uLa84RDkMyZW666aaqBmCiuJFIEyLluNcTUUZqIwuOJjVMcC8aKXgIM9K9iCjEhU2x4YZD3759LcXDjQcH4wvDmdqjMG2noQiNPMc99xxrGeYNCwYgtZakqHHOaTTB73GDhOPPAusXXXRRdPPNN1d1Bc2nI4Lriw6OodDwqC//X0ZRMoxhK1assHMZOlLcsKQejWO4LjDGkfLIFooK/t97771njhaJiu/HM8TZfffdlzVeci6OP/54WzuQa9mjaEmRNByEOp75x0U1mRw4rKZPn57V5MXnSFKGzzzzTEXQSgiJNCFSinvPwugZhkbcg4aRyISK54zURiIKPOYj3atQYHQhQI866ihL9Qi97j6J0SBg7ty5dswaCj8HRHRCjzNGCzn/2267bV5FQbnhAo26JQwSjjvnNjQkQ4MERwTRM687yyfsG/fe448/boY/++T7RVou96eiqslwD7EkSDwtm3NG3WCLFi2yhEBdYTxgvHNx4fg9TGfW8B4uR5g3uL9uvfVW6+oYRqY5F9SgUYvG+Mq8wTFlYfdQ9AKfo0ha/gkdVsx78UWqwbMJqN2mkRY1hBqHSgeJNCFSiEfPqD3z6Bm56PGUHYwR0gGp56AbYjGnNtYG34fvxWRFalnoecdYwICmRo+al4YyHvgcGlUsXrw44zMxBL2bXCmI4DTg55BUHmrQvGNZSGiQcL1z3TfWtY4ww1gKo2jA/Yho5FqQYM8Gg3L16tV2XsPzyX1D5Ib0LR4bAsbDPfbYI8tIRZzNmjWrrEUa16k7s5555pmszACEGWmOzCcucnke5x+/h0KN+Uk1afnFx0MiZzgn4y32wcdDarbJKPAUR81JpYNEmhApggGYydMX660peoZRSP0NgzMduljTpthTG2vDRSlrZOH1DaMnGGB4d+lgGY++1BfOBR74+OTI/6U4mwlRrDtukLBI+dChQ6NPPvkky6DmWBMxo1EM1zzXfmMaJFwLdFGNCzH+P7WJ+Y7kFSucx/nz50fvv/9+hlHPvcxyGyyg31DHjuuBZj7x6wKBzWL5nMOGGBeKEY4BHRlpFhJPl2MuwfG13377ZTi/gOudRiKhSOO9b731lp3Pcj2e+YRzRTopzUFYEzLJQcs1jiij/oya7VBci9JBIk2IlOCGKnUbpHohRGqLnlErVd3Cz6UKBh0595dffnli2uPIkSOtbigUtfWFY0/qHY8Ox5/FvzEGNSmuO37dk6qT1FLaHRKkFLJWXSEMEvaRNCMMfX52AcAj12KfPn2yjFvxPTg46DQXd5xgZNIwhI6MDTVuIShIQ95mm20yxDTnjLRxatPKMfrj9xh1u/EGSzj1WrZsGf3hD3+wqHT8XHCf4RwJ7zdEGp8RzzAQ6w5jH2MgYyE12N7R1gnHQ+4r6nbzXYsrCodEmhApwD1nd955py1KTatqJtXQoPDBGe8ZxcEINIRaOXrQEKR4fXffffesaBpGyNSpU804XBcwPkjTIsUtbtR4Fzk31kX9cOMRgYZBwj0QHmsMRs41tX9+vRfCIGGfSNdj4Xg3Sv1+JMoQFwXiexi/ELcsPh4ampxXHCx05WxIccvn8nk09PGMAoQhG9fZq6++us7jQrHhziuyLUhzDL8/xwthds4551TbbIK5pUOHDllzDOeTFLzwvIr6w3ni3JDmTUo/nVApeUiyATp37mzp3qTcJwlrUTrozApRQPBIMoH+9a9/jc477zxrEEKbXZ4L01GYIMPoGSItn63G044bF2effXaW0c5Eh9glpWddvLwY5jNnzrQoWjw1yOvRRP3hmHKO8AZTUxE3SNyQ79Wrl0XQEGoItkJc79yPOE7i3fC4Bojslet9WBvcO9yL8fEMAcVYRrpjQzuYEBr77LOPXT/huWJc8OYl5QTjGGmOiLQwzdENfmr4aNte3XjG8aSLalzA8bmklodOFVE/XKAhesmiSWqxz/li/CNSTO05j97gRZQuEmlCFAgMUgZijD8GZvechZOeT6Rh9IxuaMo//954YA2fQw89NMOA4PitXLnSuvCFaYp1hfdSjxZ+BoYfETTq0Uq59i/feAQNY+TCCy9MFGiIcCKWtNcnnbdQQojriWY03Kfhvcn9R6oe92PcgBXfn2NEAVE0RFoIxibiNh9GJueCDnfh9QQYwizVQeQnFG+ljN9npDkuW7Ys45hw/bZt29bSxrnXqosE87o999zTxrvwXHEv4FxEXIQCXNQNjh2OA1JxjzzySMvciNcMcm5wRuIcJIKGQCuUw0o0LhJpQhQADAVyza+//noTaElrQTE5+sCs6Fk2HAOMvOOOOy4rmoZRiAc/HvnIFd6DOGM5g7hhzgSJUENIiLrjRgnRsTPOOCMrxdENEmotKIonDYvjXSg8GsQ+h4YTYsBrqqozcMsZzimRK5qGhOIAY5+W+zQ6yoe45b7cfPPNozZt2qx95gf4G01p4gKuFGEM45q95557LM2RMdHHQo4DYyeNqRC0NZ0HXsvfOaaMfw5zFU4s6jTL4XjmA44h52jGjBk23iF6w/MEHHOcsqwlyJhZSIeVaHxkZQjRiLiByvpPiDNEWrw5CIMvkyLF2r/73e8sTUXRs2Qw+OgOR21LGNnCQKR5yLx58+pVM4HRwTlas2ZNhgGCWGCx3HwYl+UA1zhGCO3QSXFMEmh49fEo33jjjY2y/llNeCSCaBARA8eN3L322ss82iITFwgcNx5Do5N7yNvucxwbGsZPxspf/OIXVdEG37iXqVcNr7lShTmFDoysJRiPzHAOSHM85ZRTcjL4uQfpYBqOsX4v42AMsw1EbnANkkFABg2lDm4HhHC86dhME5HRo0dXtdgX5YNEmhCNBAaCpzey9llScxCMFgwLGhEQRRg2bJg8ZzXAMcFYprtemDqFAYFRTUOK0LjOFYTdU089lSXwMFbUer9++DmhIxwRtHiXuVCg0WY/DctJYDRhRNE+Poxys184TnbddVc5ThLgvBJBi6eI+jlGQDGm5Qs+O6njJucT50upiwrmFATApZdemtjNkeVLhg8fnrPjj+NIN9t4ih3j4+TJk02Ih/eHqB7GQY6bd3BEoLF0TNJcQ9dNXnPSSSeV/PI6IhmJNCEaAQbgML0RQ4GJLfRuelpD7969LUWFVCpFz2qHiYtj1rFjx4xjhSHGGnOrVq2qswHBe33xUAcDE2OFBhY6J3WHY4pAoxaJlLPQUA7Tr1gDLQ0GCfcmEQhqG+MpSBirxxxzjAmOfESDih2OF8ctHsHB8CRtK36vNjRcO56WHIoKxMtLL71koiU8n6UE34u55Y9//KNF0uL3Gdcs3RxrS3MM4VwxxtI1MzxvHE8cGKS1xkWGyMYdVcwt5557bvTQQw+ZWOPYhdcj1y1p3hdffLEt3B9P5xflg2YXIfIIAy8GC7nmLEqJSKtp3RPqzigMRghgtMoArB03PKhxwXh2MA5pmT59+vQ6GRC8D8OGzo5hlBPDjy5occNP1A7HH48+6bt0Lw3Frws0IpRE0PDyp8FjzDXA4tXvvvtuViQinzVVxQ7HisY9GKBJQpwoWhj1zgcYtNTvkoUQGrc4a1gvjfG4VCM/3Ftz5861NMd4qinzDEuXMI7Fo2I1wbnj9TgOwywCn9+SBLnIhLmEzBkch2QL0NU2XofukWbEMHYADg1+l0ArX2QBCpEn3BNPtyYG5erSGxmEEWVEzxBpnncuIZA7HC/qXDBC/Li5AUFRdigKaoPzU13r/S233NIeRe5wPEm9oosjxmN1Ao3U1LSk9GA4sc/XXnttlqGLscp9yn3L/otMuG/uuOOOLAOU80qKKHV8jXGOEdDelTAEhwHNLkLhXSrwnXCGnHXWWXb9hnMNxwMHCFG0+kRmGPdwTHC/hu/lf7L+3HPPPZchysUPcIw4H9TZYguQSRO/P3ws5O80rPI10CTQyhvNMELkAQZfBBktxklvpAtWPL0R4wGjFO8k9U8YMEyeSqWrOxwzjAjqJsLjx+ToIi1XLy+GBukoocGB8MPIoXhe5yd33FFB0TvXeCh4OKacsx49ekQ33HBDwZuEhHC9PPDAA9a2PDTmuWc32WQTW4dLYj0bH/fijVY41xigxx57rI1xjSFucdxQ2xtGfsBFGo+lhN9rtNuP1zh5hIY6NNIc6yOSGfdIU6ULYfh+/79/+MMfLHUvFIbljh8bRBnHHqdPPJMAGPewBRDBrIFGJ818R5tFcSCRJkQDg1HHZEXb7tNPPz36+OOPbVAOvfEYDhilpHexDlSTJk3M6NOgXH84pkRkQuOZSZJjj1ALje3q4BwhJIh6hkYOBgoTZ9OmTSXS6gCRTLzCpO5grHA+HM7XTjvtZIXx1F+kRaBhZH722Wcm0uKikija4MGDLd1RHu5scGwkNVrhnqElfmOmiCIkiKTF/x/jAE4Y7u9wTC5mfNzCEcJyLdx38euWFEecTHVJcwzhPQiH3XbbLSuKzDFlwWwEIiI9PPflimcQ4KhlvUcyBeLRTeD6pEEIjqo0ZROIdCCRJkQDwsRPzdn5558fjRw5MrH+jEmSWgkmU5oPaFBuGDD68fLyGBohLtLi3sskEBEYG++8806VEceGkUktR1qERDGAwU6DEIrf44Yb1zvX/RVXXBHtvPPOds7SgBu7999/f7WL//br109RtAQ8ipaWRiuIaJxf1KaFjhX2k0WtiWiEToNihnuNJiGXXHKJOUPCe40xq127dtaoYl2PP/ftoYceap0zw3vW7xtS9uMisRxhruH6ogad475ixYqsMdDTG3H+cd44rmnKJhDpQCJNiAaACYmJ8osvvoiOOuoo8ybHvWYYDaT6kGvuOefq2tRwYIhRcM0WHlPEFjVm8WhmEniESYViQg3hfR06dJBxniMeTSbqhFALHRWcJ7qWYsDQga++nv18wH4i0BFp8WgEBhULp5PuGBr94nsY/xBoSY1WOGakOjb2/YPBSwQpdIJxTtk/jOjQaC5WPPKLoV/dvTZixAiL1qyrM5BxFaH329/+NqvzsIt0skPeeOONjCh0ucB1hQ1ApJZOtYxx8XMCfhyJsBH9xGZgfGksB4YoHnRFCLGOMBEhABiYGWxZ3DMpcsCkRrcmPI3KOW94OJZ4d0l5DL2RnAc6unF+4qkmcTiPL7/8cpZw5vNY/FXGee0QncBAw2isrlHIaaedZmsFpuke4DohCnHrrbea0RteK5z/HXfcMfr1r38toZ4Ax+7zzz+PHnzwwSzjnOPFOk8YpY3tkGI8IEU5HqnFmGY5iLjxXGy4MCKdmHsNoexwr3HMaRRC3WdDXbfcC6Qp//73v8+KzHFcaVzC+cbZxbVQKtHKmuA74tRB+JNBQ6SRyGZ16Y1EzHBakB5KM6pC3BuiOJBIE2IdwBhhIsJzSP1ZkgeRQZnULjyMFAV790bR8HBciVDGjy/GC+emJqOMc8brSHfkZ8QDGwI7qQ5DJIMomzVrljkjkgx2DEbulTQdT/YRI+vRRx+NnnnmmURjl455OFpkTGXD8XrllVeyomg4NajfK1SjFf4/11vcucI48OKLL2bsa7Hh1yz3Ge324ymGfq+x9EtD3muMiThXaIiVJP64FqjD5h4nzTxei1pqcA2RNcBacaeeeqrVlRFNQ0CH54Pjz7EiBZf2+9gDaarFFelEFocQ9YSJhwkI45+JkMd4ihSDMuuf3XTTTbaIL0beuqaciOrh2HrzkNAowXDwtvrVgceTaFu8VoV0PBZyxTARNYPxiyf97LPPzoomI5wxSkgBiqdKFRoMLcT5Nddck2VUci3tvvvuFkmVQZUNxwoxPmbMmERRTsSApiGFELf8T+p/qUsLxwPudYREMYs0xjKiNXROjUdsuE5pt083wXyk1PN5fC7nnOMbT1lm36j7Y14kBTZem10KcO1w3FetWhWdd955lh3AmpyMe+E9wM9+vJhHJk6cGO26666qRRc5IZEmRD1wwwRPISmOGPZhzZMLtK233tpSUWhoofqz/IMhhhigq1soAjBgSL/BeAgN8BCMCIR2eB4Bg4fW/op+1oynC9ZUG3P77benznvsKWOkHiEwQ8MdI4paHtqLK5KaDPcUUTREbnjsOOdE0WiIUKi6Q/4n55B60nA8YAzgGkU8VDcepBnuLfb9oosuyrpm+Z7UAFKHls97jc/l8ydPnpzV/Ifxk+viyy+/jIYOHWpRtaS1wYoR5hK+Bwui0/gIpyALt/Ndk+YX5nxSbkkBpbEKmR4qdRC5ohlHiDrCIMwgPWXKFJuAfHB2MOQwSligGq+ZL0opA69xwHiIr4/EOeMcIdRCj3MIhg/RtlBcMMGSnkKDCwns6sEo89QrmuLws8N1z/VPlzNvFJIW2G+cLThS2O+wfg4jCmOKmh6lJSXjYyF1OEnpdgg0OmKGAqmxQaQxHoTnj/3kPse5Vt14kFbcqTBkyBCLpMXnHu41FkT2dvv5hHNMfTXRvKSIGuLRUwFJj2RZGlIBuc+KTRxz3BkrEGcs1k5q49ixY6MPPvggK2sAuOY5F0Th77vvPutyS0SXeUkCTeSKrEYh6oBPkKx9Qpv9eMQAQ56BuVevXibQmMAK5UUuVzDGEAPxVBKMMYrrQ6+z4yKOdMe4V5rPYmKVyK4ejllN6YLUrmCkpc2DzDnnmiCKlrTfRAgOP/xw+1lkg7E9derUrMWTuW+IotENs9DjH+NAUl0a40Gx1aW5KL777rvNoZSUXvrLX/6yQdrt5wpjY+fOna3OivuFfQjPt+/znDlzbEFn0gJJgVyzZo0J+zRH1ji2PucTCXzsscdsHON7eGpjXOTz3bnmiZ6dcsopVqPG9Ze2FG9RHMjqECJHfLCeMGGCRdCSBBopjaQ/skA1tWgy7hofF1aItdBY4FzhxU0yyji3RNn4e2ioe1ROUZTqcSMMgVZdumC+amPWBfaT/SU9M17T4/tNmqPSlJPx8ZC0ungUDSMVgbbVVlsV3DDlXNKsKe604fxTl1YskTSOL8cZcUYDqrhTAbFExBfnIfVOjXXcXZQwTrJfpIYjEMN7xiOXpGh6gw3Ezm233WY1XUTb+Ht4DRUSjisOHLJk5s2bZ+KMbrTs9+zZs6tq7MLjjyBmnqBzY/fu3S11nrGF7o1y1Ir6IpEmRA4wkWPIka5xwQUXVE0qjgs0CqVJ/UCghel2ovFgssQgow4lNBQ4h88++2yiSONcEkULzykw6VLfJpFWPURT6IjIFqYLeupVGtMFXWBgVFaXMoZBxjWkc58M55r15BC64X2DOEhLFA04n+3bt7f9CveF8QBHW7GINI/6nnnmmYlOBa/55LvGBWm+4bjikMQ5RhkAS814k6zwmCNquG4QP9OmTbOIFOKHyB91jaFgCwVQvvGIGceY/7969WqLEPtSIYwF77//vokzXhMXk1xjZAlQn4Ywo0ss94AfAyHqi0SaELXAZIhBd8MNN0SjRo2yQTw09Jn8GYwHDRpkhdzq2lR4MKzjETDOI+ulsTEhh2AUEEkLjU0mXoQ2n1PoaEBa4ZiyphgRp6R0QToisphwmiLK7CNpYqQjs4VRIAxKhMV+++0XDRgwQB7wamD847yzLhrHz/Hjl6ZFv9knxmPES+i0YQwgTbMYRBrjEoKS+SWeweFOBSKaXvNZiGuW/8l9Tt0Vzo9hw4bZ2Mn+sI8h3IN8B0TP/PnzowceeMAWf0YQ8T0QSAg2MhsYV3htQ4s23wfmdv4P+0HEjOgex5H7f9KkSbb+H6I4POaOH/tmzZpF/fr1s6UQWMCfaJqcO6Ih+FHl5JSO+LIQKSQUaGz8HE7qTP4INFJMTjzxRIumyaAvPBjhTLB4QjEEHNKeMCDCRYkZApmI8YIuW7asSsAxyfrES/MQkQnHDePluuuus7b63Bs+nXBfUI9JMw7SfdJisLB/XBvUkxD15toIHS5cEzT8oQEKjRBkaGXj5x1jmshN/LyT7sbxa926dWrGQs4zEV3EQCgqEZKkD7Zr1y5LSKQFrk/2n+uV6zasQ0MYIRIOPvhgW+YFB2EaUnOZI4mYISiJkr300ksmtpKiUA7fhX3HMcbGvYhwY+xl8Ww6JTN+8xquK84Xj7yPn8Pzx3P+fxBjbIzrbOwbG8eVyCT7huOO64BH9htBFs7zcdgHxgaOPWsAMqdw7NlnjRmiIZFIE6IaGKRzEWhE16hDU+1KeuA84Y0dOHCgeWQdUlJOPvlkS0lhUgUm63feece8uKS5OJxbvMEsYsy5FZlgyFCfgSGFceP3BgYSxxbDhTWyMGTSAgYYDQy4LujsF3rHuZ9JU6bT4y677GIRAJENx4yoA+edTnfx8849Q0pemu4ZBAKd+EivQ2A6REAQlHTgS6NzDVHB/uIEpM17GK3meCMKunbtat+BCBbXcJrgWkFUErFkLTHGWX7n+doiYy7GEGw88t0QaTvuuKO9H3HE/cw4Te0j4hvRDYz5HTt2tOvUBRr/mywYUi097d03Po/r2B10SXC8Q3F2zDHH2D7stttu9nvajr0oERBpQohMKgftikrDs+LSSy+tqJz8KioH4IrKQbpqqxyoK5o2bVpx2223VXz11VcVlQP82neKNFA52VZ88sknFe3bt6+onFirzlvlhF9x0EEHVaxZs2btKysqKg2fikrjraLSAMg4x5zfyZMnV/zzn/9c+0rhcHy5PwYNGlRRKXwzjluluKno1atXRaWhlKr7otKgq1i6dGlFjx49bB/Dfa40AiuaNGlScd1111VUGnIVlYbd2neJEM77F198UVFpoFZUirCMY1gpGCr23HPPipUrV1ZUGr5r35EOOPeVIsfOcbjP/M7z/D1tcKy5FivFpc1BXKPhvnO8d9hhh4oXX3yxolKgrH1X+uBe4vgy5jKe/upXv6qoFFN2/cTn1do2jgFzb6UoqqgUZzZmc2wYq5s3b17RokUL2/h8/5m/8ZoNN9zQ/idzQPxY1rQxf/A/eT/He/DgwRVPPfWUjX/MDZwnIfKFatKEiIFHjajZhRdeWG0EDY/xlVdeaQXSeNEUQUsXpL7g8SRlLTw3lROqef/DtBu8qESCeM6pnJzt/dQm4MUVmeB9fvXVV62VNsfP4bhzP1x66aWpiiyzj6ReUTea1CiECCs1KGxpWyYgTRC5eOGFF6x1PT87ft5pOU5kI233DNchzWvi1yPjAY1PeEwTRH+IOM2YMcPq0IighfvocxBZHPGFpNMG9xL7RxSMyBPp49SCEm1t06aNRQCJWucyVnAMGHs4NszLpIESGWP8JguCCBob6ev+M3/jNUTROI6MBbWdb/aZ/WEsYA75xS9+YevS0RCE5Tr22muvqrqzMM1SiIZGV5cQAS7QEGfjx4+vVqDdeOONluIogZZeMBQ7depkkyiCjI1zuWLFCuvUhSHEc0zadCYMzzPvpQaC861JOBOOGUYS9T3cH6HBQ/rVvvvuazUkaTEcOb8YcyybQVts9t0FOsYY+0wHT/6eJmGZNrg/MHrpbovgDe8XzjXnnS2NgoF7uFWrVokiDeO9NqO9MeHaJHWPGimcCqQ7IkwcvgPXKXWgXLcInGJwKnAOXKwhes4++2xL0yS9mLRouiHyN4QR429jj7scV0QXx5Y6uB122MFqku+55x7bTxajps4Sccb30LwgGgNdZUKsBaPDBRoiLO69ZABngOZvffv2lUGXcnzCDY1JwCh799137XmEGrVJdPcKX4c487XWRCaIHo4fLbT52cGwIopCFC0t0SgXaBi7GL0Yvy7QAGMLMT5mzBhbF43zLrLhmBE5o1EI9UU+LvI8xioGNrWeOK3SaLyyTzjX2MLrku8Rfp80QJSXhhZnnHGGXbvhPcb34BjTROTAAw9M7fGuCY4/9xljBXVjCHuiU7NmzTJBhDCizgtBRJSNMZxxuKHnWj6P+5/9QJTx/w499FDrTIooe+qppyzqh6CkdpH90PggGhuJNCEqwUDHY4mxlpTiyCSBEcffEGjFODmWG4gGIjpxmJy94QHb4sWLMzzVwPnu3LmzRFoMRC0i949//GNGEwMgIkVKEBGLNBw3jFtS2TB2SRsjghbuLwYajUJY+1DrGtYM9wdiZvLkyWuf+QGMbtK/aOiQ5vuF+x6DPBy3/XoOr4tCgkBjgW1S7ZNa7eP8oMERTTiKfQ7iuuGcMG4QQSP1EcGGMHKR5K38EW6MK23bto2aN29u4g2HKeeTY0I0kc/hHvaN39n4GwILgc77EFzM5XwegowIGf/HRRmCEZGI44H38FlpcDiJ8kTdHUXZgxcVgUZ+PwZbdQKN2gBPcZRASz8YXu+9954ZkNQrMNQx2TJxk15zzTXXmJFw7bXXWht5zjvwGgwB6iaYrBF74nuIRP3pT3+yqImnDXK88DDTah9DJw2t112gXXHFFdHDDz+cJSi5pxFmd999d9StW7eiSRkrBIyPRHRYzgKRFhe7GLPPPfecLV2Q5kgDYwA1h+yrO2W4TunsyL3OPV9IXKARJWPNxnhaLtdor169rNU+126pO5C47piHuZc5X+5Uo0sjj9zfS5cutePCmn1sXIsrV6609zNnAym6jOMILqLBnG/qEzn3XK++8TvzgRCpApEmRLlSORFYd8ZKQz2xg1blRGhdo+gA9vXXX6uLY5FBpzm6+YXntXJCrqg0zK37IB3H6Pb44x//uOrvvLZz584VlZO+uvzFoKNZnz597Dgxffi23nrrVVx11VV2jxQaOslx3ukiV2mYZd3TnOtKIVkxYcKEim+++UbnuBa+/fbbittvv93Gx0ojtuo4/tu//Zsd3yuvvNI6PqYd9vHggw/O6OzJ9+nQoYPd64WkUqBVLF++vKJ3797WgZBj6/vI9l//9V82jlUKlFR2omwsmK8rBZsdg++++87uX+bvL7/80s4v45Nv/M7G3xiXeD3v4/2650WxoHCAKFvw1BE9wTtMFI2fec7BU0lKRZjiKE9bcYGHlBQXvKQO57hy8jbPNZ7VRYsWZUROeS11Spz/SgNp7bOCY4R3H0925dyx9tnvITqJlx+vdiHhfBKNIOL95JNPJtaV4kUfPXq0pY2lpXYurRDFIO2OFLCk9FYaV1DvR9pZ2iH7gZTMMAuC78O4H7+eGxOP+jIHxRvbAOl2XLPMQ5WCsuQjaDXBuWN85phw73oaI/M0KZOM9b7xO1uYFsn7eL/ueVEsSKSJssQF2l133WU1K6Q7hoY6xr1q0IofRDV1aaG4xgCiDgWDiIWNac8cGp+ce+/sKH4AUcv9glEZGjkcW1prs6BsoZwYnFNSMak1PPLII+28JqU4YrTR+KdYmy40Jj5G0oUPEeEpgoChy8LBv//9780ALgbnFeea/YzvK9dOoUQax5SxiI6ZpFzGG9u4U4E0fMYkRIYEhhDlg2YoUXZguGHAUatCzQqTZGiAYJzjnaMGTQKtuMGYxJMaF1ycb2pUaMcfnnvAMPJImvgeDEc8/NOnTzdDEjAWMXg333zz6PTTTzdjvRAGpN/PCDMiaAsXLkw0dhFoEyZMsIgfXnXd0zVDVJJ1oeJronGOOX6/+c1vbI2uYrlP2G8iL3G4TnDSNbZQwynI//3d736XGPV1RyERNjrNqm5SiPJDs5QoK9ygmzJlinXQSoqgIdCIoOGRlzFX3CDS2rdvn+U9xxiiqciHH36Ycf6Ba6BHjx72XvE9HCOOF1t4vDDQWYuuUE0jPNqDkTtw4EBLXUVQuMGNUUtaHo0WiAJ27dpVTpcc8CYWSWmOnHPSBn/7298WlXBgP9ni555rhWso/I75BscQcw/zDHNR/Bj7PISjUGm5QpQvmqlE2RAKNFIc4xE0jHKiAUTXtA5aacD5w0CPCy6EBlE0IkOk7zkYcB55kyH/AwgfjlVSvczRRx9tQqixjUjuXe5hUsGI5CEqkgQadTwsmOsRNBm7NcO9gWihg2dSmiNj5DnnnGOPxeTI4H6m7Xr8/DMvNGYkza/b888/v2o9zlCg+TGWo1AIoTtflAVMwBiYtAgn/786gcbEqTb7pYMbZoi10DjDECWKRmpcGBlCnGHUFyIqlGYQP9TMEGFxOKYYkLvsskujp7yxH9QScr+OHDkya9FfzjVRnm222cYWyCWCJmO3dhALjJO0eWdB5aQ0RyJoRJqLJc3R4dzjeItfA8wNjSXSXKANHTrUUm8Rw+H44/MQc5QchUIIzVii5GHypUaFtWeY/OKLhDIxMhkycZ544omaGEsIDEvOJUItNM5Ik1uyZIkZTaFxhuFJxzqJtB/AiFyzZo1tcUFLKlbTpk0b7X7xe/mjjz6yKMP48eOzUpbZF5wsCDPqThFqquepHT+2M2fOtEV941FTopLUoLFeWrEK3qRrwL9j+F3zAXMOzgTmGdJzEWhhDZoLNLI8WCtNjkIhhEYAUdIw8eINplaFVtFxgYZB5wKNyVECrfTA+PFomuMpTmGaESA81DQkE4QsDSTC+wYw2omiNVbbfQxaUsOoi0Mcvv7664mGLvcwKZhE0GhqUohUzGKE8/uXv/wlGjZsWJbw5b6giQWLvhdbmmMa4Ngy97hAqy7FEScir9E8JIQAiTRR0pAWtXjx4uhXv/qV1azE07WYDPFaukCT8VF6cJ5pY52L0cP5p4ZNBtIPcM8QRQvvHURPY0YdEQwIMlLEiKDRaj/ewZH98EgE66BxHqmZE7XD8f3ss8+iiy++uFpH1nnnnWdNeIrZgZEULeNa9i0fcN8w95Cam9QkJBRovuac5iEhBEikiZKFyRGDA6ON9KiwvoI0EtJJMPiYHDUxli6c63i6YxIYo7Rp32yzzZRmFEAk7dlnn81KKeQ4NWnSJO+CFsFAHc+YMWNMKMTvZUCMcY7phkdLczrjNYZ4LAW8Q+bdd99t7fbjYpxI6RFHHBH179+/6NNGEUhxuNeJEubje3Gdcr3iCKxOoCGAlWovhEhClogoSTDsyP9n4osXwLtAI2WKTo4SaKWNe8lrE15cAzREwLgvZkO0IcGA/9vf/mZbPP2NtZvyGVXxVGWMXLo3ItLiDX84T6QzEjW7+eabFYmoIwgGas/ofsnx4+dQRCB+aaQzYsQIGzOLWUDwvRCZ4fcDxgXfGgquXSK9NS2u7pFfnApKtRdCJCGRJkoO76BFiuMbb7yRUQCPUUfR+/7772+LhMrjXvpgfGEM1WaEITiIDul6+AFE2ttvv50h0CDfqY4Ysxi1GLcDBw6MJk+enFUnxfnkXmaNtkceeSTq3bt30QuJxsSFBI1CaAVPNC0uxL0OrRTGSa7ld955J6OGEZgTGjKSFl67Bx54oNVDJ6XmckyvvPJKpdoLIapFIk2UFBgZGBssVB0XaOAdypgcqVMq5voKkRsY7e3atatVpPE6am5kLP0ADo8vvvgiI3oFGJkbb7xxXu4fT7/zBaqTohCcKwxb2pQj0BBqarFfN0hrpMPpmWeeafVo4TnmHsCxQR1V586dS6K2j+9HVDb8nlwviCWup4YQaVy7XKukNnLtVlc7yf9kHTQa3EigCSGqQzOaKBl8gsQrzJpOSQKNSMldd90lgVZGYHxhjNVmhGEoUZMmg+kHcHq89NJLGREWjiPHaKeddmpwUYQBTRSc1vqkOHr9WZKRe9JJJ1mKHve0OjjWDW9mQXpoUkMlIpIcf1L1SmX5Aq5huleG1zLXcUM5ZtxBSHMbaifjxxWYc6idxEmoddCEELUhkSZKAhdorIvEQqz8HKa14AmmboW0KYw6dX0rHzAwfasO/pYv4VHMYHhS2xkathwfnBwcr4Y6Vogwrz/DwCWCg1ijttThHHHfIqS5x2kSsuGGG8rZUkc4pjRUQqDR+TapUQhNQhBppZI+ylzA9yb1MJwXEPwsucHjusBnc59cf/31du3GO2SCz0FXXXVVdNRRR9mx1VgjhKgJjRCi6MHAI6WEtCc8lPHaFfdeEkFzr7soHzA8N9lkkxpFGoYoBhTGmgynHyDF8NNPP81KNXSR1hC4g4X1zxAHvkB1PC0N8YBBTRfCgw46SA1C6gHHlPNJR1sW94+n4nk6OM0sOC9EhjgXCLlQ3BQbfG9SEPke/n1d9LPoeX2FvjsXaKxD1LGm5jbMPVy71KmpdlIIkQuyRkRRwyRJWiML29IIBAMknCA9NQrxRm0Fhp4oLzCSuEZqEl8YTETRZPRngjjDUI+LNFLEGsLIxJmCCECYIdAQavEoOOeNerOePXvaAtXeIERium4wLiIg6Gj71FNPZaWDI1gQ35deemlVp8wBAwZY45BJkyZFy5Yti1atWmURI8Qd5y58f1rh2uWaeuGFF2y/Ha4fFjtHpNXnvnfnAnMPwovHmprbkILfrVs3XbtCiJzRSCGKGgwNus9hTJAqFaaYMPHibce7Sbt9JsuaoimiNOGc+zpp1Z1/POk0wljXtKdSAuMWQxSjPDTGEWe5dMusDU8RQzSE65+F/8vvYSJnCAeMXRwtMnLrhgs0Ogl6vW4ovLn+EWg0XDrttNOiBx98MJo6dapt1157bXTqqaeaSCZadO6550Zjx46N3n33XVvkHBHP56dVsHGdvfrqq9Fzzz2X4cBDlHbs2DFq3rx5nR0OfjwfeughaxCycOHCLNHLNYogY+7x5jalUt8nhGgcNNOJooXUFbpnhQLNJ0kmXYqyqQ+gQFvey/IFo4hrgZTH6uB62X333RVJC8CIxwESGvMOx7S+xib3KBEN7l0M3DvuuCMrRQwQDtScIRyoQSMdFcNaRm7dcEFBiiMdMxFVYaTS08GJoL3yyivW8MJTHBHNvJ4On59//nn08ssvR/fff380fPhwEx9EP4m0zZ8/3/5HOAanAb4n3wWhSdTLr2WuIQQT0cK6pL/zfo4HDUjOPvtsm19qcy5Qg6bmNkKI+iCrVRQlGAOkNg4bNiz68MMPswwDomYYECeccIIEmohWrlxpW3UQQWOTSPsBDFxSt8L0rXWFz8LIJTWMqMz06dOzRAOGLAYtogxxNnjwYDUIqScINK9Bo6lSKFSAax4xQao4aaS04mdsTYIxlvOHwCYCSuojog4BxFhLhA2xxt/SINb4/0S37r333uitt97K+F5cS506dYp22GGHnK8rvjuC75lnnrF1NhGrfNfqnAs0tqHTsDoJCyHqiyxXUXRg0GHYMQnSHjw08ABBRlSENCq1OBaAUK8Jrhl1dsyE+2rp0qWJkbS6gsFMZAajlg54YYpY+Pkcf6/hIUWMSITu4fqBKOF4jxw5skqghWOlR3sYJ6mp8vXCcj3WnFMECsLlgw8+sBRJomuINdILv/zyy4xGHY0N0a25c+dG11xzTUYqIt+PawoHXy4p8FyfHvklaojTgJ/57nHnAtE5ombjxo2zJSLkXBBCrAuySERRwYSJscEkSLcuN/J8osXIY+HiP/zhD2Z0qMZIYJwh0lq0aLH2mUy4ZjCmMFol0n4AA5QUtrgTBDimuRrf3J/cp4gyxBkirbYUMQTadtttZ0a0zkndQRwhkk488cQaBRoRNm8HTyrpkCFD7Pm6Cgs+m/9BjdoDDzxgkTXS0F977bWCRNb4/rTBZ6FuruEwGkyU9rDDDov22GOPGr8n++tC9/HHH7fvQ30zojT8Lvzswo/GIFy7RCXlXBBCrCua/UTRwGSIR3PWrFnR6NGjs1J3mHzbtGljAq5169byYIoqli9fbjU1SWBINVS3wlKCe4tUubhI43ki2bkY3V4P9cQTT5jh/vzzz5uRG0+h5F7FqULrdy1QXX84J4hfRDDii3TSmgQaIs7FBOeADARS9BhHmzRpYiKZ1+d6Hvg/jNG0pKdRh6dBIta4Drgecrlu1gUXVtSbLVmyJCPN0TtYsk81pcF7Wu6CBQuskQobKbrx1FyHa5f/R/dRosByLgghGgKNIqJowDvKpIt3NG7oETFjomQttB133FGt9kUGdHBDXCQZiBihDbnuV6nA8eI+Cx0hwO8Y3PHnQ/ibp4iNGDHCFkbmZ54L34fxH9afIdK4j+VgqTscVyKWb7zxhtXi8hh3ZPk4STMWREUY7UFUIFxIfcQRhrPr2GOPtYgmoo735irW+J+IRRqOEFmj/pBmI/PmzTMBla80SAQZETS6WMbXgeP+5vvedtttUcuWLROzLDwiSJ3z7bffbiKTKFo8dZPj4FuzZs3su1188cV2Hcu5IIRoKCTSRFGABxavPgKNSTj0jmJkMPmSRtWlSxe1ORYZ1GYMukhTJC0TjltSxIzfaTBR3XF1Q5coDkYu3Rs95S0EUUDEgXWqiEBoger646IYcYUgRqCFdVjgAo0mIWEELcTPSdOmTaN99903uvrqq6NHH33UBAjt6l2s5YpH1kiDdNFDVIqaNQQcQi4UkfWF7+kRRDouxteB8zli6NChietl+jW7evXqqv3EuYBjwVPqQzgGpEjvt99+0bRp06LjjjuuzsdGCCFqQyJNpB4mUIxFWhlTCM5k7Lj3l1oXPMAYGBJoIg7pjtWBAUe6o8RBNklCDIOV5+OGqxu6XpfEPZm0ODW40UztDgJNi/zWHx8fWayZ9eYWL15sY2R47ohM0mYfgXb00UcnCrQQzgOpgQgRUsepVXOxRirkRhttVKflEPzaIELFwtiIILZnn33WukQSmUXE10ew+fefPXu2XXPUKvO//LP4nj5HIBB9juD4eFqjizManxAVo0slUWScgyEuYlkEm/mI65z0Ro5TTcdTCCHqw48qB6pkd6gQKYDLkwmXRUPxkDKZu8HHRItHFEOP1BwMBxnaIg6GGOsasRgvxlgc0pUQCkQOdP38AClev/nNb6y2KHSMYIxSu0SDBNJIuR8xsDF2H3vsMeuAR9SbCErcyAUEAyIBo5naIKU31h+OL8ed8Y86XYQF5yKc1r0OC4Hmi/rXR1BwH3EdEFkieoSoIX2R39mPUGAlmRWhoONnzjnjNwKK9Mzu3btbVJV0QTbuxZpEO/+P78p3vu+++yzqx89hWqI78ajPoxswQpXPZX+5Pt9//30Td2RhEB3mOb5n0v6zv3wWDUdoTMUxZT8lzoQQ+UIiTaQaJs05c+aYQUcqS2j0MUFus802Zizi2ZShJ5LA6Jo6dap1Z0sSaSxyTf0KdSqK5PwAKYoYo4gu7kMHA5tjxn258cYbmxOFxiBESFg3i9+TxBnv457FuOUz99xzTzN6JYzrB2IEpxXRrYkTJ5pY41p3ON4INOqk7rzzTksFR6Ct6zWOOOJ/c54Ra7TepzEIv3s0rCazIhRrwPln7Gbftthii6hv376WWsn1gYjjO5BG6PvtTgHEIdcb1xLroPF7+P0RT3xmr169rFaZa433ci0T4R0/frw1sqGhEOIz6ZoF9o/9QOAhBHv06GGfpflGCJFvJNJEamHSpCaAonMm1dCbz8SJ8UEEZJdddsmqMRDC4ToirQqhTypeCIYfSzZQy1Ndi/5SxyMSbBix3FsYxhjiRLpI6UIAhCDOEHAsEM6xIxqRFFFx+EwM5p133tkiMN5gQaK47jBlMxZ+/PHHthYXKeAce88wABfEHTp0iO6+++5o6623tjEyLpDWBb9u+N/vvvuuiSVqzRD31QmekPi+8LsLNvaVNEKalvzyl7+0dGSEEd8dYYooI/0yFIehKcPnEK099NBDLQODz+N9t9xyi63pxnxCmiXHMTxuIYg8jiG1ZtRCH3HEEeac0HUrhGgsJNJEKmHiZFLFSJwwYYJNxH6pMkH6xMnGZNyQxocoLTDgXn75ZauBoTV4CB560hwR+zRLKDcwprm3iDQ++eSTZmAjwFjolzb4HBcaKPB8CMcNY5r71LckcYahy+u4X0855ZTo1FNPtZ8RgaLuEClCFBH5pU4MoYbQCKdxxkcXxLTTR6ghLPI1RvK/XawhGEkdJEXWr4tcCfePn/3aQXDxnXjk2sHRwnXLxueH393fhygjgkYqM9c39z/Hif10YZZ0vQL/i+PFvEJ3y1//+tfRVlttZZ/JPgghRGMhkSZSCRMrdWgUwsfr0DBA6ATHekrUs2jiFDWBUXb//feb4KfOKgRjjM5spDFR01hOYKRSw0OtDo4Q0sC4zxBgpJ1RX0a04ZBDDslIE02aMpIEAMYuhi4LBxPFZGkM7l3dr/UDgcH5omEFNWhEN4l2hiBQiDhRe3bFFVdYih6COOn8NDQu1nCEkIZIV09SYtlPnm8MXKR5tIvr2cVcdaLM4X0cK65RHDekkXL8XJw1xjEUQogQxexF6mBCp80+hjMTvAs0wLNK6gvefQxAGXyiNjDOaAqQZKRhyCH0eSw3iMpgTFPPhHglEoLRzz1HFz7qmLgX/f7DCK/Opxc+jzGLsYvoPfjgg01U0BSCKIju17rDdYvTijQ9xC7por5uVwhjI10GSYFkzbnGXrPLzzspgXTaxclGvfDgwYOtwUxjiEWuQ65XjheClmsakVaTQOOaZC7BMUF65NNPP21pkXSxZGzAaSGBJoQoBBJpIlVgODK5nnXWWdYhjgnW8cmUFsl4ODFKhKgNDDSMxCSB4dGecjTCEGCsZZZUl8Nzf/zjH6N+/fqZaKtOnMXheBJ5oKEPtVCk2yHWuFdl6NYdzhGppjRmITpGm/2444rjihhDlCHOiIwi1go1PnINsD+kzdIJceTIkSZ8Tj755Kht27YW6SNq1dBwHHK9xphLiJiR4sw+Md9Q44Y469SpkzqOCiFSgUSaSBWkXDFR0owAQ9Fh4mdSZZ0bun5hBAiRCwiMZcuWJQoNjDquLbZypDoBhrOEvxGxCR0lNUHEAUFGNIJatj59+lRFIkTdwLHAWEjjJBanZtxLWljZ0xtpsEHUishlWiKW3FsIHa6BHXbYwZxrzzzzjI3vLOGAQGJMz1VYVUeu4syFWZMmTaxJEHWXpI0y1/Dz9ttvXyXO1nWfhBCiIVBNmkgNpO+sWLHC1rOiriFsp4x33he+1Xpooi5Q03jOOedYl0KM3BCMMtLxaA6AAVdOcL9Rd0Yzjy+++KLGaFlt0wRCjAgEHR9pWMGxVJpY/UAUk6734osvRpdeeqmt8Ydgi6fseWYBXQfpYNiY9Wf1hQgg1x0OOFKQaVbDmD9z5kwToR7VjV9v/jvOlFCUhY/xjddyjBCyXItE9mgexFpstPhHJHq9Wbk6aYQQ6UYiTaQCJmbSephEaauMUeIwwXqnOdrtY4gIkStEg/Dijx07NiM6Cwh+F2nlFp3F6OfYsMSF33M1TQfV/Q2DmEY+l19+ubV6b8w6qFKC88H1SZr3NddcY+l3iDVSHsNjz7FlDCRiRjMc6tQQa8UWscQJx4Zo49ojckt3SL4va2IuX77cvhMLTvMaRCi1knx/ooc8z/cmXdF/pjkN657xGn7meOI06Ny5s0XI2Lg+JcyEEMWARJooOFyCGCMsiurdHP2yZCIl2jF69OjomGOOsclZBqCoC0SJWMiaNvMYeyF41+kSSgfCchT/HI/FixdHQ4cOrVoQOF6f5iRNFdyLGLykkBEVIZomJ0rdQZgwBpIOiEBbunSpCZf4uSAqRJRyp512MscD4oPf81Hj1dggUn1DvPHdw2wKv/74e3gt+nwQRtnY+J3jwvUpUSaEKEYk0kTBwUBhcVGiaHhKwxoY0lGos6COgWL4UjBGRONSk0hDXFCXwoK55dgogOGfY+LRG9a3ItXYO+Lxd+45Nn73mqj4tMF9yrpUCF4aWJTjsawPiBCiPXSzJRKJSEOscfzDY4zoIKpEtOg3v/mN1agVQ3qjEEKI+iORJgoKBp8vWk3LZgwUB6Nk8803tzTHbt26yUMv6gXdQjGAb7vttozrC6hL4fpiXaRiSxdrSBAFRG5IMXvjjTcs3YxmKzRYIALRsmVLa04xe/bsaMyYMXZMw6mD1xDRofU6HR0L2V2wGODYIY45jrfeemt03333RStXrrRzwJgYgkBGBLdr185qK/fbbz/LKCjn61UIIcoBiTRRUDBKpk2bZnUV1KR5eg/eYU9zPPbYY5XmKOoNxjANMog+ECXyIQ/jFxHy1FNPWWe3co/Sclw8xcwjOWyeNsaGqDjqqKNMrBEBCgUFr+M+JaLGQsYu1HTf/gDHk8wBIpJvv/22iS4ag/B7mNoHYfTs8MMPt9cSPaOmSql7QghR+kikiYKBUUJHL9IcFyxYkJGKhiHCAri0laZuqNwNaFF/EBI0yDj66KOj119/3a4zDGAiPyz8S2c8mjBITNQOx27JkiUW+aZ1ebxbpkfUWCZj1KhRtvC8Gol8L84Qvhyvd955J7ruuuuil19+2SK78cYgwHin6JkQQpQ3EmmiIHDZ0c2LFDQWOw3TpyjypuseAg2hhpEnxLqAuKDlNws0k85HdGLvvfeOjj/+ePuZa07UDvcoooLa0b59+5qThWMbTiMINQQGXfVGjBhRUs0t6oOnkpI+ynj35z//2cY+jmM8tRExS/SRa5JmNoqeCSFE+SKRJgoChgvRs6RmIRgoZ555ZnTWWWcpwiEaDK4xBAWPbgxT56gobd0hIkS7dFJIiazFlzbg+HJsSVm+7LLL7D4nElROjS64zjgu1JrdfvvtJs74meeSOmjiKEDM0jr+97//fbTHHnsoeiaEEGWMRJpodLjkaBZCC2mMl7CZA4bzlltuGT399NPRFltsoQiHECmEe5joEO37SSOl0QgCOB4ZQmAgPIiqXXLJJdY6nt95vlTFWijOqM2jqygNWThe8bozwEmAeKU5C5HdU045xZxTjIWKngkhRPkikSYaHdJ8WDyXRXTXrFmT0SyEZgM33XRTdOihh5oXWQiRTlyo0fiCur6XXnrJImxJKXyIEO5numgSIafWipRInDClINY4Fogzjgfi7M4777TlDFycMcbFp1oEGEKM49KvXz8TZ+FxEUIIUd5IpIlGhcuNLo40HnjggQfMgHEw5HbddVerRWP9KnmRhUg33M84XVjna9iwYdHMmTNNqPFcHO5n7nGiREOGDDFHTNu2bU2UFGtkDfHFd+U7z58/Pxo/fnz0+OOPW3aApzXGp1i+p0cYd9ttNxNnu+++e8lHGIUQQtQNiTTRqJAS5VE02qF7FA0DjmYhLCy8zz77qFmIEEUEQgVhgkg79dRTzRHDve73dwhRIsQatafHHHOMLVbPEgiINZ5Pe40gU6anNK5atSqaPn169MQTT9i45t0ak743IML4nltttVV08sknWwSN46DURiGEEHEk0kSjwaWG8YYRx7pVYRQNUUa3vXvvvdfEmgwWIYoL0hy9xTzR8Pvvv9+6GFKHlTTNeC0WESREGrVtvXv3tgXGGQ8QLrwmDZEl9p/vgTBj++CDD6K77rrL1otbsWKFjWUIt3iqp+PibJNNNokGDx5s4oyf+Z5qXCOEECIJiTTRaOBhnjdvXnTAAQdYLZobNAgy1kIjitanTx9F0YQoUphOECuIM0TaPffcU2PTDPD0P+57BBuLYXfr1s3WWtt8881NyPF3jzY1lgOHaBjfhYgg23vvvWeRwieffNKEGWLNo4VJ06h/LxdndKz1Wlu+q+rOhBBC1IREmmg0PIo2adKkrCjaIYccEt1yyy2KoglRAiBcEDGffvqprQ3GPf/555/bc9WJNeDeR9ggzNgQadtss020//77myOH7pCIGzYiUDy6cAu3XKNvTH84i9gnHnEkMTYhvli7kRTGhQsXRk899VS0evXqKsFWXXQQ+P98BwRnmzZtLHIWijNFzoQQQuSCRJpoFPBI41Hv2bOnGTtJUTRq0TDMhBClgddusZA4y22Q5hyKtZqmH4QW4wMRNI+kIco23XTT6Oc//3nUvn17W4eNjoi8joYktLHnkS0kFG3h/+TnpUuX2pIgdKlkbJo2bZo9539HlPE9ahKXwL6xj4gzFuGn3o7MAMQZ45rEmRBCiLogkSYaBbzS55xzTvTggw9aKpSDZ1m1aEKUNqFYe+ihh6zRhtdyEb2qrpYrjgs3j6LxyO/xjdfFo2k06AjHHuD/JkXSfFqMf0Yc/o6AZBxr3rx5dNBBB9l4RpdaxJmnaAohhBB1RSJN5B1SnzDI+vfvb22q3SONgYMwo25FHR2FKH249xFrdEWkPpXmG3PmzLHnEEeIuVwFW74Ip8QkkcZzCETGKyJkrVu3jk488UQTZvxMDZqnYQohhBD1RSJN5B2ML9ZEY2006tL8ksPL3KlTJ6v3oKObjBohygOPWiHO6Ag5ZcoUa2U/Y8YMe46/sVXXlCOfxP8fooyxyVMuEWbbbrutpTSecMIJFkFzwUZkL0nYCSGEEHVFIk3kHdZDGzhwYDR16lSr73CoJ7nqqqui4447zlKDhBDlh3dRxJlDTdgbb7xhXRRp2LFkyRITa0TgeA2vZctntM2nRMQW4ovIGIvr08CEmtrtttsu6tq1q9WeIcwQb0IIIURDI5Em8grGlTcMIcXJjSs8zqQGsZ4SaySRHiSEKG9csCHMcOh89NFH0aJFi0ysffzxx9bc45NPPrEaVxdsLtqYysJHqGl68wgZj17bxjjE77yfBiWs20aN2RZbbGGbR9L89UIIIUS+kEgTeYVUprFjx0YjRoywVEcH7/Sxxx4bXX311dGGG26oFCEhRAYutjyKxiObCzM6MDKm0OafhiS8nuffffddS0FcuXJltSKN8YZGIgitrbbaykQXnSHpGkkKNngbfaJpXmOmcUoIIURjIZEm8soXX3xRtTZamOpI233WRevXr595poUQIldcwOUjkqYomRBCiDQgkSbyBoYS3mzqN3h0wwkjiEVeZ82aFbVo0UIGkRBCCCGEEAGyjkXeIDWJBgBE0FygAWlEvXr1sjQiCTQhhBBCCCEykYUs8gbF/4sXL7bHENIbia4pzVEIIYQQQohsJNJE3kCc0ZktFGnUf7hIU+tqIYQQQgghspFIE3mDjmwvvfSSpT061KNtvfXW0WabbWY/CyGEEEIIITKRSBN5gRq0L7/80oRaWI9G9zQEGusNqZ21EEIIIYQQ2UikibyAMFu2bFlWC2xEWvv27RVFE0IIIYQQohok0kReQJyxEGwYRQPE2aabbmpiTQghhBBCCJGNRJrIG99+++3an36AlvutWrVS630hhBBCCCGqQZayyBtJNWc855sQQgghhBAiG4k0kRc8YpZUexavUxNCCCGEEEL8gESayAuINK89C1MbqVH75ptvsmrVhBBCCCGEEN8jkSbyAumMtNnfeeedM5qE0JJ/yZIl9iiEEEIIIYTIRiJN5A1EWteuXe3R+de//hXNnDkz+uc//6m0RyGEEEIIIRKQSBN5A3HWrVu36Cc/+UlVyuP//M//RAsWLIhWrFihaJoQQgghhBAJSKSJvEGa46677hp17969KppG9Ozvf/97NHbsWGvRj2gTQgghhBBC/IBEmsgbRM9Y0HrIkCH26NE0Uh3/9Kc/RTfccEP09ddfK6ImhBBCCCFEwL9fVsnan4VocBBmLVq0iN56663or3/9q0XO6Oz4v//7v/bcJ598ErVr186e/+677yzKhnBbvXq1te/n/Ult/IUQQgghhChVflSh7g0iz9As5KOPPooGDBgQvfnmm9E//vEPS3tEfFGvxrbRRhtFrVu3ttch0hBnhx9+eHT55ZdHG2ywQVUUTgghhBBCiFJHIk00CggzBNrQoUOjxYsX2+/xtdJciPE8Aq558+bRuHHjor333jujjb8QQgghhBCljMITolH48Y9/HHXu3DmaOHFi1KdPn2jjjTe2OrUwlZEUSC1yLYQQQgghyh1F0kSjQuojdWdvv/12dNddd1k7flIcqUdbb731TLSxEDaPhx12WDR8+HClOwohhBBCiLJCIk00OlxyiDW6PJL2+MEHH0TNmjWLVq1aZbVp66+/vv2tadOm0U9/+tPoP//zP9e+UwghhBBCiNJHIk0UlOouP6JpQgghhBBClCMSaUIIIYQQQgiRIlToI4QQQgghhBApQiJNCCGEEEIIIVKERJoQQgghhBBCpAiJNCGEEEIIIYRIDVH0/wEAS/P5fqBk2AAAAABJRU5ErkJggg==
      description: >
        The base64-encoded data sent when a signature is captured as a Portable
        Network Graphics (PNG) file.
    SignatureFormat:
      type: string
      minLength: 1
      maxLength: 1
      example: P
      enum:
        - P
      description: |
        The data format the signature data will be in. "P" for PNG format.
    Signature:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/SignatureData'
        format:
          $ref: '#/components/schemas/SignatureFormat'
    SurchargeResult:
      type: string
      enum:
        - P
        - F
      description: |
        Result of the surcharge eligibility check:

        | Value | Description                                 |
        |-------|---------------------------------------------|
        | P     | Pass - Card is eligible for surcharging     |
        | F     | Fail - Card is not eligible for surcharging |
    RulesTransactionId:
      type: string
      readOnly: true
      maxLength: 20
      description: |
        Transaction ID for the rule check
    SurchargeTransactionResponse:
      type: object
      description: >
        Object containing surcharge information.


        **Conditional: Returned in the response if Surcharge was applied during
        the payment flow of a Commerce Engine controlled device.**
      properties:
        result:
          $ref: '#/components/schemas/SurchargeResult'
        transactionId:
          $ref: '#/components/schemas/RulesTransactionId'
        percentage:
          $ref: '#/components/schemas/SurchargePercentage'
    TransactionAuthorizationCode:
      type: string
      maxLength: 6
      example: '198399'
      description: >
        The authorization code provided by the consumer’s issuing bank. It is
        provided in a response if an online authorization or sale request is
        approved. Following a referral response, it is also specified in [Manual
        Sale](/apis/payments-platform-rest/openapi/transactions/manualsale)
        requests.
    TransactionAuthSource:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: E
      enum:
        - E
        - O
        - A
        - F
      description: >
        In a response, a code returned by the processor to indicate which host
        issued the response.


        Value  | Description       

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

        E      | Engine (Online)

        O      | Offline

        A      | APM (Online)

        F      | Payment Platform (Online)
    HostResponseReasonCode:
      type: string
      maxLength: 3
      example: '04'
      description: >
        Returns a response code from the host.


        Value |Category|Description

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

        04    |      1 | Pick Up Card

        07    |      1 | Pick Up Card, Special Condition

        12    |      1 | Invalid Transaction

        15    |      1 | No Such Issuer

        41    |      1 | Lost Card

        43    |      1 | Stolen Card

        46    |      1 | Closed Account        

        57    |      1 | Trans. not Permitted to Cardholder

        R0    |      1 | Stop Payment Order

        R1    |      1 | Revocation of Auth Order

        R3    |      1 | Revocation of all Authorization 

        03    |      2 | Invalid Merchant

        19    |      2 | Re-enter Transaction

        51    |      2 | Not sufficient funds

        59    |      2 | Suspected Fraud

        61    |      2 | Exceeds approval amount limit

        62    |      2 | Restricted Card (card invalid in region or country)

        65    |      2 | Exceeds withdrawal frequency limit

        75    |      2 | Allowable number of PIN-entry tried exceeded

        78    |      2 | Blocked, first used

        86    |      2 | Cannot Verify PIN

        91    |      2 | Issuer or switch inoperative

        93    |      2 | Transaction cannot be completed - violation of law 

        96    |      2 | System malfunction

        N3    |      2 | Cash service not available

        N4    |      2 | Cash request exceeds issuer of approved limit

        14    |      3 | Invalid Account

        54    |      3 | Expired card or expiration date missing

        55    |      3 | PIN incorrect or missing

        70    |      3 | PIN data required

        82    |      3 | Negative Online CAM, dCVV, iCVV, or CVV results

        1A    |      3 | Additional customer authentication required

        N7    |      3 | Decline for CVV2 Failure

        05    |      4 | Do not honor

        06    |      4 | General error 

        08    |      4 | Honor MasterCard with ID

        13    |      4 | Invalid amount 

        21    |      4 | Invalid amount

        30    |      4 | Format error

        39    |      4 | No credit account

        52    |      4 | No checking account

        53    |      4 | No savings account

        58    |      4 | Transaction not permitted-Terminal

        63    |      4 | Security violation 

        66    |      4 | Card Acceptor call Acquirer’s security dept

        67    |      4 | Hard capture (requires ATM pick-up)

        68    |      4 | Response received too late

        71    |      4 | PIN Not Changed

        76    |      4 | Unsolicited reversal

        77    |      4 | Invalid Data including AVS failures.

        79    |      4 | Already reversed at switch

        80    |      4 | No Financial impact

        81    |      4 | Cryptographic error 

        92    |      4 | Unable to route transaction

        94    |      4 | Duplicate Transaction

        B1    |      4 | Surcharge amount not permitted on debit cards or
        EBTfoodstamps

        B2    |      4 | Surcharge amount not supported by debit network issuer 

        CV    |      4 | Card Type VerificationError

        EA    |      4 | Acct Length Err

        EB    |      4 | Check Digit Err

        EC    |      4 | CID Format Error

        HV    |      4 | Hierarchy Verification Error

        N0    |      4 | Force STIP

        P5    |      4 | PIN Change/Unblock failed

        P6    |      4 | New PIN not accepted

        Z3    |      4 | Unable to go online; offline-declined

        \-38  |      4 | The transaction has been denied by the Gateway because
        3D secure Authentication failed. Reason: {}<br><br>Note: The “Reason”
        part is optional and may appear according to detected reason. |

        D2    |      4 | Decline Retry Later


        All other, generic declines may be classified as a Category 4 response
        code.
    HostResponseReasonDescription:
      type: string
      maxLength: 73
      example: Pick Up Card
      description: |
        Returns a description from the host.
    HostResponseReattemptPermission:
      type: string
      maxLength: 40
      example: Reattempt not permitted
      description: >
        Returns one of the following values:


        Value                                   |Description

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

        Reattempt not permitted                 | Returned when the reasonCode
        returned is classified as a Category 1 response code.

        Reattempt permitted 15 times in 30 days | Returned when the reasonCode
        returned is classified as a Category 2 or Category 3 response code.

        Reattempts permitted                    | Returned when the reasonCode
        returned is classified as a Category 4 response code.
    HostResponse:
      type: object
      description: |
        Returns the response code detailing why the transaction was declined. 

        **Notes:**
          - **For Visa, the response codes are categorized, detailing how declined transactions may be re-attempted for approval. To avoid fees, merchants are responsible for preventing additional attempts based on  the information returned.**
          - **Support for this field is dependent on the processor. Our demo environment does not return this field in the response.**
      properties:
        reasonCode:
          $ref: '#/components/schemas/HostResponseReasonCode'
        reasonDescription:
          $ref: '#/components/schemas/HostResponseReasonDescription'
        reattemptPermission:
          $ref: '#/components/schemas/HostResponseReattemptPermission'
    TransactionResponseCode:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - A
        - C
        - D
        - e
        - f
        - P
        - R
        - X
        - S
        - I
      description: >
        Code indicating the Shift4 host response.        


        Value  |
        Description                                                                          
        | Details

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

        A      |
        Approved                                                                             
        | The transaction is approved.

        C      |
        Approved                                                                             
        | The transaction is approved without requiring additional authorization
        because it is less than or equal to a ceiling amount. (The ceiling
        amount is the original authorization amount multiplied by the tolerance
        per the merchant’s settings with Shift4.)

        D      |
        Declined                                                                             
        | The transaction is declined. <b>Note: Shift4 automatically declines
        AVS/CSC failures if the [POSHANDLEAVSFAIL Api
        Option](/guides/appendices/api-options#poshandleavsfail) was not sent in
        the request.</b>

        e      |
        [Error](/guides/appendices/error-codes)                                              
        | There is an error condition.

        f      | [AVS or CSC
        failure](/guides/response-handling/understanding-avs-and-csc-verification)|
        An AVS or CSC failure has occurred (credit card only). <b>Note: This
        value will only be returned if the [POSHANDLEAVSFAIL Api
        Option](/guides/appendices/api-options#poshandleavsfail) was sent in the
        request.</b>

        P      | [Partial
        approval](/guides/advanced-concepts/partial-approval)                       
        | A partial approval has occurred.  Check `amount.total` for the
        approved amount.

        R      | Voice
        referral                                                                       
        | The transaction requires a voice referral.

        [blank]| Status is
        unknown                                                                    
        | The approval status is unknown.

        X      | Expired
        card                                                                         
        | There is an error condition due to the card being expired.

        S      | SCA Online PIN
        required                                                               |
        The contactless EMV transaction requires strong customer authentication
        to continue. The terminal must gather the online PIN if supported by the
        device form factor and CVM list then resubmit the transaction request.

        I      | SCA Interface switch
        required                                                         | The
        contactless EMV transaction requires strong customer authentication to
        continue. The terminal must look at the form factor indicator to
        determine if the transaction should be declined, switched to EMV contact
        or tapped again using CDCVM.

        J      | Soft decline after exemption
        request                                                  | Transaction
        was soft declined. Returned when requesting an exemption by sending
        `transaction.exemptionAction = 02` and the card issuer rejects the
        exemption.
    TransactionRetrievalReference:
      type: string
      readOnly: true
      maxLength: 12
      example: 402F9H0230S0
      description: >
        Reference retrieval number assigned by the authorizing agency. This
        value is printed on some receipts.
    TransactionSaleFlag:
      type: string
      maxLength: 1
      readOnly: true
      example: S
      enum:
        - A
        - C
        - S
      description: >
        Specifies a transaction is a sale (‘S’) or credit (‘C’).  In an [Invoice
        Information](/apis/payments-platform-rest/openapi/transactions/getinvoice)
        request, an 'A' may be returned to differentiate an authorization from a
        sale.
    AVSPostalCodeVerified:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Identifies whether the ZIP/postal code was verified (‘Y’) or not (‘N’)
        in an AVS check with a processor.
    AVSResult:
      type: string
      minLength: 1
      maxLength: 1
      example: X
      enum:
        - A
        - E
        - G
        - 'N'
        - R
        - S
        - U
        - W
        - X
        - 'Y'
        - Z
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
      description: >
        Identifies the response code returned from an Address Verification
        System (AVS) check with a processor.


        Value|Description

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

        A    | Street address matched, but ZIP/postal code did not match.

        E    | Error (AVS data is invalid or not allowed).

        G    | Card issuer does not participate in AVS.

        N    | No street address and no ZIP/postal code match.

        R    | Card issuer system is unavailable.

        S    | AVS service not supported.

        U    | Street address information unavailable.

        W    | Street address did not match, but ZIP/postal code matched.

        X    | Street address and 9-digit ZIP/postal code matched.

        Y    | Street address and 5-digit ZIP code matched.

        Z    | Only the ZIP/postal code matched.

        1    | Cardholder name and ZIP match

        2    | Cardholder name, address, and ZIP match

        3    | Cardholder name, address match

        4    | Cardholder name matches

        5    | Cardholder name incorrect, ZIP matches

        6    | Cardholder name incorrect; address and ZIP match

        7    | Cardholder name incorrect; address matches

        8    | Cardholder name, address, and ZIP do not match
    AVSStreetVerified:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Identifies whether the street number was verified (‘Y’) or not (‘N’) in
        an AVS check with a processor.
    AVSValid:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Simplified AVS result based on the merchant’s list of accepted responses
        as configured with Shift4: (‘Y’) if accepted or (‘N’) if not accepted.
    AVS:
      type: object
      readOnly: true
      properties:
        postalCodeVerified:
          $ref: '#/components/schemas/AVSPostalCodeVerified'
        result:
          $ref: '#/components/schemas/AVSResult'
        streetVerified:
          $ref: '#/components/schemas/AVSStreetVerified'
        valid:
          $ref: '#/components/schemas/AVSValid'
    RiskTranId:
      type: string
      example: DDWT0P3LG6LL
      description: >
        This is the unique transaction ID for this response from the 3rd party
        risk provider. Store this value and use it to find additional details
        about this transaction within the 3rd party risk provider's UI.
    RiskAssessmentDeny:
      type: string
      enum:
        - D
      example: D
      description: |
        This is the answer to the risk assessment.

        Value| Description
        -----|------------
        D    | Deny. Try another payment method
    RiskResponseDeny:
      type: object
      description: |
        Returned if risk assessment was performed and not approved.
      properties:
        tranId:
          $ref: '#/components/schemas/RiskTranId'
        assessment:
          $ref: '#/components/schemas/RiskAssessmentDeny'
    UniversalTokenValue:
      type: string
      maxLength: 50
      example: 97032276-5944-00000001-16985FD179D
      description: |
        An identifier for a card or payment account across all Shift4 merchants.
    UniversalToken:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/UniversalTokenValue'
    PaymentAccountReference:
      type: string
      maxLength: 35
      example: 05280D8G7Q04UZBI7NOSPGSURP130
      description: >
        The Payment Account Reference (PAR) is a value assigned by the BIN
        Controller, which is defined as either an issuer or card brand. This
        field is associated directly with the cardholder's account. 



        This value enables merchants, acquirers, and payment processors to link
        a payment token to a cardholder’s underlying payment account.
    LighthouseResponse:
      type: object
      readOnly: true
      properties:
        data:
          $ref: '#/components/schemas/LighthouseDataResponse'
    AmountCaptureRequest:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with a $20 tip and $8 tax would be `128.00` in the `total` field,
        `20.00` in the `tip` field and `8.00` in the `tax` field.
      required:
        - total
      properties:
        cashback:
          $ref: '#/components/schemas/AmountCashback'
        iiasAmounts:
          $ref: '#/components/schemas/IIASAmountsArray'
        surcharge:
          $ref: '#/components/schemas/AmountSurcharge'
        tax:
          $ref: '#/components/schemas/AmountTax'
        taxIndicator:
          $ref: '#/components/schemas/AmountTaxIndicator'
        tip:
          $ref: '#/components/schemas/AmountTip'
        total:
          type: number
          maxLength: 14
          example: 160
          description: >
            The amount being charged for a particular transaction. If other
            amount fields are sent, they must be included in the total amount.
            Amount cannot be zero.


            {% admonition type="warning" %}
              Sending `amount.total = 0` during a /transactions/capture request will result in the transaction being voided.
            {% /admonition %}
        checkTotal:
          $ref: '#/components/schemas/AmountCheckTotal'
    AutoDistanceDriven:
      type: integer
      maxLength: 5
      example: 167
      description: |
        The amount of distance the cardholder drove the vehicle.
    AutoDistanceUnit:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - M
        - K
      description: |
        The unit of measure that corresponds to the `distanceDriven` field.

        Value|Description
        -----|-----------
        M    | Miles
        K    | Kilometers
    AutoLateAdjustment:
      type: number
      maxLength: 14
      example: 35
      description: >
        A dollar amount for late adjustment fees for an auto rental, including
        refueling charges, a surcharge, or charges for damage incurred during
        use.
    AutoNoShowIndicator:
      type: string
      minLength: 1
      maxLength: 1
      example: 'N'
      enum:
        - 'Y'
        - 'N'
      description: |
        Indicates whether or not the cardholder picked up a reserved rental car.

        Value|Description
        -----|-----------
        Y    | customer did not pick up the rental car
        N    | customer did pick up the rental car
    AutoAdditionalChargesGasoline:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    AutoAdditionalChargesLateReturn:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    AutoAdditionalChargesMileage:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    AutoAdditionalChargesOneWayServiceFee:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    AutoAdditionalChargesViolationFee:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    AutoAdditionalCharges:
      type: object
      description: >
        The codes used to provide a reason for additional charges in an auto
        rental sale. Multiple codes can be specified for the same transaction.
      properties:
        gasoline:
          $ref: '#/components/schemas/AutoAdditionalChargesGasoline'
        lateReturn:
          $ref: '#/components/schemas/AutoAdditionalChargesLateReturn'
        mileage:
          $ref: '#/components/schemas/AutoAdditionalChargesMileage'
        oneWayServiceFee:
          $ref: '#/components/schemas/AutoAdditionalChargesOneWayServiceFee'
        violationFee:
          $ref: '#/components/schemas/AutoAdditionalChargesViolationFee'
    AutoDriverLicense:
      type: string
      maxLength: 20
      example: '1889624485'
      description: |
        The cardholder's driver's license number.
    AutoDriverName:
      type: string
      maxLength: 35
      example: John Smith
      description: >
        In a sale/authorization request for an auto rental, the customer’s name
        exactly as it appears on their driver’s license.
    AutoDriverTaxNumber:
      type: string
      maxLength: 20
      example: '192012838'
      description: |
        This field contains the driver’s Tax Identification Number.
    AutoDriver:
      type: object
      properties:
        license:
          $ref: '#/components/schemas/AutoDriverLicense'
        name:
          $ref: '#/components/schemas/AutoDriverName'
        taxNumber:
          $ref: '#/components/schemas/AutoDriverTaxNumber'
    AutoRentalAgreement:
      type: string
      maxLength: 9
      example: '123203592'
      description: |
        Contract number for an auto rental agreement.
    AutoRentalCity:
      type: string
      maxLength: 18
      example: Las Vegas
      description: |
        City where rental car was picked up.
    AutoRentalCountryCode:
      type: string
      maxLength: 3
      example: '840'
      description: |
        Country where rental card was picked up.
    AutoRentalPostalCode:
      type: string
      maxLength: 9
      example: '83145'
      description: >
        Postal Code where rental car was picked up in U.S. postal abbreviation
        format.
    AutoRentalRegion:
      type: string
      maxLength: 2
      example: NV
      description: >
        Region (State) where rental car was picked up in U.S. postal
        abbreviation format.
    AutoRental:
      type: object
      description: |
        Information relating to where the rental card was picked up.
      properties:
        agreement:
          $ref: '#/components/schemas/AutoRentalAgreement'
        city:
          $ref: '#/components/schemas/AutoRentalCity'
        countryCode:
          $ref: '#/components/schemas/AutoRentalCountryCode'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        postalCode:
          $ref: '#/components/schemas/AutoRentalPostalCode'
        region:
          $ref: '#/components/schemas/AutoRentalRegion'
    AutoReturnCity:
      type: string
      maxLength: 18
      example: Las Vegas
      description: |
        City where rental car was returned.
    AutoReturnCountryCode:
      type: string
      maxLength: 3
      example: '840'
      description: |
        Country where rental card was returned.
    AutoReturnPostalCode:
      type: string
      maxLength: 9
      example: '17721'
      description: >
        Postal Code where rental car was returned in U.S. postal abbreviation
        format.
    AutoReturnRegion:
      type: string
      maxLength: 2
      example: NV
      description: >
        Region (State) where rental car was returned in U.S. postal abbreviation
        format.
    AutoReturn:
      type: object
      description: |
        Information relating to where the rental car was returned
      properties:
        city:
          $ref: '#/components/schemas/AutoReturnCity'
        countryCode:
          $ref: '#/components/schemas/AutoReturnCountryCode'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        postalCode:
          $ref: '#/components/schemas/AutoReturnPostalCode'
        region:
          $ref: '#/components/schemas/AutoReturnRegion'
    AutoCheckOut:
      type: object
      description: |
        **Conditional: Utilize this object for Auto Rental transactions**
      properties:
        distanceDriven:
          $ref: '#/components/schemas/AutoDistanceDriven'
        distanceUnit:
          $ref: '#/components/schemas/AutoDistanceUnit'
        lateAdjustment:
          $ref: '#/components/schemas/AutoLateAdjustment'
        noShowIndicator:
          $ref: '#/components/schemas/AutoNoShowIndicator'
        additionalCharges:
          $ref: '#/components/schemas/AutoAdditionalCharges'
        driver:
          $ref: '#/components/schemas/AutoDriver'
        rental:
          $ref: '#/components/schemas/AutoRental'
        return:
          $ref: '#/components/schemas/AutoReturn'
    CardOnFileTypeCapture:
      type: string
      enum:
        - U08
      example: U08
      description: >
        This field specifies the type of the card-on-file transaction.


        | Value  | Initiator  | Recurring | 3D Secure |
        Description                                                                                                                                                                                                                                                                                                                                                    
        |

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

        | U08    | Merchant   | No        | No        | Identifies a transaction
        as an Incremental COF transaction. For example, a hotel which authorized
        a customer’s card for one night at check-in might increase the
        authorization amount to cover two nights when the customer decides to
        extend their stay. Shift4 automatically detects this scenario and sends
        the appropriate value to the processor. |


        See the [Card On File
        Transactions](/guides/advanced-concepts/card-on-file-transactions)
        section for additional details.
    HotelArrivalDateTime:
      type: string
      example: '2021-04-12T15:39:01.594-07:00'
      description: >
        Arrival date and time of a guest’s hotel stay ISO8601 format including
        the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). For hotel
        transactions that are a straight sale (such as advanced deposit, no-show
        charge, and late charges), the arrival date needs to be one day before
        the sale date.
    HotelDepartureDateTime:
      type: string
      example: '2021-04-15T09:18:23.283-07:00'
      description: >
        Departure date and time of a guest’s hotel stay ISO8601 format including
        the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). For hotel
        transactions that are a straight sale (such as advanced deposit, no-show
        charge, and late charges), the departure date needs to be the day of the
        sale.
    HotelPrimaryChargeType:
      type: integer
      minLength: 1
      maxLength: 1
      example: 1
      enum:
        - 1
        - 2
        - 3
      description: |
        Guest’s transaction type at a hotel.

        Value|Description
        -----|-----------
        1    | Lodging
        2    | Restaurant
        3    | Gift Shop
    HotelSpecialCode:
      type: integer
      minLength: 1
      maxLength: 1
      example: 1
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      description: >
        This field is used to provide additional detail for lodging
        transactions. If a lodging charge does not match one of the listed
        descriptions, the default value of ‘1’ should be sent in the request.
        When a value of ‘4’ is sent, the `additionalCharges` field needs to be
        sent as well.


        Value|Description

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

        1    | No Special Code

        2    | Assured Reservation/No Show

        3    | Advance Deposit

        4    | Delayed Charge

        5    | Express Check-Out Service

        6    | Assured Reservation/Normal
    HotelAdditionalChargesGiftShop:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalChargesLaundry:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalChargesMiniBar:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalChargesOther:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalChargesRestaurant:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalChargesTelephone:
      type: string
      minLength: 1
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
    HotelAdditionalCharges:
      type: object
      description: >
        Reason codes for additional charges in a lodging sale request at the
        time a consumer checks out.
      properties:
        giftShop:
          $ref: '#/components/schemas/HotelAdditionalChargesGiftShop'
        laundry:
          $ref: '#/components/schemas/HotelAdditionalChargesLaundry'
        miniBar:
          $ref: '#/components/schemas/HotelAdditionalChargesMiniBar'
        other:
          $ref: '#/components/schemas/HotelAdditionalChargesOther'
        restaurant:
          $ref: '#/components/schemas/HotelAdditionalChargesRestaurant'
        telephone:
          $ref: '#/components/schemas/HotelAdditionalChargesTelephone'
    HotelRoomRatesNights:
      type: integer
      maxLength: 2
      example: 2
      description: |
        The number of nights being charged at this rate.
    HotelRoomRatesRate:
      type: number
      maxLength: 14
      example: 159.95
      description: |
        The per night room rate.
    HotelRoomRates:
      type: object
      properties:
        nights:
          $ref: '#/components/schemas/HotelRoomRatesNights'
        rate:
          $ref: '#/components/schemas/HotelRoomRatesRate'
    HotelRoomRatesArray:
      type: array
      items:
        $ref: '#/components/schemas/HotelRoomRates'
      example:
        - nights: 2
          rate: 159.95
        - nights: 3
          rate: 125.38
      description: |
        Room rates broken down by rate and number of nights.
    HotelCheckOut:
      type: object
      description: |
        **Conditional: Utilize this object for Hotel transactions**
      properties:
        arrivalDateTime:
          $ref: '#/components/schemas/HotelArrivalDateTime'
        departureDateTime:
          $ref: '#/components/schemas/HotelDepartureDateTime'
        primaryChargeType:
          $ref: '#/components/schemas/HotelPrimaryChargeType'
        specialCode:
          $ref: '#/components/schemas/HotelSpecialCode'
        additionalCharges:
          $ref: '#/components/schemas/HotelAdditionalCharges'
        roomRates:
          $ref: '#/components/schemas/HotelRoomRatesArray'
    transactions_capture_token_gtv:
      title: GTV Token
      required:
        - dateTime
        - amount
        - card
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        amount:
          $ref: '#/components/schemas/AmountCaptureRequest'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        clerk:
          $ref: '#/components/schemas/Clerk'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              type: object
              description: >
                **Conditional: Send this object only if the capture amount
                exceeds the authorized amount.**


                See the [Card On File
                Transactions](/guides/advanced-concepts/card-on-file-transactions)
                section for more information.
              properties:
                type:
                  $ref: '#/components/schemas/CardOnFileTypeCapture'
                transactionId:
                  $ref: '#/components/schemas/CardOnFileTransactionId'
                transactionLinkId:
                  $ref: '#/components/schemas/CardOnFileTransactionLinkId'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'N'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'N'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_capture_token_legacy:
      title: Legacy TrueToken
      required:
        - dateTime
        - amount
        - card
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        amount:
          $ref: '#/components/schemas/AmountCaptureRequest'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        clerk:
          $ref: '#/components/schemas/Clerk'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              type: object
              description: >
                **Conditional: Send this object only if the capture amount
                exceeds the authorized amount.**


                See the [Card On File
                Transactions](/guides/advanced-concepts/card-on-file-transactions)
                section for more information.
              properties:
                type:
                  $ref: '#/components/schemas/CardOnFileTypeCapture'
                transactionId:
                  $ref: '#/components/schemas/CardOnFileTransactionId'
                transactionLinkId:
                  $ref: '#/components/schemas/CardOnFileTransactionLinkId'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'N'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'N'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    CardToken:
      type: object
      description: |
        **Conditional: Send this object when using a card on file.**
      properties:
        value:
          $ref: '#/components/schemas/CardTokenValue'
    AmountTipBasis:
      type: number
      maxLength: 14
      example: 130
      description: >
        The amount Commerce Engine will use to calclulate the tip percentage
        amounts on the tip screen. This is an optional field that will be used
        instead of `amount.total` in a scenario where the percentage
        calculations must be made on an amount other than the total amount. 


        For example, you have a $130 check and you make an initial payment of
        $30 using a gift card leaving a $100 remaining balance. When you process
        the remaining balance and you want to calculate the tip percentages
        based on the original $130 check total you would send `amount.total =
        100` and `amount.tipBaiss = 130`
    AmountObjectCommerceEngineSale:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with a $20 tip and $8 tax would be `128.00` in the `total` field,
        `20.00` in the `tip` field and `8.00` in the `tax` field.


        Note: For merchants that are configured to allow multiple currencies,
        the amount  fields can specify up to three decimal places. However, the
        number of decimal  places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
        - tax
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
        tax:
          $ref: '#/components/schemas/AmountTax'
        taxIndicator:
          $ref: '#/components/schemas/AmountTaxIndicator'
        cashback:
          $ref: '#/components/schemas/AmountCashback'
        iiasAmounts:
          $ref: '#/components/schemas/IIASAmountsArray'
        tip:
          $ref: '#/components/schemas/AmountTip'
        tipBasis:
          $ref: '#/components/schemas/AmountTipBasis'
        checkTotal:
          $ref: '#/components/schemas/AmountCheckTotal'
    transactions_sale_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectCommerceEngineSale'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_sale_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectCommerceEngineSale'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_sale_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          terminalId: '1742'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    LighthouseDataRequest:
      type: string
      example: >-
        eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
      description: >
        **Conditional: Send only when processing SkyTab transactions.**


        Base64 encoded JSON formatted data that will be passed through to
        Lighthouse for SkyTab transactions. This data will contain variable
        information.
    LighthouseRequest:
      type: object
      writeOnly: true
      properties:
        data:
          $ref: '#/components/schemas/LighthouseDataRequest'
    transactions_sale_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        apiOptions:
          - ALLOWPARTIALAUTH
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMV'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - customer
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
            exemptionAction:
              $ref: '#/components/schemas/TransactionExemptionAction'
            exemptionReason:
              $ref: '#/components/schemas/TransactionExemptionReason'
        card:
          type: object
          required:
            - entryMode
            - number
            - expirationDate
            - securityCode
          properties:
            entryMode:
              type: string
              minLength: 1
              maxLength: 1
              enum:
                - M
              example: M
              description: >
                The method used to capture a payment card in an
                authorization/sale request. 


                Value|Description

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

                M    | Manual Entry
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          type: object
          required:
            - postalCode
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
            emailAddress:
              $ref: '#/components/schemas/CustomerEmailAddress'
            ipAddress:
              $ref: '#/components/schemas/CustomerIpAddress'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        lighthouse:
          $ref: '#/components/schemas/LighthouseRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
          securityCode:
            indicator: '1'
            value: '333'
          type: VS
        clerk:
          numericId: 1576
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        lighthouse:
          data: >-
            eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_3dsecurei4Go:
      title: Wallet/3D Secure Using i4Go
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - extendedCardData
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        extendedCardData:
          $ref: '#/components/schemas/ExtendedCardData'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        extendedCardData: >-
          eyJjYXJkQnJhbmRUb2tlbiI6eyJyZXF1ZXN0b3JJZCI6IjA0MDAxMDAzMDI3MyJ9LCJ0aHJlZURTZWN1cmUiOnsicHJvZ3JhbVByb3RvY29sIjoxLCJlY29tbUluZGljYXRvciI6NywieGlkIjoiRkU4OTRBN0NDNzI3NDVCRTIyRThBRkMzNjE2OUM2NUI5QkIwMjIxM0NGMTFBNDAzMTI0MjBDNUQ0MDU0RDY5QyIsImNyeXB0b2dyYW0iOiJCRC91UWZVQU9mMythTVVDbHV0eE1BQUNBQUE9Iiwic2VjdXJpdHlMZXZlbEluZGljYXRvciI6MjQxLCJhdXRoZW50aWNhdGlvblNvdXJjZSI6MSwid2FsbGV0SUQiOjEwM319
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_3dsecurecardnumber:
      title: 3D Secure Using Card Number
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_3dsecuretoken_gtv:
      title: 3D Secure Using GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_3dsecuretoken_legacy:
      title: 3D Secure Using Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecure'
        cardBrandToken:
          $ref: '#/components/schemas/CardBrandToken'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          authenticationSource: '2'
          cavvResult: '2'
          authenticationValue: Y2FyZGluYWxjb21tZXJjZWF1dGg=
          tavvResult: '2'
          directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
          walletID: '327'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_applepay:
      title: Apple Pay
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
        - cardBrandToken
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecureWallet'
        cardBrandToken:
          type: object
          properties:
            requestorId:
              $ref: '#/components/schemas/CardBrandTokenRequestorID'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          authenticationSource: '1'
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          walletID: '103'
        cardBrandToken:
          requestorId: '012345678901'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_sale_googlepay:
      title: Google Pay
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - threeDSecure
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/Amount'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        threeDSecure:
          $ref: '#/components/schemas/ThreeDSecureWallet'
        customer:
          $ref: '#/components/schemas/Customer'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        threeDSecure:
          authenticationSource: '1'
          cryptogram: AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
          ecommIndicator: '5'
          securityLevelIndicator: '241'
          xid: hq0BA9EAAAGXIJcAGAAAABKU0+s=
          programProtocol: '2'
          walletID: '216'
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    TaxFree:
      type: object
      description: >
        Returned when the merchant is configured for tax-free processing.
        Contains card and transaction details for use with Global Blue's
        tax-free shopping APIs.
      properties:
        maskedPAN:
          type: string
          example: 476173******0043
          description: |
            The masked pan containing the first 6 and last 4 digits.
        cardCountry:
          type: string
          example: '124'
          description: |
            Card issuing country in ISO 3166-1 (3 numeric digits) format
        cardBrand:
          type: string
          enum:
            - VISA
            - MASTER
            - DINERS
            - JCB
            - AMEX
            - CUP
          description: |
            Card brand

            | Value  | Decription                          |
            |--------|-------------------------------------|
            | VISA   | Visa Credit/Debit
            | MASTER | Mastercard Credit/Debit and Maestro |
            | DINERS | Discover/Diners                     |
            | JCB    | JCB                                 |
            | AMEX   | American Express                    |
            | CUP    | Unionpay Credit/Debit               |
        cardType:
          type: string
          enum:
            - CreditCard
            - DebitCard
            - Prepaid
          description: |
            Card type
        expiryMonth:
          type: string
          example: '12'
          description: |
            Expiration month
        expiryYear:
          type: string
          example: '31'
          description: |
            Expiration year
        cardholderName:
          type: string
          example: TaxFree Shopper
          description: |
            Cardholder name
        pspReferenceNumber:
          type: string
          example: 112215bf-93a3-4856-b1ca-23d175dd2fa9
          description: |
            Shift4 transaction reference number shared with Global Blue.
    AmountRefund:
      type: object
      required:
        - tax
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
        tax:
          $ref: '#/components/schemas/AmountTax'
    TransactionOriginalInvoice:
      type: string
      maxLength: 10
      example: '192029'
      description: >
        The invoice number from the original sale. Used to link the refund to
        the original sale.


        **Note: For US and Canadian processing: Although the invoice number is
        sent as a JSON string it is a numeric value. No alpha characters are
        allowed.**


        **For processing outside of the US and Canada alpha characters are
        allowed.**
    AirlineCreditReasonIndicator:
      type: string
      maxLength: 1
      enum:
        - A
        - B
        - C
        - O
        - P
      example: P
      description: >
        Indicates the reason for a credit to the cardholder. This field should
        contain spaces or one of the below codes.


        Value  | Description 

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

        A      | Passenger transport ancillary purchase cancellation

        B      | Airline ticket and passenger transport ancillary purchase
        cancellation

        C      | Airline ticket cancellation

        O      | Other

        P      | Partial refund of airline ticket
    AirlineRequestRefund:
      type: object
      description: |
        **Conditional: Utilize this object for Airline transactions**
      required:
        - carrierCode
        - carrierName
        - creditReasonIndicator
        - conjunctionTicketIndicator
        - documentType
        - electronicTicketIndicator
        - internetIndicator
        - issueDate
        - numberOfCities
        - numberOfCarriers
        - numberOfPassengers
        - passengerArrivalDate
        - passengerDepartureDate
        - passengerNameRecord
        - restrictedTicketIndicator
        - ticketChangeIndicator
        - ticketTranType
        - tickets
        - flightLegs
        - typeIndicator
      properties:
        carrierCode:
          $ref: '#/components/schemas/AirlineCarrierCode'
        carrierName:
          $ref: '#/components/schemas/AirlineCarrierName'
        conjunctionTicketIndicator:
          $ref: '#/components/schemas/AirlineConjunctionTicketIndicator'
        creditReasonIndicator:
          $ref: '#/components/schemas/AirlineCreditReasonIndicator'
        documentType:
          $ref: '#/components/schemas/AirlineDocumentType'
        electronicTicketIndicator:
          $ref: '#/components/schemas/AirlineElectronicTicketIndicator'
        internetIndicator:
          $ref: '#/components/schemas/AirlineInternetIndicator'
        issueDate:
          $ref: '#/components/schemas/AirlineIssueDate'
        numberOfCities:
          $ref: '#/components/schemas/AirlineNumberOfCities'
        numberOfCarriers:
          $ref: '#/components/schemas/AirlineNumberOfCarriers'
        numberOfPassengers:
          $ref: '#/components/schemas/AirlineNumberOfPassengers'
        passengerArrivalDate:
          $ref: '#/components/schemas/AirlinePassengerArrivalDate'
        passengerDepartureDate:
          $ref: '#/components/schemas/AirlinePassengerDepartureDate'
        passengerNameRecord:
          $ref: '#/components/schemas/AirlinePassengerNameRecord'
        restrictedTicketIndicator:
          $ref: '#/components/schemas/AirlineRestrictedTicketIndicator'
        ticketChangeIndicator:
          $ref: '#/components/schemas/AirlineTicketChangeIndicator'
        ticketTranType:
          $ref: '#/components/schemas/AirlineTicketTranType'
        typeIndicator:
          $ref: '#/components/schemas/AirlineTypeIndicator'
        tickets:
          $ref: '#/components/schemas/AirlineTicketsArray'
        flightLegs:
          $ref: '#/components/schemas/AirlineFlightLegsArray'
        ancillaryServices:
          $ref: '#/components/schemas/AirlineAncillaryServicesArray'
        travelAgencyCode:
          $ref: '#/components/schemas/AirlineTravelAgencyCode'
        travelAgencyName:
          $ref: '#/components/schemas/AirlineTravelAgencyName'
        exchangeTicketNumber:
          $ref: '#/components/schemas/AirlineExchangeTicketNumber'
    HotelCheckOutRefund:
      type: object
      description: |
        **Conditional: Utilize this object for Hotel transactions**
      properties:
        arrivalDateTime:
          $ref: '#/components/schemas/HotelArrivalDateTime'
        departureDateTime:
          $ref: '#/components/schemas/HotelDepartureDateTime'
    PurchaseCardRefund:
      type: object
      properties:
        customerReference:
          $ref: '#/components/schemas/PurchaseCardCustomerReference'
        destinationPostalCode:
          $ref: '#/components/schemas/PurchaseCardDestinationPostalCode'
        productDescriptors:
          $ref: '#/components/schemas/PurchaseCardProductDescriptors'
    CardPresentRefund:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Indicates whether a card was present (‘Y’) or not (‘N’) at the time the
        refund transaction took place.
    transactions_refund_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192050'
          originalInvoice: '182177'
          notes: Transaction notes are added here
    transactions_refund_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192050'
          originalInvoice: '182177'
          notes: Transaction notes are added here
    transactions_refund_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          terminalId: '1742'
        transaction:
          invoice: '192050'
          originalInvoice: '182177'
          notes: Transaction notes are added here
    transactions_refund_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192050'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          invoice: '192050'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_p2pe_idtech:
      title: P2PE - IDTECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMV'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - present
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            type:
              $ref: '#/components/schemas/CardType'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMVFallbackOnly'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_refund_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountRefund'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequestRefund'
            hotel:
              $ref: '#/components/schemas/HotelCheckOutRefund'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardRefund'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            source:
              $ref: '#/components/schemas/TransactionSource'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
            originalDate:
              $ref: '#/components/schemas/TransactionOriginalDate'
        card:
          type: object
          required:
            - number
            - expirationDate
            - present
          properties:
            entryMode:
              type: string
              minLength: 1
              maxLength: 1
              enum:
                - M
              example: M
              description: >
                **Conditional: The Card Entry Mode should be sent in an initial
                request; in subsequent requests, it should be left blank or not
                sent.**


                The method used to capture a payment card in an
                authorization/sale request. 


                Value|Description

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

                M    | Manual Entry
            present:
              $ref: '#/components/schemas/CardPresentRefund'
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
        customer:
          type: object
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 10.05
          total: 121.83
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
          type: VS
        clerk:
          numericId: 1576
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
        transaction:
          invoice: '192029'
          originalInvoice: '182177'
          notes: Transaction notes are added here
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    CardResponse:
      type: object
      properties:
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDateResponse'
        levelResult:
          $ref: '#/components/schemas/CardLevelResult'
        number:
          $ref: '#/components/schemas/CardMaskedNumber'
        present:
          $ref: '#/components/schemas/CardPresent'
        type:
          $ref: '#/components/schemas/CardTypeResp'
        balance:
          $ref: '#/components/schemas/CardBalance'
        securityCode:
          $ref: '#/components/schemas/CardSecurityCodeResponse'
        token:
          $ref: '#/components/schemas/CardTokenResponse'
        debitType:
          $ref: '#/components/schemas/CardDebitType'
    CardResponseVoid:
      type: object
      properties:
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        number:
          $ref: '#/components/schemas/CardMaskedNumber'
        type:
          $ref: '#/components/schemas/CardTypeResp'
        token:
          $ref: '#/components/schemas/CardTokenResponse'
    TransactionManualTranId:
      type: string
      maxLength: 15
      example: '123456789012345'
      description: >
        This is typically used in a Referral. If a ManualTranID is returned by
        the issuer with the Auth code, it should be sent to the processor in the
        ManualTranid field.
    transactions_manualauthorization_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualauthorization_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualauthorization_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          terminalId: '1742'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualauthorization_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        apiOptions:
          - ALLOWPARTIALAUTH
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMV'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            estimatedDays: 5
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualauthorization_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - customer
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckIn'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckIn'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - number
            - expirationDate
            - securityCode
          properties:
            entryMode:
              type: string
              minLength: 1
              maxLength: 1
              enum:
                - M
              example: M
              description: >
                **Conditional: The Card Entry Mode should be sent in an initial
                request; in subsequent requests, it should be left blank or not
                sent.**


                The method used to capture a payment card in an
                authorization/sale request. 


                Value|Description

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

                M    | Manual Entry
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          type: object
          required:
            - postalCode
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
          securityCode:
            indicator: '1'
            value: '333'
          type: VS
        clerk:
          numericId: 1576
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
        transaction:
          hotel:
            estimatedDays: 5
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualsale_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualsale_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          tax: 15
          total: 140
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          terminalId: '1742'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
    transactions_manualsale_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: '8048471746471119'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          expirationDate: 1225
          present: 'N'
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
        clerk:
          numericId: 1576
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Cookie
              - Fries
              - Hamburger
              - Soda
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        customer:
          $ref: '#/components/schemas/Customer'
        card:
          type: object
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        apiOptions:
          - ALLOWPARTIALAUTH
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        card:
          present: 'Y'
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMV'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - device
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: E
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            pin:
              $ref: '#/components/schemas/TransactionPin'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        card:
          type: object
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardType'
        customer:
          $ref: '#/components/schemas/Customer'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: '1'
          present: 'Y'
        clerk:
          numericId: 1576
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    transactions_manualsale_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - clerk
        - transaction
        - card
        - customer
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountObjectNoSurcharge'
        clerk:
          $ref: '#/components/schemas/Clerk'
        transaction:
          type: object
          required:
            - invoice
            - purchaseCard
            - authorizationCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            manualTranId:
              $ref: '#/components/schemas/TransactionManualTranId'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            businessDate:
              $ref: '#/components/schemas/TransactionBusinessDate'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            auto:
              $ref: '#/components/schemas/AutoCheckOut'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCard'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - number
            - expirationDate
            - securityCode
          properties:
            entryMode:
              type: string
              minLength: 1
              maxLength: 1
              enum:
                - M
              example: M
              description: >
                **Conditional: The Card Entry Mode should be sent in an initial
                request; in subsequent requests, it should be left blank or not
                sent.**


                The method used to capture a payment card in an
                authorization/sale request. 


                Value|Description

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

                M    | Manual Entry
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        customer:
          type: object
          required:
            - postalCode
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
        receiptColumns:
          $ref: '#/components/schemas/ReceiptColumns'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        statementSuffix:
          $ref: '#/components/schemas/StatementSuffix'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        apiOptions:
          - ALLOWPARTIALAUTH
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
          securityCode:
            indicator: '1'
            value: '333'
          type: VS
        clerk:
          numericId: 1576
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
        transaction:
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          invoice: '192029'
          authorizationCode: '189746'
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
    tokens_add_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
      properties:
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2024-05-27T09:18:23.283-07:00'
    tokens_add_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceCommerceEngineCloud'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2024-05-27T09:18:23.283-07:00'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
    tokens_add_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
      properties:
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          terminalId: '1742'
    tokens_add_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        p2pe:
          data: >-
            027101801F2D1E00939B%*432100******1119^VS/DUAL
            TRACK^2212******?*;432100******1119=2212******?*CECE3FCE7781142BEC8D0E267AE89F5D3C7E235BF1A70E637951E8D93003E5A2586C336CA4A3B31F6639B04005BB12A716D8BC4D3AB125C27AB11A9DDC02816569D42A20B036EE5E2C71CB70565FB43B000000000000000000000000000000000000000000000000000000000000000000000000000000003434345434363138343962994950010038200415953903
          format: '01'
        apiOptions:
          - RETURNEXPDATE
    tokens_add_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          $ref: '#/components/schemas/EMV'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        apiOptions:
          - RETURNEXPDATE
    tokens_add_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        apiOptions:
          - RETURNEXPDATE
    tokens_add_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          $ref: '#/components/schemas/EMVOnguardSDE'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
        apiOptions:
          - RETURNEXPDATE
    tokens_add_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        apiOptions:
          - RETURNEXPDATE
    CardEntryModeManual:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - M
      example: M
      description: |
        The method used to capture a payment card. 

        Value|Description
        -----|-----------
        M    | Manual Entry
    P2PEDataAESMCE:
      type: string
      maxLength: 2048
      example: 86B43D77B12EA757544520C7678A05DD8B7E4770FE05F3320E9D856A7401ADEF
      description: >
        Manual card entry information encrypted with AES 128. The decrypted
        information must be in the following format:


        `pan=<PAN>|exp=<MMYY>|cvv=<CVV>`


        |Value           | Description

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

        |pan             | Credit card number

        |exp             | Expiration date in MMYY format

        |cvv             | Card security code (optional)


        The unencrypted data must be padded with \x00 to be a muliple of 16
        before encrypting.


        Example: `pan=4761730000000011|exp=1226\x00\x00\x00`
    P2PEFormatAES:
      type: string
      minLength: 2
      maxLength: 2
      enum:
        - '07'
      example: '07'
      description: |
        Classifies the type of payment device being used for P2PE.

        Value|Description
        -----|-----------
        07   | AES-128 or AES-256
    P2PEKIDAES:
      type: string
      example: AESKEY1
      description: |
        The key identifier for the key that was used to encrypt the P2PE data. 

        **Note: The encryption key will be exchanged manually per customer.**
    P2PEType07AESMCE:
      type: object
      required:
        - data
        - format
        - kid
      properties:
        data:
          $ref: '#/components/schemas/P2PEDataAESMCE'
        format:
          $ref: '#/components/schemas/P2PEFormatAES'
        kid:
          $ref: '#/components/schemas/P2PEKIDAES'
    tokens_add_p2pe_aes_mce:
      title: P2PE - AES - Manual
      type: object
      required:
        - dateTime
        - p2pe
        - card
      properties:
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryModeManual'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        p2pe:
          $ref: '#/components/schemas/P2PEType07AESMCE'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          $ref: '#/components/schemas/Customer'
      example:
        card:
          entryMode: M
        dateTime: '2024-01-31T09:18:23.283-07:00'
        p2pe:
          data: 86B43D77B12EA757544520C7678A05DD8B7E4770FE05F3320E9D856A7401ADEF
          format: '07'
          kid: AESKEY1
        apiOptions:
          - RETURNEXPDATE
    tokens_add_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              type: object
              properties:
                indicator:
                  $ref: '#/components/schemas/CardSecurityCodeIndicator'
                value:
                  $ref: '#/components/schemas/CardSecurityCodeValue'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        customer:
          type: object
          properties:
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          number: '4321000000001119'
          expirationDate: 1230
          securityCode:
            indicator: '1'
            value: '333'
        apiOptions:
          - RETURNEXPDATE
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
    ACHAccountNumber:
      type: string
      maxLength: 17
      example: '1234567890'
      description: >
        Bank Account Number. Do not include any dashes, spaces, or additional
        zeros.
    ACHRoutingNumber:
      type: string
      maxLength: 9
      minLength: 9
      example: '121000248'
      description: |
        The routing number identifying the bank.
    ACHAccountType:
      type: string
      example: PC
      minLength: 2
      maxLength: 2
      description: |
        Bank account type

        Value | Description 
        ------|---------------
        PC    | Personal Checking
        PS    | Personal Savings
        CC    | Corporate Checking
        CS    | Corporate Savings
    ACHAccountHolderName:
      type: string
      maxLength: 22
      example: John Smith
      description: |
        ACH account holder's name
    ACHAccountVerified:
      type: boolean
      example: true
      description: |
        Send as `true` if the ACH account was verified through a 3rd party.
    ACHVerificationType:
      type: string
      example: P
      enum:
        - P
        - M
        - B
      description: |
        The type of verification used to validate the account.

        Value | Description 
        ------|---------------
        P     | Prenotification
        M     | Micro Deposits
        B     | Bank Login
    tokens_add_ach:
      title: ACH
      type: object
      required:
        - dateTime
        - ach
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        ach:
          type: object
          required:
            - accountNumber
            - routingNumber
            - accountType
            - accountHolderName
            - accountVerified
            - verificationType
          properties:
            accountNumber:
              $ref: '#/components/schemas/ACHAccountNumber'
            routingNumber:
              $ref: '#/components/schemas/ACHRoutingNumber'
            accountType:
              $ref: '#/components/schemas/ACHAccountType'
            accountHolderName:
              $ref: '#/components/schemas/ACHAccountHolderName'
            accountVerified:
              $ref: '#/components/schemas/ACHAccountVerified'
            verificationType:
              $ref: '#/components/schemas/ACHVerificationType'
      example:
        dateTime: '2023-02-10T09:18:23.283-07:00'
        ach:
          accountNumber: '1234567890'
          routingNumber: '121000248'
          accountType: PC
          accountHolderName: John Smith
          accountVerified: true
          verificationType: M
    tokens_add_response_card:
      title: Card Data
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              card:
                type: object
                properties:
                  entryMode:
                    $ref: '#/components/schemas/CardEntryMode'
                  expirationDate:
                    $ref: '#/components/schemas/CardExpirationDateResponse'
                  number:
                    $ref: '#/components/schemas/CardMaskedNumber'
                  type:
                    $ref: '#/components/schemas/CardTypeResp'
                  token:
                    $ref: '#/components/schemas/CardTokenResponse'
              customer:
                $ref: '#/components/schemas/Customer'
              device:
                $ref: '#/components/schemas/DeviceOnlyTIDResponse'
              merchant:
                $ref: '#/components/schemas/MerchantResponse'
              server:
                $ref: '#/components/schemas/Server'
              universalToken:
                $ref: '#/components/schemas/UniversalToken'
      example:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            card:
              entryMode: '2'
              number: XXXXXXXXXXX2221
              token:
                value: '8038471748812221'
              type: AX
            device:
              terminalId: '1742'
            merchant:
              mid: 15877
              name: Merchant XYZ
            server:
              name: U2API01CE
    TokenValueACH:
      type: string
      maxLength: 16
      example: '9829283019231234'
      description: |
        The token representing the customer's bank account credentials.
    TokenTypeACH:
      type: string
      example: ACH
      readOnly: true
      enum:
        - ACH
      description: |
        Specifies the type of token. Value = `ACH`
    TokenACH:
      type: object
      required:
        - value
      properties:
        value:
          $ref: '#/components/schemas/TokenValueACH'
        type:
          $ref: '#/components/schemas/TokenTypeACH'
    tokens_add_response_ach:
      title: ACH
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              merchant:
                $ref: '#/components/schemas/MerchantResponse'
              token:
                $ref: '#/components/schemas/TokenACH'
              server:
                $ref: '#/components/schemas/Server'
      example:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            merchant:
              mid: 15877
              name: Merchant XYZ
            token:
              value: '9829283019231234'
              type: ACH
            server:
              name: TM01CE
    CardFourWords:
      type: string
      maxLength: 28
      example: cat blue washington enter
      description: >
        Four words that reference cardholder data (CHD). The four words can be
        entered into Shift4’ 4Word® web app separated by spaces to temporarily
        reveal CHD. In addition, the four words can be entered during an Online
        Entry or Offline Entry transaction in [Lighthouse Transaction
        Manager](https://ltm.shift4test.com/) to securely charge the
        corresponding card number.
    CardMaskedNumberGC:
      type: string
      maxLength: 32
      example: XXXXXXXXXXXX8774
      description: |
        The card number field will always be masked when returned in a response.
    CardResponseFourWords:
      type: object
      properties:
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        fourWords:
          $ref: '#/components/schemas/CardFourWords'
        number:
          $ref: '#/components/schemas/CardMaskedNumberGC'
    MerchantAddressLine1:
      type: string
      maxLength: 38
      example: 456 Fake St
      description: |
        First line in the merchant’s business address as configured with Shift4.
    MerchantAddressLine2:
      type: string
      maxLength: 38
      example: Suite 100
      description: >
        Second line in the merchant’s business address as configured with
        Shift4.
    MerchantCity:
      type: string
      maxLength: 13
      example: Las Vegas
      description: |
        City of the merchant’s business address as configured with Shift4.
    MerchantDayEndingTime:
      type: string
      maxLength: 6
      example: '010000'
      description: >
        The time the merchant’s business day ends as configured with Shift4.


        **Note: This is only applicable for merchants based in the USA. If the
        merchant is not based in the USA, this field will not be returned.**
    MerchantDefaultCurrency:
      type: string
      format: ISO 4217 3 Character Alphabetic Code
      example: USD
      description: >
        Merchant's default currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
    MerchantSupportedCurrencies:
      type: string
      format: ISO 4217 3 Character Alphabetic Code
      example: USD,EUR,GBP
      description: >
        Comma separated list of currnecies the merchant supports. See the
        [Currency Codes](/guides/appendices/currency-codes) section for details.
    MerchantIndustry:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - A
        - F
        - H
        - M
        - R
        - P
      example: F
      description: |
        Classifies the merchant type for a merchant’s account with Shift4.

        Value|Description
        -----|-----------
        A    | Auto Rental
        F    | Food & Beferage (F&B)
        H    | Hotel
        M    | Mail order/Telephone Order (MOTO) or E-Commerce
        R    | Retail
        P    | Passenger Transport
    MerchantRegion:
      type: string
      maxLength: 3
      example: NV
      description: >
        Region (State) of the merchant’s business address as configured with
        Shift4.
    MerchantPhone:
      type: string
      maxLength: 15
      example: 702-123-4567
      description: |
        The merchant’s business telephone number as configured with Shift4.
    MerchantPostalCode:
      type: string
      maxLength: 9
      example: '78402'
      description: >
        ZIP/Postal Code of the merchant’s business address as configured with
        Shift4.
    MerchantSerialNumber:
      type: string
      maxLength: 11
      example: '00000044444'
      description: |
        The serial number of the merchant's account with Shift4.
    MerchantCardTypesAccountNumber:
      type: string
      maxLength: 20
      example: '192019202'
      description: >
        The merchant’s account number as configured with Shift4. This field is
        returned in response to a [Merchant
        Information](/apis/payments-platform-rest/openapi/merchants/merchantsmerchant)
        request because the clerk is required to provide it when attempting to
        obtain a voice authorization code. This information must be displayed to
        the clerk.
    MerchantCardTypesPhoneNumber:
      type: string
      maxLength: 20
      example: 1-800-444-5566
      description: >
        The phone number a clerk must call to obtain a voice authorization code.
        This field is returned in response to a [Merchant
        Information](/apis/payments-platform-rest/openapi/merchants/merchantsmerchant)
        request. This information must be displayed to the clerk.
    VoiceCenter:
      type: object
      properties:
        accountNumber:
          $ref: '#/components/schemas/MerchantCardTypesAccountNumber'
        phoneNumber:
          $ref: '#/components/schemas/MerchantCardTypesPhoneNumber'
    MerchantCardTypes:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/CardTypeResp'
        voiceCenter:
          $ref: '#/components/schemas/VoiceCenter'
    MerchantCardTypesArray:
      type: array
      items:
        $ref: '#/components/schemas/MerchantCardTypes'
      example:
        - type: VS
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
        - type: MC
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
        - type: AX
          voiceCenter:
            accountNumber: '65168416'
            phoneNumber: 1-800-123-1126
        - type: NS
          voiceCenter:
            accountNumber: '68406848684'
            phoneNumber: 1-888-320-1640
        - type: YC
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
      description: |
        Array of Merchant Card Types
    MerchantDCCEnabled:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: |
        Determines whether the merchant has dynamic currency conversion enabled.

        Value|Description
        -----|-----------
        Y    | DCC is enabled
        N    | DCC is not enabled
    MerchantDCCSecondaryLookupDisclaimer:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Determines whether the merchant must perform a secondary rate lookup
        before capture and if a secondary disclaimer is required.


        Value|Description

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

        Y    | Yes - Secondary rate-lookup on capture, accept/decline screen,
        and larger disclaimer on printed receipt required.

        N    | No - Secondary rate-lookup, accept/decline screen, and larger
        disclaimer NOT required
    MerchantCardTypeProcessor:
      type: string
      readOnly: true
      example: TSYSVLLA
      description: |
        The processor configured for the card type.
    MerchantDCCCardTypesArray:
      type: array
      items:
        type: object
        properties:
          type:
            $ref: '#/components/schemas/CardTypeResp'
          processor:
            $ref: '#/components/schemas/MerchantCardTypeProcessor'
      example:
        - type: VS
          processor: TSYSVLLA
        - type: MC
          processor: TSYSVLLA
        - type: AX
          processor: TSYSVLLA
        - type: NS
          processor: TSYSVLLA
      description: |
        Array of DCC supported card types
    MerchantDCCObject:
      type: object
      properties:
        enabled:
          $ref: '#/components/schemas/MerchantDCCEnabled'
        secondaryLookupDisclaimer:
          $ref: '#/components/schemas/MerchantDCCSecondaryLookupDisclaimer'
        cardTypes:
          $ref: '#/components/schemas/MerchantDCCCardTypesArray'
      example:
        enabled: 'Y'
        secondaryLookupDisclaimer: 'N'
        cardTypes:
          - type: VS
            processor: TSYSVLLA
          - type: MC
            processor: TSYSVLLA
          - type: AX
            processor: TSYSVLLA
          - type: NS
            processor: TSYSVLLA
    MerchantGTVEnabled:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Indicates whether merchant is configured to support Tokenization using
        Shift4’s Global Token Vault (GTV) solution. 


        Value|Description

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

        Y    | GTV is enabled

        N    | GTV is not enabled
    MerchantGTVObject:
      type: object
      properties:
        enabled:
          $ref: '#/components/schemas/MerchantGTVEnabled'
    MerchantSurchargeEnabled:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: |
        Indicates whether merchant is configured to support Surcharging. 

        Value|Description
        -----|-----------
        Y    | Surcharging is enabled
        N    | Surcharging is not enabled
    MerchantSurchargeObject:
      type: object
      properties:
        enabled:
          $ref: '#/components/schemas/MerchantSurchargeEnabled'
    MerchantAutoCloseEnabled:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Indicates whether merchant has Auto Close enabled for transaction
        batches. 


        Value|Description

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

        Y    | Auto Close is enabled

        N    | Auto Close is not enabled
    MerchantAutoCloseObject:
      type: object
      properties:
        enabled:
          $ref: '#/components/schemas/MerchantAutoCloseEnabled'
    MerchantCardTypeRangesLower:
      type: string
      example: '40000000'
      description: |
        Lower limit for the card range
    MerchantCardTypeRangesUpper:
      type: string
      example: '49999999'
      description: |
        Upper limit for the card range
    MerchantCardTypeRangesLengths:
      type: string
      example: 13,16,17,18,19
      description: |
        Comma separated list of possible lengths for the card range.
    MerchantCardTypeRangesLuhnCheck:
      type: boolean
      example: true
      description: |
        Specifies whether or not the card range will pass the luhn check.
    MerchantCardTypesRangesObject:
      type: object
      properties:
        lower:
          $ref: '#/components/schemas/MerchantCardTypeRangesLower'
        upper:
          $ref: '#/components/schemas/MerchantCardTypeRangesUpper'
        lengths:
          $ref: '#/components/schemas/MerchantCardTypeRangesLengths'
        lunhCheck:
          $ref: '#/components/schemas/MerchantCardTypeRangesLuhnCheck'
    MerchantCardTypesRangesArray:
      type: array
      items:
        $ref: '#/components/schemas/MerchantCardTypesRangesObject'
      description: |
        Array of card ranges
    MerchantCardTypesReturnProcessors:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/CardTypeResp'
        processor:
          $ref: '#/components/schemas/MerchantCardTypeProcessor'
        ranges:
          $ref: '#/components/schemas/MerchantCardTypesRangesArray'
        voiceCenter:
          $ref: '#/components/schemas/VoiceCenter'
    MerchantCardTypesReturnProcessorsArray:
      type: array
      items:
        $ref: '#/components/schemas/MerchantCardTypesReturnProcessors'
      example:
        - type: VS
          processor: TSYSVLLA
          ranges:
            - lower: '40000000'
              upper: '49999999'
              lengths: 13,16,17,18,19
              luhnCheck: true
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
        - type: MC
          processor: TSYSVLLA
          ranges:
            - lower: '51000000'
              upper: '55999999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '22210000'
              upper: '27209999'
              lengths: 16,17,18,19
              luhnCheck: true
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
        - type: AX
          processor: TSYSVLLA
          ranges:
            - lower: '34000000'
              upper: '34999999'
              lengths: '15'
              luhnCheck: true
            - lower: '37000000'
              upper: '37999999'
              lengths: '15'
              luhnCheck: true
          voiceCenter:
            accountNumber: '65168416'
            phoneNumber: 1-800-123-1126
        - type: NS
          processor: TSYSVLLA
          ranges:
            - lower: '60110000'
              upper: '60110999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '60112000'
              upper: '60114999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '60117400'
              upper: '60117499'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '60117700'
              upper: '60117999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '60118600'
              upper: '60119999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '62400000'
              upper: '62699999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '62820000'
              upper: '62889999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '65000000'
              upper: '65999999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '62212600'
              upper: '62292599'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '62292600'
              upper: '62379699'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '64400000'
              upper: '64999999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '62109400'
              upper: '62109499'
              lengths: 13,16,17,18,19
              luhnCheck: true
            - lower: '81000000'
              upper: '81719999'
              lengths: 16,17,18,19
              luhnCheck: true
            - lower: '36000000'
              upper: '36999999'
              lengths: 14,15,16,17,18,19
              luhnCheck: true
            - lower: '38000000'
              upper: '38999999'
              lengths: 14,15,16,17,18,19
              luhnCheck: true
            - lower: '39000000'
              upper: '39999999'
              lengths: 14,15,16,17,18,19
              luhnCheck: true
            - lower: '30000000'
              upper: '30999999'
              lengths: 14,15,16,17,18,19
              luhnCheck: true
            - lower: '20140000'
              upper: '20149999'
              lengths: '15'
              luhnCheck: true
            - lower: '21490000'
              upper: '21499999'
              lengths: '15'
              luhnCheck: true
          voiceCenter:
            accountNumber: '68406848684'
            phoneNumber: 1-888-320-1640
        - type: YC
          processor: IYC
          ranges:
            - lower: '00000001'
              upper: '09999999'
              lengths: '16'
              luhnCheck: true
          voiceCenter:
            accountNumber: '2919201'
            phoneNumber: 1-800-444-5566
      description: |
        Array of Merchant Card Types
    AmountTotalGC:
      type: number
      maxLength: 14
      example: 20
      description: >
        The amount which should be added to the card's balance.  Amount cannot
        be zero.
    AmountGC:
      type: object
      description: >
        Object containing information regarding the amount being added onto the
        card or removed from the card.
      required:
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotalGC'
        checkTotal:
          $ref: '#/components/schemas/AmountCheckTotal'
    giftcards_activate_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        transaction:
          invoice: '192029'
    DeviceComEngCloud:
      type: object
      required:
        - cloud
        - manufacturer
        - serialNumber
      properties:
        cloud:
          $ref: '#/components/schemas/DeviceCloud'
        manufacturer:
          $ref: '#/components/schemas/DeviceManufacturer'
        serialNumber:
          $ref: '#/components/schemas/DeviceSerialNumber'
    giftcards_activate_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - card
        - device
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_activate_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    CardExpirationDateGC:
      type: integer
      minLength: 3
      maxLength: 4
      format: MMYY
      example: 1230
      description: >
        **Conditional: Send in the request for manually entered or token
        transactions if the card has an expiration date. This field should not
        be specified when using an encrypted device.**


        Card expiration date in MMYY format.
    giftcards_activate_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          expirationDate: 1225
          present: 'Y'
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_activate_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          expirationDate: 1225
          present: 'Y'
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_activate_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_activate_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_activate_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    CardNumberGC:
      type: string
      maxLength: 32
      example: 2664654648774
      description: >
        The payment card number. This field will always be masked when returned
        in a response.
    CardSecurityCodeValueGC:
      type: string
      maxLength: 4
      writeOnly: true
      example: '333'
      description: >
        **Conditional: May be required for gift card transactions.**


        The three- or four-digit Card Security Code associated with gift card.
        This value may be required for requests depending on a card's settings.
        It should not be stored by the interface.
    CardSecurityCodeGC:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/CardSecurityCodeValueGC'
    giftcards_activate_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - number
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
          number: '2664654648774'
          expirationDate: 1230
        transaction:
          invoice: '192029'
    AmountTotalGCResponse:
      type: number
      maxLength: 14
      example: 20
      description: >
        For
        [Activate](/apis/payments-platform-rest/openapi/gift-cards/activate),
        [Allocate](/apis/payments-platform-rest/openapi/gift-cards/allocate) or
        [Reload](/apis/payments-platform-rest/openapi/gift-cards/reload)
        requests, this is the amount which was added to the card's balance.  


        For [Cashout](/apis/payments-platform-rest/openapi/gift-cards/cashout)
        requests, this is the amount of cash that should be provided to the
        customer.
    AmountGCResponse:
      type: object
      description: >
        Object containing information regarding the amount being added onto the
        card or removed from the card.
      required:
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotalGCResponse'
    CardTypeGCResp:
      type: string
      enum:
        - GC
        - YC
      example: YC
      description: >
        An abbreviation used to specify the type of card that was used when
        processing a transaction.


        Value| Description

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

        GC   | Gift Card

        YC   | IT’S YOUR CARD    
    CardTokenValueGC:
      description: >
        This field is used to specify a card token. Whenever CHD is sent in a
        request, a card token will be returned in this field. Your interface
        should be designed to store this card token for future use. The latest
        card token received should be used in any subsequent request that
        references the same card data.
      type: string
      maxLength: 16
      example: 87743q5p3ffhv67y
    CardTokenGCResponse:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/CardTokenValueGC'
    CardResponseGC:
      type: object
      properties:
        number:
          $ref: '#/components/schemas/CardMaskedNumberGC'
        type:
          $ref: '#/components/schemas/CardTypeGCResp'
        balance:
          $ref: '#/components/schemas/CardBalance'
        token:
          $ref: '#/components/schemas/CardTokenGCResponse'
    ProgramId:
      type: string
      maxLength: 16
      example: '123529291'
      description: |
        The ID value for the program you are allocating a gift card under.
    CardDeactivationReason:
      type: string
      maxLength: 32
      example: Lost or Stolen
      description: >
        In a Gift Card
        [Deactivate](/apis/payments-platform-rest/openapi/gift-cards/deactivate)
        or [Cashout](/apis/payments-platform-rest/openapi/gift-cards/cashout)
        request, specifies the reason for deactivation. In a Gift Card
        redemption or inquiry response, specifies the reason for denial sent by
        the processor.     
    giftcards_deactivate_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        transaction:
          invoice: '192029'
    giftcards_deactivate_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_deactivate_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    giftcards_deactivate_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
            - token
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1225
          present: 'N'
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_deactivate_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
            - token
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1225
          present: 'N'
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_deactivate_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_deactivate_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_deactivate_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    giftcards_deactivate_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
            - number
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1230
          number: '2664654648774'
          present: 'N'
        transaction:
          invoice: '192029'
    CardResponseDeact:
      type: object
      properties:
        deactivationReason:
          $ref: '#/components/schemas/CardDeactivationReason'
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDateResponse'
        number:
          $ref: '#/components/schemas/CardMaskedNumberGC'
        present:
          $ref: '#/components/schemas/CardPresent'
        type:
          $ref: '#/components/schemas/CardTypeGCResp'
        balance:
          $ref: '#/components/schemas/CardBalance'
        token:
          $ref: '#/components/schemas/CardTokenGCResponse'
    AmountTotalGCCashback:
      type: number
      maxLength: 14
      example: 20
      description: >
        The amount you want to get back from the gift card. If this field is not
        sent then the full balance of the card will be returned as cash.
    giftcards_cashout_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        transaction:
          invoice: '192029'
    giftcards_cashout_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_cashout_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    giftcards_cashout_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
            - token
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1225
          present: 'N'
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_cashout_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
            - token
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1225
          present: 'N'
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_cashout_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'N'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_cashout_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_cashout_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    giftcards_cashout_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - deactivationReason
            - number
            - present
          properties:
            deactivationReason:
              $ref: '#/components/schemas/CardDeactivationReason'
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        amount:
          type: object
          properties:
            total:
              $ref: '#/components/schemas/AmountTotalGCCashback'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          deactivationReason: Stolen
          expirationDate: 1230
          number: '2664654648774'
          present: 'N'
        transaction:
          invoice: '192029'
    CardResponseCashout:
      type: object
      properties:
        deactivationReason:
          $ref: '#/components/schemas/CardDeactivationReason'
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDateResponse'
        number:
          $ref: '#/components/schemas/CardMaskedNumberGC'
        present:
          $ref: '#/components/schemas/CardPresent'
        type:
          $ref: '#/components/schemas/CardTypeGCResp'
        token:
          $ref: '#/components/schemas/CardTokenGCResponse'
    giftcards_reactivate_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        transaction:
          invoice: '192029'
    giftcards_reactivate_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_reactivate_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    giftcards_reactivate_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_reactivate_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_reactivate_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_reactivate_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_reactivate_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    giftcards_reactivate_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - number
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          expirationDate: 1230
          number: '2664654648774'
          present: 'Y'
        transaction:
          invoice: '192029'
    giftcards_reload_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        transaction:
          invoice: '192029'
    giftcards_reload_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_reload_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - amount
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    giftcards_reload_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_reload_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_reload_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_reload_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_reload_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    giftcards_reload_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountGC'
        card:
          type: object
          required:
            - present
            - number
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 25
        card:
          present: 'Y'
          number: '2664654648774'
          expirationDate: 1230
        transaction:
          invoice: '192029'
    ApiOptionsGCBalance:
      type: array
      items:
        type: string
      example:
        - RETURNHIST
      writeOnly: true
      description: >
        API Options modify the request being made.


        Value      | Description                                               
        |

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

        RETURNHIST | Return the gift card usage history in the `history` array.
        |
    giftcards_balance_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        transaction:
          invoice: '192029'
    giftcards_balance_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
        transaction:
          invoice: '192029'
    giftcards_balance_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          terminalId: '1742'
        transaction:
          invoice: '192029'
    giftcards_balance_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_balance_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
          expirationDate: 1225
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    giftcards_balance_p2pe_idtech:
      title: P2PE - ID TECH - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        p2pe:
          data: >-
            02B600C0170018009292;000442******0006=3012?*61A0453AB7145F1FA7685D2F27A745E129525EDAEA5BB7DBBAF49A5F876E3EE5000000000000000000000000000000000000000034343454343631383439629949500100382003E6FF4D03
          format: '01'
        transaction:
          invoice: '192029'
    giftcards_balance_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
        transaction:
          invoice: '192029'
    giftcards_balance_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - card
        - transaction
        - p2pe
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          present: 'Y'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
        transaction:
          invoice: '192029'
    giftcards_balance_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - present
            - number
          properties:
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumberGC'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDateGC'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCodeGC'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
        apiOptions:
          $ref: '#/components/schemas/ApiOptionsGCBalance'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          expirationDate: 1230
          number: '2664654648774'
          present: 'Y'
        transaction:
          invoice: '192029'
    AmountTotalOnly:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested.


        Note: For merchants that are configured to allow multiple currencies,
        the amount fields can specify up to three decimal places. However, the
        number of decimal places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
    giftcards_cancel_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: '8900004710343233'
        transaction:
          invoice: '192029'
    giftcards_cancel_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: 87743q5p3ffhv67y
            serialNumber: '123456'
        transaction:
          invoice: '192029'
    cards_verify_comengdevice:
      type: object
      title: Commerce Engine For On Premise
      required:
        - dateTime
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2025-11-06T09:18:23.283-07:00'
    cards_verify_comengcloud:
      type: object
      title: Commerce Engine For Cloud
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressFinalResult:
              $ref: '#/components/schemas/UISuppressFinalResult'
      example:
        dateTime: '2025-11-06T09:18:23.283-07:00'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
    cards_verify_utgdevice:
      type: object
      title: UTG Controlled Device
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalId'
            promptPostalCode:
              $ref: '#/components/schemas/DevicePromptPostalCode'
            promptCardSecurityCode:
              $ref: '#/components/schemas/DevicePromptCardSecurityCode'
            promptStreetNumber:
              $ref: '#/components/schemas/DevicePromptStreetNumber'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          terminalId: '1742'
    cards_verify_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: '8048471746471119'
          expirationDate: 1225
    cards_verify_token_legacy:
      title: Legacy TrueToken
      type: object
      required:
        - dateTime
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
          expirationDate: 1225
    cards_verify_p2pe_idtech:
      type: object
      title: P2PE - ID TECH - EMV/MSR/Manual
      required:
        - dateTime
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        p2pe:
          data: >-
            027101801F2D1E00939B%*432100******1119^VS/DUAL
            TRACK^2212******?*;432100******1119=2212******?*CECE3FCE7781142BEC8D0E267AE89F5D3C7E235BF1A70E637951E8D93003E5A2586C336CA4A3B31F6639B04005BB12A716D8BC4D3AB125C27AB11A9DDC02816569D42A20B036EE5E2C71CB70565FB43B000000000000000000000000000000000000000000000000000000000000000000000000000000003434345434363138343962994950010038200415953903
          format: '01'
    cards_verify_p2pe_tdesdukpt_emv:
      type: object
      title: P2PE - TDES DUKPT - EMV
      required:
        - dateTime
        - card
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          type: object
          required:
            - tlvData
          properties:
            tlvData:
              $ref: '#/components/schemas/EMVTlvData'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          entryMode: E
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            4F07A0000000041010500A4D61737465724361726457203CCEB572BE7DD0A38E62E6BD70E3DAACE9B46BD3BF65E188E7D8D68D2178DE1A5A10B1794BAC083B08F0A1444F189A5493255F201A546573742F4361726420303920202020202020202020202020205F24032512315F25031511015F2D02656E5F3401018407A0000000041010950508200000009B02C8009F02060000000004449F03060000000000009F34031E03009F3704C5BF918D9F390105
        p2pe:
          format: '05'
          ksn: '6299495001100E200041'
    cards_verify_p2pe_tdesdukpt_msr:
      type: object
      title: P2PE - TDES DUKPT - MSR/Manual
      required:
        - dateTime
        - card
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          entryMode: '2'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
    cards_verify_p2pe_onguardsde_emv:
      type: object
      title: P2PE - On-Guard SDE - EMV
      required:
        - dateTime
        - card
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        emv:
          type: object
          required:
            - tlvData
          properties:
            tlvData:
              $ref: '#/components/schemas/EMVTlvDataOnguardSDE'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: 2023-124-13T09:18:23.283-07:00
        card:
          entryMode: E
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
    cards_verify_p2pe_onguardsde_msr:
      type: object
      title: P2PE - On-Guard SDE - MSR/Manual
      required:
        - dateTime
        - card
        - device
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          entryMode: '2'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
    cards_verify_unencryptedcard:
      type: object
      title: Card Number Unencrypted
      required:
        - dateTime
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              type: object
              properties:
                indicator:
                  $ref: '#/components/schemas/CardSecurityCodeIndicator'
                value:
                  $ref: '#/components/schemas/CardSecurityCodeValue'
        transaction:
          type: object
          properties:
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            purchaseCard:
              type: object
              properties:
                customerReference:
                  $ref: '#/components/schemas/PurchaseCardCustomerReference'
        customer:
          $ref: '#/components/schemas/Customer'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          number: '4321000000001119'
          expirationDate: 1230
          securityCode:
            indicator: '1'
            value: '333'
        customer:
          addressLine1: 65 Easy St
          firstName: John
          lastName: Smith
          postalCode: '65144'
    TransactionResponseCodeCardsVerify:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - A
        - D
        - e
        - f
      description: >
        Code indicating the Shift4 host response.        


        Value  |
        Description                                                      |
        Details

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

        A      |
        Approved                                                         | The
        card was successfully verified.

        D      |
        Declined                                                         | The
        card failed verification.

        e      |
        [Error](/guides/appendices/error-codes)                          | There
        is an error condition.

        f      | [AVS or CSC
        failure](/guides/response-handling/understanding-avs-and-csc-verification)|
        An AVS or CSC failure has occurred (credit card only). **Note: This
        value will only be returned if the [POSHANDLEAVSFAIL Api
        Option](/guides/appendices/api-options#poshandleavsfail) was sent in the
        request.**
    ANIResponseCode:
      type: string
      enum:
        - E
        - A
        - B
        - C
        - D
        - F
        - G
        - H
        - I
        - J
        - 'N'
        - U
      example: E
      description: >
        Account Name Inquiry Response Code. Returned if the `USEANI` API Option
        and customer name information is sent in the request.


        | ANI Response Code |
        Description                                                            |

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

        | E                 | Full name:
        match                                                       |

        | A                 | First name: partial match, Last name:
        match                            |

        | B                 | First name: no match, Last name:
        match                                 |

        | C                 | First name: match, Last name: partial
        match                            |

        | D                 | First name: match, Last name: no
        match                                 |

        | F                 | First name: partial match, Last name: partial
        match                    |

        | G                 | First name: no match, Last name: partial
        match                         |

        | H                 | First name: partial match, Last name: no
        match                         |

        | I                 | Last name:
        match                                                       |

        | J                 | Last name: partial
        match                                               |

        | N                 | First name: no match, Last name: no
        match<br>or<br>Last name: no match |

        | U                 | Name match not
        performed                                               |  
    AccountNameInquiryResponse:
      type: object
      properties:
        aniResponseCode:
          $ref: '#/components/schemas/ANIResponseCode'
    cards_identify_utgdevice:
      type: object
      title: UTG Controlled Device
      allOf:
        - type: object
          required:
            - dateTime
            - device
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            device:
              type: object
              required:
                - terminalId
              properties:
                terminalId:
                  $ref: '#/components/schemas/DeviceTerminalId'
                promptPostalCode:
                  $ref: '#/components/schemas/DevicePromptPostalCode'
                promptCardSecurityCode:
                  $ref: '#/components/schemas/DevicePromptCardSecurityCode'
                promptStreetNumber:
                  $ref: '#/components/schemas/DevicePromptStreetNumber'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          terminalId: '1742'
    cards_identify_token_gtv:
      title: GTV Token
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - token
              properties:
                token:
                  $ref: '#/components/schemas/CardTokenRequired'
                expirationDate:
                  $ref: '#/components/schemas/CardExpirationDate'
                securityCode:
                  $ref: '#/components/schemas/CardSecurityCode'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: '8048471746471119'
          expirationDate: 1225
    cards_identify_token_legacy:
      title: Legacy TrueToken
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - token
              properties:
                token:
                  $ref: '#/components/schemas/CardTokenRequiredLegacy'
                expirationDate:
                  $ref: '#/components/schemas/CardExpirationDate'
                securityCode:
                  $ref: '#/components/schemas/CardSecurityCode'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
          expirationDate: 1225
    cards_identify_p2pe_idtech:
      type: object
      title: P2PE - ID TECH - EMV/MSR/Manual
      required:
        - dateTime
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        p2pe:
          data: >-
            027101801F2D1E00939B%*432100******1119^VS/DUAL
            TRACK^2212******?*;432100******1119=2212******?*CECE3FCE7781142BEC8D0E267AE89F5D3C7E235BF1A70E637951E8D93003E5A2586C336CA4A3B31F6639B04005BB12A716D8BC4D3AB125C27AB11A9DDC02816569D42A20B036EE5E2C71CB70565FB43B000000000000000000000000000000000000000000000000000000000000000000000000000000003434345434363138343962994950010038200415953903
          format: '01'
    cards_identify_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - card
        - device
        - emv
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        device:
          type: object
          required:
            - manufacturer
            - model
            - serialNumber
            - capability
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            capability:
              $ref: '#/components/schemas/DeviceCapability'
        emv:
          type: object
          required:
            - tlvData
          properties:
            tlvData:
              $ref: '#/components/schemas/EMVTlvData'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          entryMode: E
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        emv:
          tlvData: >-
            4F07A0000000041010500A4D61737465724361726457203CCEB572BE7DD0A38E62E6BD70E3DAACE9B46BD3BF65E188E7D8D68D2178DE1A5A10B1794BAC083B08F0A1444F189A5493255F201A546573742F4361726420303920202020202020202020202020205F24032512315F25031511015F2D02656E5F3401018407A0000000041010950508200000009B02C8009F02060000000004449F03060000000000009F34031E03009F3704C5BF918D9F390105
        p2pe:
          format: '05'
          ksn: '6299495001100E200041'
    cards_identify_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
            - device
            - p2pe
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - entryMode
              properties:
                entryMode:
                  $ref: '#/components/schemas/CardEntryMode'
            device:
              type: object
              required:
                - manufacturer
                - model
                - serialNumber
                - capability
              properties:
                manufacturer:
                  $ref: '#/components/schemas/DeviceManufacturer'
                model:
                  $ref: '#/components/schemas/DeviceModel'
                serialNumber:
                  $ref: '#/components/schemas/DeviceSerialNumber'
                capability:
                  $ref: '#/components/schemas/DeviceCapability'
            p2pe:
              $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          entryMode: '2'
        device:
          manufacturer: PAX
          model: A930
          serialNumber: '1170301234'
          capability:
            contactlessEMV: 'N'
            contactlessMSR: 'Y'
            EMV: 'Y'
            magstripe: 'Y'
            manualEntry: 'Y'
            quickChip: 'Y'
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
    cards_identify_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
            - device
            - emv
            - p2pe
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - entryMode
              properties:
                entryMode:
                  $ref: '#/components/schemas/CardEntryMode'
            device:
              type: object
              required:
                - manufacturer
                - model
                - serialNumber
                - capability
              properties:
                manufacturer:
                  $ref: '#/components/schemas/DeviceManufacturer'
                model:
                  $ref: '#/components/schemas/DeviceModel'
                serialNumber:
                  $ref: '#/components/schemas/DeviceSerialNumber'
                capability:
                  $ref: '#/components/schemas/DeviceCapability'
            p2pe:
              $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
            emv:
              type: object
              required:
                - tlvData
              properties:
                tlvData:
                  $ref: '#/components/schemas/EMVTlvDataOnguardSDE'
      example:
        dateTime: '2023-12-13T09:18:23.283-07:00'
        card:
          entryMode: E
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401018407A00000000310109F100706010A03A0A0009F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
    cards_identify_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
            - device
            - p2pe
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - entryMode
              properties:
                entryMode:
                  $ref: '#/components/schemas/CardEntryMode'
            device:
              type: object
              required:
                - manufacturer
                - model
                - serialNumber
                - capability
              properties:
                manufacturer:
                  $ref: '#/components/schemas/DeviceManufacturer'
                model:
                  $ref: '#/components/schemas/DeviceModel'
                serialNumber:
                  $ref: '#/components/schemas/DeviceSerialNumber'
                capability:
                  $ref: '#/components/schemas/DeviceCapability'
            p2pe:
              $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: 2023-124-13T09:18:23.283-07:00
        card:
          entryMode: '2'
        device:
          manufacturer: Ingenico
          model: Axium DX8000
          serialNumber: 20ACCD801843
          capability:
            contactlessEMV: 'Y'
            contactlessMSR: 'N'
            EMV: 'Y'
            manualEntry: 'Y'
            magstripe: 'Y'
            PIN: 'Y'
            quickChip: 'Y'
            signature: 'Y'
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
    cards_identify_unencryptedcard:
      type: object
      title: Card Number Unencrypted
      allOf:
        - type: object
          required:
            - dateTime
            - card
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            card:
              type: object
              required:
                - number
                - expirationDate
                - entryMode
              properties:
                number:
                  $ref: '#/components/schemas/CardNumber'
                expirationDate:
                  $ref: '#/components/schemas/CardExpirationDate'
                entryMode:
                  type: string
                  minLength: 1
                  maxLength: 1
                  enum:
                    - M
                  example: M
                  description: >
                    **Conditional: The Card Entry Mode should be sent in an
                    initial request; in subsequent requests, it should be left
                    blank or not sent.**


                    The method used to capture a payment card in an
                    authorization/sale request. 


                    Value|Description

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

                    M    | Manual Entry
                securityCode:
                  type: object
                  properties:
                    indicator:
                      $ref: '#/components/schemas/CardSecurityCodeIndicator'
                    value:
                      $ref: '#/components/schemas/CardSecurityCodeValue'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        card:
          number: '4321000000001119'
          expirationDate: 1230
          securityCode:
            indicator: '1'
            value: '333'
    CardBin:
      type: string
      readOnly: true
      maxLength: 8
      example: '541333'
      description: |
        The first 6 or 8 digits of the card.
    CardDccCapable:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        In BIN management, specifies whether or not the card is dynamic currency
        conversion (DCC) capable.
    CardDebitCapable:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        In BIN management, specifies whether a card can be processed as debit
        (‘Y’) or not (‘N’).
    CardLevelResultIdentify:
      type: string
      example: 1P
      description: >
        In BIN management, specifies the detailed card type. For a complete list
        of potential values, see the [Card Level
        Results]/guides/appendices/card-level-results) section in this
        document's appendix.
    CardResponseIdentify:
      type: object
      properties:
        bin:
          $ref: '#/components/schemas/CardBin'
        dccCapable:
          $ref: '#/components/schemas/CardDccCapable'
        debitCapable:
          $ref: '#/components/schemas/CardDebitCapable'
        levelResult:
          $ref: '#/components/schemas/CardLevelResultIdentify'
        type:
          $ref: '#/components/schemas/CardTypeResp'
    DeviceDisplayText:
      type: string
      maxLength: 72
      example: Please Sign
      description: |
        Optional field that specifies the text to display on the device.
    DeviceNextStepType:
      type: string
      enum:
        - idle
        - none
        - displayWait
        - displayText
      example: displayText
      description: >
        Determines the device behavior after processing the request. If no
        additional request is received after 120 seconds the device will return
        to idle as a failsafe.


        | Value       |
        Description                                                                                                                                                                            
        |

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

        | idle        | Return back to the idle
        screen                                                                                                                                                         
        |

        | none        | Stay on the same screen. A subsequent message must be
        immediately sent or else the device will appear frozen to the
        user.                                                               |

        | displayWait | Displays a please wait
        screen                                                                                                                                                          
        |

        | displayText | Displays custom text. The request must include at least
        one of the following fields: `device.nextStep.header.value`,
        `device.nextStep.subHeader.value` or `device.nextStep.text.value`. |
    DeviceFormHeader:
      type: object
      properties:
        value:
          type: string
          maxLength: 100
          example: Header text goes here
          description: |
            Header text. Add `\r\n` to force a new line.
    DeviceFormSubHeader:
      type: object
      properties:
        value:
          type: string
          maxLength: 100
          example: Sub Header text goes here
          description: |
            Sub Header text. Add `\r\n` to force a new line.
    DeviceFormText:
      type: object
      properties:
        value:
          type: string
          maxLength: 4096
          example: Body text goes here
          description: |
            Body text. Add `\r\n` to force a new line.
    DeviceNextStep:
      type: object
      description: >
        An optional object used to control the device behavior after processing
        the request. If included in the request, the `type` sub-field is
        required
      properties:
        type:
          $ref: '#/components/schemas/DeviceNextStepType'
        header:
          $ref: '#/components/schemas/DeviceFormHeader'
        subHeader:
          $ref: '#/components/schemas/DeviceFormSubHeader'
        text:
          $ref: '#/components/schemas/DeviceFormText'
    UIRequest:
      type: object
      properties:
        language:
          $ref: '#/components/schemas/UILanguageRequest'
        mode:
          $ref: '#/components/schemas/UIMode'
    devices_promptsignature_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          properties:
            displayText:
              $ref: '#/components/schemas/DeviceDisplayText'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        ui:
          $ref: '#/components/schemas/UIRequest'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
    devices_promptsignature_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            displayText:
              $ref: '#/components/schemas/DeviceDisplayText'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        ui:
          $ref: '#/components/schemas/UIRequest'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
    DeviceOnlyTID:
      type: object
      required:
        - terminalId
      properties:
        terminalId:
          $ref: '#/components/schemas/DeviceTerminalIdRequired'
    devices_promptsignature_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceOnlyTID'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        device:
          terminalId: '1742'
    DevicePromptConfirmationQuestion:
      type: string
      maxLength: 64
      writeOnly: true
      example: Rewards Program
      description: |
        This field displays an inquiry prompting a consumer's confirmation.
    DevicePromptConfirmationResult:
      type: string
      maxLength: 1
      readOnly: true
      enum:
        - 'Y'
        - 'N'
      example: 'N'
      description: >
        In the response to a Prompt Confirmation request, this field specifies
        whether the consumer has opted to confirm ('Y') or deny ('N') the
        requested value.
    DevicePromptConfirmationValue:
      type: string
      maxLength: 4096
      writeOnly: true
      example: Would you like to join our rewards program?
      description: >
        This field displays text, such as an email address or legal text, for a
        consumer’s confirmation.
    DevicePromptConfirmation:
      type: object
      properties:
        question:
          $ref: '#/components/schemas/DevicePromptConfirmationQuestion'
        result:
          $ref: '#/components/schemas/DevicePromptConfirmationResult'
        value:
          $ref: '#/components/schemas/DevicePromptConfirmationValue'
    DevicePromptTermsAndConditionsAckCheckBox:
      type: boolean
      writeOnly: true
      example: true
      description: >
        Send `true` to enable the acknowledgement check box or `false` to
        disable it. Defaults to `true` if not sent.
    DevicePromptTermsAndConditionsAckText:
      type: string
      maxLength: 100
      writeOnly: true
      example: I agree to the End User Agreement
      description: >
        Contains the text to display in the acknowledgement check box. If not
        sent, the acknowledgement check box will display `I agree to the terms
        and conditions`.
    DevicePromptTermsAndConditionsHeader:
      type: string
      maxLength: 100
      writeOnly: true
      example: End User License Agreement
      description: >
        Contains the text to display in the header. If not sent, the header will
        display `Terms and Conditions`.
    DevicePromptTermsAndConditionsValue:
      type: string
      maxLength: 4096
      writeOnly: true
      example: Terms and Conditions
      description: >
        Contains the Terms and Conditions text for the UTG or Commerce Engine
        controlled PIN pad to display to a consumer. Add `\r\n` to force a new
        line.
    DevicePromptTermsAndConditionsComEng:
      type: object
      required:
        - value
      properties:
        ackCheckBox:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsAckCheckBox'
        ackText:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsAckText'
        header:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsHeader'
        value:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsValue'
    devices_termsandconditions_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - promptTermsAndConditions
          properties:
            promptTermsAndConditions:
              $ref: '#/components/schemas/DevicePromptTermsAndConditionsComEng'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        ui:
          $ref: '#/components/schemas/UIRequest'
    devices_termsandconditions_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
            - promptTermsAndConditions
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            promptTermsAndConditions:
              $ref: '#/components/schemas/DevicePromptTermsAndConditionsComEng'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        ui:
          $ref: '#/components/schemas/UIRequest'
    DevicePromptTermsAndConditionsResult:
      type: string
      maxLength: 1
      readOnly: true
      enum:
        - A
        - D
      example: A
      description: >
        Returns the result of the Terms and Conditions screen on the PIN pad
        (based on the consumer’s input).


        Value| Description

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

        A    | Accepted

        D    | Declined
    DevicePromptTermsAndConditions:
      type: object
      required:
        - value
      properties:
        result:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsResult'
        value:
          $ref: '#/components/schemas/DevicePromptTermsAndConditionsValue'
    devices_termsandconditions_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
            - promptTermsAndConditions
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
            promptTermsAndConditions:
              $ref: '#/components/schemas/DevicePromptTermsAndConditions'
    DeviceLineItemsArray:
      type: array
      minItems: 1
      maxItems: 10
      items:
        type: string
      example:
        - Hamburger
        - Fries
        - Soda
        - Cookie
      description: |
        An array of line items to display on the UTG-controlled device.
    DeviceTerminalIdDevicesInfo:
      type: string
      example: GBAIOQAN11
      description: |
        Terminal ID configured for the device.
    DeviceModelDevicesInfo:
      type: string
      maxLength: 50
      example: A800
      description: |
        Specifies the model of the device.
    HardwareCPU:
      type: string
      example: cortex-a53 (8 cores @ 1.8 GHz)
      description: |
        The CPU model information.
    HardwareRamMb:
      type: string
      example: '1854'
      description: |
        The total amount of RAM in megabytes.
    HardwareStorageMbTotal:
      type: string
      example: '12297'
      description: |
        The amount of total storage space in megabytes.
    HardwareStorageMbFree:
      type: string
      example: '9869'
      description: |
        The amout of free storage space in megabytes.
    HardwareStorageMbUsed:
      type: string
      example: '2428'
      description: |
        The amout of used storage space in megabytes.
    HardwareBatteryLevel:
      type: string
      example: '83'
      description: >
        The current battery level on the device. Returns `null` if the device
        does not have a battery
    FirmwareFirmwareVersion:
      type: string
      example: PayDroid_10.0.0_Eucalyptus_V20.1.28_20250915/4.11.00_20250120
      description: |
        The firmware version.
    FirmwareAndroidVersion:
      type: string
      example: '10'
      description: |
        The Android OS version.
    FirmwareEMVKernelVersion:
      type: string
      example: v659 2025.02.26
      description: |
        The EMV kernel version.
    FirmwareCTLSKernelVersion:
      type: string
      example: >-
        v558 2025.04.10;v359_02 2025.02.20;v557_01 2024.01.15;v252_01
        2023.02.09;v155 2024.12.19;v353 2025.01.22;v153_02 2024.12.05;v253
        2025.01.10;v153 2025.09.09
      description: |
        The card brand contactless kernel versions.
    SecurityP2PEVersion:
      type: string
      example: 2.0.6.211.3.0
      description: |
        The P2PE application version
    SecurityPCIHardwareVersion:
      type: string
      example: A800-0AW-RE6-10AA
      description: |
        The PCI hardware version
    SecurityPCIFirmwareVersion:
      type: string
      example: secver_26.01.0128;firmver_26.01.0128
      description: |
        The PCI firmware version
    ApplicationsArray:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
            example: Commerce Engine
            description: |
              Application name
          packageName:
            type: string
            example: com.priv.shift4.commerceengine
            description: |
              Application package name
          versionName:
            type: string
            example: 2.14.0
            description: |
              Application version name
          versionCode:
            type: number
            example: 2140000
            description: |
              Application version code
      example:
        - name: Commerce Engine
          packageName: com.priv.shift4.commerceengine
          versionName: 2.14.0
          versionCode: 2140000
        - name: Shift4 SOLO
          packageName: com.shift4.bonepony
          versionName: 2.149.0
          versionCode: 2149000
    ConnectivityActiveInterface:
      type: string
      example: wifi
      description: |
        The network interface that is active on the device
    ConnectivityIP:
      type: string
      example: 192.168.4.200
      description: |
        The device IP address
    ConnectivityGateway:
      type: string
      example: 192.168.4.1
      description: |
        Default gateway
    ConnectivitySubnetMask:
      type: string
      example: 255.255.255.0
      description: |
        Subnet mask
    ConnectivityDNS1:
      type: string
      example: 8.8.8.8
      description: |
        Primary DNS server address
    ConnectivityDNS2:
      type: string
      example: 8.8.4.4
      description: |
        Secondary DNS server address
    ConnectivityInterfaces:
      type: object
      properties:
        ethernet:
          type: object
          properties:
            mac:
              type: string
              example: F4:02:23:43:69:FD
              description: |
                Ethernet MAC address
            isUp:
              type: string
              enum:
                - 'Y'
                - 'N'
              example: 'N'
              description: >
                Returns 'Y' if the interface is up and `N` if the interface is
                down.
        wifi:
          type: object
          properties:
            mac:
              type: string
              example: F4:02:23:7F:57:C6
              description: |
                Wi-Fi MAC address
            ssid:
              type: string
              example: MerchantWiFi
              description: |
                Wi-Fi SSID
            isUp:
              type: string
              enum:
                - 'Y'
                - 'N'
              example: 'Y'
              description: >
                Returns 'Y' if the interface is up and `N` if the interface is
                down.
            signalStrength:
              type: string
              example: '-46 dBm'
              description: |
                The Wi-Fi signal strength
        cellular:
          type: object
          properties:
            imei:
              type: string
              example: '354970460015528'
              description: |
                Cellular International Mobile Equipment Identity (IMEI) value
            iccid:
              type: string
              example: '8901240204204081862'
              description: |
                Cellular Integrated Circuit Card Identifier (ICCID)
            carrier:
              type: string
              example: T-Mobile
              description: |
                Cellular mobile network carrier
            isUp:
              type: string
              enum:
                - 'Y'
                - 'N'
              example: 'Y'
              description: >
                Returns 'Y' if the interface is up and `N` if the interface is
                down.
            signalStrength:
              type: string
              example: '-50 dBm'
              description: |
                The Cellular signal strength
      example:
        wifi:
          mac: F4:02:23:7F:57:C6
          ssid: MerchantWiFi
          isUp: 'Y'
          signalStrength: '-46 dBm'
        cellular:
          imei: '354970460015528'
          iccid: '8901240204204081862'
          carrier: T-Mobile
          isUp: 'Y'
          signalStrength: '-50 dBm'
    UILanguageResponse:
      type: string
      example: en
      description: >
        ISO 639-1 2-letter language code specifying the UI display language
        (e.g. "en", "fr", "de").
    UISupportedLanguages:
      type: array
      items:
        type: string
      example:
        - en
        - fr
        - es
        - de
        - it
        - nl
        - pt
        - lt
        - 'no'
        - sv
        - da
        - ro
        - cs
        - fi
        - pl
      description: >
        Array of ISO 639-1 2-letter language codes supported by the device (e.g.
        "en", "fr", "de").
    devices_info_comeng:
      title: Commerce Engine
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              device:
                type: object
                properties:
                  terminalId:
                    $ref: '#/components/schemas/DeviceTerminalIdDevicesInfo'
                  serialNumber:
                    $ref: '#/components/schemas/DeviceSerialNumber'
                  manufacturer:
                    $ref: '#/components/schemas/DeviceManufacturer'
                  model:
                    $ref: '#/components/schemas/DeviceModelDevicesInfo'
              hardware:
                type: object
                properties:
                  cpu:
                    $ref: '#/components/schemas/HardwareCPU'
                  ramMb:
                    $ref: '#/components/schemas/HardwareRamMb'
                  storageMbTotal:
                    $ref: '#/components/schemas/HardwareStorageMbTotal'
                  storageMbFree:
                    $ref: '#/components/schemas/HardwareStorageMbFree'
                  storageMbUsed:
                    $ref: '#/components/schemas/HardwareStorageMbUsed'
                  batteryLevel:
                    $ref: '#/components/schemas/HardwareBatteryLevel'
              firmware:
                type: object
                properties:
                  firmwareVersion:
                    $ref: '#/components/schemas/FirmwareFirmwareVersion'
                  androidVersion:
                    $ref: '#/components/schemas/FirmwareAndroidVersion'
                  emvKernelVersion:
                    $ref: '#/components/schemas/FirmwareEMVKernelVersion'
                  ctlsKernelVersion:
                    $ref: '#/components/schemas/FirmwareCTLSKernelVersion'
              security:
                type: object
                properties:
                  p2peVersion:
                    $ref: '#/components/schemas/SecurityP2PEVersion'
                  pciHardwareVersion:
                    $ref: '#/components/schemas/SecurityPCIHardwareVersion'
                  pciFirmwareVersion:
                    $ref: '#/components/schemas/SecurityPCIFirmwareVersion'
              applications:
                $ref: '#/components/schemas/ApplicationsArray'
              connectivity:
                type: object
                properties:
                  activeInterface:
                    $ref: '#/components/schemas/ConnectivityActiveInterface'
                  ip:
                    $ref: '#/components/schemas/ConnectivityIP'
                  gateway:
                    $ref: '#/components/schemas/ConnectivityGateway'
                  subnetMask:
                    $ref: '#/components/schemas/ConnectivitySubnetMask'
                  dns1:
                    $ref: '#/components/schemas/ConnectivityDNS1'
                  dns2:
                    $ref: '#/components/schemas/ConnectivityDNS2'
                  interfaces:
                    $ref: '#/components/schemas/ConnectivityInterfaces'
              ui:
                type: object
                properties:
                  language:
                    $ref: '#/components/schemas/UILanguageResponse'
                  supportedLanguages:
                    $ref: '#/components/schemas/UISupportedLanguages'
              server:
                $ref: '#/components/schemas/Server'
    DeviceInfoArray:
      type: array
      items:
        type: string
      description: |
        An array of details regarding a UTG-controlled device.
      example:
        - NUMBER_MSR_SWIPES=1634
        - NUMBER_BAD_TRACK1_READS=85
        - NUMBER_BAD_TRACK2_READS=395
        - NUMBER_BAD_TRACK3_READS=337
        - NUMBER_SIGNATURE_TOTALS=0000
        - NUMBER_REBOOTS=0760
        - TERMINAL_NAME=iPP350
        - UNIT_SERIAL_NUMBER=2013016PT012622
        - OS_VERSION=5220
        - APPLICATION_VERSION=2156
        - SECURITY_LIBRARY_VERSION=0415
        - TDA_VERSION=1603
        - EFTL_VERSION=0000
        - EFTP_VERSION=0000
        - RAM_SIZE=8628
        - FLASH_SIZE=111064
        - MANUFACTURE_DATE=2013-01-16
        - CPEM_TYPE=1
        - PEN_STATUS=UNSUPPORTED_DEVICE
        - APPLICATION_NAME=Retail Base
        - MANUFACTURE_ID=INGNAR
        - DIGITIZER_VERSION=0000
        - MANUFACTURER_SERIAL_NUMBER=71429877
        - DUKPT0=F876543210016F8000F7
        - DUKPT4=FFFF49003614954000B9
    devices_info_utgingenico:
      title: UTG Ingenico
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              device:
                type: object
                properties:
                  info:
                    $ref: '#/components/schemas/DeviceInfoArray'
                  terminalId:
                    $ref: '#/components/schemas/DeviceTerminalId'
              server:
                $ref: '#/components/schemas/Server'
      example:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            device:
              info:
                - NUMBER_MSR_SWIPES=1634
                - NUMBER_BAD_TRACK1_READS=85
                - NUMBER_BAD_TRACK2_READS=395
                - NUMBER_BAD_TRACK3_READS=337
                - NUMBER_SIGNATURE_TOTALS=0000
                - NUMBER_REBOOTS=0760
                - TERMINAL_NAME=iPP350
                - UNIT_SERIAL_NUMBER=2013016PT012622
                - OS_VERSION=5220
                - APPLICATION_VERSION=2156
                - SECURITY_LIBRARY_VERSION=0415
                - TDA_VERSION=1603
                - EFTL_VERSION=0000
                - EFTP_VERSION=0000
                - RAM_SIZE=8628
                - FLASH_SIZE=111064
                - MANUFACTURE_DATE=2013-01-16
                - CPEM_TYPE=1
                - PEN_STATUS=UNSUPPORTED_DEVICE
                - APPLICATION_NAME=Retail Base
                - MANUFACTURE_ID=INGNAR
                - DIGITIZER_VERSION=0000
                - MANUFACTURER_SERIAL_NUMBER=71429877
                - DUKPT0=F876543210016F8000F7
                - DUKPT4=FFFF49003614954000B9
              terminalId: '1742'
            server:
              name: U2API01CE
    devices_info_utgverifone:
      title: UTG Verifone
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              device:
                type: object
                properties:
                  info:
                    $ref: '#/components/schemas/DeviceInfoArray'
                  terminalId:
                    $ref: '#/components/schemas/DeviceTerminalId'
              server:
                $ref: '#/components/schemas/Server'
      example:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            device:
              info:
                - APPLICATION_VERSION=4.9.2-20170530
                - XPI_VERSION=0052.00v-20170530
                - XPI_KERNEL_VERSION=000270000
                - OS_VERSION=MX200001/RFS30250600/
                - PACKAGES_INSTALLED=alsa-lib:1.0.0; busybox:1.2.6.2
                - GUI_MANAGER_VERSION=3.25
                - UNIT_ID=288-728-276/12000000
                - UNIT_MODEL=MX915
                - RFIDFW_VERSION=VOS-CTLS-4.02.04A
                - DEVICE_TIME=20210416180022
                - SECURE_PACKETS=aes
                - DUKPT0=FFFF5B0999000220024F
                - ADE0=FFFF4950720008800875
              terminalId: '1742'
            server:
              name: U2API01CE
    devices_reset_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
    devices_reset_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
    UISuppressAll:
      type: boolean
      example: 'true'
      description: >
        When `true`, the terminal suppresses all UI. 


        Example use case: capturing employee/badge swipe data without displaying
        Commerce Engine UI.
    VolumeSuppressBeeper:
      type: boolean
      example: true
      description: >
        When `true`, the terminal suppresses all audible beeper output during
        the card-read window only — Contactless tap confirmation, MSR swipe,
        error/decline tones.
    Volume:
      type: object
      properties:
        suppressBeeper:
          $ref: '#/components/schemas/VolumeSuppressBeeper'
    Timeout:
      type: number
      example: 0
      description: >
        Optional field that will set the timeout value in seconds.


        Sending `0` will set an indefinite timeout that can only be cancelled by
        sending a /devices/reset request. Commerce Engine will use its default
        value if not sent.
    devices_promptcardread_comengdevice:
      title: Commerce Engine For On Premise
      required:
        - dateTime
      properties:
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
            displayText:
              $ref: '#/components/schemas/DeviceDisplayText'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressAll:
              $ref: '#/components/schemas/UISuppressAll'
        volume:
          $ref: '#/components/schemas/Volume'
        timeout:
          $ref: '#/components/schemas/Timeout'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
    devices_promptcardread_comengcloud:
      title: Commerce Engine For Cloud
      required:
        - dateTime
        - device
      properties:
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
            displayText:
              $ref: '#/components/schemas/DeviceDisplayText'
        ui:
          type: object
          properties:
            language:
              $ref: '#/components/schemas/UILanguageRequest'
            mode:
              $ref: '#/components/schemas/UIMode'
            suppressAll:
              $ref: '#/components/schemas/UISuppressAll'
        volume:
          $ref: '#/components/schemas/Volume'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
    devices_promptcardread_utgdevice:
      title: UTG Controlled Device
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
    CardEntryModeResponseTrackOnly:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - '1'
        - '2'
      example: '2'
      description: >
        The method used to capture a payment card in an authorization/sale
        request. 


        Value|Description

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

        1    | Track 1 Only or Dual Track (Track 1 & 2)

        2    | Track 2 Only
    P2PEFormat:
      type: string
      minLength: 2
      maxLength: 2
      enum:
        - '01'
        - '02'
        - '03'
        - '04'
        - '05'
      example: '01'
      description: |
        Classifies the type of payment device being used for P2PE.

        Value|Description
        -----|-----------
        01   | IDTech Enhanced Encryption format
        02   | IDTech Enhanced Encryption format USB HID
        03   | Ingenico format
        04   | VeriFone format
        05   | Shift4 TDES DUKPT format
        07   | AES 128 or 256
    P2PE:
      type: object
      required:
        - data
        - format
      properties:
        data:
          $ref: '#/components/schemas/P2PEData'
        format:
          $ref: '#/components/schemas/P2PEFormat'
        ksn:
          $ref: '#/components/schemas/P2PEKSN'
    DevicePromptInputIndex:
      type: string
      maxLength: 3
      example: '005'
      description: >
        This field specifies a value to be collected from a consumer using a
        UTG-controlled PIN pad.


        Value| Description                          | Return Format

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

        001  | Card Security Code                   | Numeric

        002  | Street Number                        | Numeric

        003  | ZIP Code                             | Numeric

        004  | Social Security Number (SSN)         | Numeric, no formatting

        005  | Last 4 of SSN                        | Numeric

        006  | Date of Birth                        | MM/DD/YYYY

        007  | Annual Income                        | Numeric, no formatting

        008  | Home Phone Number                    | Numeric, no formatting

        009  | Business Phone Number                | Numeric, no formatting

        010  | Email Address (Requires Touchscreen) | Alphanumeric

        011  | Driver's ID (Requires Touchscreen)   | Alphanumeric

        012  | Tip                                  | Numeric
    DevicePromptInputResult:
      type: string
      maxLength: 4096
      readOnly: true
      example: '981280913'
      description: >
        This field contains the value collected from a consumer using a
        UTG-controlled PIN pad.
    DevicePromptInput:
      type: object
      required:
        - index
      properties:
        index:
          $ref: '#/components/schemas/DevicePromptInputIndex'
        result:
          $ref: '#/components/schemas/DevicePromptInputResult'
    devices_promptinput_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - promptInput
          properties:
            promptInput:
              $ref: '#/components/schemas/DevicePromptInput'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
        ui:
          $ref: '#/components/schemas/UIRequest'
    devices_promptinput_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
            - promptInput
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            promptInput:
              $ref: '#/components/schemas/DevicePromptInput'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        ui:
          $ref: '#/components/schemas/UIRequest'
    devices_promptinput_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
            - promptInput
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
            promptInput:
              $ref: '#/components/schemas/DevicePromptInput'
    DeviceFormButtonArray:
      type: array
      minItems: 1
      maxItems: 4
      items:
        type: object
        required:
          - id
          - text
        properties:
          id:
            type: string
            description: >
              ID value used to identify which button is pressed. 


              The ID of the button the user selected is returned in the
              `result.form.buttonSelected.id` response field.
          text:
            type: string
            maxLength: 114
            description: >
              Text to display on the button.  


              The text of the button the user selected is returned in the
              `result.form.buttonSelected.text` response field.
      example:
        - id: '1'
          text: Accept
        - id: '2'
          text: Decline
      description: |
        Array of 1 - 4 buttons to be displayed on the device.
    DeviceFormTimeout:
      type: number
      minimum: 1
      maximum: 600
      example: 120
      description: >
        The number of seconds until the custom form will timeout. Defaults to
        120 seconds if `form.timeout` is not sent in the request.
    DeviceProcessFormTypeMultiButtonScrollingText:
      title: Multi Button Scrolling Text
      required:
        - type
        - buttons
      properties:
        type:
          type: string
          enum:
            - multiButtonScrollingText
          description: >
            Displays a form with header text, subheader text, scrolling body
            text and up to 4 buttons. 


            When using this custom form type at least one of the following
            fields must also be included in the request: 
              - `form.header`
              - `form.subHeader`
              - `form.text`
        header:
          $ref: '#/components/schemas/DeviceFormHeader'
        subHeader:
          $ref: '#/components/schemas/DeviceFormSubHeader'
        text:
          $ref: '#/components/schemas/DeviceFormText'
        buttons:
          $ref: '#/components/schemas/DeviceFormButtonArray'
        timeout:
          $ref: '#/components/schemas/DeviceFormTimeout'
    DeviceProcessFormTypeMessage:
      title: Message
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - message
          description: >
            Displays a message based form with header text, subheader text, and
            body text. 


            When using this custom form type at least one of the following
            fields must also be included in the request: 
              - `form.header`
              - `form.subHeader`
              - `form.text`
        header:
          $ref: '#/components/schemas/DeviceFormHeader'
        subHeader:
          $ref: '#/components/schemas/DeviceFormSubHeader'
        text:
          $ref: '#/components/schemas/DeviceFormText'
        timeout:
          $ref: '#/components/schemas/DeviceFormTimeout'
    DeviceFormQRCode:
      type: object
      properties:
        value:
          type: string
          minLength: 1
          maxLength: 1024
          example: www.shift4.com
          description: >
            Contains the QR Code URL string. This value will be converted to a
            QR code and displayed on the device.
    DeviceFormFooter:
      type: object
      properties:
        value:
          type: string
          maxLength: 100
          example: Footer text goes here
          description: |
            Footer text. Add `\r\n` to force a new line.
    DeviceProcessFormTypeQRDisplay:
      title: QR Display
      type: object
      required:
        - type
        - qrCode
      properties:
        type:
          type: string
          enum:
            - qrDisplay
          description: >
            Displays a QR code based form with header text, a QR code image and
            footer text. 
        qrCode:
          $ref: '#/components/schemas/DeviceFormQRCode'
        header:
          $ref: '#/components/schemas/DeviceFormHeader'
        footer:
          $ref: '#/components/schemas/DeviceFormFooter'
        timeout:
          $ref: '#/components/schemas/DeviceFormTimeout'
    devices_processform_comengdevice:
      title: Commerce Engine For On Premise
      required:
        - dateTime
        - form
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        form:
          oneOf:
            - $ref: >-
                #/components/schemas/DeviceProcessFormTypeMultiButtonScrollingText
            - $ref: '#/components/schemas/DeviceProcessFormTypeMessage'
            - $ref: '#/components/schemas/DeviceProcessFormTypeQRDisplay'
        device:
          type: object
          properties:
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        ui:
          $ref: '#/components/schemas/UIRequest'
    devices_processform_comengcloud:
      title: Commerce Engine For Cloud
      required:
        - dateTime
        - device
        - form
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - cloud
            - manufacturer
            - serialNumber
          properties:
            cloud:
              $ref: '#/components/schemas/DeviceCloud'
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            nextStep:
              $ref: '#/components/schemas/DeviceNextStep'
        form:
          oneOf:
            - $ref: >-
                #/components/schemas/DeviceProcessFormTypeMultiButtonScrollingText
            - $ref: '#/components/schemas/DeviceProcessFormTypeMessage'
            - $ref: '#/components/schemas/DeviceProcessFormTypeQRDisplay'
        ui:
          $ref: '#/components/schemas/UIRequest'
    DeviceFormName:
      type: string
      maxLength: 12
      example: PF2
      description: >
        Specifies a 12-character, alphanumeric string containing the form name
        to display on a UTG-controlled PIN pad. The file extension should not be
        included in the value.
    DeviceFormItems:
      type: object
      writeOnly: true
      properties:
        key:
          type: string
          writeOnly: true
          maxLength: 5
          example: '1'
          description: >
            A five-character, alphanumeric string containing the ID of the field
            which you want to display a custom value on.
        value:
          type: string
          writeOnly: true
          maxLength: 200
          example: John Smith
          description: >
            The value that should be displayed in the field specified by the
            key.
    DeviceFormItemsArray:
      type: array
      items:
        $ref: '#/components/schemas/DeviceFormItems'
      example:
        - key: 1
          value: John Smith
        - key: 2
          value: 123 Open St
      description: |
        An array of key/value pairs used to populate fields on the custom form
    DeviceFormUTG:
      type: object
      required:
        - name
      properties:
        name:
          $ref: '#/components/schemas/DeviceFormName'
        items:
          $ref: '#/components/schemas/DeviceFormItemsArray'
    devices_processform_utgdevice:
      title: UTG Controlled Device
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          type: object
          required:
            - terminalId
            - form
          properties:
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdRequired'
            form:
              $ref: '#/components/schemas/DeviceFormUTG'
    DeviceFormResult:
      type: string
      maxLength: 5
      readOnly: true
      example: '87'
      description: >
        A five-character, alphanumeric string containing the ID of the button
        pressed by the consumer on a UTG-controlled PIN pad.
    DeviceFormResponse:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/DeviceFormName'
        result:
          $ref: '#/components/schemas/DeviceFormResult'
    devices_processform_response_utg:
      title: UTG Controlled Device
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              device:
                type: object
                properties:
                  terminalId:
                    $ref: '#/components/schemas/DeviceTerminalId'
                  form:
                    $ref: '#/components/schemas/DeviceFormResponse'
              server:
                $ref: '#/components/schemas/Server'
    devices_processform_response_comeng_message:
      title: Commerce Engine Form Type message
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              server:
                $ref: '#/components/schemas/Server'
    devices_processform_response_comeng_multiButtonScrollingText:
      title: Commerce Engine Form Type multiButtonScrollingText
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              server:
                $ref: '#/components/schemas/Server'
              form:
                type: object
                properties:
                  buttonSelected:
                    type: object
                    properties:
                      id:
                        type: string
                        example: '1'
                        description: >
                          ID value identifying which button was selected. 


                          Matches the value recieved in the `form.buttons.id`
                          request field.
                      text:
                        type: string
                        maxLength: 114
                        example: Accepted
                        description: >
                          Button text value of the button that was selected.


                          Matches the value recieved in the `form.buttons.text`
                          request field.
    PrintFormat:
      type: string
      enum:
        - structured
      example: structured
      description: |
        Specifies the receipt printing format being used.
    PrintFormatVersion:
      type: string
      enum:
        - '1.0'
      example: '1.0'
      description: |
        Specifies the receipt printing format version being used.
    PrintDataAlignment:
      type: string
      enum:
        - center
        - left
        - right
      example: center
      description: |
        Specifies where the print element should be aligned
    PrintDataBMP:
      title: BMP Image
      type: object
      description: >
        Used to print images, such as a company logo in BPM format. Can also be
        used to print the full receipt if the entire receipt data is formatted
        into a BMP image.
      required:
        - type
        - alignment
        - value
      properties:
        type:
          type: string
          enum:
            - bmp
        alignment:
          $ref: '#/components/schemas/PrintDataAlignment'
        value:
          type: string
          description: |
            Base64 encoded BMP image data
    PrintDataArray:
      type: array
      items:
        $ref: '#/components/schemas/PrintDataBMP'
      description: |
        Array containing the value to print.
      example:
        - type: bmp
          alignment: center
          value: >-
            Qk1+BgAAAAAAAD4AAAAoAAAAZAAAAGQAAAABAAEAAAAAAEAGAAAjLgAAIy4AAAAAAAAAAAAAAAAAAP///wD////////////////wAAAA////////D///////8AAAAP/////3AAAP//////AAAAD/////8AAAAN/////wAAAA/////4AAAAAf////8AAAAP////4AAAAAB/////AAAAD////wAAAAAAD////wAAAA////wAAAAAAAf///8AAAAP///4AAAAAAAB////AAAAD///4AAAAAAAAH///wAAAA///8AAAAAAAAA///8AAAAP//8AAAAAAAAAD///AAAAD//+AAAAAAAAAAf//wAAAA///AAAAAAAAAAD//8AAAAP//gAAAAAAAAAAf//AAAAD//wAAAAAAAAAAD//wAAAA//4AAAAAAAAAAAf/8AAAAP/8AAAAAAAAAAAD//AAAAD/+AAAAAAAAAAAAf/wAAAA//AAAAAAAAAAAAD/8AAAAP/gAAAAAAAAAAAAf/AAAAD/4AAAAAAD/AAAAH/wAAAA/8AAAAAAA/wAAAA/8AAAAP+AAAAAAAP8AAAAH/AAAAD/gAAAAAAD/AAAAB/wAAAA/wAAAAAAA/wAAAAP8AAAAP4AAAAAAAP8AAAAD/AAAAD+AAAAAAAD/AAAAAfwAAAA/AAAAAAAA/wAAAAD8AAAAPwAAAAAAAP8AAAAA/AAAAD8AAAAAAAD/AAAAAPwAAAA+AAAAAAAA/wAAAAB8AAAAPgAAAAAAAP8AAAAAfAAAADwAAAAAAAD/AAAAADwAAAA8AAAAAAAA/wAAAAA8AAAAPAAAAAAAAP8AAAAAPAAAADgAAAAAAAD/AAAAABwAAAA4AAAD/////wAAAAAcAAAAOAAAA/////8AAAAAHAAAADgAAAf/////AAAAABwAAAAgAAAH/////wAAAAAMAAAAMAAAB/////8AAAAADAAAADAAAAf/////AAAAAAwAAAAwAAAD/////wAAAAAMAAAAMAAAAf9///8AAAAADAAAADAAAAD/AAD/AAAAAAwAAAAwAAAA/4AA/wAAAAAMAAAAIAAAAH/AAP8AAAAADAAAAAAAAAA/wAD/AAAAAAQAAAAAAAAAH+AA/wAAAAAEAAAAAAAAAB/wAP8AAAAABAAAACAAAAAP+AD/AAAAAAQAAAAgAAAAB/wA/wAAAAAMAAAAMAAAAAP8AP8AAAAADAAAADAAAAAB/gD/AAAAAAwAAAAwAAAAAf8A/wAAAAAMAAAAMAAAAAD/gP8AAAAADAAAADAAAAAAf4D/AAAAAAwAAAAwAAAAAD/A/wAAAAAMAAAAIAAAAAA/4P8AAAAADAAAADgAAAAAH/D/AAAAABwAAAA4AAAAAA/4/wAAAAAcAAAAOAAAAAAH+P8AAAAAHAAAADgAAAAAA/z/AAAAABwAAAA8AAAAAAP+/wAAAAA8AAAAPAAAAAAB//8AAAAAPAAAADwAAAAAAP//AAAAADwAAAA+AAAAAAB//wAAAAB8AAAAPgAAAAAAf/8AAAAAfAAAAD4AAAAAAD//AAAAAPwAAAA/AAAAAAAf/wAAAAD8AAAAPwAAAAAAD/8AAAAA/AAAAD+AAAAAAAf/AAAAAfwAAAA/gAAAAAAH/wAAAAH8AAAAP8AAAAAAA/8AAAAD/AAAAD/gAAAAAAH/AAAAB/wAAAA/4AAAAAAA/wAAAAf8AAAAP/AAAAAAAP8AAAAP/AAAAD/4AAAAAAB/AAAAH/wAAAA/+AAAAAAAFAAAAB/8AAAAP/wAAAAAAAAAAAA//AAAAD/+AAAAAAAAAAAAf/wAAAA//wAAAAAAAAAAAP/8AAAAP/+AAAAAAAAAAAH//AAAAD//wAAAAAAAAAAD//wAAAA//+AAAAAAAAAAB//8AAAAP//wAAAAAAAAAA///AAAAD//+AAAAAAAAAAf//wAAAA///wAAAAAAAAAP//8AAAAP///AAAAAAAAAP///AAAAD///4AAAAAAAAH///wAAAA////gAAAAAAAH///8AAAAP///8AAAAAAAD////AAAAD////wAAAAAAD////wAAAA/////AAAAAAH////8AAAAP////+AAAAAH/////AAAAD/////8AAAAP/////wAAAA//////8AAA7/////8AAAAP///////gf///////AAAAD///////+f///////wAAAA
    Print:
      type: object
      description: >
        Object contain elements for printing. See the [Supporting Built-In
        Receipt Printing Capability on
        Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
      required:
        - format
        - version
        - data
      properties:
        format:
          $ref: '#/components/schemas/PrintFormat'
        version:
          $ref: '#/components/schemas/PrintFormatVersion'
        data:
          $ref: '#/components/schemas/PrintDataArray'
    devices_print_comengdevice_structured:
      title: Commerce Engine For On Premise - Structured
      type: object
      required:
        - dateTime
        - print
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        print:
          $ref: '#/components/schemas/Print'
    devices_print_comengcloud_structured:
      title: Commerce Engine For Cloud - Structured
      type: object
      required:
        - dateTime
        - device
        - print
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        print:
          $ref: '#/components/schemas/Print'
    ReceiptDevicesPrint:
      type: object
      required:
        - key
        - printValue
      properties:
        key:
          type: string
          maxLength: 100
          example: print
          description: |
            Must be sent as `print`.
        printValue:
          type: string
          example: Text to print goes here
          description: |
            The text that you want to print on the receipt.
    ReceiptArrayDevicesPrint:
      type: array
      items:
        $ref: '#/components/schemas/ReceiptDevicesPrint'
      example:
        - key: print
          printValue: Text to print goes here
      description: >
        Array containing the receipt text data to print. See the [Supporting
        Built-In Receipt Printing Capability on
        Devices](/guides/core-concepts/printing-receipts#supporting-built-in-receipt-printing-capability-on-devices)
    devices_print_comengdevice_legacy:
      title: Commerce Engine On Premise - Legacy
      type: object
      required:
        - dateTime
        - receipt
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        receipt:
          $ref: '#/components/schemas/ReceiptArrayDevicesPrint'
    devices_print_comengcloud_legacy:
      title: Commerce Engine Cloud - Legacy
      type: object
      required:
        - dateTime
        - device
        - receipt
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        receipt:
          $ref: '#/components/schemas/ReceiptArrayDevicesPrint'
    devices_print_utgdevice:
      title: UTG Controlled Device
      type: object
      required:
        - dateTime
        - device
        - receipt
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceOnlyTID'
        receipt:
          $ref: '#/components/schemas/ReceiptArrayDevicesPrint'
    devices_getstatus_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
    devices_getstatus_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
      example:
        dateTime: '2024-05-21T09:18:23.283-07:00'
        device:
          cloud: true
          manufacturer: PAX
          serialNumber: '1170301234'
    CloudRegistered:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Specifies whether or not the device is registerd with the cloud service.

        | Value | Description                                              |
        |-------|----------------------------------------------------------|
        | Y     | Device is successfully registered with the cloud service |
        | N     | Device is not registered with the cloud service          |
    CloudConnected:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Specifies whether or not the device is successfully connected to the
        cloud service.


        | Value | Description                                              |

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

        | Y     | Device is successfully connected to the cloud service    |

        | N     | Device is unable to connect to the cloud service         |
    OfflineMode:
      type: string
      enum:
        - 'Y'
        - 'N'
        - U
      example: 'N'
      description: >
        Specifies whether or not the device is in offline mode.


        | Value | Description        |

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

        | Y     | Device is offline  |

        | N     | Device is online   |

        | U     | Offline status is unknown. For example, when sending the Get
        Device Status command via Commerce Engine For Cloud and the device is
        not connected.|
    AmountPromptTip:
      type: object
      required:
        - total
      properties:
        total:
          type: number
          maxLength: 14
          example: 100
          description: >
            The total transaction amount. Used as the seed for calculating the
            tip amount when using preset percentages.
        tipBasis:
          $ref: '#/components/schemas/AmountTipBasis'
    devices_prompttip_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
        - amount
        - tip
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountPromptTip'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          $ref: '#/components/schemas/UIRequest'
    devices_prompttip_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - amount
        - tip
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountPromptTip'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        tip:
          $ref: '#/components/schemas/TipObject'
        ui:
          $ref: '#/components/schemas/UIRequest'
    AmountTipResponse:
      type: number
      maxLength: 14
      example: 20
      description: |
        The tip amount of the transaction.
    TipSelectedOption:
      type: string
      enum:
        - preset1
        - preset2
        - preset3
        - other
        - notip
      example: preset2
      description: |
        The tip option selected by the cardholder.

        | Value   | Description                                    |
        |---------|------------------------------------------------|
        | preset1 | The cardholder selected the preset 1 button    |
        | preset2 | The cardholder selected the preset 2 button    |
        | preset3 | The cardholder selected the preset 3 button    |
        | other   | The cardholder selected the other button       |
        | notip   | The cardholder selected the cash/no tip button |
    ServerNameComEng:
      type: string
      maxLength: 50
      example: Commerce Engine K
      description: |
        The name of the server that processed the request.
    ServerComEng:
      type: object
      readOnly: true
      properties:
        name:
          $ref: '#/components/schemas/ServerNameComEng'
    BatchInclusiveResponse:
      type: string
      minLength: 1
      maxLength: 1
      example: 'N'
      enum:
        - 'Y'
        - 'N'
      description: >
        Indicates whether or not the batch includes transactions for every day
        leading up to the business date.


        Value|Description

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

        Y    | The batch includes transactions for every day leading up to the
        specified business date

        N    | The batch includes transactions for only the specified business
        date
    BatchNetAmountResponse:
      type: number
      maxLength: 14
      example: 5601.78
      description: |
        The net amount in the batch (saleAmount MINUS refundAmount)
    BatchNetCountResponse:
      type: integer
      example: 187
      description: |
        The net transaction count in the batch (saleCount PLUS refundCount)
    BatchRefundAmount:
      type: number
      maxLength: 14
      readOnly: true
      example: 100
      description: |
        The total amount of all refunds in the batch
    BatchRefundCount:
      type: integer
      readOnly: true
      example: 1
      description: |
        The count of all refunds in the batch
    BatchSaleAmount:
      type: number
      maxLength: 14
      readOnly: true
      example: 5701.78
      description: |
        The total amount of all sales in the batch
    BatchSaleCount:
      type: integer
      readOnly: true
      example: 186
      description: |
        The count of all sales in the batch
    BatchResponseNoProcessors:
      type: object
      properties:
        inclusive:
          $ref: '#/components/schemas/BatchInclusiveResponse'
        netAmount:
          $ref: '#/components/schemas/BatchNetAmountResponse'
        netCount:
          $ref: '#/components/schemas/BatchNetCountResponse'
        refundAmount:
          $ref: '#/components/schemas/BatchRefundAmount'
        refundCount:
          $ref: '#/components/schemas/BatchRefundCount'
        saleAmount:
          $ref: '#/components/schemas/BatchSaleAmount'
        saleCount:
          $ref: '#/components/schemas/BatchSaleCount'
    SubmitBatchBusinessDate:
      type: string
      format: ISO 8601
      minLength: 10
      example: '2021-04-15T00:00:00.000-07:00'
      description: |
        The business date you want to close a batch for.
    BatchInclusive:
      type: string
      minLength: 1
      maxLength: 1
      example: 'N'
      enum:
        - 'Y'
        - 'N'
      description: >
        Indicates whether or not you want the batch to include transactions for
        every day leading up to the `transaction.businessDate`.


        Value|Description

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

        Y    | The batch will contain transactions for every day leading up to
        the specified `businessDate`

        N    | The batch will contain transactions for only the specified
        `businessDate`
    BatchNetAmount:
      type: number
      maxLength: 14
      example: 5601.78
      description: >
        The net amount that is expected to be in the batch (sales MINUS
        refunds).  If this field is sent and the amount does not match, an error
        will be returned, and the batch will not be closed.
    BatchNetCount:
      type: integer
      example: 187
      description: >
        The net transaction count in the batch (sales PLUS refunds).  If this
        field is sent and the count does not match, an error will be returned,
        and the batch will not be closed.
    Batch:
      type: object
      required:
        - inclusive
      properties:
        inclusive:
          $ref: '#/components/schemas/BatchInclusive'
        netAmount:
          $ref: '#/components/schemas/BatchNetAmount'
        netCount:
          $ref: '#/components/schemas/BatchNetCount'
    BatchProcessorsArchivesId:
      type: integer
      maxLength: 10
      example: '41'
      description: |
        The ID that was assigned to the closed batch.  
    BatchProcessorsProcessor:
      type: string
      readOnly: true
      example: TSYS
      description: |
        The processor which handled this batch of transactions.
    BatchProcessorsCurrencyCode:
      type: string
      readOnly: true
      example: '840'
      description: |
        The type of currency used for this batch of transactions.
    BatchProcessors:
      type: object
      properties:
        archivesID:
          $ref: '#/components/schemas/BatchProcessorsArchivesId'
        processor:
          $ref: '#/components/schemas/BatchProcessorsProcessor'
        currencyCode:
          $ref: '#/components/schemas/BatchProcessorsCurrencyCode'
        refundAmount:
          $ref: '#/components/schemas/BatchRefundAmount'
        refundCount:
          $ref: '#/components/schemas/BatchRefundCount'
        saleAmount:
          $ref: '#/components/schemas/BatchSaleAmount'
        saleCount:
          $ref: '#/components/schemas/BatchSaleCount'
    BatchProcessorsArray:
      type: array
      items:
        $ref: '#/components/schemas/BatchProcessors'
    BatchResponse:
      type: object
      properties:
        inclusive:
          $ref: '#/components/schemas/BatchInclusiveResponse'
        netAmount:
          $ref: '#/components/schemas/BatchNetAmountResponse'
        netCount:
          $ref: '#/components/schemas/BatchNetCountResponse'
        refundAmount:
          $ref: '#/components/schemas/BatchRefundAmount'
        refundCount:
          $ref: '#/components/schemas/BatchRefundCount'
        saleAmount:
          $ref: '#/components/schemas/BatchSaleAmount'
        saleCount:
          $ref: '#/components/schemas/BatchSaleCount'
        processors:
          $ref: '#/components/schemas/BatchProcessorsArray'
    TransactionSaleFlagQR:
      type: string
      maxLength: 1
      example: S
      enum:
        - A
        - S
      description: >
        Specifies a transaction is a sale (‘S’) or authorization (‘A’).  Value
        sent in the [Get QR
        Code](/apis/payments-platform-rest/openapi/qr-payments/getqrcode)
        request will be returned in the [Get QR
        Details](/apis/payments-platform-rest/openapi/qr-payments/getqrdetails)
        response.
    QRCodeResponseValue:
      type: string
      example: https://pay.skytab.com/A3KD42J
      maxLength: 1024
      description: >
        Contains the QR Code URL string. This string can be converted to a QR
        code for printing on receipts or displaying on devices.
    QRCodeResponse:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/QRCodeResponseValue'
    QRCodeRequestValue:
      type: string
      example: https://pay.skytab.com/A3KD42J
      maxLength: 1024
      description: >
        Contains the QR Code URL string. This must match the value received in
        the [Get QR
        Code](/apis/payments-platform-rest/openapi/qr-payments/getqrcode)
        response.
    QRCodeRequest:
      type: object
      required:
        - value
      properties:
        value:
          $ref: '#/components/schemas/QRCodeRequestValue'
    QRPayConfigSplitEnabled:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      description: >
        Specifies whether split check processing is enabled or disabled for QR
        Code Payments


        Value|Description

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

        Y    | Split check proessing is enabled.

        N    | Split check proessing is disabled.
    QRPayConfigTipEnabled:
      type: string
      minLength: 1
      maxLength: 1
      enum:
        - 'Y'
        - 'N'
      description: |
        Specifies whether tip prompting is enabled or disabled for the merchant

        Value|Description
        -----|-----------
        Y    | Tip prompting is enabled.
        N    | Tip prompting is disabled.
    QRPayConfigTipPresetsArray:
      type: array
      items:
        type: string
      example:
        - '15'
        - '18'
        - '20'
      readOnly: true
      description: |
        Tip preset percentages configured by the merchant.
    QRPayConfig:
      type: object
      readOnly: true
      properties:
        splitEnabled:
          $ref: '#/components/schemas/QRPayConfigSplitEnabled'
        tipEnabled:
          $ref: '#/components/schemas/QRPayConfigTipEnabled'
        tipPresets:
          $ref: '#/components/schemas/QRPayConfigTipPresetsArray'
    TransactionResponseCodeQRPaymentStatus:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: V
      enum:
        - A
        - C
        - T
      description: >
        Code indicating that the status of the QR code payment


        Value  |Description

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

        A      | The QR Payment was processed and approved.

        C      | The QR Payment was cancelled. The QR code had not been used for
        payment or the payment was not successful.

        T      | The QR Payment was cancelled. The QR code had already been used
        for payment and was approved. The approval was reversed.
    TransactionResponseCodeQRCancel:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: C
      enum:
        - C
        - T
      description: >
        Code indicating that the QR code was cancelled and if it was reversed


        Value  |Description

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

        C      | The QR Payment was cancelled. The QR code had not been used for
        payment or the payment was not successful.

        T      | The QR Payment was cancelled. The QR code had already been used
        for payment and was approved. The approval was reversed.
    TransactionAuthSourceMode:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: O
      enum:
        - E
        - O
      description: |
        Indicates whether the UTG is online or offline.

        Value  | Description       
        -------|----------------------------
        E      | Online
        O      | Offline
    TransactionToShip:
      type: string
      maxLength: 1
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: |
        Merchants acknowledgement to ship/process the order.
    TransactionOrderId:
      type: string
      example: '92282831'
      description: |
        Merchant’s Order Number
    CardTypeRisk:
      type: string
      enum:
        - AP
        - CC
        - PP
        - GC
      example: CC
      description: |
        Payment Type submitted by merchant:

        Value| Description
        -----|------------
        AP   | Apple Pay
        CC   | Credit Card
        PP   | PayPal
        GC   | Gift Card
    AmountRisk:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested. All other fields are for informational purposes and
        must also be included in the `total` field. For example, a purchase of
        $100 with $8 tax would be “108.00” in the `total` field and "8.00" in
        the `tax` field.


        Note: For merchants that are configured to allow multiple currencies,
        the amount  fields can specify up to three decimal places. However, the
        number of decimal  places can not exceed the number allowed for the
        specified currency. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
      required:
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotal'
        tax:
          $ref: '#/components/schemas/AmountTax'
    RiskSessionId:
      type: string
      maxLength: 32
      example: 123420552ab34024b461455de4bcb482
      description: |
        Unique Session ID. Must be unique over a 30-day span.
    SourceIP:
      type: string
      example: 63.57.84.101
      description: >
        Public source IP Address where the request originates, not the IP
        Address of the web server.
    BillingEmailAddress:
      type: string
      example: firstname.lastname@email.com
      description: |
        This is the email address submitted by the customer.
    BillingFullName:
      type: string
      example: John Smith
      description: |
        Name submitted with the order
    BillingAddressLine1:
      type: string
      example: 65 Easy St
      description: |
        Billing street address - Line 1
    BillingAddressLine2:
      type: string
      example: c/o John Doe
      description: |
        Billing street address - Line 2
    BillingCity:
      type: string
      example: Las Vegas
      description: |
        Billing address - City
    BillingRegion:
      type: string
      maxLength: 3
      example: NV
      description: |
        Billing address - State/Province
    BillingPostalCode:
      type: string
      minLength: 5
      maxLength: 9
      example: '65144'
      description: |
        Billing address - Postal Code
    BillingCountry:
      type: string
      example: US
      description: |
        Billing address - Country
    BillingPhoneNumber:
      type: string
      example: '+13110001234'
      description: |
        Bill-to Phone Number
    ShippingAddressLine1:
      type: string
      example: 65 Easy St
      maxLength: 30
      description: |
        Shipping street address - Line 1
    ShippingAddressLine2:
      type: string
      example: c/o John Doe
      maxLength: 30
      description: |
        Shipping street address - Line 2
    ShippingCity:
      type: string
      example: Las Vegas
      maxLength: 30
      description: |
        Shipping address - City
    ShippingCountry:
      type: string
      example: US
      maxLength: 2
      description: |
        Shipping address - 2 character ISO Country Code.
    ShippingEmailAddress:
      type: string
      example: firstname.lastname@email.com
      description: |
        Shipping address - Email address of recipient
    ShippingFullName:
      type: string
      example: John 'Smith'
      description: |
        Shipping address - Name of recipient
    ShippingPostalCode:
      type: string
      minLength: 5
      maxLength: 9
      example: '65144'
      description: |
        Shipping address - Postal Code
    ShippingPhoneNumber:
      type: string
      example: '+13110001234'
      description: |
        Ship-to Phone Number
    ShippingRegion:
      type: string
      example: NV
      maxLength: 3
      description: >
        Shipping address - A level 2 country subdivision code according to
        ISO-3166-2.
    ShippingType:
      type: string
      maxLength: 1
      example: 'Y'
      enum:
        - SD
        - ND
        - 2D
        - ST
      description: |
        Shipping type.

        Value| Description
        -----|------------
        SD   | Same Day
        ND   | Next Day
        2D   | Second Day
        ST   | Standard
    ShoppingCartType:
      type: string
      example: Deodarant
      description: >
        Shopping cart data array attribute high level or generalized description
        of the item added to the shopping cart; this value should be free from
        any markup or Unicode values. This value should be passed as plain text.
    ShoppingCartDescription:
      type: string
      example: New Spice Fiji
      description: >
        Shopping cart data array attribute for a specific description of the
        item being purchased.
    ShoppingCartSKU:
      type: string
      example: '579446588'
      description: >
        Shopping cart data array attribute typically the SKU for an item; this
        value should be free from any markup or Unicode values. This value
        should be passed as plain text.
    ShoppingCartQuantity:
      type: integer
      example: 4
      description: >
        Shopping cart data array attribute signifying the quantity of the item
        being purchased.
    ShoppingCartPrice:
      type: number
      example: 1000
      description: >
        Shopping cart data array attribute for the price of the single item.
        Must be a natural number including 0.
    ShoppingCartArray:
      type: array
      items:
        type: object
        properties:
          type:
            $ref: '#/components/schemas/ShoppingCartType'
          description:
            $ref: '#/components/schemas/ShoppingCartDescription'
          sku:
            $ref: '#/components/schemas/ShoppingCartSKU'
          quantity:
            $ref: '#/components/schemas/ShoppingCartQuantity'
          price:
            $ref: '#/components/schemas/ShoppingCartPrice'
      example:
        - type: Deodarant
          sku: '579446588'
          description: New Spice Fiji
          quantity: '5'
          price: 4
        - type: Toothbrush
          sku: '135488945'
          description: Electric Model
          quantity: '1'
          price: 104.99
      description: |
        Array of objects detailing the individual items being purchased
    risk_assess_unencryptedcard:
      type: object
      title: Card Number Unencrypted
      allOf:
        - type: object
          required:
            - dateTime
            - card
            - transaction
            - amount
            - currencyCode
            - risk
            - sourceIp
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            transaction:
              type: object
              required:
                - invoice
              properties:
                toShip:
                  $ref: '#/components/schemas/TransactionToShip'
                orderId:
                  $ref: '#/components/schemas/TransactionOrderId'
                invoice:
                  $ref: '#/components/schemas/TransactionInvoice'
                vendorReference:
                  $ref: '#/components/schemas/TransactionVendorReference'
                purchaseCard:
                  type: object
                  properties:
                    customerReference:
                      $ref: '#/components/schemas/PurchaseCardCustomerReference'
            card:
              type: object
              required:
                - number
                - type
              properties:
                type:
                  $ref: '#/components/schemas/CardTypeRisk'
                number:
                  $ref: '#/components/schemas/CardNumber'
                expirationDate:
                  $ref: '#/components/schemas/CardExpirationDate'
                entryMode:
                  $ref: '#/components/schemas/CardEntryMode'
                present:
                  $ref: '#/components/schemas/CardPresent'
            amount:
              $ref: '#/components/schemas/AmountRisk'
            currencyCode:
              $ref: '#/components/schemas/CurrencyCode'
            risk:
              type: object
              required:
                - sessionId
              properties:
                sessionId:
                  $ref: '#/components/schemas/RiskSessionId'
            sourceIp:
              $ref: '#/components/schemas/SourceIP'
            customer:
              type: object
              properties:
                emailAddress:
                  $ref: '#/components/schemas/BillingEmailAddress'
                fullName:
                  $ref: '#/components/schemas/BillingFullName'
                addressLine1:
                  $ref: '#/components/schemas/BillingAddressLine1'
                addressLine2:
                  $ref: '#/components/schemas/BillingAddressLine2'
                city:
                  $ref: '#/components/schemas/BillingCity'
                region:
                  $ref: '#/components/schemas/BillingRegion'
                postalCode:
                  $ref: '#/components/schemas/BillingPostalCode'
                country:
                  $ref: '#/components/schemas/BillingCountry'
                phoneNumber:
                  $ref: '#/components/schemas/BillingPhoneNumber'
                shipping:
                  type: object
                  properties:
                    addressLine1:
                      $ref: '#/components/schemas/ShippingAddressLine1'
                    addressLine2:
                      $ref: '#/components/schemas/ShippingAddressLine2'
                    city:
                      $ref: '#/components/schemas/ShippingCity'
                    country:
                      $ref: '#/components/schemas/ShippingCountry'
                    emailAddress:
                      $ref: '#/components/schemas/ShippingEmailAddress'
                    fullName:
                      $ref: '#/components/schemas/ShippingFullName'
                    postalCode:
                      $ref: '#/components/schemas/ShippingPostalCode'
                    phoneNumber:
                      $ref: '#/components/schemas/ShippingPhoneNumber'
                    region:
                      $ref: '#/components/schemas/ShippingRegion'
                    type:
                      $ref: '#/components/schemas/ShippingType'
            shoppingCart:
              $ref: '#/components/schemas/ShoppingCartArray'
      example:
        dateTime: '2022-02-07T12:36:42.948061-05:00'
        transaction:
          toShip: 'Y'
          orderId: orderId
          invoice: '0207123502'
          vendorReference: simulator1.0:0207123502
        card:
          type: CC
          number: '342877777777705'
          expirationDate: 1123,
          entryMode: M
          present: 'N'
        amount:
          total: 76001.99
        currencyCode: USD
        risk:
          sessionId: 123420552ab34024b461455de4bcb482
        sourceIp: 10.249.11.239
        customer:
          emailAddress: firstname.lastname@email.com
        shoppingCart':
          - type: Deodarant
            description: New Spice Fiji
            sku: '579446588'
            quantity: '5'
            price: 4
          - type: Toothbrush
            description: Electric Model
            sku: '135488945'
            quantity: '1'
            price: 104.99
    CardTypeRiskToken:
      type: string
      enum:
        - TK
      example: TK
      description: |
        Payment Type submitted by merchant:

        Value| Description
        -----|------------
        TK   | Token
    risk_assess_token_gtv:
      title: GTV Token
      type: object
      allOf:
        - type: object
          required:
            - dateTime
            - card
            - transaction
            - amount
            - currencyCode
            - risk
            - sourceIp
          properties:
            dateTime:
              $ref: '#/components/schemas/DateTime'
            transaction:
              type: object
              required:
                - invoice
              properties:
                toShip:
                  $ref: '#/components/schemas/TransactionToShip'
                orderId:
                  $ref: '#/components/schemas/TransactionOrderId'
                invoice:
                  $ref: '#/components/schemas/TransactionInvoice'
                vendorReference:
                  $ref: '#/components/schemas/TransactionVendorReference'
                purchaseCard:
                  type: object
                  properties:
                    customerReference:
                      $ref: '#/components/schemas/PurchaseCardCustomerReference'
            card:
              type: object
              required:
                - token
                - type
              properties:
                type:
                  $ref: '#/components/schemas/CardTypeRiskToken'
                token:
                  $ref: '#/components/schemas/CardTokenRequired'
                expirationDate:
                  $ref: '#/components/schemas/CardExpirationDate'
                entryMode:
                  $ref: '#/components/schemas/CardEntryMode'
                present:
                  $ref: '#/components/schemas/CardPresent'
            amount:
              $ref: '#/components/schemas/AmountRisk'
            currencyCode:
              $ref: '#/components/schemas/CurrencyCode'
            risk:
              type: object
              required:
                - sessionId
              properties:
                sessionId:
                  $ref: '#/components/schemas/RiskSessionId'
            sourceIp:
              $ref: '#/components/schemas/SourceIP'
            customer:
              type: object
              properties:
                emailAddress:
                  $ref: '#/components/schemas/BillingEmailAddress'
                fullName:
                  $ref: '#/components/schemas/BillingFullName'
                addressLine1:
                  $ref: '#/components/schemas/BillingAddressLine1'
                addressLine2:
                  $ref: '#/components/schemas/BillingAddressLine2'
                city:
                  $ref: '#/components/schemas/BillingCity'
                region:
                  $ref: '#/components/schemas/BillingRegion'
                postalCode:
                  $ref: '#/components/schemas/BillingPostalCode'
                country:
                  $ref: '#/components/schemas/BillingCountry'
                phoneNumber:
                  $ref: '#/components/schemas/BillingPhoneNumber'
                shipping:
                  type: object
                  properties:
                    addressLine1:
                      $ref: '#/components/schemas/ShippingAddressLine1'
                    addressLine2:
                      $ref: '#/components/schemas/ShippingAddressLine2'
                    city:
                      $ref: '#/components/schemas/ShippingCity'
                    country:
                      $ref: '#/components/schemas/ShippingCountry'
                    emailAddress:
                      $ref: '#/components/schemas/ShippingEmailAddress'
                    fullName:
                      $ref: '#/components/schemas/ShippingFullName'
                    postalCode:
                      $ref: '#/components/schemas/ShippingPostalCode'
                    phoneNumber:
                      $ref: '#/components/schemas/ShippingPhoneNumber'
                    region:
                      $ref: '#/components/schemas/ShippingRegion'
                    type:
                      $ref: '#/components/schemas/ShippingType'
            shoppingCart:
              $ref: '#/components/schemas/ShoppingCartArray'
      example:
        dateTime: '2022-02-07T12:36:42.948061-05:00'
        transaction:
          toShip: 'Y'
          orderId: orderId
          invoice: '0207123502'
          vendorReference: simulator1.0:0207123502
        card:
          type: TK
          token:
            value: '8048471746471119'
          entryMode: M
          present: 'N'
        amount:
          total: 76001.99
        currencyCode: USD
        risk:
          sessionId: 123420552ab34024b461455de4bcb482
        sourceIp: 10.249.11.239
        customer:
          emailAddress: firstname.lastname@email.com
        shoppingCart':
          - type: Deodarant
            description: New Spice Fiji
            sku: '579446588'
            quantity: '5'
            price: 4
          - type: Toothbrush
            description: Electric Model
            sku: '135488945'
            quantity: '1'
            price: 104.99
    RiskAssessment:
      type: string
      enum:
        - A
        - D
        - R
        - E
      example: A
      description: >
        This is the answer to the risk assessment. If the response is Escalate
        then transaction needs 3DS authentication. 


        Value| Description

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

        A    | Approve. Continue with the payment transaction.

        D    | Deny. Try another payment method

        R    | Review. Continue with the payment transaction.

        E    | Escalate. The transaction needs 3DS authentication.
    TransactionS4RiskId:
      type: string
      example: EC52377F-5A8E-4534-BE7A-CF779A35BE45
      description: >
        Unique transaction identification number generated by Shift4 to identify
        a specific risk transaction and a field that can be searched in LTM.
    HostResponseReasonCodeRisk:
      type: string
      maxLength: 4
      example: '271'
      description: >
        Returns a response code from the host.


        Value |Reason Description

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

        201   | Missing version of provider, this is built into SDK but must be
        supplied by merchant if not using the SDK

        202   | The mode type for post is missing. 

        203   | The six digit Merchant ID was not sent

        204   | The unique session ID was not sent

        205   | Transaction ID number

        211   | The currency was missing in the RISK submission

        212   | The total amount was missing

        221   | The email address was missing

        222   | For MODE = P RISK inquiries the caller ID is missing

        223   | The website identifier that was created in the Agent Web Console
        (DEFAULT is the default website ID) is missing

        231   | The payment type is missing. 

        232   | The credit card information is missing

        233   | Missing Magnetic Ink Character Recognition string

        234   | The PayPal Payer ID is missing

        235   | The payment token is missing.

        241   | The IP address is missing

        251   | The merchant acknowledgement is missing

        261   | The RISK query submitted to provider contained no data

        271   | The shopping cart data array attribute is missing.

        272   | The shopping cart data array attribute is missing.

        273   | The shopping cart data array attribute is missing.

        274   | The shopping cart data array attribute is missing.

        275   | The shopping cart data array attribute is missing.

        301   | The version of provider supplied by merchant does not fit the
        four integer parameter

        302   | The mode type is invalid. 

        303   | The six digit Merchant ID is malformed or wrong

        304   | The unique session ID is invalid. Refer to the Data Collector

        305   | Transaction ID number is malformed

        311   | The currency was wrong in the RISK submission

        312   | The total amount is wrong. TOTL is the whole number amount
        charged to customer

        321   | The email address does not meet required format or is greater
        than 64 characters in length

        322   | For MODE = P RISK inquiries the caller ID is malformed

        323   | The website identifier that was created in the Agent Web Console
        (DEFAULT is the default w website ID) does not match what was created in
        the AWC.

        324   | The specified format is wrong. Format options are key value
        pairs, XML, JSON, YAML

        331   | The payment type is wrong. 

        332   | The credit card information is malformed or wrong, test cards do
        not work in the production environment

        333   | Malformed or improper Magnetic Ink Character Recognition string.

        334   | The PayPal Payer ID is malformed or corrupt.

        335   | Malformed or improper Google Checkout Account ID string.

        336   | Malformed or improper Bill Me Later account number.

        337   | The encryption method specified is wrong.

        338   | The GreenDot payment token is not a valid payment token

        339   | When payment type equals CARD, PTYP = CARD and payment
        encryption type equals KHASH, `PENC = KHASH the value must be 20
        characters in length.

        340   | Invalid or excessive characters in the PTOK field

        341   | The IP address does not match specifications

        342   | The Gift Card payment token is invalid due to invalid
        characters, null, or exceeding character length

        351   | The merchant acknowledgement must be Y or N

        362   | There is a discrepancy in the shopping cart key count and the
        number of items actually being sent in the cart

        371   | The shopping cart data array attribute is missing.

        372   | The shopping cart data array attribute is corrupt or missing.

        373   | The shopping cart data array attribute is corrupt or missing.

        374   | The shopping cart data array attribute is corrupt or missing.

        375   | The shopping cart data array attribute is corrupt or missing.

        399   | A UDF has been mistyped or does not exist in the Agent Web
        Console

        401   | RISK keys submitted by merchant were not part of SDK

        404   | When PTYP equals NONE and a PTOK is submitted

        413   | The RISK Post to provider exceeded the 4K limit.

        501   | Error regarding certificate - Using test certificate in prod

        502   | Invalid Merchant ID has been entered

        601   | Unspecified system error - Contact Merchant Services

        602   | Provider will not process particular transaction

        701   | No header found with merchantId = [XXXXX], session_id =
        [htot2kk5khpamo45f777q455], trans=[122347] This error occurs when a RISK
        request goes to the database and there is no data available in the
        reply. The Update post had an invalid transaction ID#. Check all
        required fields for update post and confirm they are being passed
        correctly.
    HostResponseReasonDescriptionRisk:
      type: string
      maxLength: 73
      example: The credit card information is missing
      description: |
        Returns a description from the host.
    CustomerCity:
      type: string
      example: Las Vegas
      maxLength: 30
      description: |
        Customer address city.
    CustomerCountry:
      type: string
      example: US
      maxLength: 2
      description: >
        2 character ISO Country Code. See the
        [ISO](https://www.iso.org/obp/ui/#search/code/) website for details.
    CustomerPhoneNumber:
      type: string
      example: '3110001234'
      maxLength: 32
      description: |
        Customer phone number
    CustomerPhoneCountry:
      type: string
      example: '1'
      minLength: 1
      maxLength: 3
      description: |
        Country calling code of the phone number. 

        Required when sending `customer.phoneNumber`.
    CustomerRegion:
      type: string
      maxLength: 3
      example: NV
      description: |
        A level 2 country subdivision code according to ISO-3166-2.
    CustomerExternalId:
      type: string
      example: OD-123
      description: |
        Your external identifier for the Customer
    CustomerEnrollDate:
      type: string
      format: ISO 8601
      example: '2019-03-14T11:16:42.896-07:00'
      description: >
        Date of the user's first transaction in your system, regardless of
        payment  method used. The date and time must be passed in ISO 8601
        format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm)
    OTAChangeGuest:
      type: string
      example: 'Y'
      enum:
        - 'Y'
        - 'N'
      description: >
        Whether the guest (the person being served) is able to be changed.
        Fraudsters tend to pay for services that can change the guest.
    OTAServiceEndDate:
      type: string
      format: YYYY-MM-DD
      example: '2024-04-20'
      description: >
        OTA service end date  in YYYY-MM-DD format. A consumer booking a service
        such as a hotel for too many days elevates risk.
    OTAServiceStartDate:
      type: string
      format: YYYY-MM-DD
      example: '2024-04-18'
      description: >
        OTA service start date in YYYY-MM-DD format. A service start date that
        is very close to the transaction date elevates risk.
    OTAStartCity:
      type: string
      example: Las Vegas
      description: |
        OTA start city.
    OTAStartCountry:
      type: string
      format: ISO 3166 Alpha-2
      example: US
      description: >
        OTA start country in ISO 3166 Alpha-2 format.; for example, country
        where bus ticket was purchased.
    OTAStartZipCode:
      type: string
      example: '89134'
      description: |
        OTA start zip code.
    OTAType:
      type: array
      items:
        type: string
        enum:
          - hotel
          - trainticket
          - ferry
          - bus
          - multimodal
          - airline
          - cruise
          - carrental
      example:
        - hotel
        - airline
        - trainticket
      description: |
        OTA transaction type array.
    OTARequestPayPal:
      type: object
      description: >
        **Conditional: Utilize this object for Online Travel Agency
        transactions**
      required:
        - changeGuest
        - serviceEndDate
        - serviceStartDate
        - startCity
        - startCountry
        - startZipCode
        - type
      properties:
        changeGuest:
          $ref: '#/components/schemas/OTAChangeGuest'
        serviceEndDate:
          $ref: '#/components/schemas/OTAServiceEndDate'
        serviceStartDate:
          $ref: '#/components/schemas/OTAServiceStartDate'
        startCity:
          $ref: '#/components/schemas/OTAStartCity'
        startCountry:
          $ref: '#/components/schemas/OTAStartCountry'
        startZipCode:
          $ref: '#/components/schemas/OTAStartZipCode'
        type:
          $ref: '#/components/schemas/OTAType'
    PayPalClientMetaDataId:
      type: string
      example: 6f52ab38539f7e1037e8aa8e7b95407b
      description: >
        Identifier for completing risk check. Returned if `transaction.ota` is
        sent in the request.
    PayPalClientToken:
      type: string
      example: >-
        eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpGVXpJMU5pSXNJbXRwWkNJNklqSXdNVGd3TkRJMk1UWXRjMkZ1WkdKdmVDSXNJbWx6Y3lJNkltaDBkSEJ6T2k4dllYQnBMbk5oYm1SaWIzZ3VZbkpoYVc1MGNtVmxaMkYwWlhkaGVTNWpiMjBpZlEuZXlKbGVIQWlPakUzTVRNMk1qWXdNelVzSW1wMGFTSTZJbVl6WVRFek9EQm1MVFJpTURRdE5ERXpOQzA1WWpFMExUY3haalV5T0RKbVlXRTVOeUlzSW5OMVlpSTZJblkyY3pKemJXSTNObUptT1Rad2REUWlMQ0pwYzNNaU9pSm9kSFJ3Y3pvdkwyRndhUzV6WVc1a1ltOTRMbUp5WVdsdWRISmxaV2RoZEdWM1lYa3VZMjl0SWl3aWJXVnlZMmhoYm5RaU9uc2ljSFZpYkdsalgybGtJam9pZGpaek1uTnRZamMyWW1ZNU5uQjBOQ0lzSW5abGNtbG1lVjlqWVhKa1gySjVYMlJsWm1GMWJIUWlPbVpoYkhObGZTd2ljbWxuYUhSeklqcGJJbTFoYm1GblpWOTJZWFZzZENKZExDSnpZMjl3WlNJNld5SkNjbUZwYm5SeVpXVTZWbUYxYkhRaVhTd2liM0IwYVc5dWN5STZleUp0WlhKamFHRnVkRjloWTJOdmRXNTBYMmxrSWpvaVlYQnROSEZoSW4xOS5fNW9hUm9WSkxYWGZTWnM0ZUNxUVdTYkF5X3A3UFZuOUdfbjYteDE4Q0tPUUFuYmxRN2tHVExJOW5OOHM0OW52NW92Y1YwYXJnVHNNUkw5bjF6TXU3USIsImNvbmZpZ1VybCI6Imh0dHBzOi8vYXBpLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy92NnMyc21iNzZiZjk2cHQ0L2NsaWVudF9hcGkvdjEvY29uZmlndXJhdGlvbiIsIm1lcmNoYW50QWNjb3VudElkIjoiYXBtNHFhIiwiZ3JhcGhRTCI6eyJ1cmwiOiJodHRwczovL3BheW1lbnRzLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vZ3JhcGhxbCIsImRhdGUiOiIyMDE4LTA1LTA4IiwiZmVhdHVyZXMiOlsidG9rZW5pemVfY3JlZGl0X2NhcmRzIl19LCJjbGllbnRBcGlVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvdjZzMnNtYjc2YmY5NnB0NC9jbGllbnRfYXBpIiwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwibWVyY2hhbnRJZCI6InY2czJzbWI3NmJmOTZwdDQiLCJhc3NldHNVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImF1dGhVcmwiOiJodHRwczovL2F1dGgudmVubW8uc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbSIsInZlbm1vIjoib2ZmIiwiY2hhbGxlbmdlcyI6W10sInRocmVlRFNlY3VyZUVuYWJsZWQiOnRydWUsImFuYWx5dGljcyI6eyJ1cmwiOiJodHRwczovL29yaWdpbi1hbmFseXRpY3Mtc2FuZC5zYW5kYm94LmJyYWludHJlZS1hcGkuY29tL3Y2czJzbWI3NmJmOTZwdDQifSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwiZW52aXJvbm1lbnROb05ldHdvcmsiOmZhbHNlLCJ1bnZldHRlZE1lcmNoYW50IjpmYWxzZSwiYWxsb3dIdHRwIjp0cnVlLCJkaXNwbGF5TmFtZSI6ImFwbTRxYSIsImNsaWVudElkIjoiQWVvaGtSQk93UUtCZXJfZ0x2ZnJqTWR4aDhra2tiSm1YZG84WEtORzBwSUFpYlFwWjNTWDdqTXRQTnhwSFlJTmNEVlFVeHlnaHJrVkJydTQiLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJlbnZpcm9ubWVudCI6Im9mZmxpbmUiLCJicmFpbnRyZWVDbGllbnRJZCI6Im1hc3RlcmNsaWVudDMiLCJtZXJjaGFudEFjY291bnRJZCI6ImFwbTRxYSIsImN1cnJlbmN5SXNvQ29kZSI6IlVTRCJ9fQ==
      description: |
        A Base64 encoded string used to initialize client SDKs.
    PayPalPayerId:
      type: string
      example: 6CB2GS6AQRS5S
      description: |
        The ID belonging to the PayPal account.
    PayPalPaymentMethodNonce:
      type: string
      example: 7fd66f90e-c8ec-0363-6b45-aeb930175e43
      description: >
        A payment method nonce is a secure, one-time-use reference to payment
        information. It's the key element that allows your server to communicate
        sensitive payment information to Braintree without ever touching the raw
        data.
    PayPalPaymentMethodIdUsage:
      type: string
      example: S
      enum:
        - S
        - M
      description: >
        Dictates whether paymentMethodId returned will be single or multi-use
        payment token

          Value|Description
          -----|-----------
          S    | Single Use
          M    | Multiple Use
    PayPalDeviceData:
      type: string
      example: '{"correlation_id":"010e4 a744d78644f971fc5f9dc1c43aa"}'
      description: |
        The customer's device information.
    AirlineTaxAmount:
      type: number
      maxLength: 14
      example: 15
      description: |
        The tax amount
    AirlineFlightLegsPayPal:
      type: object
      required:
        - destAirportCode
        - fareBasis
        - flightNumber
        - legDepartureDateTime
        - originAirportCode
        - serviceClass
        - stopOverCode
      properties:
        carrierCode:
          $ref: '#/components/schemas/AirlineFlightLegsCarrierCode'
        conjunctionTicketIndicator:
          $ref: '#/components/schemas/AirlineConjunctionTicketIndicator'
        couponNumber:
          $ref: '#/components/schemas/AirlineFlightLegsCouponNumber'
        destAirportCode:
          $ref: '#/components/schemas/AirlineFlightLegsDestAirportCode'
        exchangeTicketNumber:
          $ref: '#/components/schemas/AirlineExchangeTicketNumber'
        fareBasis:
          $ref: '#/components/schemas/AirlineFlightLegsFareBasis'
        flightNumber:
          $ref: '#/components/schemas/AirlineFlightLegsFlightNumber'
        legArrivalDateTime:
          $ref: '#/components/schemas/AirlineFlightLegsLegArrivalDateTime'
        legDepartureDateTime:
          $ref: '#/components/schemas/AirlineFlightLegsLegDepartureDateTime'
        originAirportCode:
          $ref: '#/components/schemas/AirlineFlightLegsOriginAirportCode'
        restrictedTicketIndicator:
          $ref: '#/components/schemas/AirlineRestrictedTicketIndicator'
        serviceClass:
          $ref: '#/components/schemas/AirlineFlightLegsServiceClass'
        stopOverCode:
          $ref: '#/components/schemas/AirlineFlightLegsStopOverCode'
        taxAmount:
          $ref: '#/components/schemas/AirlineTaxAmount'
    AirlineFlightLegsArrayPayPal:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/AirlineFlightLegsPayPal'
      example:
        - destAirportCode: YXX
          fareBasis: YE3MAU
          flightNumber: '2490'
          legDepartureDateTime: '2021-04-12T15:39:01.594-07:00'
          originAirportCode: AUH
          serviceClass: FC
          stopOverCode: X
        - destAirportCode: LAS
          fareBasis: YE3MAU
          flightNumber: '8495'
          legDepartureDateTime: '2021-04-12T19:39:01.594-07:00'
          originAirportCode: YXX
          serviceClass: FC
          stopOverCode: X
      description: >
        Array of flight trip leg info. Maximun 4 legs to a trip allowed. Note:
        At least one instance of flight trip leg info should be provided.
    AirlinePassengerBirthDate:
      type: string
      format: YYYY-MM-DD
      example: '2001-04-14'
      description: |
        The passenger's date of birth in YYYY-MM-DD format
    AirlinePassengerCode:
      type: string
      maxLength: 17
      example: 12AD9S8
      description: >
        The code supplied by the customer using a purchase card. Maximum 17
        characters.
    AirlinePassengerCountryCode:
      type: string
      format: ISO 3166 Alpha-2
      example: US
      description: |
        The passenger's nationality in ISO 3166 Alpha-2 format.
    AirlineTicketsPayPal:
      type: object
      required:
        - passengerName
        - ticketNumber
      properties:
        passengerName:
          $ref: '#/components/schemas/AirlineTicketsPassengerName'
        ticketNumber:
          $ref: '#/components/schemas/AirlineTicketsTicketNumber'
        ticketFare:
          $ref: '#/components/schemas/AirlineTicketsTicketFare'
    AirlineTicketsArrayPayPal:
      type: array
      writeOnly: true
      items:
        $ref: '#/components/schemas/AirlineTicketsPayPal'
      example:
        - ticketNumber: 412345678901234
          passengerName: Jane Doe
          ticketFare: 350
        - ticketNumber: 412345678901236
          passengerName: John Smith
          ticketFare: 250
      description: >
        Array of ticket number and passenger name. Note: At least one instance
        of ticket number and passenger name info should be provided.
    AirlineRequestPayPal:
      type: object
      description: |
        **Conditional: Utilize this object for Airline transactions**
      required:
        - carrierCode
        - flightLegs
        - issueDate
        - tickets
      properties:
        carrierCode:
          $ref: '#/components/schemas/AirlineCarrierCode'
        flightLegs:
          $ref: '#/components/schemas/AirlineFlightLegsArrayPayPal'
        issueDate:
          $ref: '#/components/schemas/AirlineIssueDate'
        passengerArrivalDate:
          $ref: '#/components/schemas/AirlinePassengerArrivalDate'
        passengerBirthDate:
          $ref: '#/components/schemas/AirlinePassengerBirthDate'
        passengerCode:
          $ref: '#/components/schemas/AirlinePassengerCode'
        passengerCountryCode:
          $ref: '#/components/schemas/AirlinePassengerCountryCode'
        restrictedTicketIndicator:
          $ref: '#/components/schemas/AirlineRestrictedTicketIndicator'
        taxAmount:
          $ref: '#/components/schemas/AirlineTaxAmount'
        tickets:
          $ref: '#/components/schemas/AirlineTicketsArrayPayPal'
        travelAgencyCode:
          $ref: '#/components/schemas/AirlineTravelAgencyCode'
        travelAgencyName:
          $ref: '#/components/schemas/AirlineTravelAgencyName'
    CustomerBrowserType:
      type: string
      example: >-
        Mozilla\\/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko\\/20100101 
        Firefox\\/98.0
      description: |
        Internet browser or simply a browser.
    PayPalTransactionId:
      type: string
      example: dHJhbnNhY3Rpb25fazd6cDB5ZzA
      description: |
        Unique identifier.
    PayPalLegacyId:
      type: string
      example: k7zp0yg0
      description: |
        Legacy unique identifier.
    PayPalOrderId:
      type: string
      example: 444106-8010720-0414151800-4371
      description: |
        Additional information about the transaction.
    PayPalStatus:
      type: string
      example: AUTHORIZED
      description: |
        The current status of this transaction.
    PayPalAuthorizationId:
      type: string
      example: 6W6361048T1775802
      description: >
        If the transaction was successfully authorized, the PayPal ID for the
        authorization.
    PayPalCaptureId:
      type: string
      example: 3EK61497JE2934158
      description: >
        If funds for the transaction have settled, the PayPal ID for the capture
        of funds.
    PayPalPaymentMethodId:
      type: string
      example: dda7z0fq
      description: |
        Identifier for a single or multi-use payment token
    CustomerAddressLine1ThreeDSecure:
      type: string
      maxLength: 30
      example: 65 Easy St
      description: >
        Cardholder’s street address exactly as it appears on their billing
        statement. This field is used in AVS.


        **Recommended for increasing the possibility of frictionless flow**
    CustomerAddressLine2:
      type: string
      example: Apt 124
      maxLength: 30
      description: |
        Customer address line 2.
    CustomerCityThreeDSecure:
      type: string
      example: Las Vegas
      maxLength: 30
      description: |
        Customer address city.

        **Recommended for increasing the possibility of frictionless flow**
    CustomerRegionThreeDSecure:
      type: string
      maxLength: 3
      example: NV
      description: |
        A level 2 country subdivision code according to ISO-3166-2.

        **Recommended for increasing the possibility of frictionless flow**
    CustomerPostalCodeThreeDSecure:
      type: string
      minLength: 1
      maxLength: 9
      example: '65144'
      description: >
        Cardholder’s ZIP/postal code from their billing statement. This field is
        used in AVS. Do not include special characters.


        **Note: This field only allows alphanumeric characters (a-z, A-Z, 0-9).
        Special characters including - are not allowed. If you are sending in
        zip+4 you must not include the dash so 89134-1234 would be sent as
        891341234**


        **Recommended for increasing the possibility of frictionless flow**
    CustomerCountryThreeDSecure:
      type: string
      example: US
      maxLength: 2
      description: >
        2 character ISO Country Code. See the
        [ISO](https://www.iso.org/obp/ui/#search/code/) website for details.


        **Recommended for increasing the possibility of frictionless flow**
    ShippingAddressLine1ThreeDSecure:
      type: string
      example: 65 Easy St
      maxLength: 30
      description: |
        Shipping street address - Line 1

        **Recommended for increasing the possibility of frictionless flow**
    ShippingCityThreeDSecure:
      type: string
      example: Las Vegas
      maxLength: 30
      description: |
        Shipping address - City

        **Recommended for increasing the possibility of frictionless flow**
    ShippingCountryThreeDSecure:
      type: string
      example: US
      maxLength: 2
      description: |
        Shipping address - 2 character ISO Country Code.

        **Recommended for increasing the possibility of frictionless flow**
    ShippingPostalCodeThreeDSecure:
      type: string
      minLength: 5
      maxLength: 9
      example: '65144'
      description: |
        Shipping address - Postal Code

        **Recommended for increasing the possibility of frictionless flow**
    ShippingRegionThreeDSecure:
      type: string
      example: NV
      maxLength: 3
      description: >
        Shipping address - A level 2 country subdivision code according to
        ISO-3166-2.


        **Recommended for increasing the possibility of frictionless flow**
    CustomerShipping3DSecure:
      type: object
      description: |
        **Conditional: must be sent if `threeDSecure.addressMatch` is 'false'**
      properties:
        addressLine1:
          $ref: '#/components/schemas/ShippingAddressLine1ThreeDSecure'
        addressLine2:
          $ref: '#/components/schemas/ShippingAddressLine2'
        city:
          $ref: '#/components/schemas/ShippingCityThreeDSecure'
        country:
          $ref: '#/components/schemas/ShippingCountryThreeDSecure'
        postalCode:
          $ref: '#/components/schemas/ShippingPostalCodeThreeDSecure'
        region:
          $ref: '#/components/schemas/ShippingRegionThreeDSecure'
    ThreeDSecureInitiateStandalone:
      type: string
      enum:
        - '01'
        - '03'
      writeOnly: true
      example: '03'
      description: |
        Indicates whether to initiate the 3D Secure authentication process

        Value| Description
        -----|------------
        01   | Force 3D Secure authentication
        03   | Initiate 3D Secure according to the 3D Secure Adviser result
    ThreeDSecureBrowserAcceptHeader:
      type: string
      example: >-
        text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
      minLength: 0
      maxLength: 2048
      description: |
        Exact content of the HTTP accept headers.
    ThreeDSecureBrowserJavaEnabled:
      type: boolean
      example: true
      description: >
        Indicates whether the cardholder's browser has the ability to execute
        Java.


        Value | Description

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

        true  | Cardholder's browser does have the ability to execute Java.

        false | Cardholder's browser does not have the ability to execute Java.
    ThreeDSecureBrowserJavascriptEnabled:
      type: boolean
      example: true
      description: >
        Indicates whether the cardholder's browser has the ability to execute
        Javascript.


        Value | Description

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

        true  | Cardholder's browser does have the ability to execute
        Javascript.

        false | Cardholder's browser does not have the ability to execute
        Javascript.
    ThreeDSecureBrowserLanguage:
      type: string
      example: en-GB
      minLength: 2
      maxLength: 16
      description: |
        Value representing the browser language as defined in IETF BCP47.
    ThreeDSecureBrowserColorDepth:
      type: string
      enum:
        - '1'
        - '4'
        - '8'
        - '15'
        - '16'
        - '24'
        - '32'
        - '48'
      example: '48'
      minLength: 1
      maxLength: 2
      description: >
        Value representing the bit depth of the colour palette for displaying
        images, in bits per pixel. Accepted values are:


        Value| Description

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

        1    | 1 bit

        4    | 4 bits

        8    | 8 bits

        15   | 15 bits

        16   | 16 bits

        24   | 24 bits

        32   | 32 bits

        48   | 48 bits
    ThreeDSecureBrowserScreenWidth:
      type: integer
      example: 1920
      minLength: 1
      maxLength: 6
      description: |
        Total height of the Cardholder's screen in pixels.
    ThreeDSecureBrowserScreenHeight:
      type: integer
      example: 1080
      minLength: 1
      maxLength: 6
      description: |
        Total height of the Cardholder's screen in pixels.
    ThreeDSecureBrowserTZ:
      type: integer
      example: -480
      minLength: 1
      maxLength: 5
      description: >
        Time difference between UTC time and the Cardholder browser local time,
        in minutes.
    ThreeDSecureBrowser:
      type: object
      required:
        - acceptHeader
        - javaEnabled
        - javascriptEnabled
        - language
        - colorDepth
        - screenWidth
        - screenHeight
        - tz
      properties:
        acceptHeader:
          $ref: '#/components/schemas/ThreeDSecureBrowserAcceptHeader'
        javaEnabled:
          $ref: '#/components/schemas/ThreeDSecureBrowserJavaEnabled'
        javascriptEnabled:
          $ref: '#/components/schemas/ThreeDSecureBrowserJavascriptEnabled'
        language:
          $ref: '#/components/schemas/ThreeDSecureBrowserLanguage'
        colorDepth:
          $ref: '#/components/schemas/ThreeDSecureBrowserColorDepth'
        screenWidth:
          $ref: '#/components/schemas/ThreeDSecureBrowserScreenWidth'
        screenHeight:
          $ref: '#/components/schemas/ThreeDSecureBrowserScreenHeight'
        tz:
          $ref: '#/components/schemas/ThreeDSecureBrowserTZ'
    ThreeDSecureHeaderContent:
      type: string
      example: userAgent header
      maxLength: 255
      description: |
        Exact content of the HTTP user-agent header.
    ThreeDSecureChallengeWindowSize:
      type: string
      enum:
        - '01'
        - '02'
        - '03'
        - '04'
        - '05'
      example: '05'
      minLength: 2
      maxLength: 2
      description: >
        Dimensions of the challenge window that will be displayed to the
        cardholder. The issuer replies with content that is formatted to
        appropriately render in this window to provide the best possible user
        experience. Preconfigured window sizes are given in “width x height” in
        pixels.


        Value| Description

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

        01   | 250 x 400

        02   | 390 x 400

        03   | 500 x 600

        04   | 600 x 400

        05   | Full screen
    ThreeDSecureTransType:
      type: string
      enum:
        - '01'
        - '03'
        - '10'
        - '11'
        - '28'
      example: '01'
      minLength: 2
      maxLength: 2
      description: |
        Identifies the type of transaction being authenticated. 
        The values are derived from ISO 8583.

        Value| Description
        -----|------------
        01   | Goods / Service purchase
        03   | Check Acceptance
        10   | Account Funding
        11   | Quasi-Cash Transaction
        28   | Prepaid activation and Loan
    ThreeDSecureChannel:
      type: string
      enum:
        - '01'
        - '02'
        - '03'
      example: '02'
      minLength: 2
      maxLength: 2
      description: >
        Indicates the type of channel interface being used to initiate the
        transaction.


        Value| Description

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

        01   | App-based (APP)

        02   | Browser (BRW)

        03   | 3DS Requestor Initiated (3RI)
    ThreeDSecureAddressMatch:
      type: boolean
      example: true
      description: >
        Indicates whether the Cardholder Shipping Address and Cardholder Billing
        Address are identical.


        Value | Description

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

        true  | Shipping Address matches Billing Address

        false | Shipping Address does not match Billing Address 
    ThreeDSecureReqChallengeInd:
      type: string
      enum:
        - '01'
        - '02'
        - '03'
        - '04'
        - '05'
        - '06'
        - '07'
        - '08'
        - '09'
      example: '02'
      minLength: 2
      maxLength: 2
      description: >
        Indicates whether a challenge is requested for this transaction. For
        example: For payment authentication, a merchant may have concerns about
        the transaction, and request a challenge.


        Value| Description

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

        01   | No preference

        02   | No challenge requested

        03   | Challenge requested by merchant

        04   | Challenge requested: Mandate

        05   | No Challenge Requested, transactional risk analysis is already
        performed

        06   | No Challenge Requested, Data share only

        07   | No Challenge Requested, SCA is already performed

        08   | No challenge requested (utilise whitelist exemption if no
        challenge required)

        09   | Challenge requested (whitelist prompt requested if challenge
        required)"
            
    CompletionURL3DSRequest:
      type: string
      example: https://merchant.com/completion
      description: >
        Contains the merchant URL to which the browser should be  redirected
        after the challenge session.
    3dsecure_standalone_cardnumber:
      title: Card Number
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - card
        - customer
        - currencyCode
        - threeDSecure
        - completionUrl
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        customer:
          type: object
          required:
            - firstName
            - lastName
            - emailAddress
            - ipAddress
          properties:
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            phoneNumber:
              $ref: '#/components/schemas/CustomerPhoneNumber'
            phoneCountry:
              $ref: '#/components/schemas/CustomerPhoneCountry'
            emailAddress:
              $ref: '#/components/schemas/CustomerEmailAddress'
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1ThreeDSecure'
            addressLine2:
              $ref: '#/components/schemas/CustomerAddressLine2'
            city:
              $ref: '#/components/schemas/CustomerCityThreeDSecure'
            region:
              $ref: '#/components/schemas/CustomerRegionThreeDSecure'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCodeThreeDSecure'
            country:
              $ref: '#/components/schemas/CustomerCountryThreeDSecure'
            ipAddress:
              $ref: '#/components/schemas/CustomerIpAddress'
            shipping:
              $ref: '#/components/schemas/CustomerShipping3DSecure'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
            securityCode:
              type: object
              description: >
                **Conditional: Send when processing a 3D Secure transaction in
                the US. This object should be sent for initial card on file
                request but is not required for subsequent merchant initiated 
                charges.**
              required:
                - indicator
                - value
              properties:
                indicator:
                  $ref: '#/components/schemas/CardSecurityCodeIndicator'
                value:
                  $ref: '#/components/schemas/CardSecurityCodeValue'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
        threeDSecure:
          type: object
          required:
            - initiate
            - browser
            - headerContent
            - challengeWindowSize
            - transType
            - channel
          properties:
            initiate:
              $ref: '#/components/schemas/ThreeDSecureInitiateStandalone'
            browser:
              $ref: '#/components/schemas/ThreeDSecureBrowser'
            headerContent:
              $ref: '#/components/schemas/ThreeDSecureHeaderContent'
            challengeWindowSize:
              $ref: '#/components/schemas/ThreeDSecureChallengeWindowSize'
            transType:
              $ref: '#/components/schemas/ThreeDSecureTransType'
            channel:
              $ref: '#/components/schemas/ThreeDSecureChannel'
            addressMatch:
              $ref: '#/components/schemas/ThreeDSecureAddressMatch'
            reqChallengeInd:
              $ref: '#/components/schemas/ThreeDSecureReqChallengeInd'
        completionUrl:
          $ref: '#/components/schemas/CompletionURL3DSRequest'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2022-05-04T09:18:23.283-07:00'
        amount:
          total: 160
        currencyCode: EUR
        customer:
          firstName: John
          lastName: Smith
          addressLine1: 65 Easy St
          city: Las Vegas
          postalCode: '65144'
          emailAddress: firstname.lastname@email.com
          ipAddress: 63.57.84.101
        card:
          number: '4012000098765439'
          expirationDate: 1225
          present: 'N'
        transaction:
          invoice: '730518'
          notes: Transaction notes are added here
        threeDSecure:
          initiate: '03'
          browser:
            acceptHeader: >-
              text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
            javaEnabled: true
            javascriptEnabled: true
            language: en-GB
            colorDepth: '48'
            screenWidth: 1920
            screenHeight: 1080
            tz: -480
          headerContent: userAgent header
          challengeWindowSize: '05'
          transType: '01'
          channel: '02'
        completionUrl: https://merchant.com/completion
        apiOptions:
          - ALLOWPARTIALAUTH
    3dsecure_standalone_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - card
        - customer
        - currencyCode
        - threeDSecure
        - completionUrl
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        customer:
          type: object
          required:
            - firstName
            - lastName
            - emailAddress
            - ipAddress
          properties:
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            phoneNumber:
              $ref: '#/components/schemas/CustomerPhoneNumber'
            phoneCountry:
              $ref: '#/components/schemas/CustomerPhoneCountry'
            emailAddress:
              $ref: '#/components/schemas/CustomerEmailAddress'
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1ThreeDSecure'
            addressLine2:
              $ref: '#/components/schemas/CustomerAddressLine2'
            city:
              $ref: '#/components/schemas/CustomerCityThreeDSecure'
            region:
              $ref: '#/components/schemas/CustomerRegionThreeDSecure'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCodeThreeDSecure'
            country:
              $ref: '#/components/schemas/CustomerCountryThreeDSecure'
            ipAddress:
              $ref: '#/components/schemas/CustomerIpAddress'
            shipping:
              $ref: '#/components/schemas/CustomerShipping3DSecure'
        card:
          type: object
          required:
            - token
          properties:
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            present:
              $ref: '#/components/schemas/CardPresent'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            s4RiskId:
              $ref: '#/components/schemas/TransactionS4RiskIdRequest'
        threeDSecure:
          type: object
          required:
            - initiate
            - browser
            - headerContent
            - challengeWindowSize
            - transType
            - channel
          properties:
            initiate:
              $ref: '#/components/schemas/ThreeDSecureInitiateStandalone'
            browser:
              $ref: '#/components/schemas/ThreeDSecureBrowser'
            headerContent:
              $ref: '#/components/schemas/ThreeDSecureHeaderContent'
            challengeWindowSize:
              $ref: '#/components/schemas/ThreeDSecureChallengeWindowSize'
            transType:
              $ref: '#/components/schemas/ThreeDSecureTransType'
            channel:
              $ref: '#/components/schemas/ThreeDSecureChannel'
            addressMatch:
              $ref: '#/components/schemas/ThreeDSecureAddressMatch'
            reqChallengeInd:
              $ref: '#/components/schemas/ThreeDSecureReqChallengeInd'
        completionUrl:
          $ref: '#/components/schemas/CompletionURL3DSRequest'
        risk:
          $ref: '#/components/schemas/RiskTransactionRequest'
        apiOptions:
          $ref: '#/components/schemas/ApiOptions'
      example:
        dateTime: '2022-05-04T09:18:23.283-07:00'
        amount:
          total: 160
        currencyCode: EUR
        customer:
          firstName: John
          lastName: Smith
          addressLine1: 65 Easy St
          city: Las Vegas
          postalCode: '65144'
          emailAddress: firstname.lastname@email.com
          ipAddress: 63.57.84.101
        card:
          token:
            value: '8048471746471119'
          expirationDate: 1225
          present: 'N'
        transaction:
          invoice: '730518'
          notes: Transaction notes are added here
        threeDSecure:
          initiate: '03'
          browser:
            acceptHeader: >-
              text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
            javaEnabled: true
            javascriptEnabled: true
            language: en-GB
            colorDepth: '48'
            screenWidth: 1920
            screenHeight: 1080
            tz: -480
          headerContent: userAgent header
          challengeWindowSize: '05'
          transType: '01'
          channel: '02'
        completionUrl: https://merchant.com/completion
        apiOptions:
          - ALLOWPARTIALAUTH
    TransactionResponseCode3DSStandalone:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - A
        - C
        - D
        - e
        - f
        - P
        - R
        - S
      description: |
        Code indicating the Shift4 host response.        

        Value  | Description   | Details
        -------|---------------|--------
        A      | Approved      | The 3D Secure process was approved.
        D      | Declined      | The 3D Secure process was declined.
    ThreeDSecureTrxId:
      type: string
      example: a7bbd49a-ffe6-49b2-8a92-541f0a3b053d
      maxLength: 36
      description: |
        The assigned 3D Secure transaction ID
    ThreeDSecureCardholderInfo:
      type: string
      example: >-
        We+were+unable+to+confirm+your+payment.Please+contact+us+on+0800+121+4251+quoting+the+reference+AL01
      description: >
        Provides additional information to the customer in particular cases when
        3D secure Authentication failed.
    CardResponse3DSChallenge:
      type: object
      properties:
        entryMode:
          $ref: '#/components/schemas/CardEntryMode'
        number:
          $ref: '#/components/schemas/CardMaskedNumber'
        expirationDate:
          $ref: '#/components/schemas/CardExpirationDateResponse'
        present:
          $ref: '#/components/schemas/CardPresent'
        type:
          $ref: '#/components/schemas/CardTypeResp'
        token:
          $ref: '#/components/schemas/CardTokenResponse'
    TransactionResponseCode3DSFingerprint:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: H
      enum:
        - H
      description: >
        Response code indicating that the 3D Secure transaction requires device
        fingerprinting.


        Value  |Description

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

        H      | Device fingerprinting required. Issuer fingerprint URL returned
        in the redirectURL field. See [Handling Device Fingerprint
        Response](/guides/advanced-concepts/3d-secure#handling-device-fingerprint-response)
        for details on how to handle the Device Fingerprint process.
    RedirectURL3DSResponse:
      type: string
      example: https://issuer.com/challenge
      description: >
        URL to redirect the browser to the 3D Secure transaction response
        indicates a Device Fingerprint or 3D Secure challenge is required.
    TransactionResponseCode3DSChallenge:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: G
      enum:
        - G
      description: >
        Response code indicating that the 3D Secure transaction requires a
        challenge.


        Value  |Description

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

        G      | 3D Secure challenge required. Issuer challenge URL returned in
        the redirectURL field.
    HostResponseReasonCode3DSecure:
      type: string
      example: '1'
      description: >
        Returns a response code from the host.


        | Value |
        Description                                                                        
        |

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

        | \-69  | Transaction has been declined. Invalid 3ds\_version
        parameter.                      |

        | \-68  | Authentication process timed out. Please try
        again.                                 |

        | \-66  | Invalid combination of 3ds
        values                                                   |

        | \-65  | Merhant is not allowed for this
        exemption                                           |

        | \-64  | Exemption is not allowed for this transaction
        amount                                |

        | \-63  | Merchant is not enrolled to 3D-secure
        service.                                      |

        | \-50  | An error occurred during the 3D secure
        process                                      |

        | \-39  | You need to be registered with the 3D Adviser service to
        complete the request       |

        | \-37  | Transaction has been denied. Malformed or missing
        parameter.                        |

        | \-36  | The selected processor does not support some of the
        parameters.                     |

        | \-35  | Merchant is not
        registered.                                                         |

        | \-33  | You need to be registered with the routing service to complete
        the routing request. |

        | \-32  | You are not registered with the selected
        Processor.                                 |

        | \-30  | Transaction Failed due to error in 3D secure
        process.                               |

        | \-20  | Authentication error. Please contact
        support.                                       |

        | \-17  | Selected service is
        unavailable                                                     |

        | \-16  | Selected service is
        unavailable                                                     |

        | \-15  | Selected service is
        unavailable                                                     |

        | \-13  | Merchant is not enrolled in the 3D Secure Adviser
        service.                          |

        | \-12  | Transaction has been declined due to security
        restrictions.                         |

        | \-11  | Rejected. Format
        Error                                                              |

        | \-10  | System error. Please contact
        support.                                               |

        | \-9   | Parameter(s)
        malformed                                                              |

        | \-8   | Parameter(s)
        malformed                                                              |

        | \-7   | Please contact
        support.                                                             |

        | 1     | Transaction not
        allowed                                                             |

        | 2     | Transaction not
        allowed                                                             |

        | 3     | Transaction not
        allowed                                                             |

        | 4     | Transaction not
        allowed                                                             |

        | 7     | The transaction was declined by the gateway and will not be
        processed.              |

        | 9     | The transaction has been
        denied.                                                    |

        | 11    | The queried transaction is currently being processed. Please
        try again.             |

        | 13    | The transaction has been
        denied.                                                    |

        | 15    | The transaction has been denied.   
    HostResponseReasonDescription3DSecure:
      type: string
      maxLength: 73
      example: Pick Up Card
      description: |
        Returns a description from the host.
    ThreeDSecureCompInd:
      type: string
      enum:
        - 'Y'
        - 'N'
        - U
      example: 'Y'
      minLength: 1
      maxLength: 1
      description: >
        Indicates whether or not the device fingerprint was completed
        successfully.


        Value| Description

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

        Y    | Yes

        N    | No

        U    | Unknown
    TransactionInvoiceAlphanumeric:
      type: string
      maxLength: 10
      example: '0510093358'
      description: >
        10 character invoice number assigned by the interface to identify a
        transaction. An invoice number serves as a unique key that identifies a
        transaction within a batch in Shift4's Gateway.
    CustomerFirstNameAPM:
      type: string
      maxLength: 30
      example: John
      description: |
        Customer first name
    CustomerLastNameAPM:
      type: string
      maxLength: 30
      example: Smith
      description: |
        Customer last name
    CustomerCompanyName:
      type: string
      maxLength: 30
      example: Shift4
      description: |
        Customer Company name
    oct_payout_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - card
        - customer
        - sourceIp
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - number
            - expirationDate
            - entryMode
            - present
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryModeManual'
            present:
              $ref: '#/components/schemas/CardPresent'
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
        customer:
          oneOf:
            - title: First and Last Name
              type: object
              required:
                - firstName
                - lastName
                - emailAddress
                - ipAddress
              properties:
                firstName:
                  $ref: '#/components/schemas/CustomerFirstNameAPM'
                lastName:
                  $ref: '#/components/schemas/CustomerLastNameAPM'
                emailAddress:
                  $ref: '#/components/schemas/CustomerEmailAddress'
                ipAddress:
                  $ref: '#/components/schemas/CustomerIpAddress'
            - title: Company Name
              type: object
              required:
                - companyName
                - emailAddress
                - ipAddress
              properties:
                companyName:
                  $ref: '#/components/schemas/CustomerCompanyName'
                emailAddress:
                  $ref: '#/components/schemas/CustomerEmailAddress'
                ipAddress:
                  $ref: '#/components/schemas/CustomerIpAddress'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 135.87
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
          present: 'N'
        customer:
          firstName: John
          lastName: Smith
          emailAddress: johnsmith@email.com
          ipAddress: 63.57.84.101
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
        sourceIp: 172.110.166.244
    oct_payout_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - card
        - customer
        - sourceIp
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        card:
          type: object
          required:
            - token
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryModeManual'
            present:
              $ref: '#/components/schemas/CardPresent'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
        customer:
          oneOf:
            - title: First and Last Name
              type: object
              required:
                - firstName
                - lastName
                - emailAddress
                - ipAddress
              properties:
                firstName:
                  $ref: '#/components/schemas/CustomerFirstNameAPM'
                lastName:
                  $ref: '#/components/schemas/CustomerLastNameAPM'
                emailAddress:
                  $ref: '#/components/schemas/CustomerEmailAddress'
                ipAddress:
                  $ref: '#/components/schemas/CustomerIpAddress'
            - title: Company Name
              type: object
              required:
                - companyName
                - emailAddress
                - ipAddress
              properties:
                companyName:
                  $ref: '#/components/schemas/CustomerCompanyName'
                emailAddress:
                  $ref: '#/components/schemas/CustomerEmailAddress'
                ipAddress:
                  $ref: '#/components/schemas/CustomerIpAddress'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          total: 135.87
        card:
          token:
            value: '8048471746471119'
        customer:
          companyName: Shift4
          emailAddress: johnsmith@email.com
          ipAddress: 63.57.84.101
        transaction:
          invoice: '192029'
          notes: Transaction notes are added here
        sourceIp: 172.110.166.244
    AmountFeeOCT:
      type: number
      maxLength: 14
      example: 1.5
      description: |
        The fee charged to process the OCT transaction.
    TransactionAuthSourceAPM:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - A
      description: >
        In a response, a code returned by the processor to indicate which host
        issued the response.


        Value  | Description       

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

        A      | APM (Online)
    HostResponseOCT:
      type: object
      description: |
        Returns the response code detailing why the transaction was declined. 
      properties:
        reasonCode:
          $ref: '#/components/schemas/HostResponseReasonCode'
        reasonDescription:
          $ref: '#/components/schemas/HostResponseReasonDescription'
    TransactionRetrievalReferenceOCT:
      type: string
      readOnly: true
      maxLength: 32
      example: ICTN-178768-233-79170-FUX
      description: >
        Reference retrieval number assigned by the authorizing agency. This
        value is printed on some receipts.
    ErrorCodeNoCondition:
      type: integer
      maxLength: 5
      readOnly: true
      example: 64100
      description: >
        Code indicating the type of error that occurred. Refer to the [Error
        Codes](/guides/appendices/error-codes) section of this document for more
        details.
    ErrorNoPrimarySecondary:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCodeNoCondition'
        severity:
          $ref: '#/components/schemas/ErrorSeverity'
        shortText:
          $ref: '#/components/schemas/ErrorShortText'
        longText:
          $ref: '#/components/schemas/ErrorLongText'
    CustomerNewEmailAddress:
      type: string
      maxLength: 80
      example: firstname.lastname@email.com
      description: |
        Customer's new email address.
    ACHVerificationTypePrenotification:
      type: string
      example: P
      enum:
        - P
      description: |
        The type of verification used to validate the account.

        Value | Description 
        ------|---------------
        P     | Prenotification
    TransactionResponseCodeACHPending:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: P
      enum:
        - P
      description: |
        Code indicating the Shift4 host response.        

        Value  | Description | Details
        -------|-------------|--------
        P      | Pending     | The ACH transaction is pending
    NotificationId:
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
      description: >
        Notification ID value generated by Shift4 and returned in the response.
        Used for matching webhook notifications back to their original request.
    AmountTotalACH:
      type: number
      maxLength: 11
      example: 143.29
      description: >
        The amount being processed for the ACH transaction. The amount must be
        greater than zero with a maximum amount of 99999999.99.
    AmountACH:
      type: object
      description: >
        Object containing information regarding the amount being requested. The
        `total` field within the object is required and specifies the amount
        being requested.
      required:
        - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotalACH'
    ACHPaymentTypeCode:
      type: string
      example: ST
      enum:
        - S
        - R
        - ST
      description: >
        Specifies the payment type. If not provided in the request the
        transaction will default to `ST`.


        Value | Description 

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

        S     | Single Entry. Consumer authorizes the use of their ACH
        credentials for a single transaction. Each subsequent transaction
        requires the Consumer to authorize the use of their credentials.

        R     | Recurring. Transaction is sent on a set time frame for a set
        amount. For example, a monthly gym membership.

        ST    | Standing Authorization. Consumer authorizes the use of their ACH
        credentials for the initial and subsequent transactions. Each subsequent
        transaction does not require the consumer to authorize the use of their
        credentials.
    ach_sale_bankaccount:
      title: Bank & Routing Number
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - ach
        - sourceIp
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        ach:
          type: object
          required:
            - accountNumber
            - routingNumber
            - accountType
            - accountHolderName
          properties:
            accountNumber:
              $ref: '#/components/schemas/ACHAccountNumber'
            routingNumber:
              $ref: '#/components/schemas/ACHRoutingNumber'
            accountType:
              $ref: '#/components/schemas/ACHAccountType'
            accountHolderName:
              $ref: '#/components/schemas/ACHAccountHolderName'
            paymentTypeCode:
              $ref: '#/components/schemas/ACHPaymentTypeCode'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2023-02-08T09:18:23.283-07:00'
        amount:
          total: 135.87
        transaction:
          invoice: '192029'
        ach:
          accountNumber: '1234567890'
          routingNumber: '121000248'
          accountHolderName: John Smith
          accountType: PC
        sourceIp: 172.110.166.244
    ACHVerifyBalance:
      type: boolean
      example: true
      description: >
        Send as `true` if you want to verify the balance before processing the
        ACH transaction. 


        The balance check will only be possible if the customer logged into
        their bank account when verifying their account. If the account was
        verified via Micro Deposits or Prenotification it is not possible to
        verify the balance. If the balance check is not possible this value will
        be ignored and the transaction will be processed.
    ach_sale_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - sourceIp
        - token
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        token:
          $ref: '#/components/schemas/TokenACH'
        ach:
          type: object
          properties:
            verifyBalance:
              $ref: '#/components/schemas/ACHVerifyBalance'
            paymentTypeCode:
              $ref: '#/components/schemas/ACHPaymentTypeCode'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2023-02-08T09:18:23.283-07:00'
        amount:
          total: 135.87
        transaction:
          invoice: '192029'
        token:
          value: '9829283019231234'
        ach:
          verifyBalance: true
        sourceIp: 172.110.166.244
    ACHBalanceVerificationResult:
      type: string
      example: VS
      readOnly: true
      description: >
        Specifies whether or not the balance was verified


        Value | Description

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

        VS    | Balance was verified and requested amount is below account
        balance

        VF    | Balance was verified and account balance is less then the
        requested amount

        NC    | Unable to check balance

        NS    | Account does not support balance verification
    TransactionResponseCodeACH:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: P
      enum:
        - P
        - D
      description: |
        Code indicating the Shift4 host response.        

        Value  | Description | Details
        -------|-------------|--------
        P      | Pending     | The ACH transaction is pending
        D      | Decline     | The ACH transaciton was declined.
        e      | Error       | The ACH transaction resulted in an error.
    ach_refund_bankaccount:
      title: Bank & Routing Number
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - ach
        - sourceIp
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
            - originalInvoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        ach:
          type: object
          required:
            - accountNumber
            - routingNumber
            - accountType
            - accountHolderName
          properties:
            accountNumber:
              $ref: '#/components/schemas/ACHAccountNumber'
            routingNumber:
              $ref: '#/components/schemas/ACHRoutingNumber'
            accountType:
              $ref: '#/components/schemas/ACHAccountType'
            accountHolderName:
              $ref: '#/components/schemas/ACHAccountHolderName'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2023-02-08T09:18:23.283-07:00'
        amount:
          total: 135.87
        transaction:
          invoice: '192030'
          originalInvoice: '192029'
        ach:
          accountNumber: '1234567890'
          routingNumber: '121000248'
          accountType: PC
          accountHolderName: John Smith
        sourceIp: 172.110.166.244
    ach_refund_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - transaction
        - sourceIp
        - token
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
            - originalInvoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        token:
          $ref: '#/components/schemas/TokenACH'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2023-02-08T09:18:23.283-07:00'
        amount:
          total: 135.87
        transaction:
          invoice: '192030'
          originalInvoice: '192029'
        token:
          value: '9829283019231234'
        sourceIp: 172.110.166.244
    TransactionTypeACH:
      type: string
      example: Sale
      enum:
        - S
        - R
        - V
        - B
        - D
      description: |
        Specifies the ACH transaction type.
    HostResponseReasonCodeACH:
      type: string
      maxLength: 3
      example: R01
      description: >
        Returns a response code from the host.


        Value | Description

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

        C01   | Incorrect DFI Account Number

        C02   | Incorrect Routing Number

        C03   | Incorrect Routing Number and Incorrect DFI Account Number

        C05   | Incorrect Transaction Code

        C06   | Incorrect DFI Account Number and Incorrect Transaction Code

        C07   | Incorrect Routing Number, Incorrect DFI Account Number, and
        Incorrect Transaction Code   | 

        R01   | Insufficient Funds

        R02   | Account Closed

        R03   | No Account/ Unable to Locate Account

        R04   | Invalid Account Number Structure

        R05   | Unauthorized Debit to Consumer Account Using Corporate SEC Code

        R06   | Returned per ODFI’s Request

        R07   | Authorization Revoked by Customer

        R08   | Payment Stopped

        R09   | Uncollected Funds

        R10   | Customer Advises Originator is Not Known to Receiver and/or
        Originator is Not Authorized by Receiver to Debit Receiver’s Account

        R11   | Customer Advises Entry Not in Accordance with the Terms of the
        Authorization

        R12   | Account Sold to Another DFI

        R13   | Invalid ACH Routing Number

        R14   | Representative Payee Deceased or Unable to Continue in That
        Capacity

        R15   | Beneficiary or Account Holder (Other Than a Representative
        Payee) Deceased

        R16   | Account Frozen/Entry Returned Per OFAC Instruction

        R17   | File Record Edit Criteria/Entry with Invalid Account Number
        Initiated Under Questionable Circumstances/Return of Improperly-Intiated
        Reversal

        R18   | Improper Effective Entry Date

        R19   | Amount Field Error

        R20   | Non-Transaction Account

        R21   | Invalid Company Identification

        R22   | Invalid Individual ID Number

        R23   | Credit Entry Refused by Receiver

        R24   | Duplicate Entry

        R25   | Addenda Error

        R26   | Mandatory Field Error

        R27   | Trace Number Error

        R28   | Routing Number Check Digit Error

        R29   | Corporate Customer Advises Not Authorized

        R30   | RDFI Not Participant in Check Truncation Program

        R31   | Permissible Return Entry (CCD and CTX only)

        R32   | RDFI Non-Settlement

        R33   | Return of XCK Entry

        R34   | Limited Participation DFI

        R35   | Return of Improper Debit Entry

        R36   | Return of Improper Credit Entry

        R37   | Source Document Presented for Payment

        R38   | Stop Payment on Source Document

        R39   | Improper Source Document/Source Document Presented for Payment
    HostResponseReasonDescriptionACH:
      type: string
      maxLength: 130
      example: Insufficient Funds
      description: |
        Returns a description from the host.
    HostResponseACH:
      type: object
      description: |
        Returns the response code detailing why the transaction was declined. 
      properties:
        reasonCode:
          $ref: '#/components/schemas/HostResponseReasonCodeACH'
        reasonDescription:
          $ref: '#/components/schemas/HostResponseReasonDescriptionACH'
    ACHPlaidLinkTokenClientUserId:
      type: string
      example: ae1a59fe-8646-4637-bbb8-d270856c508c
      description: >
        A unique ID representing the end user. Typically this will be a user ID
        number from your application. Personally identifiable information, such
        as an email address or phone number, should not be used in the
        client_user_id.
    ACHPlaidLinkTokenLanguage:
      type: string
      example: en
      enum:
        - da
        - nl
        - en
        - et
        - fr
        - de
        - it
        - lv
        - lt
        - 'no'
        - po
        - ro
        - es
        - se
      description: >
        The language that Link should be displayed in. If no language is sent it
        will default to English.


        Value | Description

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

        da    | Danish

        nl    | Dutch 

        en    | English

        et    | Estonian

        fr    | French

        de    | German

        it    | Italian

        lv    | Latvian

        lt    | Lithuanian

        no    | Norwegian

        po    | Polish

        ro    | Romanian

        es    | Spanish

        se    | Swedish
    ACHPlaidLinkTokenRedirectUrl:
      type: string
      example: merchant.com
      description: >
        Contains the URL to which the browser should be redirected.


        **Conditional: must be sent if the customer is using a 'mobile device'
        or 'website with redirection'. Also the same url needs to be provided
        during onboarding or later via LBM.**
    TransactionResponseCodeACHPlaidLinkToken:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: S
      enum:
        - S
        - F
      description: |
        Code indicating the Shift4 host response.        

        Value  | Description | Details
        -------|-------------|--------
        S      | Success     | The Plaid link token request was successful.
        F      | Fail        | The Plaid link token request was unsuccessful.
    ACHPlaidLinkToken:
      type: string
      readOnly: true
      example: link-sandbox-bea285c1-ad79-4191-8d1b-aaf537f7df59
      description: |
        Plaid Link Token
    ACHPlaidLinkTokenExpiration:
      type: string
      readOnly: true
      example: '2023-02-13T21:00:25Z'
      description: |
        Plaid Link Token Expiration
    ACHPlaidPublicToken:
      type: string
      example: public-sandbox-0b7f845f-fa53-4e0a-b77b-9476e71be5ae
      description: |
        Plaid Public Token
    ACHPlaidPublicTokenMetadata:
      type: string
      example: >-
        {"status":null,"link_session_id":"81fcbacf-e2f8-422b-b041-5e629b32ae3c","institution":{"name":"Houndstooth
        Bank","institution_id":"ins_109512"},"accounts":[{"id":"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr","name":"Plaid
        Checking","mask":"0000","type":"depository","subtype":"checking","verification_status":"pending_automatic_verification","class_type":null}],"account":{"id":"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr","name":"Plaid
        Checking","mask":"0000","type":"depository","subtype":"checking","verification_status":"pending_automatic_verification","class_type":null},"account_id":"dvMPrZ9kR1C8xdRvLR6QIaREG5vBo6SBjaRrr","transfer_status":null,"wallet":null,"public_token":"public-sandbox-b5e58738-1a75-4a51-b4de-10f24c561038"}
      description: >
        JSON encoded object received from the Plaid SDK. The metadata object
        received from the Plaid SDK must be json encoded and sent in this
        object.
    TransactionResponseCodeACHPlaidPublicTokenExchange:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - A
        - D
        - P
      description: >
        Code indicating the Shift4 host response.        


        | Value  | Description  | Details

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

        | A      | Success      | The Plaid public token exchange request was
        successful.                           |

        | D      | Fail         | The Plaid public token exchange request was
        unsuccessful.                         |

        | P      | Pending      | The Plaid public token exchange request is
        using the automated microdeposit flow. |
    ACHAccountNumberLastFour:
      type: string
      minLength: 2
      maxLength: 4
      example: '1234'
      description: >
        The last 2-4 alphanumeric characters of an account's official account
        number. 
    UpdaterRequestId:
      type: string
      format: uuid
      example: bad91cf7-0664-40d5-877f-cd4cbe36fc9a
      description: >
        Updater Request ID. Returned in the response to the [Account
        Update](/apis/payments-platform-rest/openapi/updater/updaterrequest) API
        request. Sent in the [Account Update
        Status](/apis/payments-platform-rest/openapi/updater/updaterstatus)
        request when checking on the status of a previous updater request.
    UpdaterToken:
      type: string
      maxLength: 16
      description: >
        The token representing the card account number for which you are
        requesting an update.
    UpdaterCardsStatus:
      type: string
      maxLength: 1
      enum:
        - A
        - B
        - C
        - D
        - E
        - F
        - H
        - O
        - T
        - U
      description: >
        The status of the card update request.


        | Value | Description                                                  
        |

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

        | A     | New account number and/or new expiration date.               
        |

        | B     | New expiration date, same account number.                    
        |

        | C     | Account is marked as closed.                                 
        |

        | D     | Contact cardholder for updated information.                  
        |

        | E     | No updates were found but the account is valid.              
        |

        | F     | No match for the data provided. Participating BIN/ issuer.   
        |

        | H     | No match for the data provided. Non-participating BIN/issuer.
        |

        | O     | Cardholder opted out from service.                           
        |

        | T     | Token not found / Invalid                                    
        |

        | U     | Unknown error                                                
        |
    UpdaterExpirationDate:
      type: string
      minLength: 4
      maxLength: 4
      description: |
        The card's expiration date in MMYY format.
    UpdaterNewExpirationDate:
      type: string
      minLength: 4
      maxLength: 4
      description: |
        The card's updated expiration date in MMYY format. 
    UpdaterNewToken:
      type: string
      maxLength: 16
      description: >
        The token representing the new card number if the card has been
        replaced.
    UpdaterStatus:
      type: string
      maxLength: 1
      enum:
        - P
        - C
      example: C
      description: |
        The status of the card update request.

        | Value | Description | Details                                        |
        | ----- | ------------|----------------------------------------------- |
        | P     | Pending     | Data is not ready yet, please try again later. |
        | C     | Completed   | Data is completed and sent in cards array.     |
    dcc_ratelookup_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        card:
          token:
            value: '8048471746471119'
    dcc_ratelookup_token_legacy:
      title: Legacy Token
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            token:
              $ref: '#/components/schemas/CardTokenRequiredLegacy'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        card:
          token:
            value: 11191pn83hbkkety
            serialNumber: '123456'
    dcc_ratelookup_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            02df00801f2e1e00939b252a323232312a2a2a2a2a2a2a2a303030395e4d43322f4455414c20545241434b5e2a2a2a2a2a2a2a2a2a2a3f2a3b323232312a2a2a2a2a2a2a2a303030393d2a2a2a2a2a2a2a2a2a2a3f2aa0744ac45073ef2e516cd6b1111c990effb75fbe6521e40be763593c385c6c7cdcd41ffbabb59cd6c999bfe636dff9ef8408e38906db0fdc7497df96a3e8f564b9a4e1bd802f326eb9848b447512384700000000000000000000000000000000000000000000000000000000000000000000000000000000383237543839303939306299495001000000000521d503
          format: '02'
    EMVEncryptedTagsOnly:
      type: object
      writeOnly: true
      description: |
        Encrypted EMV tags
      required:
        - tlvData
      properties:
        tlvData:
          type: string
          writeOnly: true
          example: >-
            5A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C31799573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B3
          description: >
            This field contains the P2PE encrypted tags (5A and 57) in standard
            TLV format.  The P2PE encrypted tags (5A and 57) will have the
            entire TLV string encrypted and the encrypted data will be in a TLV
            format using the same tag. For example, tag 5A would look like the
            following:

            - Encrypted: `5A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C3179`

            - Decrypted: `5A084761739001010010`
    dcc_ratelookup_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - card
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMVEncryptedTagsOnly'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        p2pe:
          format: '05'
          ksn: FFFF49517300010000CA
        emv:
          tlvData: >-
            5A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C31799573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B3
    dcc_ratelookup_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - card
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        card:
          type: object
          required:
            - entryMode
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            44188C9A20DD2092254F7FEB0AABD531D86EA10DA37E5540C25B53658BA4FBB903828F835A7287481F6FB5C17A879ECC9768D4C12F99532A
          format: '05'
          ksn: FFFF49517300010000C9
    dcc_ratelookup_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            FFFF495A0000000200000002:E:0032:E0AB94F7704E77AB37F81A7E236A1ABC1465C6DFCE43A506240D6E7D6DDA7EA9
          format: '03'
    dcc_ratelookup_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        p2pe:
          data: >-
            FFFF495A0000000200000005:4:0128:F48C880DE0DAF549E642C5CC25E65ADF9947E7EB0636DB80C4A490B4C0930AEF64B7201505343CED533A2AE9AFABFE6453875F705519A8109362197CA3BD8DA0FE90DB3F954B9CDA0DB58BDA3330862ADD28CB31EFDA7C641575E33D395D8BFF72EBF0B1FF9630DB0EAB080FE8C9B2FAC28127CDC48CA9F7D532D5BDE4CCE270
          format: '03'
    dcc_ratelookup_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - currencyCode
        - amount
        - clerk
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        clerk:
          $ref: '#/components/schemas/Clerk'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            securityCode:
              $ref: '#/components/schemas/CardSecurityCode'
      example:
        dateTime: '2024-07-09T09:18:23.283-07:00'
        currencyCode: USD
        amount:
          total: 160
        clerk:
          numericId: 1576
        card:
          entryMode: M
          expirationDate: 1230
          number: '4321000000001119'
    DCCSupportIndicator:
      type: string
      enum:
        - '0'
        - '1'
      example: '1'
      description: >
        Specifies whether or not DCC can be used.


        Value | Description

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

        0     | DCC cannot be used (Relevant for a BIN that is not supported /
        No relevant conversion). 

        1     | The request was successful. DCC can be used.
    DCCResponse:
      type: object
      description: |
        Object containing Dynamic Currency Conversion (DCC) information.
      properties:
        rateTimeStamp:
          $ref: '#/components/schemas/DCCRateTimeStamp'
        currencyCode:
          $ref: '#/components/schemas/DCCCurrencyCode'
        foreignAmount:
          $ref: '#/components/schemas/DCCForeignAmount'
        conversionRate:
          $ref: '#/components/schemas/DCCConversionRate'
        marginPercentage:
          $ref: '#/components/schemas/DCCMarginPercentage'
        currencyMinorUnits:
          $ref: '#/components/schemas/DCCCurrencyMinorUnits'
        transactionId:
          $ref: '#/components/schemas/DCCTransactionID'
        diffOverEcb:
          $ref: '#/components/schemas/DCCDiffOverECB'
        marginOverEcb:
          $ref: '#/components/schemas/DCCMarginOverECB'
        displayUnit:
          $ref: '#/components/schemas/DCCDisplayUnit'
        provider:
          $ref: '#/components/schemas/DCCProvider'
        supportIndicator:
          $ref: '#/components/schemas/DCCSupportIndicator'
    RuleCheck:
      type: array
      items:
        type: string
        enum:
          - SURCHARGE
      example:
        - SURCHARGE
      writeOnly: true
      description: >
        Specifies which rule checks are being requested:
          
        | Value     |
        Description                                                                                                                                                      
        |

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

        | SURCHARGE | Checks to see if a card is eligible for surcharging. If
        eligible the `surcharge` object will be returned containing the
        surcharge percentage that can be applied. | 
    TransactionRuleVerify:
      type: object
      required:
        - invoice
      properties:
        invoice:
          $ref: '#/components/schemas/TransactionInvoice'
        vendorReference:
          $ref: '#/components/schemas/TransactionVendorReference'
    ClerkOptional:
      type: object
      properties:
        numericId:
          $ref: '#/components/schemas/ClerkNumericId'
    rules_verify_token_gtv:
      title: GTV Token
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        card:
          type: object
          required:
            - token
          properties:
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
            token:
              $ref: '#/components/schemas/CardTokenRequired'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_p2pe_idtech:
      title: P2PE - ID TECH - EMV/MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        p2pe:
          $ref: '#/components/schemas/P2PEType0102IDTECH'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_p2pe_tdesdukpt_emv:
      title: P2PE - TDES DUKPT - EMV
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - p2pe
        - emv
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTEMV'
        emv:
          $ref: '#/components/schemas/EMVEncryptedTagsOnly'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_p2pe_tdesdukpt_msr:
      title: P2PE - TDES DUKPT - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        p2pe:
          $ref: '#/components/schemas/P2PEType05TDESDUKPTMSR'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_p2pe_onguardsde_emv:
      title: P2PE - On-Guard SDE - EMV
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEEMV'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_p2pe_onguardsde_msr:
      title: P2PE - On-Guard SDE - MSR/Manual
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - p2pe
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        p2pe:
          $ref: '#/components/schemas/P2PEType03OnguardSDEMSR'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    rules_verify_unencryptedcard:
      title: Card Number Unencrypted
      type: object
      required:
        - dateTime
        - amount
        - ruleCheck
        - transaction
        - card
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountTotalOnly'
        ruleCheck:
          $ref: '#/components/schemas/RuleCheck'
        transaction:
          $ref: '#/components/schemas/TransactionRuleVerify'
        card:
          type: object
          required:
            - number
            - expirationDate
          properties:
            number:
              $ref: '#/components/schemas/CardNumber'
            expirationDate:
              $ref: '#/components/schemas/CardExpirationDate'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
    PaymentLinkId:
      readOnly: true
      type: string
      example: link_8kdskX8DZ8FR6W3acYPXiyAN
      description: |
        Identifier of Payment Link
    PaymentLinkType:
      type: string
      enum:
        - line_items
        - card_verification
      default: line_items
      description: >
        The kind of flow the payment link performs.


        - `line_items` (default) — a standard payment flow. The customer pays
        for the products defined in `lineItems`.

        - `card_verification` — performs a $0 authorization to confirm the card
        is valid (a security check that a real card and cardholder are behind
        it) **without** charging it. The validated card is also saved to the
        customer. These links take **no** `lineItems`, but **require** a
        top-level `currency` and a defined `customer`.


        When omitted, the link defaults to `line_items`.
    PaymentLinkLineItemsProductName:
      type: string
      example: Example charge
      description: Name of a product
    PaymentLinkLineItemsProductDescription:
      type: string
      example: Some product description
      description: >-
        Description of a product, shown to the customer on the hosted checkout
        page directly under the product name
    PaymentLinkLineItemsProductAmountCurrencyCode:
      type: string
      example: USD
      description: currency represented as a three-letter ISO currency code
    PaymentLinkLineItemsProductAmountTotal:
      type: number
      example: 10
      description: >
        Payment amount (in major units, with number of allowed decimal places
        depending on currency)
    PaymentLinkLineItemsProductAmountOptionsArray:
      type: array
      items:
        type: number
      example:
        - 10
        - 20
        - 30
      description: >
        List of available pre-defined payment amounts. Allows the customer to
        select from a list of options for how much they want to pay. Useful
        whenever a merchant wants to suggest a few selectable amounts — for
        example pay-what-you-want pricing, tips, or donations.
    PaymentLinkLineItemsProductAmountCustom:
      type: object
      description: |
        Possible range of custom payment amount
      required:
        - min
        - max
      properties:
        min:
          type: number
          example: 10
          description: |
            Minimum value of custom payment amount
        max:
          type: number
          example: 200
          description: |
            Maximum value of custom payment amount
    PaymentLinkLineItemsArray:
      type: array
      description: |
        List of line items
      items:
        type: object
        required:
          - product
        properties:
          product:
            type: object
            description: |
              Definition of a product
            required:
              - name
              - amount
              - currencyCode
            properties:
              name:
                $ref: '#/components/schemas/PaymentLinkLineItemsProductName'
              description:
                $ref: '#/components/schemas/PaymentLinkLineItemsProductDescription'
              currencyCode:
                $ref: >-
                  #/components/schemas/PaymentLinkLineItemsProductAmountCurrencyCode
              amount:
                description: >
                  Payment amount definition. Provide `total` for a fixed-amount
                  link, or `options` and/or `custom` to let the customer choose
                  the amount. `total` is mutually exclusive with `options` and
                  `custom`; a customer-chosen amount link may use `options`,
                  `custom`, or both together.
                oneOf:
                  - title: Fixed Total
                    type: object
                    additionalProperties: false
                    required:
                      - total
                    properties:
                      total:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountTotal
                  - title: Customer-chosen amount
                    type: object
                    additionalProperties: false
                    minProperties: 1
                    properties:
                      options:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountOptionsArray
                      custom:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountCustom
    PaymentLinkCurrency:
      type: string
      example: USD
      description: >
        Currency for the authorization, represented as a three-letter ISO
        currency code.


        **Required only for `card_verification` links.** For `line_items` links
        the currency is taken from the line items and this field may be omitted.
    PaymentLinkReturnURL:
      type: string
      description: >
        Customer will be redirected to this URL after completing payment on
        `paymentLink.url` page.


        When not provided the return URL from account setting will be used.


        Some dynamic parameters will be appended to this URL. Example:
        `{returnUrl}?status=success&checkout_session_id=chse_xxxxx`
    PaymentLinkCollectBillingAddress:
      type: boolean
      description: >
        If the value is true, the customer will be asked to provide the billing
        address.


        Default: false
    PaymentLinkCollectShippingAddress:
      type: boolean
      description: >
        If the value is true, the customer will be asked to provide the shipping
        address.


        Default: false
    PaymentLinkRestrictions:
      type: object
      description: >
        This object describes time boundaries and preset number of charges made
        with the Payment link
      properties:
        dates:
          type: object
          properties:
            activatesAt:
              type: string
              format: ISO 8601
              example: '2025-10-20T11:22:33.444Z'
              description: >
                Activation date of a payment link. By default, payment links are
                active at the moment of creation.


                Max: +1 month
            expiresAt:
              type: string
              format: ISO 8601
              example: '2025-10-27T12:00:00.000Z'
              description: >
                Expiration date of a payment link. By default, payment links do
                not expire.
        payments:
          type: object
          properties:
            limit:
              type: integer
              example: 1
              minimum: 1
              maximum: 999
              description: >
                Maximum number of successful payments allowed to be done using
                this payment link.


                Default: 1


                Range: 1–999
            count:
              readOnly: true
              type: integer
              example: 0
              description: |
                Number of successful payments
    PaymentLinkNotificationsRequest:
      type: object
      description: |
        Payment Links notifications
      properties:
        share:
          type: object
          properties:
            email:
              type: boolean
              description: >
                If this flag is set to true, the payment link is automatically
                sent by email to the customer. The email address is taken from
                the `customer` object on the request — either supplied inline
                via `customer.emailAddress`, or read from an existing customer
                record referenced by `customer.id`.
    PaymentLinkStaticFields:
      type: object
      description: >
        List of custom information (for example: hotel reservation details) in
        key value pair format. A maximum of 10 entries can be provided.


        The key contains the title of custom information and is a maximum of 55
        characters.


        The value contains the text of custom information and is a maximum of
        255 characters.


        Examples: 

        `"Date of event": "12 April"`

        `"Invoice number": "ABC2016"`
      additionalProperties:
        type: string
      example:
        Date of event: 12 April
        Invoice number: ABC2016
    PaymentLinkCustomFieldsTitle:
      type: string
      maxLength: 32
      example: Additional information
      description: |
        Title of custom fields section
    PaymentLinkCustomFieldsArray:
      type: array
      maxItems: 3
      description: >
        Using custom fields, the merchant can request additional information
        from the customer. Each custom field will be displayed in the form as a
        new text field to fill out.
      items:
        type: object
        required:
          - key
          - label
        properties:
          key:
            type: string
            maxLength: 255
            example: special_wishes
            description: |
              Identifier of custom field
          label:
            type: string
            maxLength: 20
            example: Special wishes
            description: |
              Label of custom field
          optional:
            type: boolean
            description: >
              If this flag is set to `true`, then customer doesn't have to
              provide any value for this custom field
    PaymentLinkLocale:
      type: string
      enum:
        - auto
        - en
        - bg
        - cs
        - da
        - de
        - el
        - es
        - et
        - fi
        - fr
        - hr
        - hu
        - it
        - lt
        - lv
        - nl
        - 'no'
        - pl
        - pt
        - ro
        - ru
        - sk
        - sl
        - be
      description: |
        Language that will be used on payment page.

        Default: `auto` = use browser language
    PaymentLinkVendorReference:
      type: string
      maxLength: 50
      example: ref_123456789
      description: >
        Merchant Defined Descriptor related to the Payment Link. This field is
        reportable on the merchant portal and settlement extract.
    PaymentLinkRequest:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PaymentLinkId'
        type:
          $ref: '#/components/schemas/PaymentLinkType'
        lineItems:
          $ref: '#/components/schemas/PaymentLinkLineItemsArray'
        currency:
          $ref: '#/components/schemas/PaymentLinkCurrency'
        returnUrl:
          $ref: '#/components/schemas/PaymentLinkReturnURL'
        collectBillingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectBillingAddress'
        collectShippingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectShippingAddress'
        restrictions:
          $ref: '#/components/schemas/PaymentLinkRestrictions'
        notifications:
          $ref: '#/components/schemas/PaymentLinkNotificationsRequest'
        staticFields:
          $ref: '#/components/schemas/PaymentLinkStaticFields'
        customFieldsTitle:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsTitle'
        customFields:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsArray'
        locale:
          $ref: '#/components/schemas/PaymentLinkLocale'
        vendorReference:
          $ref: '#/components/schemas/PaymentLinkVendorReference'
      description: >
        Configuration of the payment link.


        Required fields depend on `type`:

        - `line_items` (default) — `lineItems` is required; `currency` is taken
        from the line items.

        - `card_verification` — `currency` is required and `lineItems` must be
        omitted. A `customer` must also be supplied at the top level of the
        request.
      oneOf:
        - title: Line items (payment)
          required:
            - lineItems
          properties:
            type:
              const: line_items
        - title: Card verification
          required:
            - type
            - currency
          properties:
            type:
              const: card_verification
    PaymentLinksCustomer:
      oneOf:
        - title: New Customer
          type: object
          required:
            - emailAddress
          properties:
            emailAddress:
              type: string
              example: john@example.com
              description: |
                Email address. Required when creating an inline customer.
            phoneCountry:
              type: string
              example: US
              description: >
                Two-letter ISO 3166-1 alpha-2 country code used to determine the
                phone number's country prefix (e.g., `US`, `GB`, `DE`).


                Required when `phoneNumber` does not already include the country
                calling code prefix (e.g., `+1`). When provided, the API
                prepends the corresponding prefix to `phoneNumber` and returns
                the full number in the response.
            phoneNumber:
              type: string
              example: +1 2345678901
              description: >
                Customer phone number. Two formats are accepted:

                - **With country prefix** (e.g., `+1 2345678901`) —
                `phoneCountry` is not required.

                - **Without country prefix** (e.g., `2345678901`) —
                `phoneCountry` must be set to the appropriate alpha-2 code.
            addressLine1:
              $ref: '#/components/schemas/CustomerAddressLine1'
            firstName:
              $ref: '#/components/schemas/CustomerFirstName'
            middleName:
              $ref: '#/components/schemas/CustomerMiddleName'
            lastName:
              $ref: '#/components/schemas/CustomerLastName'
            postalCode:
              $ref: '#/components/schemas/CustomerPostalCode'
            addressCity:
              type: string
              example: New York
              description: |
                City
            addressRegion:
              type: string
              example: NY
              description: |
                Region or state
            addressCountry:
              type: string
              example: US
              description: |
                Country
        - title: Existing Customer
          type: object
          required:
            - id
          properties:
            id:
              type: string
              example: cust_oM1i4j7EsIY7W5vqqF76diGw
              description: |
                Identifier of an existing customer to reuse
    PaymentLinksMetadata:
      type: object
      description: |
        Key-value object for storing additional custom data.

        This is never displayed to customer on the payment page.

        Examples: 
        `"order_id": "12345"`
        `"campaign_code": "SUMMER2025"`
      additionalProperties:
        type: string
      example:
        order_id: '12345'
        campaign_code: SUMMER2025
    PaymentLinksDateTime:
      type: string
      format: ISO 8601
      readOnly: true
      example: '2024-05-21T09:18:23.283-07:00'
      description: |
        Date-time when the object was created
    PaymentLinkStatus:
      type: string
      enum:
        - active
        - expired
        - deactivated
        - completed
        - scheduled
      description: >
        Status of a Payment link. It can be one of the following:


        Value       | Description 

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

        active      | Payment link is active and functional

        expired     | Payment link expired and is no longer functional

        deactivated | Payment link has been deactivated by merchant

        completed   | preset number of successful transactions made with this
        payment link has been reached, it is no longer functional

        scheduled   | Payment link is yet to become active


        In the
        [/paymentlinks/update](/apis/payments-platform-rest/openapi/payment-links/paymentslinkupdate)
        request this field can be used to deactivate and reactivate an existing
        payment link.
    PaymentLinkLastOpened:
      type: string
      format: ISO 8601
      example: '2025-10-20T11:22:33.444Z'
      description: >
        The date the link was last opened. Omitted if the link has not been
        opened yet.
    PaymentLinkLineItemsArrayResponse:
      type: array
      description: |
        List of line items
      items:
        type: object
        properties:
          product:
            type: object
            description: |
              Definition of a product
            properties:
              name:
                $ref: '#/components/schemas/PaymentLinkLineItemsProductName'
              description:
                $ref: '#/components/schemas/PaymentLinkLineItemsProductDescription'
              currencyCode:
                $ref: >-
                  #/components/schemas/PaymentLinkLineItemsProductAmountCurrencyCode
              amount:
                description: >
                  Payment amount definition. A fixed-amount link returns
                  `total`; a customer-chosen amount link returns `options`,
                  `custom`, or both. `total` is never present alongside
                  `options` or `custom`.
                oneOf:
                  - title: Fixed Total
                    type: object
                    properties:
                      total:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountTotal
                  - title: Customer-chosen amount
                    type: object
                    properties:
                      options:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountOptionsArray
                      custom:
                        $ref: >-
                          #/components/schemas/PaymentLinkLineItemsProductAmountCustom
    PaymentLinkURL:
      type: string
      example: https://pay.shift4.com/link_8kdskX8DZ8FR6W3acYPXiyAN
      description: |
        URL that can be used to process payment defined by this Payment Link
    PaymentLinkNotificationsResponse:
      type: object
      description: |
        Payment Links notifications
      properties:
        share:
          type: object
          properties:
            email:
              type: object
              description: |
                Email notification details
              properties:
                emailAddress:
                  readOnly: true
                  type: string
                  example: john@example.com
                  description: |
                    Email address
                status:
                  readOnly: true
                  type: string
                  enum:
                    - sent
                    - delivered
                    - failed
                  description: |
                    Email delivery status.
    PaymentLinkResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PaymentLinkId'
        type:
          $ref: '#/components/schemas/PaymentLinkType'
        status:
          $ref: '#/components/schemas/PaymentLinkStatus'
        lastOpened:
          $ref: '#/components/schemas/PaymentLinkLastOpened'
        lineItems:
          $ref: '#/components/schemas/PaymentLinkLineItemsArrayResponse'
        currency:
          $ref: '#/components/schemas/PaymentLinkCurrency'
        url:
          $ref: '#/components/schemas/PaymentLinkURL'
        returnUrl:
          $ref: '#/components/schemas/PaymentLinkReturnURL'
        collectBillingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectBillingAddress'
        collectShippingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectShippingAddress'
        restrictions:
          $ref: '#/components/schemas/PaymentLinkRestrictions'
        notifications:
          $ref: '#/components/schemas/PaymentLinkNotificationsResponse'
        staticFields:
          $ref: '#/components/schemas/PaymentLinkStaticFields'
        customFieldsTitle:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsTitle'
        customFields:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsArray'
        locale:
          $ref: '#/components/schemas/PaymentLinkLocale'
        vendorReference:
          $ref: '#/components/schemas/PaymentLinkVendorReference'
    PaymentLinksCustomerResponse:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          example: cust_oM1i4j7EsIY7W5vqqF76diGw
          description: |
            Identifier of the customer
        emailAddress:
          type: string
          example: john@example.com
          description: |
            Email
        phoneCountry:
          type: string
          example: US
          description: >
            Two-letter ISO 3166-1 alpha-2 country code of the phone number's
            country (e.g., `US`, `GB`, `DE`). Present when the customer was
            created with `phoneCountry` set.
        phoneNumber:
          type: string
          example: +1 2345678901
          description: >
            Phone number. When `phoneCountry` was provided on creation, the
            number is returned with the corresponding country calling code
            prepended.
        addressLine1:
          $ref: '#/components/schemas/CustomerAddressLine1'
        firstName:
          $ref: '#/components/schemas/CustomerFirstName'
        middleName:
          $ref: '#/components/schemas/CustomerMiddleName'
        lastName:
          $ref: '#/components/schemas/CustomerLastName'
        postalCode:
          $ref: '#/components/schemas/CustomerPostalCode'
        addressCity:
          type: string
          example: New York
          description: |
            City
        addressRegion:
          type: string
          example: NY
          description: |
            Region or state
        addressCountry:
          type: string
          example: US
          description: |
            Country
    PaymentLinksHasMore:
      type: boolean
      description: >
        If the value is true then more objects can be listed by requesting next
        page
    PaymentLinkUpdateRequest:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PaymentLinkId'
        status:
          $ref: '#/components/schemas/PaymentLinkStatus'
        lineItems:
          type: array
          description: |
            List of line items
          items:
            type: object
            properties:
              product:
                type: object
                description: |
                  Definition of a product
                properties:
                  name:
                    $ref: '#/components/schemas/PaymentLinkLineItemsProductName'
                  description:
                    $ref: >-
                      #/components/schemas/PaymentLinkLineItemsProductDescription
                  currencyCode:
                    $ref: >-
                      #/components/schemas/PaymentLinkLineItemsProductAmountCurrencyCode
                  amount:
                    description: >
                      Payment amount definition. Provide `total` for a
                      fixed-amount link, or `options` and/or `custom` to let the
                      customer choose the amount. `total` is mutually exclusive
                      with `options` and `custom`; a customer-chosen amount link
                      may use `options`, `custom`, or both together.
                    oneOf:
                      - title: Fixed Total
                        type: object
                        additionalProperties: false
                        required:
                          - total
                        properties:
                          total:
                            $ref: >-
                              #/components/schemas/PaymentLinkLineItemsProductAmountTotal
                      - title: Customer-chosen amount
                        type: object
                        additionalProperties: false
                        minProperties: 1
                        properties:
                          options:
                            $ref: >-
                              #/components/schemas/PaymentLinkLineItemsProductAmountOptionsArray
                          custom:
                            $ref: >-
                              #/components/schemas/PaymentLinkLineItemsProductAmountCustom
        returnUrl:
          $ref: '#/components/schemas/PaymentLinkReturnURL'
        collectBillingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectBillingAddress'
        collectShippingAddress:
          $ref: '#/components/schemas/PaymentLinkCollectShippingAddress'
        restrictions:
          $ref: '#/components/schemas/PaymentLinkRestrictions'
        notifications:
          $ref: '#/components/schemas/PaymentLinkNotificationsRequest'
        staticFields:
          $ref: '#/components/schemas/PaymentLinkStaticFields'
        customFieldsTitle:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsTitle'
        customFields:
          $ref: '#/components/schemas/PaymentLinkCustomFieldsArray'
        locale:
          $ref: '#/components/schemas/PaymentLinkLocale'
    CheckoutSessionId:
      readOnly: true
      type: string
      example: chse_wMCUGVZgpf45fWHzKbYWMKmZ
      description: |
        Identifier of a Checkout Session
    CheckoutSessionStaticFields:
      type: object
      description: |
        List of information displayed on the payment page
      additionalProperties:
        type: string
      example:
        Date of event: 12 April
        Invoice number: ABC2016
    CheckoutSessionCustomFieldsTitle:
      type: string
      maxLength: 32
      example: Additional information
      description: |
        Title of custom fields section
    CheckoutSessionCustomFieldsArray:
      type: array
      maxItems: 3
      description: >
        List of custom fields that were collected from customer on the payment
        page
      items:
        type: object
        required:
          - key
          - label
        properties:
          key:
            type: string
            maxLength: 255
            example: special_wishes
            description: |
              Identifier of custom field
          label:
            type: string
            maxLength: 20
            example: Special wishes
            description: |
              Label of custom field
          optional:
            type: boolean
            description: >
              If this flag is set to true, then customer was not required to
              provide any value for this custom field
          value:
            type: string
            example: Happy Holidays
            description: |
              The value that was provided by the customer for this custom field
    CheckoutSessionLastTransaction:
      type: object
      description: >
        Contains the API response from the last transaction processed. See the
        [Sale Response
        Body](/apis/payments-platform-rest/openapi/transactions/transactionssale#transactions/transactionssale/response&c=200)
        for the full response structure.
      example:
        result:
          - dateTime: '2024-05-21T09:18:23.283-07:00'
            amount:
              total: '10.99'
              tax: '0.00'
            transaction:
              invoice: '0510093358'
              authorizationCode: '198399'
              saleFlag: S
    CheckoutSessionResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/CheckoutSessionId'
        staticFields:
          $ref: '#/components/schemas/CheckoutSessionStaticFields'
        customFieldsTitle:
          $ref: '#/components/schemas/CheckoutSessionCustomFieldsTitle'
        customFields:
          $ref: '#/components/schemas/CheckoutSessionCustomFieldsArray'
        lastTransaction:
          $ref: '#/components/schemas/CheckoutSessionLastTransaction'
    ACHDistributeBankAccount:
      title: Bank & Routing Number
      type: object
      required:
        - amount
        - transaction
        - ach
      properties:
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        ach:
          type: object
          required:
            - accountNumber
            - routingNumber
            - accountType
            - accountHolderName
          properties:
            accountNumber:
              $ref: '#/components/schemas/ACHAccountNumber'
            routingNumber:
              $ref: '#/components/schemas/ACHRoutingNumber'
            accountType:
              $ref: '#/components/schemas/ACHAccountType'
            accountHolderName:
              $ref: '#/components/schemas/ACHAccountHolderName'
            accountVerified:
              $ref: '#/components/schemas/ACHAccountVerified'
            paymentTypeCode:
              $ref: '#/components/schemas/ACHPaymentTypeCode'
      example:
        amount:
          total: 135.87
        transaction:
          invoice: '192029'
        ach:
          accountNumber: '1234567890'
          routingNumber: '121000248'
          accountHolderName: John Smith
          accountType: PC
          accountVerified: true
    ACHDistributeGTVToken:
      title: GTV Token
      type: object
      required:
        - amount
        - transaction
        - token
      properties:
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
            - invoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        token:
          $ref: '#/components/schemas/TokenACH'
        ach:
          type: object
          properties:
            verifyBalance:
              $ref: '#/components/schemas/ACHVerifyBalance'
            paymentTypeCode:
              $ref: '#/components/schemas/ACHPaymentTypeCode'
      example:
        amount:
          total: 135.87
        transaction:
          invoice: '192029'
        token:
          value: '9829283019231234'
        ach:
          verifyBalance: true
    EMVCAPKVersion:
      type: number
      example: 1
      description: >
        The version of the EMV CA Public Keys (CAPKs). This field will increment
        any time changes are made to the EMV CAPKs. It can be used to determine
        if there are any changes since the previous time you requested the keys.
    EMVCAPKAid:
      type: string
      example: A000000003
      description: |
        EMV application identifier.
    EMVCAPKIndex:
      type: string
      example: '92'
      description: |
        EMV CA Public Key Index
    EMVCAPKExpDate:
      type: string
      example: '12312030'
      description: |
        EMV CA Public Key Expiration Date in MMDDYYYY format.
    EMVCAPKAlgorithm:
      type: string
      example: '01'
      description: |
        EMV CA Public Key Algorithm
    EMVCAPKHashAlgorithm:
      type: string
      example: '01'
      description: |
        EMV CA Public Key Hash Algorithm
    EMVCAPKKey:
      type: string
      example: >-
        996AF56F569187D09293C14810450ED8EE3357397B18A2458EFAA92DA3B6DF6514EC060195318FD43BE9B8F0CC669E3F844057CBDDF8BDA191BB64473BC8DC9A730DB8F6B4EDE3924186FFD9B8C7735789C23A36BA0B8AF65372EB57EA5D89E7D14E9C7B6B557460F10885DA16AC923F15AF3758F0F03EBD3C5C2C949CBA306DB44E6A2C076C5F67E281D7EF56785DC4D75945E491F01918800A9E2DC66F60080566CE0DAF8D17EAD46AD8E30A247C9F
      description: |
        EMV CA Public key
    EMVCAPKExponent:
      type: string
      example: '03'
      description: |
        EMV CA Public Key Exponent
    EMVCAPKChecksum:
      type: string
      example: 429C954A3859CEF91295F663C963E582ED6EB253
      description: |
        EMV CA Public Key Checksum
    EMVCAPKObject:
      type: object
      properties:
        aid:
          $ref: '#/components/schemas/EMVCAPKAid'
        index:
          $ref: '#/components/schemas/EMVCAPKIndex'
        expDate:
          $ref: '#/components/schemas/EMVCAPKExpDate'
        algorithm:
          $ref: '#/components/schemas/EMVCAPKAlgorithm'
        hashAlgorithm:
          $ref: '#/components/schemas/EMVCAPKHashAlgorithm'
        key:
          $ref: '#/components/schemas/EMVCAPKKey'
        exponent:
          $ref: '#/components/schemas/EMVCAPKExponent'
        checksum:
          $ref: '#/components/schemas/EMVCAPKChecksum'
    EMVCAPKArray:
      type: array
      readOnly: true
      items:
        $ref: '#/components/schemas/EMVCAPKObject'
      example:
        - aid: A000000025
          index: C9
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            B362DB5733C15B8797B8ECEE55CB1A371F760E0BEDD3715BB270424FD4EA26062C38C3F4AAA3732A83D36EA8E9602F6683EECC6BAFF63DD2D49014BDE4D6D603CD744206B05B4BAD0C64C63AB3976B5C8CAAF8539549F5921C0B700D5B0F83C4E7E946068BAAAB5463544DB18C63801118F2182EFCC8A1E85E53C2A7AE839A5C6A3CABE73762B70D170AB64AFC6CA482944902611FB0061E09A67ACB77E493D998A0CCF93D81A4F6C0DC6B7DF22E62DB
          exponent: '03'
          checksum: 8E8DFF443D78CD91DE88821D70C98F0638E51E49
        - aid: A000000025
          index: CA
          expDate: '12312026'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            C23ECBD7119F479C2EE546C123A585D697A7D10B55C2D28BEF0D299C01DC65420A03FE5227ECDECB8025FBC86EEBC1935298C1753AB849936749719591758C315FA150400789BB14FADD6EAE2AD617DA38163199D1BAD5D3F8F6A7A20AEF420ADFE2404D30B219359C6A4952565CCCA6F11EC5BE564B49B0EA5BF5B3DC8C5C6401208D0029C3957A8C5922CBDE39D3A564C6DEBB6BD2AEF91FC27BB3D3892BEB9646DCE2E1EF8581EFFA712158AAEC541C0BBB4B3E279D7DA54E45A0ACC3570E712C9F7CDF985CFAFD382AE13A3B214A9E8E1E71AB1EA707895112ABC3A97D0FCB0AE2EE5C85492B6CFD54885CDD6337E895CC70FB3255E3
          exponent: '03'
          checksum: 6BDA32B1AA171444C7E8F88075A74FBFE845765F
        - aid: A000000152
          index: 5C
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            833F275FCF5CA4CB6F1BF880E54DCFEB721A316692CAFEB28B698CAECAFA2B2D2AD8517B1EFB59DDEFC39F9C3B33DDEE40E7A63C03E90A4DD261BC0F28B42EA6E7A1F307178E2D63FA1649155C3A5F926B4C7D7C258BCA98EF90C7F4117C205E8E32C45D10E3D494059D2F2933891B979CE4A831B301B0550CDAE9B67064B31D8B481B85A5B046BE8FFA7BDB58DC0D7032525297F26FF619AF7F15BCEC0C92BCDCBC4FB207D115AA65CD04C1CF982191
          exponent: '03'
          checksum: 60154098CBBA350F5F486CA31083D1FC474E31F8
        - aid: A000000152
          index: 5D
          expDate: '12312025'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            AD938EA9888E5155F8CD272749172B3A8C504C17460EFA0BED7CBC5FD32C4A80FD810312281B5A35562800CDC325358A9639C501A537B7AE43DF263E6D232B811ACDB6DDE979D55D6C911173483993A423A0A5B1E1A70237885A241B8EEBB5571E2D32B41F9CC5514DF83F0D69270E109AF1422F985A52CCE04F3DF269B795155A68AD2D6B660DDCD759F0A5DA7B64104D22C2771ECE7A5FFD40C774E441379D1132FAF04CDF55B9504C6DCE9F61776D81C7C45F19B9EFB3749AC7D486A5AD2E781FA9D082FB2677665B99FA5F1553135A1FD2A2A9FBF625CA84A7D736521431178F13100A2516F9A43CE095B032B886C7A6AB126E203BE7
          exponent: '03'
          checksum: B51EC5F7DE9BB6D8BCE8FB5F69BA57A04221F39B
        - aid: A000000277
          index: '02'
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            E0FFBEE77CEE02ADEE8B4B004D26FB46FAF3CE033E3B874D73D099A966A0657497CEE214E95DF2BF5C9D359A3B10C05CFC9929BEF3070036FD19AE661B173E486CBC9B04E4B2E2D0D8209CAF5C200929FA252A21BD69A9A47488844A1DE5BF8729CE5E5E92117047BDDE9FBE72397FD9FC3BE459D8ED06FD6CADF0AFF39C93CC07B312EE2ACB3D4A15E919F57481CFEF
          exponent: '010001'
          checksum: BAF3652A9F5D0FF45EECECA55B4597B1F53BE283
        - aid: A000000277
          index: '03'
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            E51505CCECDD0799BAFE097200DF40FFC2154836B8D67F1E99D4D415F73C04A9FAD73825D32AE5BA77FCD02597393CE4D8104B6010D5A8F28F2B47BB8298DAFD63C9C0BEF62AF937265614E31AE2AB45B60B968DB9DEE55602C169F6C16D4579BAA24765560300A3056F894BA8FFA566D9CCD79453D804B97DA14F21F9C3528ED8B8A368A9FACF05C46C13A9BA020618425EF1ACF6CB4DD5DCD050273502114B59EE90EBD833F70C2F324741E79A19A1
          exponent: '010001'
          checksum: 0FB60A1BCA38095F3CC578D2DEC95F779840A343
        - aid: A000000277
          index: '07'
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            B2CE89726B6B2D1690A0F8CA75CD0B6B1ACDFBE66D53BA00C500BE612FB421423684FF1868554A7722258012E588ED1CD206C67BB2F7598F3CE67F23A888B8ED7421C49A2EBA224DFBD866F62E59338E9F626D0DFD4C9ACC626E42EC0375EE424C93E5DB5773FC98E4AC9FCDEBD0521B15295C797DCABB4679C055AC374A81B245ABF1092A3D46E1CCE10A84F9FC2FC6ED91025121589C9AA68B56B7FBF0D86B4C8E3C9C08406DBB4609BBFC5308F325A8273CB6D36F3E0AF772507BF8A2A9F5A749B5AF98CCEAB2826C2D9C2AB9103B1BAB0DE92099C8072477EC564062AC38184C60DAD298EF352D92DFA041DDE3DB260CE5302B47A7E9
          exponent: '010001'
          checksum: 44F2C13373A5068B63C9334E914DDE6AB70CE0F1
        - aid: A000000277
          index: '40'
          expDate: '12312025'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            F802C308544873AD2225A81943732A4B7CFFA4E3157D17CD5A7723F858F0B11E636D2930FA933778F27C7C49127E0CCA317021CFE8E0F773785EB3FF07587E98CE8ED4FE9E1CA1859F41A9CF2572D8A093C5465F5A29612A45B1700F4DA13814C3D4DF075EAADE8DB4BE4D7B3AE0256F7A0C12E34BD416CAC4F9250C38B7E13B
          exponent: '010001'
          checksum: 2015497BE4B86F104BBF337691825EED64E101CA
        - aid: A000000065
          index: '11'
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            A2583AA40746E3A63C22478F576D1EFC5FB046135A6FC739E82B55035F71B09BEB566EDB9968DD649B94B6DEDC033899884E908C27BE1CD291E5436F762553297763DAA3B890D778C0F01E3344CECDFB3BA70D7E055B8C760D0179A403D6B55F2B3B083912B183ADB7927441BED3395A199EEFE0DEBD1F5FC3264033DA856F4A8B93916885BD42F9C1F456AAB8CFA83AC574833EB5E87BB9D4C006A4B5346BD9E17E139AB6552D9C58BC041195336485
          exponent: '03'
          checksum: D9FD62C9DD4E6DE7741E9A17FB1FF2C5DB948BCB
        - aid: A000000065
          index: '13'
          expDate: '12312025'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            A3270868367E6E29349FC2743EE545AC53BD3029782488997650108524FD051E3B6EACA6A9A6C1441D28889A5F46413C8F62F3645AAEB30A1521EEF41FD4F3445BFA1AB29F9AC1A74D9A16B93293296CB09162B149BAC22F88AD8F322D684D6B49A12413FC1B6AC70EDEDB18EC1585519A89B50B3D03E14063C2CA58B7C2BA7FB22799A33BCDE6AFCBEB4A7D64911D08D18C47F9BD14A9FAD8805A15DE5A38945A97919B7AB88EFA11A88C0CD92C6EE7DC352AB0746ABF13585913C8A4E04464B77909C6BD94341A8976C4769EA6C0D30A60F4EE8FA19E767B170DF4FA80312DBA61DB645D5D1560873E2674E1F620083F30180BD96CA589
          exponent: '03'
          checksum: 54CFAE617150DFA09D3F901C9123524523EBEDF3
        - aid: A000000004
          index: '06'
          expDate: '12312029'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            CB26FC830B43785B2BCE37C81ED334622F9622F4C89AAE641046B2353433883F307FB7C974162DA72F7A4EC75D9D657336865B8D3023D3D645667625C9A07A6B7A137CF0C64198AE38FC238006FB2603F41F4F3BB9DA1347270F2F5D8C606E420958C5F7D50A71DE30142F70DE468889B5E3A08695B938A50FC980393A9CBCE44AD2D64F630BB33AD3F5F5FD495D31F37818C1D94071342E07F1BEC2194F6035BA5DED3936500EB82DFDA6E8AFB655B1EF3D0D7EBF86B66DD9F29F6B1D324FE8B26CE38AB2013DD13F611E7A594D675C4432350EA244CC34F3873CBA06592987A1D7E852ADC22EF5A2EE28132031E48F74037E3B34AB747F
          exponent: '03'
          checksum: F910A1504D5FFB793D94F3B500765E1ABCAD72D9
        - aid: A000000004
          index: EF
          expDate: '12312029'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            A191CB87473F29349B5D60A88B3EAEE0973AA6F1A082F358D849FDDFF9C091F899EDA9792CAF09EF28F5D22404B88A2293EEBBC1949C43BEA4D60CFD879A1539544E09E0F09F60F065B2BF2A13ECC705F3D468B9D33AE77AD9D3F19CA40F23DCF5EB7C04DC8F69EBA565B1EBCB4686CD274785530FF6F6E9EE43AA43FDB02CE00DAEC15C7B8FD6A9B394BABA419D3F6DC85E16569BE8E76989688EFEA2DF22FF7D35C043338DEAA982A02B866DE5328519EBBCD6F03CDD686673847F84DB651AB86C28CF1462562C577B853564A290C8556D818531268D25CC98A4CC6A0BDFFFDA2DCCA3A94C998559E307FDDF915006D9A987B07DDAEB3B
          exponent: '03'
          checksum: 21766EBB0EE122AFB65D7845B73DB46BAB65427A
        - aid: A000000004
          index: F1
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            A0DCF4BDE19C3546B4B6F0414D174DDE294AABBB828C5A834D73AAE27C99B0B053A90278007239B6459FF0BBCD7B4B9C6C50AC02CE91368DA1BD21AAEADBC65347337D89B68F5C99A09D05BE02DD1F8C5BA20E2F13FB2A27C41D3F85CAD5CF6668E75851EC66EDBF98851FD4E42C44C1D59F5984703B27D5B9F21B8FA0D93279FBBF69E090642909C9EA27F898959541AA6757F5F624104F6E1D3A9532F2A6E51515AEAD1B43B3D7835088A2FAFA7BE7
          exponent: '03'
          checksum: D8E68DA167AB5A85D8C3D55ECB9B0517A1A5B4BB
        - aid: A000000003
          index: '92'
          expDate: '12312024'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            996AF56F569187D09293C14810450ED8EE3357397B18A2458EFAA92DA3B6DF6514EC060195318FD43BE9B8F0CC669E3F844057CBDDF8BDA191BB64473BC8DC9A730DB8F6B4EDE3924186FFD9B8C7735789C23A36BA0B8AF65372EB57EA5D89E7D14E9C7B6B557460F10885DA16AC923F15AF3758F0F03EBD3C5C2C949CBA306DB44E6A2C076C5F67E281D7EF56785DC4D75945E491F01918800A9E2DC66F60080566CE0DAF8D17EAD46AD8E30A247C9F
          exponent: '03'
          checksum: 429C954A3859CEF91295F663C963E582ED6EB253
        - aid: A000000003
          index: '94'
          expDate: '12312026'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            ACD2B12302EE644F3F835ABD1FC7A6F62CCE48FFEC622AA8EF062BEF6FB8BA8BC68BBF6AB5870EED579BC3973E121303D34841A796D6DCBC41DBF9E52C4609795C0CCF7EE86FA1D5CB041071ED2C51D2202F63F1156C58A92D38BC60BDF424E1776E2BC9648078A03B36FB554375FC53D57C73F5160EA59F3AFC5398EC7B67758D65C9BFF7828B6B82D4BE124A416AB7301914311EA462C19F771F31B3B57336000DFF732D3B83DE07052D730354D297BEC72871DCCF0E193F171ABA27EE464C6A97690943D59BDABB2A27EB71CEEBDAFA1176046478FD62FEC452D5CA393296530AA3F41927ADFE434A2DF2AE3054F8840657A26E0FC617
          exponent: '03'
          checksum: C4A3C43CCF87327D136B804160E47D43B60E6E0F
        - aid: A000000333
          index: '08'
          expDate: '12312030'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            B61645EDFD5498FB246444037A0FA18C0F101EBD8EFA54573CE6E6A7FBF63ED21D66340852B0211CF5EEF6A1CD989F66AF21A8EB19DBD8DBC3706D135363A0D683D046304F5A836BC1BC632821AFE7A2F75DA3C50AC74C545A754562204137169663CFCC0B06E67E2109EBA41BC67FF20CC8AC80D7B6EE1A95465B3B2657533EA56D92D539E5064360EA4850FED2D1BF
          exponent: '03'
          checksum: EE23B616C95C02652AD18860E48787C079E8E85A
        - aid: A000000333
          index: '09'
          expDate: '12312030'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            EB374DFC5A96B71D2863875EDA2EAFB96B1B439D3ECE0B1826A2672EEEFA7990286776F8BD989A15141A75C384DFC14FEF9243AAB32707659BE9E4797A247C2F0B6D99372F384AF62FE23BC54BCDC57A9ACD1D5585C303F201EF4E8B806AFB809DB1A3DB1CD112AC884F164A67B99C7D6E5A8A6DF1D3CAE6D7ED3D5BE725B2DE4ADE23FA679BF4EB15A93D8A6E29C7FFA1A70DE2E54F593D908A3BF9EBBD760BBFDC8DB8B54497E6C5BE0E4A4DAC29E5
          exponent: '03'
          checksum: A075306EAB0045BAF72CDD33B3B678779DE1F527
        - aid: A000000333
          index: 0A
          expDate: '12312030'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            B2AB1B6E9AC55A75ADFD5BBC34490E53C4C3381F34E60E7FAC21CC2B26DD34462B64A6FAE2495ED1DD383B8138BEA100FF9B7A111817E7B9869A9742B19E5C9DAC56F8B8827F11B05A08ECCF9E8D5E85B0F7CFA644EFF3E9B796688F38E006DEB21E101C01028903A06023AC5AAB8635F8E307A53AC742BDCE6A283F585F48EF
          exponent: '03'
          checksum: C88BE6B2417C4F941C9371EA35A377158767E4E3
        - aid: A000000333
          index: 0B
          expDate: '12312031'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            CF9FDF46B356378E9AF311B0F981B21A1F22F250FB11F55C958709E3C7241918293483289EAE688A094C02C344E2999F315A72841F489E24B1BA0056CFAB3B479D0E826452375DCDBB67E97EC2AA66F4601D774FEAEF775ACCC621BFEB65FB0053FC5F392AA5E1D4C41A4DE9FFDFDF1327C4BB874F1F63A599EE3902FE95E729FD78D4234DC7E6CF1ABABAA3F6DB29B7F05D1D901D2E76A606A8CBFFFFECBD918FA2D278BDB43B0434F5D45134BE1C2781D157D501FF43E5F1C470967CD57CE53B64D82974C8275937C5D8502A1252A8A5D6088A259B694F98648D9AF2CB0EFD9D943C69F896D49FA39702162ACB5AF29B90BADE005BC157
          exponent: '03'
          checksum: BD331F9996A490B33C13441066A09AD3FEB5F66C
        - aid: A000000780
          index: A4
          expDate: '12312030'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            D22EF8F41F0685E371B53625692A7EB13B3E9462DD985E044A5915108D2DFCC0A4171C0C0DE4E6D9BD525CAC461A169DAC5101B975D105DEA2AA34B80D9131F47A278DA609B32B1379F98FB960328DE1E27E1EDAFD2DC8A3643AFEB605582C5F953E0DE029643DE058DA6813137EB9450C5C1AD36823BF4C548A5599F6C025274081F6BBF916D79CC00AB77C3AD8E35282FFC9A24CF5F31B0E5585618A75929FBAD4416EC853A76380C84DB3B208389EC2675C9CDEA4AC106EE6AEB242761EEFED6D744E3439588EB17B2CDD956658F59FBB2186B23B396B48E84A7702B91238059FB314CAFCF59B3F09787CCA396ABA35A144C0435DC99D
          exponent: '03'
          checksum: 8438208C174CC1C3FB7793585BF1DE288349B31C
        - aid: A000000768
          index: E1
          expDate: '12312027'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            AD767119B139295B9EF760B9A94811580E933A03E76C0A7022F1021278EB6FBBEF36599D5A95C2CB603364E1DA12DF88B76D19F225F14D2A689C580DC2B54457C8BEA50086A4BE897D3353AA003CAFAB5AE3993BE6D379D488689028EC852DFED90EA6FDD73ACF6583934E64601A0EE45AF652B52CC58A9EFFA5D846DD79EFC9A8638275EC264B3C40AA3C8F3DDF1F9D378598362DF48417BF039A04D70B4FFA14A2F6218299428C625EF949F08740ED36FE9265BB8E2CA94604EFC0AEB654F9FC455F22B1EC46871E46638CE190D3691313E41C7F9C8AD4AE3D1B574D4336AD6A2BA551F2DB3A8D44F375CB67D94AFBDFD34DEA92066149
          exponent: '03'
          checksum: AE03037B9B042B0F9690500DEE287CD706FF73C8
        - aid: A000000768
          index: EE
          expDate: '12312027'
          algorithm: '01'
          hashAlgorithm: '01'
          key: >-
            A8D150CEE34B16D294B46B99BD6B3284303BD1FFD316C210E876666AD991DFE68DC1BD0835A5E03F753DB0DCE112A928C0C604F5DF256E265E05B59B4DAA15E74B0E5E27E56F8D97C1233D416162DDEC7EFE731D30BBA16683557E4D8FA15269F51D40468D1B2C31CCD314804FC97341F68A1BB78F4985B99F0901557B52196950CF6A12D6FD4356002197B17A8035606DAAC2BFCDB3CD86B9FCDBC64908BFB039C268772D73E44C3867AFC002C12CB5
          exponent: '03'
          checksum: 6DFE06AB7FAD2D98EA18B7849D11DF704D08EFAE
      description: |
        Array containing the current EMV CA Public Keys.
    BoardingCompanyPlaid:
      type: object
      description: |
        Company specific boarding information.
      required:
        - name
        - legalEntityName
        - address
      properties:
        name:
          type: string
          description: >
            The company name of the end customer being created. This will be
            used to display the end customer in the Plaid Dashboard. It will not
            be shown to end users.
        legalEntityName:
          type: string
          description: >
            The end customer's legal name. This will be shared with financial
            institutions as part of the OAuth registration process. It will not
            be shown to end users.
        address:
          type: object
          required:
            - city
            - street
            - region
            - postalCode
            - countryCode
          properties:
            city:
              type: string
            street:
              type: string
            region:
              type: string
            postalCode:
              type: string
            countryCode:
              type: string
              description: |
                ISO-3166-1 alpha-2 country code standar
        website:
          description: >
            The end customer's website. Defaulted to `www.shift4.com` if not
            provided.
    SerialNumber:
      type: number
      maxLength: 10
      example: 266
      description: |
        The Shift4 serial number
    S4Mid:
      type: number
      maxLength: 10
      example: 123456
      description: |
        The Shift4 MID number
    ACHBoardingActive:
      type: string
      enum:
        - 'Y'
        - 'N'
      description: |
        Used to enable `Y` or disable `N` EMV on the account.    
    ACHWebhookURL:
      type: string
      description: >
        A URL that outbound HTTP POST message is going to send to merchant from
        the Shift4 gateway that provides status of the ach request.
    boarding_create_ach_plaid_request:
      title: ACH Plaid
      type: object
      required:
        - dateTime
        - service
        - company
        - serial
        - s4mid
        - ach
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        service:
          type: string
          enum:
            - plaid
          description: |
            The service being boarded.
        company:
          $ref: '#/components/schemas/BoardingCompanyPlaid'
        serial:
          $ref: '#/components/schemas/SerialNumber'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        ach:
          type: object
          required:
            - active
            - paymentDescriptor
            - webhookUrl
          properties:
            active:
              $ref: '#/components/schemas/ACHBoardingActive'
            paymentDescriptor:
              type: string
              maxLength: 10
              example: INTERNET
              description: >
                Custom description that will be appended to the merchant name on
                the customer's statement. 
            plaid:
              type: object
              description: |
                Plaid specific boarding information.
              properties:
                applicationName:
                  type: string
                  description: >
                    The name of the end customer's application. This will be
                    shown to end users when they go through the Plaid Link flow.
                    Defaulted to `Shift4 App` if not sent.
                diligenceAttested:
                  type: boolean
                  description: >
                    Denotes whether or not the partner has completed attestation
                    of diligence for the end customer to be created. Defaulted
                    to `true` if not sent.
                bankAddendumCompleted:
                  type: boolean
                  description: >
                    Denotes whether the partner has forwarded the Plaid bank
                    addendum to the end customer. Defaulted to `true` if not
                    sent.
                products:
                  type: array
                  items:
                    type: string
                  description: >
                    Possible Values: `assets`, `auth`, `balance`, `identity`,
                    `investments`, `liabilities`, `transactions`. Defaulted to
                    `auth`, `balance`, and `identity` if not sent.
                logo:
                  type: string
                  description: >
                    Base64-encoded representation of the end customer's logo.
                    Must be a PNG of size 1024x1024 under 4MB. The logo will be
                    shared with financial institutions and shown to the end user
                    during Link flows. A logo is required if
                    create_link_customization is true. If
                    create_link_customization is false and the logo is omitted,
                    a stock logo will be used.
                createLinkCustomization:
                  type: boolean
                  description: >
                    If true, the end customer's default Link customization will
                    be set to match the partner's. You can always change the end
                    customer's Link customization in the Plaid Dashboard. See
                    the [Link Customization
                    docs](https://plaid.com/docs/link/customization/) for more
                    information.
                technicalContact:
                  type: object
                  description: >
                    The technical contact for the end customer. Defaults to
                    partner's technical contact if omitted.
                  properties:
                    firstName:
                      type: string
                    lastName:
                      type: string
                    email:
                      type: string
                billingContact:
                  type: object
                  description: >
                    The billing contact for the end customer. Defaults to
                    partner's technical contact if omitted.
                  properties:
                    firstName:
                      type: string
                    lastName:
                      type: string
                    email:
                      type: string
                customerSupportInfo:
                  type: object
                  description: >
                    This information is public. Users of your app will see this
                    information when managing connections between your app and
                    their bank accounts in Plaid Portal. Defaults to partner's
                    customer support info if omitted.
                  properties:
                    email:
                      type: string
                    phoneNumber:
                      type: string
                    contactUrl:
                      type: string
                    linkUpdateUrl:
                      type: string
                assetsUnderManagement:
                  type: object
                  description: >
                    Assets under management for the given end customer. Required
                    for end customers with monthly service commitments.
                  properties:
                    amount:
                      type: number
                    isoCurrencyCode:
                      type: string
                redirectUris:
                  type: string
                  description: >
                    A list of URIs indicating the destination(s) where a user
                    can be forwarded after completing the Link flow; used to
                    support OAuth authentication flows when launching Link in
                    the browser or via a webview. URIs should not contain any
                    query parameters. When used in Production or Development,
                    URIs must use https. To specify any subdomain, use * as a
                    wildcard character, e.g. https://*.example.com/oauth.html.
                    To modify redirect URIs for an end customer after creating
                    them, go to the end customer's API page in the Dashboard.


                    **Conditional: must be sent if plaid.redirectUrl element is
                    going to be used on plaid account verification endpoint.**
            webhookUrl:
              $ref: '#/components/schemas/ACHWebhookURL'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        service: plaid
        company:
          name: Merchant XYZ
          legalEntityName: Merchant XYZ
          address:
            city: Las Vegas
            street: 123 Main St
            region: NV
            postalCode: '89134'
            countryCode: US
          website: www.merchantxyz.com
        serial: 266
        s4mid: 12346
        ach:
          active: 'Y'
          paymentDescriptor: UTILITY
          plaid:
            applicationName: Shift4 App
            diligenceAttested: true
            bankAddendumCompleted: false
            products:
              - auth
              - balance
          webhookUrl: api.merchantxyz.com/webhook
    BoardingCompanyACHStandalone:
      type: object
      description: |
        Company specific boarding information.
      required:
        - name
        - legalEntityName
        - address
      properties:
        name:
          type: string
          description: >
            The company name of the end customer being created. This will be
            used to display the end customer in the Plaid Dashboard. It will not
            be shown to end users.
        legalEntityName:
          type: string
          description: >
            The end customer's legal name. This will be shared with financial
            institutions as part of the OAuth registration process. It will not
            be shown to end users.
        address:
          type: object
          required:
            - city
            - street
            - region
            - postalCode
            - countryCode
          properties:
            city:
              type: string
            street:
              type: string
            region:
              type: string
            postalCode:
              type: string
            countryCode:
              type: string
              description: |
                ISO-3166-1 alpha-2 country code standar
        website:
          description: >
            The end customer's website. Defaulted to `www.shift4.com` if not
            provided.
    boarding_create_ach_standalone_request:
      title: ACH Standalone
      type: object
      required:
        - dateTime
        - service
        - company
        - serial
        - s4mid
        - ach
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        service:
          type: string
          enum:
            - achstandalone
          description: |
            The service being boarded.
        company:
          $ref: '#/components/schemas/BoardingCompanyACHStandalone'
        serial:
          $ref: '#/components/schemas/SerialNumber'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        ach:
          type: object
          required:
            - active
            - paymentDescriptor
            - webhookUrl
          properties:
            active:
              $ref: '#/components/schemas/ACHBoardingActive'
            paymentDescriptor:
              type: string
              maxLength: 10
              example: INTERNET
              description: >
                Custom description that will be appended to the merchant name on
                the customer's statement. 
            webhookUrl:
              $ref: '#/components/schemas/ACHWebhookURL'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        service: achstandalone
        company:
          name: Merchant XYZ
          legalEntityName: Merchant XYZ
          address:
            city: Las Vegas
            street: 123 Main St
            region: NV
            postalCode: '89134'
            countryCode: US
          website: www.merchantxyz.com
        serial: 266
        s4mid: 12346
        ach:
          active: 'Y'
          paymentDescriptor: UTILITY
          webhookUrl: api.merchantxyz.com/webhook
    BoardingCompanyGTV:
      type: object
      description: |
        Company specific boarding information.
      required:
        - legalEntityName
        - address
        - website
      properties:
        legalEntityName:
          type: string
          description: |
            The merchant's legal name
        address:
          type: object
          required:
            - city
            - countryCode
          properties:
            city:
              type: string
              minLength: 2
              maxLength: 100
              description: |
                City in the merchant's primary address
            countryCode:
              type: string
              minLength: 2
              maxLength: 2
              description: >
                The merchants's 2 letter ISO Country code in ISO-3166-1 alpha-2
                format
        website:
          description: |
            The merchant's website.
    GTVID:
      type: string
      minLength: 2
      maxLength: 20
      example: SPACEX
      description: |
        The Shift4 GTV ID
    GTVNetworkToken:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Send `Y` to enable or `N` to disable card brand network tokenization
    GTVBinCode:
      type: string
      minLength: 2
      maxLength: 20
      enum:
        - ML_GC
        - ML
        - MLBWESTERN
        - M
        - MAI
        - LTV_DEFAULT
        - LTV_GC
        - TV2G
        - HILTON
      example: ML_GC
      description: |
        The GTV Bincode ID
    GTVBinCodeUnknown:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Send `Y` to allow or `N` to disallow tokenizing unkonwn BIN codes.
    GTVTokenMod10:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: >
        Send `Y` for GTV to generate tokens that pass mod10 or `N` for GTV to
        generate tokens that do not pass mod10.
    GTVVaultSize:
      type: number
      example: 1024
      description: |
        Expected size of vault
    GTV:
      type: object
      description: |
        GTV specific boarding information.
      properties:
        id:
          $ref: '#/components/schemas/GTVID'
        networkToken:
          $ref: '#/components/schemas/GTVNetworkToken'
        bincode:
          $ref: '#/components/schemas/GTVBinCode'
        bincodeUnknown:
          $ref: '#/components/schemas/GTVBinCodeUnknown'
        tokenMod10:
          $ref: '#/components/schemas/GTVTokenMod10'
        vaultSize:
          $ref: '#/components/schemas/GTVVaultSize'
    boarding_create_gtv_request:
      title: GTV
      type: object
      required:
        - dateTime
        - service
        - company
        - s4mid
        - processor
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        service:
          type: string
          enum:
            - gtv
          description: |
            The service being boarded.
        company:
          $ref: '#/components/schemas/BoardingCompanyGTV'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        processor:
          type: string
          enum:
            - TSYS
            - Finaro
        gtv:
          $ref: '#/components/schemas/GTV'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        service: gtv
        company:
          legalEntityName: Merchant XYZ
          address:
            city: Las Vegas
            countryCode: US
          website: www.merchantxyz.com
        s4mid: 12346
        processor: TSYS
        gtv:
          id: SPACEX
          networkToken: 'Y'
          bincode: ML_GC
          bincodeUnknown: 'Y'
          tokenMod10: 'Y'
          vaultSize: 200000
    BoardingCompanyMagicCube:
      type: object
      description: |
        Company specific boarding information.
      required:
        - legalEntityName
        - address
        - website
      properties:
        legalEntityName:
          type: string
          description: |
            The merchant's legal name
        address:
          type: object
          required:
            - city
            - countryCode
          properties:
            city:
              type: string
              minLength: 2
              maxLength: 100
              description: |
                City in the merchant's primary address
            countryCode:
              type: string
              minLength: 2
              maxLength: 2
              description: >
                The merchants's 2 letter ISO Country code in ISO-3166-1 alpha-2
                format
        website:
          description: |
            The merchant's website.
    boarding_create_magiccube_request:
      title: MagicCube
      type: object
      required:
        - dateTime
        - service
        - company
        - s4mid
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        service:
          type: string
          enum:
            - magiccube
          description: |
            The service being boarded.
        company:
          $ref: '#/components/schemas/BoardingCompanyMagicCube'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        service: magiccube
        company:
          legalEntityName: Merchant XYZ
          address:
            city: Las Vegas
            countryCode: US
          website: www.merchantxyz.com
        s4mid: 12346
    ACHStatus:
      type: string
      enum:
        - success
        - failed
      description: |
        ACH status response
    boarding_create_ach_plaid_response:
      title: ACH Plaid
      type: object
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        serial:
          $ref: '#/components/schemas/SerialNumber'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        ach:
          type: object
          properties:
            active:
              $ref: '#/components/schemas/ACHBoardingActive'
            plaid:
              type: object
              properties:
                createDateTime:
                  type: string
                  format: ISO 8601
                  example: '2024-01-17T13:34:25.049-07:00'
                  description: >
                    The date and time in ISO 8601 format including the timezone
                    offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
                status:
                  type: string
                  description: >
                    The status of the given end customer.


                    Value              | Description

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

                    UNDER_REVIEW       | The end customer has been created and
                    enabled in the non-Production environments. The end customer
                    must be manually reviewed by the Plaid team before it can be
                    enabled in production, at which point its status will
                    automatically transition to PENDING_ENABLEMENT or DENIED.

                    PENDING_ENABLEMENT | The end customer is ready to be enabled
                    in the Production environment. Call the
                    /partner/customer/enable endpoint to enable the end customer
                    in Production.

                    ACTIVE             | The end customer has been enabled in
                    all environments.

                    DENIED             | The end customer has been created and
                    enabled in the non-Production environments, but it did not
                    pass review by the Plaid team and therefore cannot be
                    enabled in the Production environment. Talk to your Account
                    Manager for more information.
                link_status:
                  type: string
                  description: |
                    The status of the Plaid Link boarding.

                    Value   | Description
                    --------|-------------
                    success | Plaid Link boarding was successful
                    failed  | Plaid Link boarding was not successful
            status:
              $ref: '#/components/schemas/ACHStatus'
        server:
          $ref: '#/components/schemas/Server'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        serial: 266
        s4mid: 12346
        ach:
          active: 'Y'
          plaid:
            createDateTime: '2023-02-17T09:08:08.748-07:00'
            status: ACTIVE
            link_status: success
          status: success
        server:
          name: TM01CE
    boarding_create_ach_standalone_response:
      title: ACH Standalone
      type: object
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        serial:
          $ref: '#/components/schemas/SerialNumber'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        ach:
          type: object
          properties:
            active:
              $ref: '#/components/schemas/ACHBoardingActive'
            status:
              $ref: '#/components/schemas/ACHStatus'
        server:
          $ref: '#/components/schemas/Server'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        serial: 266
        s4mid: 12346
        ach:
          active: 'Y'
          status: success
        server:
          name: TM01CE
    boarding_create_gtv_response:
      title: GTV
      type: object
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        gtv:
          $ref: '#/components/schemas/GTV'
        server:
          $ref: '#/components/schemas/Server'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        s4mid: 12346
        gtv:
          id: SPACEX
          networkToken: 'Y'
          bincode: ML_GC
          bincodeUnknown: 'Y'
          tokenMod10: 'Y'
          vaultSize: 200000
        server:
          name: TM01CE
    boarding_create_magiccube_response:
      title: MagicCube
      type: object
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        s4mid:
          $ref: '#/components/schemas/S4Mid'
        server:
          $ref: '#/components/schemas/Server'
      example:
        dateTime: '2023-02-17T09:07:23.283-07:00'
        s4mid: 12346
        server:
          name: TM01CE
    Kiosk:
      type: object
      properties:
        mode:
          type: string
          enum:
            - enabled
            - disabled
          description: >
            Send `enabled` to enable kiosk mode or `disabled` to disable kiosk
            mode. The response value will indicate the actual state. In the case
            where you attempt to enable kiosk mode but Commerce Engine is unable
            to enable it, the response will return `disabled`.
    devices_config_comengdevice:
      title: Commerce Engine For On Premise
      type: object
      required:
        - dateTime
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        kiosk:
          $ref: '#/components/schemas/Kiosk'
    devices_config_comengcloud:
      title: Commerce Engine For Cloud
      type: object
      required:
        - dateTime
        - device
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        device:
          $ref: '#/components/schemas/DeviceComEngCloud'
        kiosk:
          $ref: '#/components/schemas/Kiosk'
    DeviceCloudMQQueue:
      type: string
      example: 93680a92-ca54-4a5d-8f84-e63418860e13
      description: |
        Specifies the message queue name
    DeviceCloudMQRouting:
      type: string
      example: Pax.1170301234
      description: |
        Specifies the message queue routing key
    DeviceCloudMQServer:
      type: string
      example: wh-mq-v03.dev.shift4.net:5671
      description: >
        Specifies the message queue server URL the device cloud solution should
        connect to
    DeviceCloudMQType:
      type: string
      enum:
        - RMQ
      example: RMQ
      description: >
        Specifies the type of message queue broker the device cloud solution
        will be connecting to.


        Value | Description

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

        RMQ   | RabbitMQ
    DeviceCloudMQVHost:
      type: string
      example: rabbitmq-dev
      description: >
        Specifies the message queue virtual host the device cloud solution
        should connect to
    DeviceTerminalIdMagicCube:
      type: string
      example: '9876543213'
      description: |
        Terminal ID
    DeviceMCRock:
      type: string
      example: QyN2LlqKzuTcpIz9
      description: |
        MagicCube Rock
    MagicCubePed_PBK:
      type: string
      example: >-
        -----BEGIN
        CERTIFICATE-----\nMIIDMjCCAZoCEQDn7O4vkjJF4n8I2PgAx5JbMA0GCSqGSIb3DQEBCwUAMBcxFTAT\nBgNVBAMMDG1hZ2ljY3ViZS5jbzAeFw0yMzA3MTkwMDAwMDBaFw0yNDA3MTgwMDAw\nMDBaMBcxFTATBgNVBAMMDG1hZ2ljY3ViZS5jbzCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBANLB4rH6fBHFPrAdLAtoQCmW8sTswNgrIs5M2bqRlk3Tv1wg\n8wANu2o6TPNTV9bxwKz4cDdWqaM98PXHyVJZmQA4dbzNhrndNSuT6yftL0awpmZm\nlXevLABtIUVf9S+z1VcDzxFyJaMdpNkBuXG6gTR4dQLXXle9FPH79afvBfRZf\/Of\nnPZoGM27AWctFv6W0NwDv0iUhvMYEzEmUR2PwDtD5Ws9\/sO8W1kpIjNd9KGQOI4o\nNil4gtnAF7ODGVO6OjIm8YQeD\/AvfTTo7IOPc\/kq9h0UN3pulDbvOUloobQouNyJ\nSq1D10XD3d9tw7vIaurs5NURwy\/glZDsi+A0uSMCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAYEAmZdJ+yqeP+tq6wWtBp9TspDKQPXO5xKHS8oLXVjlfjvftAA2260C8u24\nV9Gta7dJcKxewkVWRh2AyoJToks2aJm8aL1XmtZeJ6bMJEEnxDGOAhsOYF2relyY\n6mTf9\/SBMSfK2BP3w1T0TUn+fEXQA4a7DyK73k15WJy4j4wzTmrRGXno0p7Pq4eC\nNLW9QTYzeoAi\/nHt5MqxOn23+1kGX3\/yYoNl7gFWozqzzouNL6qNIdkdEGQYL5Mv\nl70FyoezWyPmXUMfRGRHwMXKGhRn98pQBkV91K2lg2Ovkwv8hknv1ux59M+gpXZG\nVAPPuDjkvYh\/VheKdxjRwaCiIflrDM58af4gZ+AcGVLDTHRie8z5Ok1oA4pavPHb\neE+0AzUOpq2gxPxMBiBf1CtHTLEMXal2mqJpbkElCVSoXZpJeUibzlSD6sh22Eb4\nPupc9SDyHv76p\/Hrqcnr0eiuzbCTtWtPariOruDeseiYvwpIF\/yssqdzRURe6uPW\nsT\/nkmlt\n-----END
        CERTIFICATE-----\n
      description: |
        MagicCube Ped PBK
    MagicCubeE_IPEK:
      type: string
      example: >-
        Yn2gV_IgV5LAq6zG9QIcqitFjigQvEMy6F0lBZucV_yxoouyzWpB2wDOG7scIgGF5JeWPhuMAsL2t6QFw6tyB2Jozx0tELxXYabsMvvYWRAm7Ruf2YGVbFgT-W7hMhT3N1hzAIXkPhjFUqPBkgLl5bGb1SFa4XL0fVG_iHNXFMYIoh4QMSKC6hcIblqtnDEmt80KxMtx92dDdW32rZwVXDfIvBAy0JzFbSggHbdTkJGp-VQsYKXf0J3cgc9CNcmpgq8f48k-XQIgbexEQXITzABpbZDr3tccljEEU1mEX18-H11ie8BJmcqhhaN40YHqQgWBQ2GJGzAo_V-aQRivTg==
      description: |
        MagicCube e_ipek
    MagicCubeIKSN:
      type: string
      example: __9JUgAXAAAAAA==
      description: |
        MagicCube iksn
    MagicCubeSystemReadyResult:
      type: string
      enum:
        - ok
      example: ok
      description: |
        MagicCube System Ready Result
    CurrencyCodeGlobal:
      type: string
      format: ISO 4217 3 Character Alphabetic Code
      example: EUR
      description: >
        Transaction currency code. See the [Currency
        Codes](/guides/appendices/currency-codes) section for details.
    CardMaskedNumberRequest:
      type: string
      maxLength: 32
      example: XXXXXXXXXXXX1119
      description: >
        The masked card number showing just the last 4 digits of the card with
        the rest of the card digits masked with an `X`.
    CardBinRequest:
      type: string
      maxLength: 8
      example: '432100'
      description: |
        The first 6 or 8 digits of the card.
    TransactionType:
      type: string
      example: Sale
      enum:
        - Sale
        - Authorization
        - Incremental
        - Refund
        - Void
        - Capture
      description: |
        Specifies the transaction type.
    TransactionResponseCodeApproved:
      type: string
      minLength: 1
      maxLength: 1
      example: A
      enum:
        - A
      description: |
        Code indicating the transaction status. 

        Value  | Description | Details
        -------|-------------|--------
        A      | Approved    | The transaction is approved.
    PurchaseCardOptional:
      type: object
      properties:
        customerReference:
          $ref: '#/components/schemas/PurchaseCardCustomerReference'
        destinationPostalCode:
          $ref: '#/components/schemas/PurchaseCardDestinationPostalCode'
        productDescriptors:
          $ref: '#/components/schemas/PurchaseCardProductDescriptors'
    EMVTlvDataReportUpload:
      type: string
      writeOnly: true
      example: >-
        4F07A0000000041010500A4D6173746572436172645F201A546573742F4361726420303920202020202020202020202020205F24032512315F25031511015F2D02656E5F3401018407A0000000041010950508200000009B02C8009F02060000000004449F03060000000000009F34031E03009F3704C5BF918D9F390105
      description: >
        This field will contain all EMV tags in standard TLV format except tags
        5A and 57.
    EMVReportUpload:
      type: object
      writeOnly: true
      description: >
        **Conditional: Required when the request was processed an EMV insert or
        tap.**
      required:
        - tlvData
      properties:
        emptyCandidateList:
          $ref: '#/components/schemas/EMVEmptyCandidateList'
        tlvData:
          $ref: '#/components/schemas/EMVTlvDataReportUpload'
    transactions_reportupload_approval:
      title: Approval
      type: object
      required:
        - dateTime
        - amount
        - currencyCode
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCodeGlobal'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
        card:
          type: object
          required:
            - entryMode
            - present
            - type
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardTypeResp'
            debitType:
              $ref: '#/components/schemas/CardDebitType'
            number:
              $ref: '#/components/schemas/CardMaskedNumberRequest'
            bin:
              $ref: '#/components/schemas/CardBinRequest'
        transaction:
          type: object
          required:
            - invoice
            - type
            - authorizationCode
            - responseCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            type:
              $ref: '#/components/schemas/TransactionType'
            authorizationCode:
              $ref: '#/components/schemas/TransactionAuthorizationCode'
            responseCode:
              $ref: '#/components/schemas/TransactionResponseCodeApproved'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardOptional'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
        device:
          type: object
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        emv:
          $ref: '#/components/schemas/EMVReportUpload'
        receipt:
          $ref: '#/components/schemas/ReceiptArray'
        customer:
          $ref: '#/components/schemas/Customer'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        currencyCode: EUR
        card:
          entryMode: E
          present: 'Y'
          type: DB
          debitType: girocard
          number: XXXXXXXXXXXX1119
          bin: '432100'
        clerk:
          numericId: 1576
        device:
          manufacturer: Verifone
          model: V660p-A
          serialNumber: '454123456'
          terminalId: 002211223344-1
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        transaction:
          invoice: '192029'
          authorizationCode: OK987Z
          responseCode: A
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
          pspData:
            pspId: PSP Name XYZ
            pspMid: '123456'
            pspTid: '12345678'
            pspTxnTraceNo: '000013'
            pspTxnDate: '20210415'
            pspTxnTime: '182328'
            pspResponseCode: '00'
            pspResponseText: Payment Approved
    TransactionResponseCodeDeclined:
      type: string
      minLength: 1
      maxLength: 1
      example: D
      enum:
        - D
      description: |
        Code indicating the transaction status        

        Value  | Description  | Details
        -------|--------------|--------
        D      | Declined     | The transaction is declined.
    transactions_reportupload_decline:
      title: Decline
      type: object
      required:
        - dateTime
        - amount
        - currencyCode
        - card
        - transaction
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        accountType:
          $ref: '#/components/schemas/AccountType'
        amount:
          $ref: '#/components/schemas/Amount'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCodeGlobal'
        clerk:
          $ref: '#/components/schemas/ClerkOptional'
        card:
          type: object
          required:
            - entryMode
            - present
            - type
          properties:
            entryMode:
              $ref: '#/components/schemas/CardEntryMode'
            present:
              $ref: '#/components/schemas/CardPresent'
            type:
              $ref: '#/components/schemas/CardTypeResp'
            debitType:
              $ref: '#/components/schemas/CardDebitType'
            number:
              $ref: '#/components/schemas/CardMaskedNumberRequest'
            bin:
              $ref: '#/components/schemas/CardBinRequest'
        transaction:
          type: object
          required:
            - invoice
            - type
            - responseCode
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            type:
              $ref: '#/components/schemas/TransactionType'
            responseCode:
              $ref: '#/components/schemas/TransactionResponseCodeDeclined'
            hostResponse:
              $ref: '#/components/schemas/HostResponse'
            notes:
              $ref: '#/components/schemas/TransactionNotes'
            amex:
              $ref: '#/components/schemas/TransactionAmex'
            airline:
              $ref: '#/components/schemas/AirlineRequest'
            cardOnFile:
              $ref: '#/components/schemas/CardOnFile'
            hotel:
              $ref: '#/components/schemas/HotelCheckOut'
            purchaseCard:
              $ref: '#/components/schemas/PurchaseCardOptional'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
            deferredAuth:
              $ref: '#/components/schemas/TransactionDeferredAuth'
        device:
          type: object
          properties:
            manufacturer:
              $ref: '#/components/schemas/DeviceManufacturer'
            model:
              $ref: '#/components/schemas/DeviceModel'
            serialNumber:
              $ref: '#/components/schemas/DeviceSerialNumber'
            terminalId:
              $ref: '#/components/schemas/DeviceTerminalIdComEng'
        emv:
          $ref: '#/components/schemas/EMVReportUpload'
        receipt:
          $ref: '#/components/schemas/ReceiptArray'
        customer:
          $ref: '#/components/schemas/Customer'
        reportingData:
          $ref: '#/components/schemas/ReportingData'
        mPos:
          $ref: '#/components/schemas/mPOS'
        dcc:
          $ref: '#/components/schemas/DCCTransactionRequest'
        surcharge:
          $ref: '#/components/schemas/SurchargeRequest'
      example:
        dateTime: '2021-04-15T09:18:23.283-07:00'
        amount:
          cashback: 20
          tax: 15
          tip: 20
          total: 160
        currencyCode: EUR
        card:
          entryMode: E
          present: 'Y'
          type: DB
          debitType: girocard
          number: XXXXXXXXXXXX1119
          bin: '432100'
        clerk:
          numericId: 1576
        device:
          manufacturer: Verifone
          model: V660p-A
          serialNumber: '454123456'
          terminalId: 002211223344-1
        emv:
          tlvData: >-
            9F40056000F0A0019F02060000000111009F03060000000000009F26088D24914341485DE14F07A00000000310109F0607A000000003101082021C009F360202929F34035E03009F2701809F3901059F3303E0F8C89F1A0208409F350122950580800080005F2A0208409A032107229B0268009F21031016209C01009F3704D2EAB1B55F2D02656E5F3401015A181CF757386DE00BC2DE05F965DB1E96D867C2009CA8C317998407A00000000310109F100706010A03A0A000573083FBDC0892887F7C99E0B7E54520CCC94308B4E4C7D4C18CDCE4EAA83C4D18A6AFDCD53EAC46BD5630834EFB238F32B39F0D05B0508088009F0E0500000000009F0F05B0508098009F0702FF009F080200969F0902008C5F280208409F4104000000085F24032212319F1E083131373031373332
        transaction:
          invoice: '192029'
          responseCode: D
          hotel:
            additionalCharges:
              giftShop: 'Y'
              laundry: 'Y'
              miniBar: 'Y'
              other: 'Y'
              restaurant: 'Y'
              telephone: 'Y'
            arrivalDateTime: '2021-04-12T15:39:01.594-07:00'
            departureDateTime: '2021-04-15T09:18:23.283-07:00'
            primaryChargeType: 1
            roomRates:
              - nights: 2
                rate: 159.95
              - nights: 3
                rate: 125.38
            specialCode: 1
          notes: Transaction notes are added here
          purchaseCard:
            customerReference: D019D09309F2
            destinationPostalCode: '94719'
            productDescriptors:
              - Hamburger
              - Fries
              - Soda
              - Cookie
        reportingData:
          customerInfo:
            - firstName: Jane
              lastName: Smith
              dateOfBirth: '12011983'
              gender: female
              baggage: checked
              seats: 1A
              boardingPriority: '1'
            - firstName: John
              lastName: Smith
              dateOfBirth: '01281980'
              gender: male
              baggage: carryon
              seats: 1B
              boardingPriority: '1'
          pspData:
            pspId: PSP Name XYZ
            pspMid: '123456'
            pspTid: '12345678'
            pspTxnTraceNo: '000013'
            pspTxnDate: '20210415'
            pspTxnTime: '182328'
            pspResponseCode: '05'
            pspResponseText: Payment Declined
    TransactionProcessorPaymentId:
      type: string
      maxLength: 32
      example: XZZ5600f5a7b9659661PKK6LHZHRVDWB
      description: >
        A unique transaction identifier from the processor that accompanies all
        transactions related to the same purchase.
    TransactionProcessorResponseId:
      type: string
      maxLength: 32
      example: XZZ5600f5a7b9659661LOMKCO64A5A7R
      description: |
        A unique processor response ID.
    RiskRulesGetStatusParameter:
      type: string
      example: emailAddress
      description: |
        Specifies the type of rule

        Value        | Description
        -------------|------------
        email        | Email Address
        deviceId     | Device ID Fingerprint
    RiskRulesValue:
      type: string
      example: johnsmith@xyz.com
      description: |
        Specifies the value of the rule parameter.
    RiskRulesGetStatusResult:
      type: string
      example: S
      readOnly: true
      description: >
        Specifies the result of the get request rule status


        Value | Description                                              | Notes

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

        S     | Get rule status request succeeded.                       |

        F     | Get rule status request failed.                          |
        `riskRules.status` will not be returned.

        E     | Error condition occurred during get rule status request. |
        `riskRules.status` will not be returned.

        N     | Parameter not found.                                     |
        `riskRules.status` will not be returned.
    RiskRulesGetStatusStatus:
      type: string
      example: D
      readOnly: true
      description: |
        Specifies the status of the rule

        Value | Description
        ------|------------
        A     | Approve
        R     | Review
        D     | Decline
        X     | Delete
    RiskRulesGetStatus:
      type: object
      required:
        - parameter
        - value
        - result
      properties:
        parameter:
          $ref: '#/components/schemas/RiskRulesGetStatusParameter'
        value:
          $ref: '#/components/schemas/RiskRulesValue'
        result:
          $ref: '#/components/schemas/RiskRulesGetStatusResult'
        status:
          $ref: '#/components/schemas/RiskRulesGetStatusStatus'
    RiskRulesGetStatusArray:
      type: array
      items:
        $ref: '#/components/schemas/RiskRulesGetStatus'
      example:
        - parameter: email
          value: johnsmith@xyz.com
        - parameter: email
          value: joebob@abc.com
        - parameter: deviceId
          value: 5F67753832224611BF697A590316AA34
      description: |
        Array of risk rules objects.
    RiskRulesUpdateParameter:
      type: string
      example: emailAddress
      description: |
        Specifies the type of rule

        Value        | Description
        -------------|------------
        email        | Email Address
        card         | Card Number
        token        | Token
        deviceId     | Device ID Fingerprint
        rfcb         | Refund or Chargeback
    RiskRulesUpdateResult:
      type: string
      example: S
      readOnly: true
      description: >
        Specifies the result of the request rule action


        Value | Description               | Notes

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

        S     | Rule update succeeded.    | 

        F     | Rule update failed.       | Possible reasons: format error,
        invalid token, invalid status requested, etc. 

        E     | Error condition occurred. | Possible reasons: unable to reach
        processor, processor returned unknown error, etc.
    RiskRulesUpdateStatus:
      type: string
      example: D
      description: >
        Specifies the status of the rule


        Value | Description | Notes

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

        A     | Approve     | This value cannot be used if `riskRules.parameter`
        is 'card' or 'token'

        R     | Review      |

        D     | Decline     |

        X     | Delete      |
    RiskRulesCBCode:
      type: integer
      example: 1
      description: |
        Chargeback code
    RiskRulesUpdate:
      type: object
      required:
        - parameter
        - value
        - result
        - status
      properties:
        parameter:
          $ref: '#/components/schemas/RiskRulesUpdateParameter'
        value:
          $ref: '#/components/schemas/RiskRulesValue'
        result:
          $ref: '#/components/schemas/RiskRulesUpdateResult'
        status:
          $ref: '#/components/schemas/RiskRulesUpdateStatus'
        cbCode:
          $ref: '#/components/schemas/RiskRulesCBCode'
    RiskRulesUpdateArray:
      type: array
      items:
        $ref: '#/components/schemas/RiskRulesUpdate'
      example:
        - parameter: email
          value: johnsmith@xyz.com
          status: D
        - parameter: email
          value: joebob@abc.com
          status: A
        - parameter: token
          value: '8048471746471119'
          status: R
        - parameter: card
          value: '4321000000001119'
          status: X
        - parameter: deviceId
          value: 5F67753832224611BF697A590316AA34
          status: D
      description: |
        Array of risk rules objects.
    RiskRulesUpdateStatusResponse:
      type: string
      example: D
      description: |
        Specifies the status of the rule

        Value | Description 
        ------|-------------
        A     | Approve     
        R     | Review      
        D     | Decline     
        X     | Delete      
    RiskRulesUpdateResponse:
      type: object
      required:
        - parameter
        - value
        - result
        - status
      properties:
        parameter:
          $ref: '#/components/schemas/RiskRulesUpdateParameter'
        value:
          $ref: '#/components/schemas/RiskRulesValue'
        result:
          $ref: '#/components/schemas/RiskRulesUpdateResult'
        status:
          $ref: '#/components/schemas/RiskRulesUpdateStatusResponse'
    RiskRulesUpdateArrayResponse:
      type: array
      items:
        $ref: '#/components/schemas/RiskRulesUpdateResponse'
      example:
        - parameter: email
          value: johnsmith@xyz.com
          status: D
        - parameter: email
          value: joebob@abc.com
          status: A
        - parameter: token
          value: '8048471746471119'
          status: R
        - parameter: card
          value: '4321000000001119'
          status: X
        - parameter: deviceId
          value: 5F67753832224611BF697A590316AA34
          status: D
      description: |
        Array of risk rules objects.
    RiskListID:
      type: number
      example: '306'
      description: |
        Risk List ID
    RiskListRecCreateDateTime:
      type: string
      format: ISO 8601
      example: '2023-06-10T06:34:25.049205-07:00'
      description: >
        The record creation date and time in ISO 8601 format including the
        timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm).
    RiskListCategory:
      type: string
      enum:
        - sourceIp
        - emailAddress
        - emailDomain
        - fullName
        - token
      example: emailAddress
      description: >
        The risk category. If there is already an active record for the risk
        category and value specified the previous record will become inactive.


        Value        | Description

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

        sourceIp     | extract from sourceIp

        emailAddress | extract from customer.emailAddress

        emailDomain  | extract from customer.emailAddress

        fullName     | extract from customer.fullName

        token        | extract from card.token.value
    RiskListUser:
      type: string
      example: John Smith
      description: |
        User requesting the change.
    RiskListValue:
      type: string
      example: janedoe@email.com
      description: |
        Risk List value based on the risk category being supplied
    RiskListAction:
      type: string
      enum:
        - A
        - D
        - 'N'
      example: A
      description: |
        Risk List Action

        Value | Description
        ------|------------
        A     | Approve
        D     | Decline
        N     | Nothing
    RiskListActive:
      type: string
      enum:
        - 'Y'
        - 'N'
      example: 'Y'
      description: |
        Risk List Active

        Value | Description
        ------|------------
        Y     | Yes
        N     | No
    RiskListStatus:
      type: string
      example: S
      readOnly: true
      description: |
        Specifies the result of the rule status

        Value | Description |
        ------|-------------|
        S     | Success     |
        F     | Failure     |
        E     | Error       |
    RiskListQueryObject:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/RiskListID'
        recCreateDateTime:
          $ref: '#/components/schemas/RiskListRecCreateDateTime'
        category:
          $ref: '#/components/schemas/RiskListCategory'
        user:
          $ref: '#/components/schemas/RiskListUser'
        value:
          $ref: '#/components/schemas/RiskListValue'
        action:
          $ref: '#/components/schemas/RiskListAction'
        active:
          $ref: '#/components/schemas/RiskListActive'
        mid:
          $ref: '#/components/schemas/S4Mid'
        status:
          $ref: '#/components/schemas/RiskListStatus'
    RiskListQuery:
      type: array
      items:
        $ref: '#/components/schemas/RiskListQueryObject'
    RiskListObject:
      type: object
      required:
        - category
        - user
        - value
        - action
        - active
        - mid
      properties:
        category:
          $ref: '#/components/schemas/RiskListCategory'
        user:
          $ref: '#/components/schemas/RiskListUser'
        value:
          $ref: '#/components/schemas/RiskListValue'
        action:
          $ref: '#/components/schemas/RiskListAction'
        active:
          $ref: '#/components/schemas/RiskListActive'
        mid:
          $ref: '#/components/schemas/S4Mid'
        status:
          $ref: '#/components/schemas/RiskListStatus'
    RiskList:
      type: array
      items:
        $ref: '#/components/schemas/RiskListObject'
    ApiOptionsFromTMRequired:
      type: array
      items:
        type: string
      example:
        - FROMTM
      writeOnly: true
      description: >
        API Options modify the request being made. See the [API
        Options](/guides/appendices/api-options.md) section for more
        information. 


        Must include `FROMTM` in the request.
    CardNumberUnmaskedResponse:
      type: string
      maxLength: 32
      example: '4321000000001119'
      description: |
        The unmasked and unencrypted payment card number.
    CardExpirationDateString:
      type: string
      minLength: 4
      maxLength: 4
      format: MMYY
      example: 1230
      description: |
        Card expiration date in MMYY format.
    Invoices:
      type: array
      items:
        type: string
      maxItems: 100
      example:
        - '0510093358'
        - '0510093119'
        - '0510093360'
        - '0510093361'
      writeOnly: true
      description: |
        Array of invoices
    TransactionSafStatus:
      type: string
      readOnly: true
      enum:
        - PENDING
        - SENT_ONLINE
        - NOT_FOUND
      example: SENT_ONLINE
      description: |
        The transaction SAF status.
    CardNumberLast4:
      type: string
      maxLength: 4
      example: '1119'
      description: |
        The last 4 digits of the card number
    ACHVerificationTypeVerifyWebhook:
      type: string
      example: P
      enum:
        - P
        - M
      description: |
        The type of verification used to validate the account.

        Value | Description 
        ------|---------------
        P     | Prenotification
        M     | Microdeposit
    webhook_ach_verification_status_update:
      title: ACH Verification Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: >
                `ach.verify.verification_status_update`


                Occurs when the status of the ACH verification request is
                updated.
        ach:
          type: object
          properties:
            verificationType:
              $ref: '#/components/schemas/ACHVerificationTypeVerifyWebhook'
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
                - A
                - D
              description: |
                Code indicating the Shift4 host response.        

                Value  | Description | Details
                -------|-------------|--------
                A      | Approved    | The ACH request is approved.
                D      | Declined    | The ACH request is declined. 
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.verify.verification_status_update
        ach:
          verificationType: P
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    webhook_ach_sale_status_update:
      title: ACH Sale Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: |
                `ach.sale.status_update`

                Occurs when the status of the ACH sale request is updated.
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
                - A
                - D
                - F
              description: |
                Code indicating the Shift4 host response.        

                Value  | Description | Details
                -------|-------------|--------
                A      | Approved    | The ACH request is approved.
                D      | Declined    | The ACH request is declined. 
                F      | Funded      | The ACH request is funded.
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.sale.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    webhook_ach_refund_status_update:
      title: ACH Refund Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: |
                `ach.refund.status_update`

                Occurs when the status of the ACH refund request is updated.
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
                - A
                - D
                - F
              description: |
                Code indicating the Shift4 host response.        

                Value  | Description | Details
                -------|-------------|--------
                A      | Approved    | The ACH request is approved.
                D      | Declined    | The ACH request is declined. 
                F      | Funded      | The ACH request is refunded.
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.refund.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    webhook_ach_dispute_initiated:
      title: ACH Dispute Initiated
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: |
                `ach.dispute.initiated`

                Occurs when ACH  dispute is created.
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              $ref: '#/components/schemas/TransactionResponseCodeACHPending'
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.dispute.initiated
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    TransactionResponseCodeACHDispute:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
        - D
      description: |
        Code indicating the Shift4 host response.        

        Value  | Description | Details
        -------|-------------|--------
        D      | Declined    | The ACH request is declined. 
    webhook_ach_dispute_status_update:
      title: ACH Dispute Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: |
                `ach.dispute.status_update`

                Occurs when the status of the ACH dispute is updated.
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              $ref: '#/components/schemas/TransactionResponseCodeACHDispute'
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.dispute.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    webhook_ach_distribute_status_update:
      title: ACH Distribute Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: |
                `ach.distribute.status_update`

                Occurs when the status of the ACH distribute request is updated.
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
                - A
                - D
                - F
              description: |
                Code indicating the Shift4 host response.        

                Value  | Description | Details
                -------|-------------|--------
                D      | Declined    | The ACH request is declined. 
                F      | Funded      | The ACH request is funded.
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.distribute.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 921e41d4-e920-4b24-8bbf-0787379ad4df
        server:
          name: TM01CE
  examples:
    AuthTokenNotValidError:
      summary: AuthToken Not Valid
      value:
        result:
          - error:
              primaryCode: 9862
              secondaryCode: 0
              shortText: AuthToken
              longText: AuthToken not valid ENGINE01CE
            server:
              name: U2API01CE
    transactionsauthorization_resp_p2peemv:
      summary: Using EMV with P2PE
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: E
              number: XXXXXXXXXXXX4111
              present: 'Y'
              token:
                value: '8058471748284111'
              type: MC
            clerk:
              numericId: 1576
            emv:
              tlvData: 910A0102030405060708090A
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: AmountAuthorized
                printName: 9F02
                printValue: '000000000444'
              - key: ApplicationIdentifier
                printName: AID
                printValue: A0000000041010
              - key: ApplicationLabel
                printValue: MasterCard
              - key: CVMResults
                printName: 9F34
                printValue: '1E0300'
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: CHIP
              - key: CardholderVerificationMethod
                printName: CVM
                printValue: SIGN
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX4111
              - key: PANSequenceNumber
                printName: 5F34
                printValue: '01'
              - key: SignatureRequired
                printValue: 'Y'
              - key: TerminalVerificationResults
                printName: TVR
                printValue: '0820000000'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
              - key: TransactionStatusIndicator
                printName: TSI
                printValue: C800
              - key: UnpredictableNumber
                printName: 9F37
                printValue: C5BF918D
            server:
              name: U2API01CE
            transaction:
              authorizationCode: OK253W
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionsauthorization_resp_p2pe:
      summary: Using P2PE
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '1'
              number: XXXXXXXXXXXX0009
              present: 'Y'
              token:
                value: '8058471748050009'
              type: MC
            clerk:
              numericId: 1576
            customer:
              firstName: MC2\/DUAL
              lastName: TRACK
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX0009
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI02CE
            transaction:
              authorizationCode: OK183Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionsauthorization_resp_token:
      summary: Using token
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '1'
              expirationDate: 1222
              number: XXXXXXXXXXXX1119
              present: 'N'
              token:
                value: 11191pn83hbkkety
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK126Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionsauthorization_resp_utgdevice:
      summary: Using UTG-controlled device
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              tax: 15
              total: 140
            card:
              entryMode: '1'
              number: XXXXXXXXXX4509
              present: 'Y'
              token:
                value: '6011013928534509'
              type: NS
            clerk:
              numericId: 1576
            customer:
              firstName: DC\/TRACK1
              lastName: ONLY
            device:
              terminalId: '350'
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: LOCALUTG
            transaction:
              authorizationCode: OK892Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionsauthorization_resp_track:
      summary: Using track information
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '2'
              number: XXXXXXXXXXXX1119
              present: 'Y'
              token:
                value: 1119p4kgmkb39zx2
              type: VS
            clerk:
              numericId: 1576
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI02CE
            transaction:
              authorizationCode: OK007Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionsauthorization_resp_raw:
      summary: Using unencrypted card number
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: M
              number: XXXXXXXXXXXX1119
              present: 'N'
              securityCode:
                result: M
                valid: 'Y'
              token:
                value: '8048471746471119'
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: KEYED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK408Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              avs:
                postalCodeVerified: 'N'
                result: A
                streetVerified: 'Y'
                valid: 'Y'
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_p2peemv:
      summary: Using EMV with P2PE
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: E
              number: XXXXXXXXXXXX4111
              present: 'Y'
              token:
                value: '8058471748284111'
              type: MC
            clerk:
              numericId: 1576
            emv:
              tlvData: 910A0102030405060708090A
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: AmountAuthorized
                printName: 9F02
                printValue: '000000000444'
              - key: ApplicationIdentifier
                printName: AID
                printValue: A0000000041010
              - key: ApplicationLabel
                printValue: MasterCard
              - key: CVMResults
                printName: 9F34
                printValue: '1E0300'
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: CHIP
              - key: CardholderVerificationMethod
                printName: CVM
                printValue: SIGN
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX4111
              - key: PANSequenceNumber
                printName: 5F34
                printValue: '01'
              - key: SignatureRequired
                printValue: 'Y'
              - key: TerminalVerificationResults
                printName: TVR
                printValue: '0820000000'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
              - key: TransactionStatusIndicator
                printName: TSI
                printValue: C800
              - key: UnpredictableNumber
                printName: 9F37
                printValue: C5BF918D
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK710W
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_p2pe:
      summary: Using P2PE
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '1'
              number: XXXXXXXXXXXX1119
              present: 'Y'
              token:
                value: '8048471746471119'
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: VS/DUAL
              lastName: TRACK
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK850Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_token:
      summary: Using token
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: M
              number: XXXXXXXXXXXX1119
              present: 'N'
              token:
                value: '8048471746471119'
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: KEYED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK854Z
              authSource: E
              avs:
                postalCodeVerified: 'N'
                result: A
                streetVerified: 'Y'
                valid: 'Y'
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_utgdevice:
      summary: Using UTG-controlled device
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '1'
              number: XXXXXXXXXX4509
              present: 'Y'
              token:
                value: '6011013928534509'
              type: NS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            device:
              terminalId: '1742'
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: LOCALUTG
            transaction:
              authorizationCode: OK978Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_track:
      summary: Using track information
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: '2'
              number: XXXXXXXXXXXX1119
              present: 'Y'
              token:
                value: '8048471746471119'
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: SWIPED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI02CE
            transaction:
              authorizationCode: OK862Z
              authSource: E
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    transactionssale_resp_raw:
      summary: Using unencrypted card number
      value:
        result:
          - dateTime: '2021-04-15T09:18:23.283-07:00'
            amount:
              cashback: 20
              tax: 15
              tip: 20
              total: 160
            card:
              entryMode: M
              number: XXXXXXXXXXXX1119
              present: 'N'
              securityCode:
                result: M
                valid: 'Y'
              token:
                value: '8048471746471119'
              type: VS
            clerk:
              numericId: 1576
            customer:
              firstName: John
              lastName: Smith
            merchant:
              mid: 15877
              name: Merchant XYZ
            receipt:
              - key: CardEntryMode
                printName: ENTRY METHOD
                printValue: KEYED
              - key: MaskedPAN
                printValue: XXXXXXXXXXXX1119
              - key: SignatureRequired
                printValue: 'Y'
              - key: TransactionResponse
                printName: Response
                printValue: APPROVED
            server:
              name: UTGAPI01CE
            transaction:
              authorizationCode: OK868Z
              authSource: E
              avs:
                postalCodeVerified: 'N'
                result: A
                streetVerified: 'Y'
                valid: 'Y'
              hostResponse:
                reasonCode: '04'
                reasonDescription: PickUpCard_NoFraud
                reattemptPermission: Reattempt not permitted
              invoice: '192029'
              responseCode: A
              retrievalReference: 402F9H0230S0
              saleFlag: S
    InvoiceError:
      summary: Invoice Not Found
      value:
        result:
          - error:
              primaryCode: 9815
              secondaryCode: 0
              shortText: NO INV
              longText: Invoice Not Found 192029 0000057984  ENGINE02CE
            lighthouse:
              data: >-
                eyJwYXltZW50SWQiOiI4NWM0MWNhNy01NzVjLTQzNGUtODIyZi0xYzZlOTE0ZDAzODYiLCJyZW1haW5pbmdBbW91bnQiOjB9
            server:
              name: U2API01CE
    AccessTokenNotFoundError:
      summary: AccessToken Not Found
      value:
        result:
          - error:
              primaryCode: 9862
              secondaryCode: 0
              shortText: AccessToken
              longText: AccessToken not found ENGINE01CE
            server:
              name: U2API01CE
    GiftCardActivateError:
      summary: Gift Card Activate Failed
      value:
        result:
          - error:
              primaryCode: 9101
              secondaryCode: 0
              shortText: ACTIVATE FAILED
              longText: >-
                ACTIVATE FAILED iyc_activateCard: Invalid card or serial number
                222 Mid(444444) Invoice(6200007001) ENGINE01CE
            server:
              name: U2API01CE
    BatchError:
      summary: Batch Error
      value:
        result:
          - error:
              primaryCode: 9300
              secondaryCode: 2
              shortText: BATCH FAILED
              longText: >-
                Received Net Amount 1124.49 doesn't match existing Net Amount
                1356.27. Batch submission process failed.
            server:
              name: U2API02CE
    GetEMVCAPKDev:
      summary: Development Keys
      value:
        result:
          - capkVersion: 1
            capks:
              - aid: A000000003
                index: '92'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  996AF56F569187D09293C14810450ED8EE3357397B18A2458EFAA92DA3B6DF6514EC060195318FD43BE9B8F0CC669E3F844057CBDDF8BDA191BB64473BC8DC9A730DB8F6B4EDE3924186FFD9B8C7735789C23A36BA0B8AF65372EB57EA5D89E7D14E9C7B6B557460F10885DA16AC923F15AF3758F0F03EBD3C5C2C949CBA306DB44E6A2C076C5F67E281D7EF56785DC4D75945E491F01918800A9E2DC66F60080566CE0DAF8D17EAD46AD8E30A247C9F
                exponent: '03'
                checksum: 429C954A3859CEF91295F663C963E582ED6EB253
              - aid: A000000003
                index: '94'
                expDate: '12312032'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  ACD2B12302EE644F3F835ABD1FC7A6F62CCE48FFEC622AA8EF062BEF6FB8BA8BC68BBF6AB5870EED579BC3973E121303D34841A796D6DCBC41DBF9E52C4609795C0CCF7EE86FA1D5CB041071ED2C51D2202F63F1156C58A92D38BC60BDF424E1776E2BC9648078A03B36FB554375FC53D57C73F5160EA59F3AFC5398EC7B67758D65C9BFF7828B6B82D4BE124A416AB7301914311EA462C19F771F31B3B57336000DFF732D3B83DE07052D730354D297BEC72871DCCF0E193F171ABA27EE464C6A97690943D59BDABB2A27EB71CEEBDAFA1176046478FD62FEC452D5CA393296530AA3F41927ADFE434A2DF2AE3054F8840657A26E0FC617
                exponent: '03'
                checksum: C4A3C43CCF87327D136B804160E47D43B60E6E0F
              - aid: A000000003
                index: '95'
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  BE9E1FA5E9A803852999C4AB432DB28600DCD9DAB76DFAAA47355A0FE37B1508AC6BF38860D3C6C2E5B12A3CAAF2A7005A7241EBAA7771112C74CF9A0634652FBCA0E5980C54A64761EA101A114E0F0B5572ADD57D010B7C9C887E104CA4EE1272DA66D997B9A90B5A6D624AB6C57E73C8F919000EB5F684898EF8C3DBEFB330C62660BED88EA78E909AFF05F6DA627B
                exponent: '03'
                checksum: EE1511CEC71020A9B90443B37B1D5F6E703030F6
              - aid: A000000003
                index: '99'
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  AB79FCC9520896967E776E64444E5DCDD6E13611874F3985722520425295EEA4BD0C2781DE7F31CD3D041F565F747306EED62954B17EDABA3A6C5B85A1DE1BEB9A34141AF38FCF8279C9DEA0D5A6710D08DB4124F041945587E20359BAB47B7575AD94262D4B25F264AF33DEDCF28E09615E937DE32EDC03C54445FE7E382777
                exponent: '03'
                checksum: 4ABFFD6B1C51212D05552E431C5B17007D2F5E6D
              - aid: A000000004
                index: '06'
                expDate: '12312029'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  CB26FC830B43785B2BCE37C81ED334622F9622F4C89AAE641046B2353433883F307FB7C974162DA72F7A4EC75D9D657336865B8D3023D3D645667625C9A07A6B7A137CF0C64198AE38FC238006FB2603F41F4F3BB9DA1347270F2F5D8C606E420958C5F7D50A71DE30142F70DE468889B5E3A08695B938A50FC980393A9CBCE44AD2D64F630BB33AD3F5F5FD495D31F37818C1D94071342E07F1BEC2194F6035BA5DED3936500EB82DFDA6E8AFB655B1EF3D0D7EBF86B66DD9F29F6B1D324FE8B26CE38AB2013DD13F611E7A594D675C4432350EA244CC34F3873CBA06592987A1D7E852ADC22EF5A2EE28132031E48F74037E3B34AB747F
                exponent: '03'
                checksum: F910A1504D5FFB793D94F3B500765E1ABCAD72D9
              - aid: A000000004
                index: EF
                expDate: '12312032'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A191CB87473F29349B5D60A88B3EAEE0973AA6F1A082F358D849FDDFF9C091F899EDA9792CAF09EF28F5D22404B88A2293EEBBC1949C43BEA4D60CFD879A1539544E09E0F09F60F065B2BF2A13ECC705F3D468B9D33AE77AD9D3F19CA40F23DCF5EB7C04DC8F69EBA565B1EBCB4686CD274785530FF6F6E9EE43AA43FDB02CE00DAEC15C7B8FD6A9B394BABA419D3F6DC85E16569BE8E76989688EFEA2DF22FF7D35C043338DEAA982A02B866DE5328519EBBCD6F03CDD686673847F84DB651AB86C28CF1462562C577B853564A290C8556D818531268D25CC98A4CC6A0BDFFFDA2DCCA3A94C998559E307FDDF915006D9A987B07DDAEB3B
                exponent: '03'
                checksum: 21766EBB0EE122AFB65D7845B73DB46BAB65427A
              - aid: A000000004
                index: F1
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A0DCF4BDE19C3546B4B6F0414D174DDE294AABBB828C5A834D73AAE27C99B0B053A90278007239B6459FF0BBCD7B4B9C6C50AC02CE91368DA1BD21AAEADBC65347337D89B68F5C99A09D05BE02DD1F8C5BA20E2F13FB2A27C41D3F85CAD5CF6668E75851EC66EDBF98851FD4E42C44C1D59F5984703B27D5B9F21B8FA0D93279FBBF69E090642909C9EA27F898959541AA6757F5F624104F6E1D3A9532F2A6E51515AEAD1B43B3D7835088A2FAFA7BE7
                exponent: '03'
                checksum: D8E68DA167AB5A85D8C3D55ECB9B0517A1A5B4BB
              - aid: A000000004
                index: F3
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  98F0C770F23864C2E766DF02D1E833DFF4FFE92D696E1642F0A88C5694C6479D16DB1537BFE29E4FDC6E6E8AFD1B0EB7EA0124723C333179BF19E93F10658B2F776E829E87DAEDA9C94A8B3382199A350C077977C97AFF08FD11310AC950A72C3CA5002EF513FCCC286E646E3C5387535D509514B3B326E1234F9CB48C36DDD44B416D23654034A66F403BA511C5EFA3
                exponent: '03'
                checksum: A69AC7603DAF566E972DEDC2CB433E07E8B01A9A
              - aid: A000000004
                index: F8
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A1F5E1C9BD8650BD43AB6EE56B891EF7459C0A24FA84F9127D1A6C79D4930F6DB1852E2510F18B61CD354DB83A356BD190B88AB8DF04284D02A4204A7B6CB7C5551977A9B36379CA3DE1A08E69F301C95CC1C20506959275F41723DD5D2925290579E5A95B0DF6323FC8E9273D6F849198C4996209166D9BFC973C361CC826E1
                exponent: '03'
                checksum: F06ECC6D2AAEBF259B7E755A38D9A9B24E2FF3DD
              - aid: A000000004
                index: FA
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A90FCD55AA2D5D9963E35ED0F440177699832F49C6BAB15CDAE5794BE93F934D4462D5D12762E48C38BA83D8445DEAA74195A301A102B2F114EADA0D180EE5E7A5C73E0C4E11F67A43DDAB5D55683B1474CC0627F44B8D3088A492FFAADAD4F42422D0E7013536C3C49AD3D0FAE96459B0F6B1B6056538A3D6D44640F94467B108867DEC40FAAECD740C00E2B7A8852D
                exponent: '03'
                checksum: 5BED4068D96EA16D2D77E03D6036FC7A160EA99C
              - aid: A000000004
                index: FE
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A653EAC1C0F786C8724F737F172997D63D1C3251C44402049B865BAE877D0F398CBFBE8A6035E24AFA086BEFDE9351E54B95708EE672F0968BCD50DCE40F783322B2ABA04EF137EF18ABF03C7DBC5813AEAEF3AA7797BA15DF7D5BA1CBAF7FD520B5A482D8D3FEE105077871113E23A49AF3926554A70FE10ED728CF793B62A1
                exponent: '03'
                checksum: 9A295B05FB390EF7923F57618A9FDA2941FC34E0
              - aid: A000000025
                index: C1
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  E69E319C34D1B4FB43AED4BD8BBA6F7A8B763F2F6EE5DDF7C92579A984F89C4A9C15B27037764C58AC7E45EFBC34E138E56BA38F76E803129A8DDEB5E1CC8C6B30CF634A9C9C1224BF1F0A9A18D79ED41EBCF1BE78087AE8B7D2F896B1DE8B7E784161A138A0F2169AD33E146D1B16AB595F9D7D98BE671062D217F44EB68C68640C7D57465A063F6BAC776D3E2DAC61
                exponent: '03'
                checksum: DC79D6B5FC879362299BC5A637DAD2E0D99656B8
              - aid: A000000025
                index: C2
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B875002F38BA26D61167C5D440367604AD38DF2E93D8EE8DA0E8D9C0CF4CC5788D11DEA689E5F41D23A3DA3E0B1FA5875AE25620F5A6BCCEE098C1B35C691889D7D0EF670EB8312E7123FCC5DC7D2F0719CC80E1A93017F944D097330EDF945762FEE62B7B0BA0348228DBF38D4216E5A67A7EF74F5D3111C44AA31320F623CB3C53E60966D6920067C9E082B746117E48E4F00E110950CA54DA3E38E5453BD5544E3A6760E3A6A42766AD2284E0C9AF
                exponent: '03'
                checksum: 8E748296359A7428F536ADDA8E2C037E2B697EF6
              - aid: A000000025
                index: C3
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B93182ABE343DFBF388C71C4D6747DCDEC60367FE63CFAA942D7D323E688D0832836548BF0EDFF1EDEEB882C75099FF81A93FA525C32425B36023EA02A8899B9BF7D7934E86F997891823006CEAA93091A73C1FDE18ABD4F87A22308640C064C8C027685F1B2DB7B741B67AB0DE05E870481C5F972508C17F57E4F833D63220F6EA2CFBB878728AA5887DE407D10C6B8F58D46779ECEC1E2155487D52C78A5C03897F2BB580E0A2BBDE8EA2E1C18F6AAF3EB3D04C3477DEAB88F150C8810FD1EF8EB0596866336FE2C1FBC6BEC22B4FE5D885647726DB59709A505F75C49E0D8D71BF51E4181212BE2142AB2A1E8C0D3B7136CD7B7708E4D
                exponent: '03'
                checksum: 12F1790CB0273DC73C6E70784BC24C12E8DB71F6
              - aid: A000000025
                index: C8
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  BF0CFCED708FB6B048E3014336EA24AA007D7967B8AA4E613D26D015C4FE7805D9DB131CED0D2A8ED504C3B5CCD48C33199E5A5BF644DA043B54DBF60276F05B1750FAB39098C7511D04BABC649482DDCF7CC42C8C435BAB8DD0EB1A620C31111D1AAAF9AF6571EEBD4CF5A08496D57E7ABDBB5180E0A42DA869AB95FB620EFF2641C3702AF3BE0B0C138EAEF202E21D
                exponent: '03'
                checksum: 33BD7A059FAB094939B90A8F35845C9DC779BD50
              - aid: A000000025
                index: C9
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B362DB5733C15B8797B8ECEE55CB1A371F760E0BEDD3715BB270424FD4EA26062C38C3F4AAA3732A83D36EA8E9602F6683EECC6BAFF63DD2D49014BDE4D6D603CD744206B05B4BAD0C64C63AB3976B5C8CAAF8539549F5921C0B700D5B0F83C4E7E946068BAAAB5463544DB18C63801118F2182EFCC8A1E85E53C2A7AE839A5C6A3CABE73762B70D170AB64AFC6CA482944902611FB0061E09A67ACB77E493D998A0CCF93D81A4F6C0DC6B7DF22E62DB
                exponent: '03'
                checksum: 8E8DFF443D78CD91DE88821D70C98F0638E51E49
              - aid: A000000025
                index: CA
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  C23ECBD7119F479C2EE546C123A585D697A7D10B55C2D28BEF0D299C01DC65420A03FE5227ECDECB8025FBC86EEBC1935298C1753AB849936749719591758C315FA150400789BB14FADD6EAE2AD617DA38163199D1BAD5D3F8F6A7A20AEF420ADFE2404D30B219359C6A4952565CCCA6F11EC5BE564B49B0EA5BF5B3DC8C5C6401208D0029C3957A8C5922CBDE39D3A564C6DEBB6BD2AEF91FC27BB3D3892BEB9646DCE2E1EF8581EFFA712158AAEC541C0BBB4B3E279D7DA54E45A0ACC3570E712C9F7CDF985CFAFD382AE13A3B214A9E8E1E71AB1EA707895112ABC3A97D0FCB0AE2EE5C85492B6CFD54885CDD6337E895CC70FB3255E3
                exponent: '03'
                checksum: 6BDA32B1AA171444C7E8F88075A74FBFE845765F
              - aid: A000000065
                index: '11'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A2583AA40746E3A63C22478F576D1EFC5FB046135A6FC739E82B55035F71B09BEB566EDB9968DD649B94B6DEDC033899884E908C27BE1CD291E5436F762553297763DAA3B890D778C0F01E3344CECDFB3BA70D7E055B8C760D0179A403D6B55F2B3B083912B183ADB7927441BED3395A199EEFE0DEBD1F5FC3264033DA856F4A8B93916885BD42F9C1F456AAB8CFA83AC574833EB5E87BB9D4C006A4B5346BD9E17E139AB6552D9C58BC041195336485
                exponent: '03'
                checksum: D9FD62C9DD4E6DE7741E9A17FB1FF2C5DB948BCB
              - aid: A000000065
                index: '13'
                expDate: '12312025'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A3270868367E6E29349FC2743EE545AC53BD3029782488997650108524FD051E3B6EACA6A9A6C1441D28889A5F46413C8F62F3645AAEB30A1521EEF41FD4F3445BFA1AB29F9AC1A74D9A16B93293296CB09162B149BAC22F88AD8F322D684D6B49A12413FC1B6AC70EDEDB18EC1585519A89B50B3D03E14063C2CA58B7C2BA7FB22799A33BCDE6AFCBEB4A7D64911D08D18C47F9BD14A9FAD8805A15DE5A38945A97919B7AB88EFA11A88C0CD92C6EE7DC352AB0746ABF13585913C8A4E04464B77909C6BD94341A8976C4769EA6C0D30A60F4EE8FA19E767B170DF4FA80312DBA61DB645D5D1560873E2674E1F620083F30180BD96CA589
                exponent: '03'
                checksum: 54CFAE617150DFA09D3F901C9123524523EBEDF3
              - aid: A000000065
                index: 0F
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  9EFBADDE4071D4EF98C969EB32AF854864602E515D6501FDE576B310964A4F7C2CE842ABEFAFC5DC9E26A619BCF2614FE07375B9249BEFA09CFEE70232E75FFD647571280C76FFCA87511AD255B98A6B577591AF01D003BD6BF7E1FCE4DFD20D0D0297ED5ECA25DE261F37EFE9E175FB5F12D2503D8CFB060A63138511FE0E125CF3A643AFD7D66DCF9682BD246DDEA1
                exponent: '03'
                checksum: 2A1B82DE00F5F0C401760ADF528228D3EDE0F403
              - aid: A000000152
                index: 5A
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  EDD8252468A705614B4D07DE3211B30031AEDB6D33A4315F2CFF7C97DB918993C2DC02E79E2FF8A2683D5BBD0F614BC9AB360A448283EF8B9CF6731D71D6BE939B7C5D0B0452D660CF24C21C47CAC8E26948C8EED8E3D00C016828D642816E658DC2CFC61E7E7D7740633BEFE34107C1FB55DEA7FAAEA2B25E85BED948893D07
                exponent: '03'
                checksum: CC9585E8E637191C10FCECB32B5AE1B9D410B52D
              - aid: A000000152
                index: 5B
                expDate: '12312050'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  D3F45D065D4D900F68B2129AFA38F549AB9AE4619E5545814E468F382049A0B9776620DA60D62537F0705A2C926DBEAD4CA7CB43F0F0DD809584E9F7EFBDA3778747BC9E25C5606526FAB5E491646D4DD28278691C25956C8FED5E452F2442E25EDC6B0C1AA4B2E9EC4AD9B25A1B836295B823EDDC5EB6E1E0A3F41B28DB8C3B7E3E9B5979CD7E079EF024095A1D19DD
                exponent: '03'
                checksum: 4DC5C6CAB6AE96974D9DC8B2435E21F526BC7A60
              - aid: A000000152
                index: 5C
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  833F275FCF5CA4CB6F1BF880E54DCFEB721A316692CAFEB28B698CAECAFA2B2D2AD8517B1EFB59DDEFC39F9C3B33DDEE40E7A63C03E90A4DD261BC0F28B42EA6E7A1F307178E2D63FA1649155C3A5F926B4C7D7C258BCA98EF90C7F4117C205E8E32C45D10E3D494059D2F2933891B979CE4A831B301B0550CDAE9B67064B31D8B481B85A5B046BE8FFA7BDB58DC0D7032525297F26FF619AF7F15BCEC0C92BCDCBC4FB207D115AA65CD04C1CF982191
                exponent: '03'
                checksum: 60154098CBBA350F5F486CA31083D1FC474E31F8
              - aid: A000000152
                index: 5D
                expDate: '12312025'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  AD938EA9888E5155F8CD272749172B3A8C504C17460EFA0BED7CBC5FD32C4A80FD810312281B5A35562800CDC325358A9639C501A537B7AE43DF263E6D232B811ACDB6DDE979D55D6C911173483993A423A0A5B1E1A70237885A241B8EEBB5571E2D32B41F9CC5514DF83F0D69270E109AF1422F985A52CCE04F3DF269B795155A68AD2D6B660DDCD759F0A5DA7B64104D22C2771ECE7A5FFD40C774E441379D1132FAF04CDF55B9504C6DCE9F61776D81C7C45F19B9EFB3749AC7D486A5AD2E781FA9D082FB2677665B99FA5F1553135A1FD2A2A9FBF625CA84A7D736521431178F13100A2516F9A43CE095B032B886C7A6AB126E203BE7
                exponent: '03'
                checksum: B51EC5F7DE9BB6D8BCE8FB5F69BA57A04221F39B
              - aid: A000000277
                index: '02'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  E0FFBEE77CEE02ADEE8B4B004D26FB46FAF3CE033E3B874D73D099A966A0657497CEE214E95DF2BF5C9D359A3B10C05CFC9929BEF3070036FD19AE661B173E486CBC9B04E4B2E2D0D8209CAF5C200929FA252A21BD69A9A47488844A1DE5BF8729CE5E5E92117047BDDE9FBE72397FD9FC3BE459D8ED06FD6CADF0AFF39C93CC07B312EE2ACB3D4A15E919F57481CFEF
                exponent: '010001'
                checksum: BAF3652A9F5D0FF45EECECA55B4597B1F53BE283
              - aid: A000000277
                index: '03'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  E51505CCECDD0799BAFE097200DF40FFC2154836B8D67F1E99D4D415F73C04A9FAD73825D32AE5BA77FCD02597393CE4D8104B6010D5A8F28F2B47BB8298DAFD63C9C0BEF62AF937265614E31AE2AB45B60B968DB9DEE55602C169F6C16D4579BAA24765560300A3056F894BA8FFA566D9CCD79453D804B97DA14F21F9C3528ED8B8A368A9FACF05C46C13A9BA020618425EF1ACF6CB4DD5DCD050273502114B59EE90EBD833F70C2F324741E79A19A1
                exponent: '010001'
                checksum: 0FB60A1BCA38095F3CC578D2DEC95F779840A343
              - aid: A000000277
                index: '07'
                expDate: '12312032'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B2CE89726B6B2D1690A0F8CA75CD0B6B1ACDFBE66D53BA00C500BE612FB421423684FF1868554A7722258012E588ED1CD206C67BB2F7598F3CE67F23A888B8ED7421C49A2EBA224DFBD866F62E59338E9F626D0DFD4C9ACC626E42EC0375EE424C93E5DB5773FC98E4AC9FCDEBD0521B15295C797DCABB4679C055AC374A81B245ABF1092A3D46E1CCE10A84F9FC2FC6ED91025121589C9AA68B56B7FBF0D86B4C8E3C9C08406DBB4609BBFC5308F325A8273CB6D36F3E0AF772507BF8A2A9F5A749B5AF98CCEAB2826C2D9C2AB9103B1BAB0DE92099C8072477EC564062AC38184C60DAD298EF352D92DFA041DDE3DB260CE5302B47A7E9
                exponent: '010001'
                checksum: 44F2C13373A5068B63C9334E914DDE6AB70CE0F1
              - aid: A000000277
                index: '40'
                expDate: '12312025'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  F802C308544873AD2225A81943732A4B7CFFA4E3157D17CD5A7723F858F0B11E636D2930FA933778F27C7C49127E0CCA317021CFE8E0F773785EB3FF07587E98CE8ED4FE9E1CA1859F41A9CF2572D8A093C5465F5A29612A45B1700F4DA13814C3D4DF075EAADE8DB4BE4D7B3AE0256F7A0C12E34BD416CAC4F9250C38B7E13B
                exponent: '010001'
                checksum: 2015497BE4B86F104BBF337691825EED64E101CA
              - aid: A000000277
                index: '41'
                expDate: '20241231'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  ADC39532AB26462DC02B25CB92748AAC679F07CF7AFD8F9B83C4B94D8C06A1F0D841F35A5F598DD3915FDA8929B8BF2BE0CD03CDC625BFA0FED60D6B8A6778B138C30D4ACA134F337E90F82E4D2FF6180ACA6664F562DF2A11120D10957DF4B2E75607FC960176CBBE6AE3E3F6D5556E47A5EABC850388175609C9AC7AFF6AF12A522EE1EAD1D94EC964E325C97CAC84A1D508769F65FEE99F25196403C98E721116B8084379277AB4D9A2F867B8FCBB280447646915702F20C8ABEE1A29A358D25CFF7EEA66813CB10996BC33E18FC15190CC3B1CDF14934652BA5C8C2E201988E098402556B3ED068862925B90BE2FD61E337FC5BAF7A9
                exponent: '010001'
                checksum: FD47C4AAB01B9B89314539BB32E0A29770A04387'
              - aid: A000000277
                index: '42'
                expDate: '20241231'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  99E0195F9B477160EE90F5FE9773D68DD684C7192528DB67DF0D93B0FDD60B1A9F999A726B7BD97586354575A787363290E7AB423E3D52D037BE38057BA5A9292A5652677E3F754BD642A1702E97279E67AA3411413A7AAB452DF6A1246CA9EF297CBD3BDC1B0A2CA863A48CF87E62400E7AAD29A4880E799187F50861C6C6E976142AD3F456DAEFCB3041557787B4981414D915AFF3EA8CAB738533BBACCA12F75BF107C10F6A029417A051BE0A3285
                exponent: '010001'
                checksum: 64876E40CD5DDE35CF107E8314C67BDE640A6BEE'
              - aid: A000000333
                index: '08'
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B61645EDFD5498FB246444037A0FA18C0F101EBD8EFA54573CE6E6A7FBF63ED21D66340852B0211CF5EEF6A1CD989F66AF21A8EB19DBD8DBC3706D135363A0D683D046304F5A836BC1BC632821AFE7A2F75DA3C50AC74C545A754562204137169663CFCC0B06E67E2109EBA41BC67FF20CC8AC80D7B6EE1A95465B3B2657533EA56D92D539E5064360EA4850FED2D1BF
                exponent: '03'
                checksum: EE23B616C95C02652AD18860E48787C079E8E85A
              - aid: A000000333
                index: '09'
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  EB374DFC5A96B71D2863875EDA2EAFB96B1B439D3ECE0B1826A2672EEEFA7990286776F8BD989A15141A75C384DFC14FEF9243AAB32707659BE9E4797A247C2F0B6D99372F384AF62FE23BC54BCDC57A9ACD1D5585C303F201EF4E8B806AFB809DB1A3DB1CD112AC884F164A67B99C7D6E5A8A6DF1D3CAE6D7ED3D5BE725B2DE4ADE23FA679BF4EB15A93D8A6E29C7FFA1A70DE2E54F593D908A3BF9EBBD760BBFDC8DB8B54497E6C5BE0E4A4DAC29E5
                exponent: '03'
                checksum: A075306EAB0045BAF72CDD33B3B678779DE1F527
              - aid: A000000333
                index: 0A
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B2AB1B6E9AC55A75ADFD5BBC34490E53C4C3381F34E60E7FAC21CC2B26DD34462B64A6FAE2495ED1DD383B8138BEA100FF9B7A111817E7B9869A9742B19E5C9DAC56F8B8827F11B05A08ECCF9E8D5E85B0F7CFA644EFF3E9B796688F38E006DEB21E101C01028903A06023AC5AAB8635F8E307A53AC742BDCE6A283F585F48EF
                exponent: '03'
                checksum: C88BE6B2417C4F941C9371EA35A377158767E4E3
              - aid: A000000333
                index: 0B
                expDate: '12312031'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  CF9FDF46B356378E9AF311B0F981B21A1F22F250FB11F55C958709E3C7241918293483289EAE688A094C02C344E2999F315A72841F489E24B1BA0056CFAB3B479D0E826452375DCDBB67E97EC2AA66F4601D774FEAEF775ACCC621BFEB65FB0053FC5F392AA5E1D4C41A4DE9FFDFDF1327C4BB874F1F63A599EE3902FE95E729FD78D4234DC7E6CF1ABABAA3F6DB29B7F05D1D901D2E76A606A8CBFFFFECBD918FA2D278BDB43B0434F5D45134BE1C2781D157D501FF43E5F1C470967CD57CE53B64D82974C8275937C5D8502A1252A8A5D6088A259B694F98648D9AF2CB0EFD9D943C69F896D49FA39702162ACB5AF29B90BADE005BC157
                exponent: '03'
                checksum: BD331F9996A490B33C13441066A09AD3FEB5F66C
              - aid: A000000768
                index: E1
                expDate: '12312027'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  AD767119B139295B9EF760B9A94811580E933A03E76C0A7022F1021278EB6FBBEF36599D5A95C2CB603364E1DA12DF88B76D19F225F14D2A689C580DC2B54457C8BEA50086A4BE897D3353AA003CAFAB5AE3993BE6D379D488689028EC852DFED90EA6FDD73ACF6583934E64601A0EE45AF652B52CC58A9EFFA5D846DD79EFC9A8638275EC264B3C40AA3C8F3DDF1F9D378598362DF48417BF039A04D70B4FFA14A2F6218299428C625EF949F08740ED36FE9265BB8E2CA94604EFC0AEB654F9FC455F22B1EC46871E46638CE190D3691313E41C7F9C8AD4AE3D1B574D4336AD6A2BA551F2DB3A8D44F375CB67D94AFBDFD34DEA92066149
                exponent: '03'
                checksum: AE03037B9B042B0F9690500DEE287CD706FF73C8
              - aid: A000000768
                index: EE
                expDate: '12312027'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  A8D150CEE34B16D294B46B99BD6B3284303BD1FFD316C210E876666AD991DFE68DC1BD0835A5E03F753DB0DCE112A928C0C604F5DF256E265E05B59B4DAA15E74B0E5E27E56F8D97C1233D416162DDEC7EFE731D30BBA16683557E4D8FA15269F51D40468D1B2C31CCD314804FC97341F68A1BB78F4985B99F0901557B52196950CF6A12D6FD4356002197B17A8035606DAAC2BFCDB3CD86B9FCDBC64908BFB039C268772D73E44C3867AFC002C12CB5
                exponent: '03'
                checksum: 6DFE06AB7FAD2D98EA18B7849D11DF704D08EFAE
              - aid: A000000780
                index: A4
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  D22EF8F41F0685E371B53625692A7EB13B3E9462DD985E044A5915108D2DFCC0A4171C0C0DE4E6D9BD525CAC461A169DAC5101B975D105DEA2AA34B80D9131F47A278DA609B32B1379F98FB960328DE1E27E1EDAFD2DC8A3643AFEB605582C5F953E0DE029643DE058DA6813137EB9450C5C1AD36823BF4C548A5599F6C025274081F6BBF916D79CC00AB77C3AD8E35282FFC9A24CF5F31B0E5585618A75929FBAD4416EC853A76380C84DB3B208389EC2675C9CDEA4AC106EE6AEB242761EEFED6D744E3439588EB17B2CDD956658F59FBB2186B23B396B48E84A7702B91238059FB314CAFCF59B3F09787CCA396ABA35A144C0435DC99D
                exponent: '03'
                checksum: 8438208C174CC1C3FB7793585BF1DE288349B31C
            server:
              name: TM01CE
    GetEMVCAPKProd:
      summary: Production Keys
      value:
        result:
          - capkVersion: 1
            capks:
              - aid: A000000003
                index: '08'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  D9FD6ED75D51D0E30664BD157023EAA1FFA871E4DA65672B863D255E81E137A51DE4F72BCC9E44ACE12127F87E263D3AF9DD9CF35CA4A7B01E907000BA85D24954C2FCA3074825DDD4C0C8F186CB020F683E02F2DEAD3969133F06F7845166ACEB57CA0FC2603445469811D293BFEFBAFAB57631B3DD91E796BF850A25012F1AE38F05AA5C4D6D03B1DC2E568612785938BBC9B3CD3A910C1DA55A5A9218ACE0F7A21287752682F15832A678D6E1ED0B
                exponent: '03'
                checksum: 20D213126955DE205ADC2FD2822BD22DE21CF9A8
              - aid: A000000003
                index: '09'
                expDate: '12312027'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  9D912248DE0A4E39C1A7DDE3F6D2588992C1A4095AFBD1824D1BA74847F2BC4926D2EFD904B4B54954CD189A54C5D1179654F8F9B0D2AB5F0357EB642FEDA95D3912C6576945FAB897E7062CAA44A4AA06B8FE6E3DBA18AF6AE3738E30429EE9BE03427C9D64F695FA8CAB4BFE376853EA34AD1D76BFCAD15908C077FFE6DC5521ECEF5D278A96E26F57359FFAEDA19434B937F1AD999DC5C41EB11935B44C18100E857F431A4A5A6BB65114F174C2D7B59FDF237D6BB1DD0916E644D709DED56481477C75D95CDD68254615F7740EC07F330AC5D67BCD75BF23D28A140826C026DBDE971A37CD3EF9B8DF644AC385010501EFC6509D7A41
                exponent: '03'
                checksum: 1FF80A40173F52D7D27E0F26A146A1C8CCB29046
              - aid: A000000004
                index: '05'
                expDate: '12312024'
                algorithm: '01'
                key: >-
                  B8048ABC30C90D976336543E3FD7091C8FE4800DF820ED55E7E94813ED00555B573FECA3D84AF6131A651D66CFF4284FB13B635EDD0EE40176D8BF04B7FD1C7BACF9AC7327DFAA8AA72D10DB3B8E70B2DDD811CB4196525EA386ACC33C0D9D4575916469C4E4F53E8E1C912CC618CB22DDE7C3568E90022E6BBA770202E4522A2DD623D180E215BD1D1507FE3DC90CA310D27B3EFCCD8F83DE3052CAD1E48938C68D095AAC91B5F37E28BB49EC7ED597
                hashAlgorithm: '01'
                exponent: '03'
                checksum: EBFA0D5D06D8CE702DA3EAE890701D45E274C845
              - aid: A000000004
                index: '06'
                expDate: '12312029'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  CB26FC830B43785B2BCE37C81ED334622F9622F4C89AAE641046B2353433883F307FB7C974162DA72F7A4EC75D9D657336865B8D3023D3D645667625C9A07A6B7A137CF0C64198AE38FC238006FB2603F41F4F3BB9DA1347270F2F5D8C606E420958C5F7D50A71DE30142F70DE468889B5E3A08695B938A50FC980393A9CBCE44AD2D64F630BB33AD3F5F5FD495D31F37818C1D94071342E07F1BEC2194F6035BA5DED3936500EB82DFDA6E8AFB655B1EF3D0D7EBF86B66DD9F29F6B1D324FE8B26CE38AB2013DD13F611E7A594D675C4432350EA244CC34F3873CBA06592987A1D7E852ADC22EF5A2EE28132031E48F74037E3B34AB747F
                exponent: '03'
                checksum: F910A1504D5FFB793D94F3B500765E1ABCAD72D9
              - aid: A000000277
                index: '06'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  DB43A71FF30392069A9600143DCB628A4DABDFE69E31CB6151D9A2EB18A53ABA1EF75518CD3EDA29B96D55B002870A649AAFC65CE472BD01352C2D2E77D4EE352B3A64BC2CC170E29D426D7B3317BD3C4FC32EA2151CA0F1071A2ACFECD70468D3EBC7A44440DD63EC9499F302348BB6235F964BF3CAA30B29939B9901C42B5540BF4F837DD898F5392076F9B95F0EBCB6846374FFE71895A422775D95CABA9C25510627D4F7B57A3DBD755608EDD843
                exponent: '010001'
                checksum: D18AB9F1518FBC0F6EB0EEFB00C5D07CAE8A2197
              - aid: A000000277
                index: '08'
                expDate: '12312025'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  AB1B0667B2A68883477B2ED48F3068CB0F57ABBEC93E0AF40180BACD895120E36E2710784599CDE9035550D96BD6C5CEA55C4E8C88A5D0A81CE1309559BCE91930C7AA3E3D0A2D79A6036BE03C4000658A78ECA742034BE5FB0E08D530C7FF9458211E78E33E3803F8DFF24A4117EE0EDFE7A98CB3AE2ECCB2A3C3A75C32512EDD1183CF218BE1642FA78430A18A495E6FEFA7B98860C6FCEBFD27537D34F4E55B9CBDEB19DF029BDF00993E1A2E0B9E89E1B49777FCB7C1610CDA94A488C9177908B75C48DFE3F8BBD52886233B44B1A58373D5AFD0F309ABB939C39DF95D923F76B7300E83D182C2922EBB9FD018867A0E6D179EFF8C87
                exponent: '010001'
                checksum: 46EAD2ED0B8645D4DCB2AE4B1D285A0632B452D4
              - aid: A000000025
                index: 0F
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  C8D5AC27A5E1FB89978C7C6479AF993AB3800EB243996FBB2AE26B67B23AC482C4B746005A51AFA7D2D83E894F591A2357B30F85B85627FF15DA12290F70F05766552BA11AD34B7109FA49DE29DCB0109670875A17EA95549E92347B948AA1F045756DE56B707E3863E59A6CBE99C1272EF65FB66CBB4CFF070F36029DD76218B21242645B51CA752AF37E70BE1A84FF31079DC0048E928883EC4FADD497A719385C2BBBEBC5A66AA5E5655D18034EC5
                exponent: '03'
                checksum: A73472B3AB557493A9BC2179CC8014053B12BAB4
              - aid: A000000025
                index: '10'
                expDate: '12312029'
                algorithm: '10'
                hashAlgorithm: '01'
                key: >-
                  CF98DFEDB3D3727965EE7797723355E0751C81D2D3DF4D18EBAB9FB9D49F38C8C4A826B99DC9DEA3F01043D4BF22AC3550E2962A59639B1332156422F788B9C16D40135EFD1BA94147750575E636B6EBC618734C91C1D1BF3EDC2A46A43901668E0FFC136774080E888044F6A1E65DC9AAA8928DACBEB0DB55EA3514686C6A732CEF55EE27CF877F110652694A0E3484C855D882AE191674E25C296205BBB599455176FDD7BBC549F27BA5FE35336F7E29E68D783973199436633C67EE5A680F05160ED12D1665EC83D1997F10FD05BBDBF9433E8F797AEE3E9F02A34228ACE927ABE62B8B9281AD08D3DF5C7379685045D7BA5FCDE58637
                exponent: '03'
                checksum: C729CF2FD262394ABC4CC173506502446AA9B9FD
              - aid: A000000152
                index: '04'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  8EEEC0D6D3857FD558285E49B623B109E6774E06E9476FE1B2FB273685B5A235E955810ADDB5CDCC2CB6E1A97A07089D7FDE0A548BDC622145CA2DE3C73D6B14F284B3DC1FA056FC0FB2818BCD7C852F0C97963169F01483CE1A63F0BF899D412AB67C5BBDC8B4F6FB9ABB57E95125363DBD8F5EBAA9B74ADB93202050341833DEE8E38D28BD175C83A6EA720C262682BEABEA8E955FE67BD9C2EFF7CB9A9F45DD5BDA4A1EEFB148BC44FFF68D9329FD
                exponent: '03'
                checksum: 17F971CAF6B708E5B9165331FBA91593D0C0BF66
              - aid: A000000152
                index: '05'
                expDate: '12312026'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  E1200E9F4428EB71A526D6BB44C957F18F27B20BACE978061CCEF23532DBEBFAF654A149701C14E6A2A7C2ECAC4C92135BE3E9258331DDB0967C3D1D375B996F25B77811CCCC06A153B4CE6990A51A0258EA8437EDBEB701CB1F335993E3F48458BC1194BAD29BF683D5F3ECB984E31B7B9D2F6D947B39DEDE0279EE45B47F2F3D4EEEF93F9261F8F5A571AFBFB569C150370A78F6683D687CB677777B2E7ABEFCFC8F5F93501736997E8310EE0FD87AFAC5DA772BA277F88B44459FCA563555017CD0D66771437F8B6608AA1A665F88D846403E4C41AFEEDB9729C2B2511CFE228B50C1B152B2A60BBF61D8913E086210023A3AA499E423
                exponent: '03'
                checksum: 12BCD407B6E627A750FDF629EE8C2C9CC7BA636A
              - aid: A000000065
                index: '12'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  ADF05CD4C5B490B087C3467B0F3043750438848461288BFEFD6198DD576DC3AD7A7CFA07DBA128C247A8EAB30DC3A30B02FCD7F1C8167965463626FEFF8AB1AA61A4B9AEF09EE12B009842A1ABA01ADB4A2B170668781EC92B60F605FD12B2B2A6F1FE734BE510F60DC5D189E401451B62B4E06851EC20EBFF4522AACC2E9CDC89BC5D8CDE5D633CFD77220FF6BBD4A9B441473CC3C6FEFC8D13E57C3DE97E1269FA19F655215B23563ED1D1860D8681
                exponent: '03'
                checksum: 874B379B7F607DC1CAF87A19E400B6A9E25163E8
              - aid: A000000065
                index: '14'
                expDate: '12312026'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  AEED55B9EE00E1ECEB045F61D2DA9A66AB637B43FB5CDBDB22A2FBB25BE061E937E38244EE5132F530144A3F268907D8FD648863F5A96FED7E42089E93457ADC0E1BC89C58A0DB72675FBC47FEE9FF33C16ADE6D341936B06B6A6F5EF6F66A4EDD981DF75DA8399C3053F430ECA342437C23AF423A211AC9F58EAF09B0F837DE9D86C7109DB1646561AA5AF0289AF5514AC64BC2D9D36A179BB8A7971E2BFA03A9E4B847FD3D63524D43A0E8003547B94A8A75E519DF3177D0A60BC0B4BAB1EA59A2CBB4D2D62354E926E9C7D3BE4181E81BA60F8285A896D17DA8C3242481B6C405769A39D547C74ED9FF95A70A796046B5EFF36682DC29
                exponent: '03'
                checksum: C0D15F6CD957E491DB56DCDD1CA87A03EBE06B7B
              - aid: A000000333
                index: '03'
                expDate: '12312024'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  B0627DEE87864F9C18C13B9A1F025448BF13C58380C91F4CEBA9F9BCB214FF8414E9B59D6ABA10F941C7331768F47B2127907D857FA39AAF8CE02045DD01619D689EE731C551159BE7EB2D51A372FF56B556E5CB2FDE36E23073A44CA215D6C26CA68847B388E39520E0026E62294B557D6470440CA0AEFC9438C923AEC9B2098D6D3A1AF5E8B1DE36F4B53040109D89B77CAFAF70C26C601ABDF59EEC0FDC8A99089140CD2E817E335175B03B7AA33D
                exponent: '03'
                checksum: 87F0CD7C0E86F38F89A66F8C47071A8B88586F26
              - aid: A000000333
                index: '04'
                expDate: '12312032'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  BC853E6B5365E89E7EE9317C94B02D0ABB0DBD91C05A224A2554AA29ED9FCB9D86EB9CCBB322A57811F86188AAC7351C72BD9EF196C5A01ACEF7A4EB0D2AD63D9E6AC2E7836547CB1595C68BCBAFD0F6728760F3A7CA7B97301B7E0220184EFC4F653008D93CE098C0D93B45201096D1ADFF4CF1F9FC02AF759DA27CD6DFD6D789B099F16F378B6100334E63F3D35F3251A5EC78693731F5233519CDB380F5AB8C0F02728E91D469ABD0EAE0D93B1CC66CE127B29C7D77441A49D09FCA5D6D9762FC74C31BB506C8BAE3C79AD6C2578775B95956B5370D1D0519E37906B384736233251E8F09AD79DFBE2C6ABFADAC8E4D8624318C27DAF1
                exponent: '03'
                checksum: F527081CF371DD7E1FD4FA414A665036E0F5E6E5
              - aid: A000000780
                index: '05'
                expDate: '12312030'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  95E3D868E014B01210491A6EA00C097D4261AED776930E6D4FCA31C7477E29AEC5B77F7D2F0B6E61B34C876806A71A8FF1EC3E897943BE5524E7A0F7BD23840FF3B1D25C078BC32FE38E57307B413A255E268B795B45CB5B430BEAD8ABFB835F3248AFA34F85DD028DBC77D1EABFA79A2D891806A0B0BC5D25D213188E3E18DB25F45B7942320D1F55D637299334744D5633D954C70E1BAA73C2562F3C142DF9545CE4841653B80D6DD1D88C2F652ABED57551BDCA98C16D77A4139D2F84E5E3633A00DEFB3E865825DB326E6B68DC04B6AE1FAEABB6C867C30E172C94E33FC220C7C7C4342A4356DABE0A5CAB61606B649B5F33B75E35CD
                exponent: '03'
                checksum: 30AB6C5690B74D7117355AFBA07749B5142B57F2
              - aid: A000000768
                index: F2
                expDate: '12312027'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  9318623777A684FA329C2DC24AA398678DE27CB2C547C6DB6542125409528823D75F42455789C2F7705D8B77EEA7674F923E3D657C0AB8ADF4941ED3AB2877058D30BE31572BF3D570652ED9F3C9E320BA8D96FF000047FEA4582E6BA368D8FF16BE90843657CB7467D4980C9B2ED67333BFBDAE60CAB42D420A34D648816406112186EA397E7155F5EE3858D8CCACA9D11E9D85BC5373FF4B074D3BAC5C3220003B7096614EB1D7FB9216D22D6B7B7695ADDC109A51D0CACFF438A0763F001711B687BAFCD26671FCA21EDD042B1201FCB01D5807C4E94D23CB3D56E3AD16F1F03DB61381FC7F152A391D8A62BCB9D339E12A23A76F9213
                exponent: '03'
                checksum: D8E9DA9B8461A43F469BBD08CD3A52B0B3AA775F
              - aid: A000000768
                index: FF
                expDate: '12312027'
                algorithm: '01'
                hashAlgorithm: '01'
                key: >-
                  86EFCDB87055ED668CF037EC4177B05B102C01EBAF0318CA2362698012ECED53CF176A06DE4F8A113CA091E7E9BDA6A715E3D89926895DFC320574D02EFFBFF1B81F158B9896651EFF8CBC548C51E7BD68338F5A11171C4540E194A91D9D36A6C4132D3799DF911F32132A0B5CCC632200EFBE5752DCCF930F2B7AB76B81588894604215B193CBF160C5BAA32C89F450D15CF0E6B866D3AA249960B69B18B9B2575D741BB2089102A96E6A42067EF6BB
                exponent: '03'
                checksum: E7ABF106A6704AE58CBA4ACA509FD9EC33A147D5
            server:
              name: TM01CE
  responses:
    TimeoutResponse:
      description: Timeout
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                    lighthouse:
                      type: object
                      properties:
                        data:
                          $ref: '#/components/schemas/LighthouseDataResponse'
                    server:
                      $ref: '#/components/schemas/Server'
          example:
            result:
              - error:
                  primaryCode: 9951
                  secondaryCode: 0
                  shortText: RESPONSE TIMEOUT
                  longText: Timeout waiting for response across the internet
                lighthouse:
                  data: >-
                    eyJwYXltZW50SWQiOiI4NWM0MWNhNy01NzVjLTQzNGUtODIyZi0xYzZlOTE0ZDAzODYiLCJyZW1haW5pbmdBbW91bnQiOjB9
                server:
                  name: U2API01CE
    ErrorResponse:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                    lighthouse:
                      $ref: '#/components/schemas/LighthouseResponse'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - error:
                    primaryCode: 9842
                    secondaryCode: 0
                    shortText: NOT IN CARDRANGE
                    longText: Card type not recognized
                  lighthouse:
                    data: >-
                      eyJwYXltZW50SWQiOiI4NWM0MWNhNy01NzVjLTQzNGUtODIyZi0xYzZlOTE0ZDAzODYiLCJyZW1haW5pbmdBbW91bnQiOjB9
                  server:
                    name: U2API01CE
    CardTokenErrorResponse:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                    server:
                      $ref: '#/components/schemas/Server'
          example:
            result:
              - error:
                  primaryCode: 9846
                  secondaryCode: 0
                  shortText: BAD UNIQUE ID
                  longText: >-
                    Unique Identifier(8048471746471119) not found for Merchant
                    0000057984 ENGINE01CE
                server:
                  name: U2API01CE
    TerminalIDErrorResponse:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                    server:
                      $ref: '#/components/schemas/Server'
          example:
            result:
              - error:
                  primaryCode: 9956
                  secondaryCode: 0
                  shortText: TID NO PINPAD
                  longText: Terminal(100) is not configured for any PinPad DEFAULT
                server:
                  name: U2API01CE
    ErrorResponse3DSecure:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/Error'
                    server:
                      $ref: '#/components/schemas/Server'
                    transaction:
                      type: object
                      properties:
                        invoice:
                          $ref: '#/components/schemas/TransactionInvoice'
                        hostResponse:
                          type: object
                          description: |
                            Returns the response code from the host
                          properties:
                            reasonCode:
                              $ref: >-
                                #/components/schemas/HostResponseReasonCode3DSecure
                            reasonDescription:
                              $ref: >-
                                #/components/schemas/HostResponseReasonDescription3DSecure
            example:
              result:
                - dateTime: '2022-05-04T09:20:04.487-07:00'
                  error:
                    primaryCode: 9842
                    secondaryCode: 0
                    shortText: NOT IN CARDRANGE
                    longText: Card type not recognized
                  server:
                    name: U2API01CE
                  transaction:
                    invoice: '730518'
    ErrorResponseOCT:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - dateTime: '2023-01-06T09:18:23.283-07:00'
                  error:
                    code: 40102
                    severity: Info
                    shortText: Invalid Param
                    longText: Client request missing field
                  server:
                    name: TM01CE
    TimeoutResponseOCT:
      description: Timeout
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - dateTime: '2023-01-06T09:18:23.283-07:00'
                  error:
                    code: 64002
                    severity: Error
                    shortText: Timed Out
                    longText: Connection Timeout
                  server:
                    name: TM01CE
    ErrorResponseACH:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  error:
                    code: 40102
                    severity: Info
                    shortText: Invalid Param
                    longText: Client request missing field
                  server:
                    name: TM01CE
    TimeoutResponseACH:
      description: Timeout
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  error:
                    code: 64002
                    severity: Error
                    shortText: Timed Out
                    longText: Connection Timeout
                  server:
                    name: TM01CE
    ErrorResponseUpdater:
      description: Error
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - error:
                    code: 40103
                    severity: Info
                    shortText: Invalid Param
                    longText: Client request missing field
                  server:
                    name: TM01CE
    TimeoutResponseUpdater:
      description: Timeout
      content:
        application/json:
          schema:
            properties:
              result:
                type: array
                items:
                  type: object
                  properties:
                    dateTime:
                      $ref: '#/components/schemas/DateTime'
                    error:
                      $ref: '#/components/schemas/ErrorNoPrimarySecondary'
                    server:
                      $ref: '#/components/schemas/Server'
            example:
              result:
                - dateTime: '2024-01-17T13:35:25.049-07:00'
                  error:
                    code: 64002
                    severity: Error
                    shortText: Timed Out
                    longText: Connection Timeout
                  server:
                    name: TM01CE
    ErrorResponseMagicCube:
      description: Error
      content:
        application/json:
          schema:
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              error:
                $ref: '#/components/schemas/ErrorNoPrimarySecondary'
              server:
                $ref: '#/components/schemas/Server'
            example:
              dateTime: '2023-02-08T09:18:23.283-07:00'
              error:
                code: 40102
                severity: Info
                shortText: Invalid Param
                longText: Client request missing field
              server:
                name: TM01CE
    TimeoutResponseMagicCube:
      description: Timeout
      content:
        application/json:
          schema:
            properties:
              dateTime:
                $ref: '#/components/schemas/DateTime'
              error:
                $ref: '#/components/schemas/ErrorNoPrimarySecondary'
              server:
                $ref: '#/components/schemas/Server'
            example:
              dateTime: '2023-02-08T09:18:23.283-07:00'
              error:
                code: 64002
                severity: Error
                shortText: Timed Out
                longText: Connection Timeout
              server:
                name: TM01CE
paths:
  /credentials/accesstoken:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Credentials
      summary: Access Token Exchange
      operationId: accesstokenexchange
      security:
        - {}
      description: >
        This function is used to request exchanging a Client GUID and Auth Token
        for an Access Token.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - credential
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                credential:
                  $ref: '#/components/schemas/Credential'
      responses:
        '200':
          description: AccessToken request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        credential:
                          type: object
                          properties:
                            accessToken:
                              $ref: '#/components/schemas/CredentialAccessToken'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/AuthTokenNotValidError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/authorization:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Transactions
      summary: Authorization
      operationId: transactionsauthorization
      security:
        - AccessToken: []
      description: >
        Used to request processor approval for an authorization. If the invoice
        number already exists, the amount requested will be compared to the
        approved amount on file, and Shift4 will request approval for the
        additional amount only. If approved, an updated transaction will be
        displayed in [Lighthouse Transaction
        Manager](https://ltm.shift4test.com/).  This step does NOT close and
        capture the funds, only authorizes the payment request.


        *Please note that if you are tokenzing your credit card information
        outside of Shift4, authorizing and capturing a payment is not available
        unless you store the tokenized value from Shift4 from an authorized
        payment request and  use this token in the subsequent capture request.*


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/transactions_authorization_comengdevice'
                - $ref: '#/components/schemas/transactions_authorization_comengcloud'
                - $ref: '#/components/schemas/transactions_authorization_utgdevice'
                - $ref: '#/components/schemas/transactions_authorization_token_gtv'
                - $ref: '#/components/schemas/transactions_authorization_token_legacy'
                - $ref: '#/components/schemas/transactions_authorization_p2pe_idtech'
                - $ref: >-
                    #/components/schemas/transactions_authorization_p2pe_tdesdukpt_emv
                - $ref: >-
                    #/components/schemas/transactions_authorization_p2pe_tdesdukpt_msr
                - $ref: >-
                    #/components/schemas/transactions_authorization_p2pe_onguardsde_emv
                - $ref: >-
                    #/components/schemas/transactions_authorization_p2pe_onguardsde_msr
                - $ref: >-
                    #/components/schemas/transactions_authorization_unencryptedcard
                - $ref: '#/components/schemas/transactions_authorization_3dsecurei4Go'
                - $ref: >-
                    #/components/schemas/transactions_authorization_3dsecurecardnumber
                - $ref: >-
                    #/components/schemas/transactions_authorization_3dsecuretoken_gtv
                - $ref: >-
                    #/components/schemas/transactions_authorization_3dsecuretoken_legacy
                - $ref: '#/components/schemas/transactions_authorization_applepay'
                - $ref: '#/components/schemas/transactions_authorization_googlepay'
                - $ref: '#/components/schemas/transactions_authorization_incremental'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          type: object
                          properties:
                            entryMode:
                              $ref: '#/components/schemas/CardEntryMode'
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            levelResult:
                              $ref: '#/components/schemas/CardLevelResult'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            present:
                              $ref: '#/components/schemas/CardPresent'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            balance:
                              $ref: '#/components/schemas/CardBalance'
                            securityCode:
                              $ref: '#/components/schemas/CardSecurityCodeResponse'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                            debitType:
                              $ref: '#/components/schemas/CardDebitType'
                            bin:
                              $ref: '#/components/schemas/CardBinResponseRETURNBIN'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        dcc:
                          $ref: '#/components/schemas/DCCTransactionResponse'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        emv:
                          $ref: '#/components/schemas/EMVResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        surcharge:
                          $ref: '#/components/schemas/SurchargeTransactionResponse'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponse'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            retrievalReference:
                              $ref: >-
                                #/components/schemas/TransactionRetrievalReference
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            avs:
                              $ref: '#/components/schemas/AVS'
                            cardOnFile:
                              $ref: '#/components/schemas/CardOnFile'
                            deferredAuth:
                              $ref: '#/components/schemas/TransactionDeferredAuth'
                        risk:
                          $ref: '#/components/schemas/RiskResponseDeny'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        cardBrandToken:
                          $ref: '#/components/schemas/CardBrandToken'
                        payment:
                          type: object
                          properties:
                            accountReference:
                              $ref: '#/components/schemas/PaymentAccountReference'
              examples:
                P2PEEMV:
                  $ref: '#/components/examples/transactionsauthorization_resp_p2peemv'
                P2PE:
                  $ref: '#/components/examples/transactionsauthorization_resp_p2pe'
                Token:
                  $ref: '#/components/examples/transactionsauthorization_resp_token'
                Device:
                  $ref: >-
                    #/components/examples/transactionsauthorization_resp_utgdevice
                Track:
                  $ref: '#/components/examples/transactionsauthorization_resp_track'
                Unenc:
                  $ref: '#/components/examples/transactionsauthorization_resp_raw'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/capture:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Transactions
      summary: Capture
      operationId: transactionscapture
      security:
        - AccessToken: []
      description: >
        Used to close out an existing authorization request. If the invoice
        number  already exists, the amount requested will be compared to the
        approved amount  on file, and Shift4 will request approval for the
        additional amount only. If approved, the authorization will be converted
        to a sale transaction  and be ready to be batched.


        For Restaurant industry, review [Restaurant Authorization and Settlement
        Flow](/guides/core-concepts/restaurant-authorization-and-settlement-flow)


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        Please note that if you are tokenzing your credit card information
        outside of  Shift4, authorizing and capturing a payment is not available
        unless you store  the tokenized value from Shift4 from an authorized
        payment request and use this  token in the subsequent capture request.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/transactions_capture_token_gtv'
                - $ref: '#/components/schemas/transactions_capture_token_legacy'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          type: object
                          properties:
                            entryMode:
                              $ref: '#/components/schemas/CardEntryMode'
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            levelResult:
                              $ref: '#/components/schemas/CardLevelResult'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            present:
                              $ref: '#/components/schemas/CardPresent'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            balance:
                              $ref: '#/components/schemas/CardBalance'
                            token:
                              $ref: '#/components/schemas/CardToken'
                            bin:
                              $ref: '#/components/schemas/CardBinResponseRETURNBIN'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        dcc:
                          $ref: '#/components/schemas/DCCTransactionResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponse'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            retrievalReference:
                              $ref: >-
                                #/components/schemas/TransactionRetrievalReference
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            cardOnFile:
                              $ref: '#/components/schemas/CardOnFile'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        payment:
                          type: object
                          properties:
                            accountReference:
                              $ref: '#/components/schemas/PaymentAccountReference'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/sale:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Transactions
      summary: Sale/Purchase
      operationId: transactionssale
      security:
        - AccessToken: []
      description: >
        Used to request processor approval for an authorization and capture in
        one request. If the invoice number already exists, the amount requested
        will be compared to the approved amount on file, and Shift4 will request
        approval for the additional amount only. If approved, a new sale
        transaction  will be displayed in Lighthouse Transaction Manager and be
        ready to be batched.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/transactions_sale_comengdevice'
                - $ref: '#/components/schemas/transactions_sale_comengcloud'
                - $ref: '#/components/schemas/transactions_sale_utgdevice'
                - $ref: '#/components/schemas/transactions_sale_token_gtv'
                - $ref: '#/components/schemas/transactions_sale_token_legacy'
                - $ref: '#/components/schemas/transactions_sale_p2pe_idtech'
                - $ref: '#/components/schemas/transactions_sale_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/transactions_sale_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/transactions_sale_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/transactions_sale_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/transactions_sale_unencryptedcard'
                - $ref: '#/components/schemas/transactions_sale_3dsecurei4Go'
                - $ref: '#/components/schemas/transactions_sale_3dsecurecardnumber'
                - $ref: '#/components/schemas/transactions_sale_3dsecuretoken_gtv'
                - $ref: '#/components/schemas/transactions_sale_3dsecuretoken_legacy'
                - $ref: '#/components/schemas/transactions_sale_applepay'
                - $ref: '#/components/schemas/transactions_sale_googlepay'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          type: object
                          properties:
                            entryMode:
                              $ref: '#/components/schemas/CardEntryMode'
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            levelResult:
                              $ref: '#/components/schemas/CardLevelResult'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            present:
                              $ref: '#/components/schemas/CardPresent'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            balance:
                              $ref: '#/components/schemas/CardBalance'
                            securityCode:
                              $ref: '#/components/schemas/CardSecurityCodeResponse'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                            debitType:
                              $ref: '#/components/schemas/CardDebitType'
                            bin:
                              $ref: '#/components/schemas/CardBinResponseRETURNBIN'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        dcc:
                          $ref: '#/components/schemas/DCCTransactionResponse'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        emv:
                          $ref: '#/components/schemas/EMVResponse'
                        lighthouse:
                          type: object
                          properties:
                            data:
                              $ref: '#/components/schemas/LighthouseDataResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        surcharge:
                          $ref: '#/components/schemas/SurchargeTransactionResponse'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponse'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            retrievalReference:
                              $ref: >-
                                #/components/schemas/TransactionRetrievalReference
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            avs:
                              $ref: '#/components/schemas/AVS'
                            cardOnFile:
                              $ref: '#/components/schemas/CardOnFile'
                            deferredAuth:
                              $ref: '#/components/schemas/TransactionDeferredAuth'
                        risk:
                          $ref: '#/components/schemas/RiskResponseDeny'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        cardBrandToken:
                          $ref: '#/components/schemas/CardBrandToken'
                        taxFree:
                          $ref: '#/components/schemas/TaxFree'
                        payment:
                          type: object
                          properties:
                            accountReference:
                              $ref: '#/components/schemas/PaymentAccountReference'
              examples:
                P2PEEMV:
                  $ref: '#/components/examples/transactionssale_resp_p2peemv'
                P2PE:
                  $ref: '#/components/examples/transactionssale_resp_p2pe'
                Token:
                  $ref: '#/components/examples/transactionssale_resp_token'
                Device:
                  $ref: '#/components/examples/transactionssale_resp_utgdevice'
                Track:
                  $ref: '#/components/examples/transactionssale_resp_track'
                Unenc:
                  $ref: '#/components/examples/transactionssale_resp_raw'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/refund:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Transactions
      summary: Refund
      operationId: refund
      security:
        - AccessToken: []
      description: >
        This function can be used to refund a transaction for either the full or
        a partial amount.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/transactions_refund_comengdevice'
                - $ref: '#/components/schemas/transactions_refund_comengcloud'
                - $ref: '#/components/schemas/transactions_refund_utgdevice'
                - $ref: '#/components/schemas/transactions_refund_token_gtv'
                - $ref: '#/components/schemas/transactions_refund_token_legacy'
                - $ref: '#/components/schemas/transactions_refund_p2pe_idtech'
                - $ref: '#/components/schemas/transactions_refund_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/transactions_refund_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/transactions_refund_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/transactions_refund_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/transactions_refund_unencryptedcard'
      responses:
        '200':
          description: Refund was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          required:
                            - total
                          properties:
                            total:
                              type: number
                              maxLength: 14
                              example: 51.32
                              description: The amount of the refund.
                        card:
                          type: object
                          properties:
                            entryMode:
                              $ref: '#/components/schemas/CardEntryMode'
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            levelResult:
                              $ref: '#/components/schemas/CardLevelResult'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            present:
                              $ref: '#/components/schemas/CardPresent'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            balance:
                              $ref: '#/components/schemas/CardBalance'
                            token:
                              $ref: '#/components/schemas/CardToken'
                            debitType:
                              $ref: '#/components/schemas/CardDebitType'
                            bin:
                              $ref: '#/components/schemas/CardBinResponseRETURNBIN'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          type: object
                          $ref: '#/components/schemas/ClerkResponse'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        emv:
                          $ref: '#/components/schemas/EMVResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponse'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            retrievalReference:
                              $ref: >-
                                #/components/schemas/TransactionRetrievalReference
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            deferredAuth:
                              $ref: '#/components/schemas/TransactionDeferredAuth'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        payment:
                          type: object
                          properties:
                            accountReference:
                              $ref: '#/components/schemas/PaymentAccountReference'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/invoice:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    get:
      tags:
        - Transactions
      summary: Invoice Information
      operationId: getinvoice
      security:
        - AccessToken: []
      description: >
        Used to request the status (e.g., approved, declined, error, referral,
        etc.) for a specific invoice; it is primarily used after a timeout or
        error has occurred. Voided or batched and settled invoices will return
        an “Invoice Not Found” error. For more information, see the [Timeouts
        and Communication
        Failures](/guides/response-handling/timeouts-and-communications-failures)
        section.


        *Note: The GET request does not support a request body. Sending an empty
        request body may result in an error.*


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/Invoice'
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/ApiOptions'
        - $ref: '#/components/parameters/ReceiptColumns'
        - $ref: '#/components/parameters/TokenValue'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          $ref: '#/components/schemas/CardResponse'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        lighthouse:
                          type: object
                          properties:
                            data:
                              $ref: '#/components/schemas/LighthouseDataResponse'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/InvoiceError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
    delete:
      tags:
        - Transactions
      summary: Void
      operationId: void
      security:
        - AccessToken: []
      description: >
        Used to void and reverse an invoice. This will attempt to reverse the
        transaction with the processor and will mark the transaction as voided
        in Shift4's Gateway. 


        *Note: The DELETE request does not support a request body. Sending an
        empty request body may result in an error.*


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/Invoice'
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/ReceiptColumns'
        - $ref: '#/components/parameters/ReversalReason'
        - $ref: '#/components/parameters/TokenValue'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        card:
                          $ref: '#/components/schemas/CardResponseVoid'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponse'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            deferredAuth:
                              $ref: '#/components/schemas/TransactionDeferredAuth'
                        payment:
                          type: object
                          properties:
                            accountReference:
                              $ref: '#/components/schemas/PaymentAccountReference'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        lighthouse:
                          type: object
                          properties:
                            data:
                              $ref: '#/components/schemas/LighthouseDataResponse'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/InvoiceError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/manualauthorization:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Transactions
      summary: Manual Authorization
      operationId: manualauthorization
      security:
        - AccessToken: []
      description: >
        This function is used to request authorization in an offline scenario,
        which means that Shift4 will not seek processor approval. An
        authorization code should be included in this request if the amount
        being submitted in the request is greater than the authorization amount
        currently on file.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_comengdevice
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_comengcloud
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_utgdevice
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_token_gtv
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_token_legacy
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_p2pe_idtech
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_p2pe_tdesdukpt_emv
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_p2pe_tdesdukpt_msr
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_p2pe_onguardsde_emv
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_p2pe_onguardsde_msr
                - $ref: >-
                    #/components/schemas/transactions_manualauthorization_unencryptedcard
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          $ref: '#/components/schemas/CardResponse'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        emv:
                          $ref: '#/components/schemas/EMV'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            avs:
                              $ref: '#/components/schemas/AVS'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/manualsale:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Transactions
      summary: Manual Sale
      operationId: manualsale
      security:
        - AccessToken: []
      description: >
        This function is used to request authorization and a sale in an offline
        scenario, which means that Shift4 will not seek processor approval. An
        authorization code should be included in this request if the amount
        being submitted in the request is greater than the authorization amount
        currently on file.


        For Restaurant industry, review [Restaurant Authorization and Settlement
        Flow](/guides/core-concepts/restaurant-authorization-and-settlement-flow)


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/transactions_manualsale_comengdevice'
                - $ref: '#/components/schemas/transactions_manualsale_comengcloud'
                - $ref: '#/components/schemas/transactions_manualsale_utgdevice'
                - $ref: '#/components/schemas/transactions_manualsale_token_gtv'
                - $ref: '#/components/schemas/transactions_manualsale_token_legacy'
                - $ref: '#/components/schemas/transactions_manualsale_p2pe_idtech'
                - $ref: >-
                    #/components/schemas/transactions_manualsale_p2pe_tdesdukpt_emv
                - $ref: >-
                    #/components/schemas/transactions_manualsale_p2pe_tdesdukpt_msr
                - $ref: >-
                    #/components/schemas/transactions_manualsale_p2pe_onguardsde_emv
                - $ref: >-
                    #/components/schemas/transactions_manualsale_p2pe_onguardsde_msr
                - $ref: '#/components/schemas/transactions_manualsale_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          $ref: '#/components/schemas/CardResponse'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        emv:
                          $ref: '#/components/schemas/EMV'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            avs:
                              $ref: '#/components/schemas/AVS'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /transactions/signature:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Transactions
      summary: Upload Signature
      operationId: transactionssignature
      security:
        - AccessToken: []
      description: >
        This function is used to upload the captured signature to an existing
        invoice in Shift4's Gateway.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - transaction
                - signature
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                apiOptions:
                  $ref: '#/components/schemas/ApiOptions'
                device:
                  type: object
                  properties:
                    manufacturer:
                      $ref: '#/components/schemas/DeviceManufacturer'
                    model:
                      $ref: '#/components/schemas/DeviceModel'
                    serialNumber:
                      $ref: '#/components/schemas/DeviceSerialNumber'
                    capability:
                      $ref: '#/components/schemas/DeviceCapability'
                merchant:
                  $ref: '#/components/schemas/MerchantResponse'
                signature:
                  type: object
                  required:
                    - format
                    - data
                  properties:
                    data:
                      $ref: '#/components/schemas/SignatureData'
                    format:
                      $ref: '#/components/schemas/SignatureFormat'
                transaction:
                  type: object
                  required:
                    - invoice
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        lighthouse:
                          type: object
                          properties:
                            data:
                              $ref: '#/components/schemas/LighthouseDataResponse'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/InvoiceError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /tokens/add:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Tokens
      summary: TokenStore Add
      operationId: tokensadd
      security:
        - AccessToken: []
      description: >
        This function requests that CHD be added to the Global Token Vault and
        that a card token be returned for future use. This function cannot be
        used for EMV processing.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/tokens_add_comengdevice'
                - $ref: '#/components/schemas/tokens_add_comengcloud'
                - $ref: '#/components/schemas/tokens_add_utgdevice'
                - $ref: '#/components/schemas/tokens_add_p2pe_idtech'
                - $ref: '#/components/schemas/tokens_add_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/tokens_add_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/tokens_add_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/tokens_add_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/tokens_add_p2pe_aes_mce'
                - $ref: '#/components/schemas/tokens_add_unencryptedcard'
                - $ref: '#/components/schemas/tokens_add_ach'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/tokens_add_response_card'
                  - $ref: '#/components/schemas/tokens_add_response_ach'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /tokens/duplicate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Tokens
      summary: TokenStore Duplicate
      operationId: tokensduplicate
      security:
        - AccessToken: []
      description: >
        This function requests that a new card token be generated using an
        existing card token. This request can be used to deposit a card token
        into a Global TokenStore or as a means to continue using a token that is
        about to expire. The card’s short-term data (if sent by the interface)
        will be stored until it is used or for the period configured in the
        merchant’s [Lighthouse Transaction Manager](https://ltm.shift4test.com/)
        account.


        **Note: This request only works for Legacy TrueToken style tokens. It
        will not work for Global Token Vault style tokens.**


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - card
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                apiOptions:
                  $ref: '#/components/schemas/ApiOptions'
                card:
                  type: object
                  required:
                    - token
                  properties:
                    token:
                      type: object
                      required:
                        - value
                      properties:
                        serialNumber:
                          $ref: '#/components/schemas/CardTokenSerialNumber'
                        value:
                          $ref: '#/components/schemas/CardTokenValue'
                customer:
                  $ref: '#/components/schemas/Customer'
                device:
                  type: object
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalId'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              card:
                token:
                  serialNumber: '266'
                  value: 1119eqetd26hfne4
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          type: object
                          properties:
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            token:
                              $ref: '#/components/schemas/CardToken'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2022-05-10T06:34:25.049-07:00'
                    card:
                      expirationDate: 1230
                      number: XXXXXXXXXXXX1119
                      type: VS
                      token:
                        value: 1119djw7fh2jwo4r
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: TM01CE
                    universalToken:
                      value: 97032276-5944-00000001-16985FD179D
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /tokens/delete:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Tokens
      summary: TokenStore Delete
      operationId: tokensdelete
      security:
        - AccessToken: []
      description: >
        This function requests that a token be deleted from the TrueToken vault.
        This process is irreversible. Once the token is deleted, there is no way
        to recover it.


        **Note: This request only works for Legacy TrueToken style tokens. It
        will not work for Global Token Vault style tokens.**


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - card
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                card:
                  type: object
                  required:
                    - token
                  properties:
                    token:
                      type: object
                      required:
                        - value
                      properties:
                        value:
                          $ref: '#/components/schemas/CardTokenValue'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              card:
                token:
                  value: 1119eqetd26hfne4
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          type: object
                          properties:
                            token:
                              $ref: '#/components/schemas/CardToken'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2022-05-10T06:34:25.049-07:00'
                    card:
                      token:
                        value: 1119eqetd26hfne4
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /tokens/universaltoken:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    get:
      tags:
        - Tokens
      summary: Universal Token
      operationId: tokensuniversaltoken
      security:
        - AccessToken: []
      description: >
        This function requests that the existing universal token for a card be
        returned.


        *Note: The GET request does not support a request body. Sending an empty
        request body may result in an error.*


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/CardNumber'
        - $ref: '#/components/parameters/P2PEData'
        - $ref: '#/components/parameters/P2PEFormat'
        - $ref: '#/components/parameters/P2PEKsn'
        - $ref: '#/components/parameters/TokenSerialNumber'
        - $ref: '#/components/parameters/TokenValue'
        - $ref: '#/components/parameters/TrackData'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /tokens/4words:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Tokens
      summary: Get Four Words
      operationId: tokens4words
      security:
        - AccessToken: []
      description: >
        This function is used to generate a unique combination of four words
        that can be used to reference cardholder data (CHD).


        **Note: This functionality is supported with Legacy TrueTokens only. It
        is not supported with GTV tokens.**


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - card
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                card:
                  type: object
                  required:
                    - token
                  properties:
                    token:
                      $ref: '#/components/schemas/CardToken'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              card:
                token:
                  value: '8048471746471119'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          $ref: '#/components/schemas/CardResponseFourWords'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /merchants/merchant:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    get:
      tags:
        - Merchants
      summary: Merchant Information
      operationId: merchantsmerchant
      security:
        - AccessToken: []
      description: >
        Used to request information about the merchant.


        *Note: The GET request does not support a request body. Sending an empty
        request body may result in an error.*


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/ApiOptionsGetMerchant'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - title: Default
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            merchant:
                              type: object
                              readOnly: true
                              properties:
                                addressLine1:
                                  $ref: '#/components/schemas/MerchantAddressLine1'
                                addressLine2:
                                  $ref: '#/components/schemas/MerchantAddressLine2'
                                city:
                                  $ref: '#/components/schemas/MerchantCity'
                                dayEndingTime:
                                  $ref: '#/components/schemas/MerchantDayEndingTime'
                                defaultCurrency:
                                  $ref: '#/components/schemas/MerchantDefaultCurrency'
                                supportedCurrencies:
                                  $ref: >-
                                    #/components/schemas/MerchantSupportedCurrencies
                                industry:
                                  $ref: '#/components/schemas/MerchantIndustry'
                                mid:
                                  $ref: '#/components/schemas/MerchantMID'
                                name:
                                  $ref: '#/components/schemas/MerchantName'
                                region:
                                  $ref: '#/components/schemas/MerchantRegion'
                                phone:
                                  $ref: '#/components/schemas/MerchantPhone'
                                postalCode:
                                  $ref: '#/components/schemas/MerchantPostalCode'
                                serialNumber:
                                  $ref: '#/components/schemas/MerchantSerialNumber'
                                cardTypes:
                                  $ref: '#/components/schemas/MerchantCardTypesArray'
                                dcc:
                                  $ref: '#/components/schemas/MerchantDCCObject'
                                gtv:
                                  $ref: '#/components/schemas/MerchantGTVObject'
                                surcharge:
                                  $ref: '#/components/schemas/MerchantSurchargeObject'
                                autoClose:
                                  $ref: '#/components/schemas/MerchantAutoCloseObject'
                            server:
                              $ref: '#/components/schemas/Server'
                  - title: RETURNPROCESSORS
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            merchant:
                              type: object
                              readOnly: true
                              properties:
                                addressLine1:
                                  $ref: '#/components/schemas/MerchantAddressLine1'
                                addressLine2:
                                  $ref: '#/components/schemas/MerchantAddressLine2'
                                city:
                                  $ref: '#/components/schemas/MerchantCity'
                                dayEndingTime:
                                  $ref: '#/components/schemas/MerchantDayEndingTime'
                                defaultCurrency:
                                  $ref: '#/components/schemas/MerchantDefaultCurrency'
                                supportedCurrencies:
                                  $ref: >-
                                    #/components/schemas/MerchantSupportedCurrencies
                                industry:
                                  $ref: '#/components/schemas/MerchantIndustry'
                                mid:
                                  $ref: '#/components/schemas/MerchantMID'
                                name:
                                  $ref: '#/components/schemas/MerchantName'
                                region:
                                  $ref: '#/components/schemas/MerchantRegion'
                                phone:
                                  $ref: '#/components/schemas/MerchantPhone'
                                postalCode:
                                  $ref: '#/components/schemas/MerchantPostalCode'
                                serialNumber:
                                  $ref: '#/components/schemas/MerchantSerialNumber'
                                cardTypes:
                                  $ref: >-
                                    #/components/schemas/MerchantCardTypesReturnProcessorsArray
                                dcc:
                                  $ref: '#/components/schemas/MerchantDCCObject'
                                gtv:
                                  $ref: '#/components/schemas/MerchantGTVObject'
                                surcharge:
                                  $ref: '#/components/schemas/MerchantSurchargeObject'
                                autoClose:
                                  $ref: '#/components/schemas/MerchantAutoCloseObject'
                            server:
                              $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/AccessTokenNotFoundError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/activate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Activate
      operationId: activate
      security:
        - AccessToken: []
      description: >
        This function requests that a new gift card be activated for use or that
        a new gift card be loaded with funds.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_activate_comengdevice'
                - $ref: '#/components/schemas/giftcards_activate_comengcloud'
                - $ref: '#/components/schemas/giftcards_activate_utgdevice'
                - $ref: '#/components/schemas/giftcards_activate_token_gtv'
                - $ref: '#/components/schemas/giftcards_activate_token_legacy'
                - $ref: '#/components/schemas/giftcards_activate_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_activate_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/giftcards_activate_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/giftcards_activate_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          $ref: '#/components/schemas/CardResponseGC'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 20
                    card:
                      number: XXXXXXXXXXXX1333
                      balance:
                        amount: 20
                      token:
                        value: '8058471748050009'
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192030'
                      responseCode: A
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/GiftCardActivateError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/allocate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Gift Cards
      summary: Allocate
      operationId: allocate
      security:
        - AccessToken: []
      description: >
        This function requests that a new gift card be allocated for use under a
        specific Program ID. The new card will be generated during the request
        and activated with the requested amount.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - amount
                - transaction
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                amount:
                  $ref: '#/components/schemas/AmountGC'
                programId:
                  $ref: '#/components/schemas/ProgramId'
                transaction:
                  type: object
                  required:
                    - invoice
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              amount:
                total: 25
              programId: '95'
              transaction:
                invoice: '192029'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          type: object
                          properties:
                            number:
                              type: string
                              maxLength: 32
                              description: >
                                The gift card number that was created during the
                                gift card allocate request.
                            type:
                              $ref: '#/components/schemas/CardTypeGCResp'
                            balance:
                              $ref: '#/components/schemas/CardBalance'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        programId:
                          $ref: '#/components/schemas/ProgramId'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 20
                    card:
                      number: '1000083000004141494'
                      type: GC
                      balance:
                        amount: 20
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    programId: '95'
                    server:
                      name: UTGAPI01CE
                    transaction:
                      invoice: '192029'
                      responseCode: A
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - error:
                      longText: 'ALLOCATE Failed: Need sample error'
                      primaryCode: 9101
                      secondaryCode: 0
                      shortText: ALLOCATE FAILED
                    server:
                      name: U2API01CE
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/deactivate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Deactivate
      operationId: deactivate
      security:
        - AccessToken: []
      description: >
        This function requests that an active gift card be deactivated so that
        it can’t be used to process transactions.  A balance will remain on the
        gift card (if supported by the processor).  If you want to return the
        card's current balance back to the customer, use the
        [Cashout](/apis/payments-platform-rest/openapi/gift-cards/cashout)
        endpoint instead.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_deactivate_comengdevice'
                - $ref: '#/components/schemas/giftcards_deactivate_comengcloud'
                - $ref: '#/components/schemas/giftcards_deactivate_utgdevice'
                - $ref: '#/components/schemas/giftcards_deactivate_token_gtv'
                - $ref: '#/components/schemas/giftcards_deactivate_token_legacy'
                - $ref: '#/components/schemas/giftcards_deactivate_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_deactivate_p2pe_tdesdukpt_msr'
                - $ref: >-
                    #/components/schemas/giftcards_deactivate_p2pe_onguardsde_msr
                - $ref: '#/components/schemas/giftcards_deactivate_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          $ref: '#/components/schemas/CardResponseDeact'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    card:
                      entryMode: '1'
                      number: XXXXXXXXXXXX1333
                      present: 'Y'
                      deactivationReason: lost or stolen
                      balance:
                        amount: 20
                      token:
                        value: 0009hfqbt8b396x1
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192032'
                      responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/cashout:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      deprecated: true
      tags:
        - Gift Cards
      summary: Cashout
      operationId: cashout
      security:
        - AccessToken: []
      description: >
        This function requests that an active gift card be deactivated so that
        it can’t be used to process transactions.  Any current balance is
        removed from the card so that the funds can be returned to the consumer
        as cash. 


        **This endpoint has been deprecated and should no longer be used. It has
        been replaced by the [Gift Card
        Cashback](/apis/payments-platform-rest/openapi/gift-cards/cashback)
        endpoint.**


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_cashout_comengdevice'
                - $ref: '#/components/schemas/giftcards_cashout_comengcloud'
                - $ref: '#/components/schemas/giftcards_cashout_utgdevice'
                - $ref: '#/components/schemas/giftcards_cashout_token_gtv'
                - $ref: '#/components/schemas/giftcards_cashout_token_legacy'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/giftcards_cashout_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          $ref: '#/components/schemas/CardResponseCashout'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 20
                    card:
                      entryMode: '1'
                      number: XXXXXXXXXXXX1333
                      present: 'Y'
                      deactivationReason: lost or stolen
                      token:
                        value: 0009hfqbt8b396x1
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192034'
                      responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/cashback:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Cashback
      operationId: cashback
      security:
        - AccessToken: []
      description: >
        This function requests that an active gift card be deactivated so that
        it can’t be used to process transactions.  Any current balance is
        removed from the card so that the funds can be returned to the consumer
        as cash. 


        **This endpoint replaces the [Gift Card
        Cashout](/apis/payments-platform-rest/openapi/gift-cards/cashout)
        endpoint.**


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_cashout_comengdevice'
                - $ref: '#/components/schemas/giftcards_cashout_comengcloud'
                - $ref: '#/components/schemas/giftcards_cashout_utgdevice'
                - $ref: '#/components/schemas/giftcards_cashout_token_gtv'
                - $ref: '#/components/schemas/giftcards_cashout_token_legacy'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/giftcards_cashout_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/giftcards_cashout_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          $ref: '#/components/schemas/CardResponseCashout'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 20
                    card:
                      entryMode: '1'
                      number: XXXXXXXXXXXX1333
                      present: 'Y'
                      deactivationReason: lost or stolen
                      token:
                        value: 0009hfqbt8b396x1
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192034'
                      responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/reactivate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Reactivate
      operationId: reactivate
      security:
        - AccessToken: []
      description: >
        This function requests that a previously deactivated gift card be
        reactivated. If there was a balance remaining on the gift card at the
        time of deactivation, the balance will again become available for use.
        Funds cannot be added to a gift card during a Reactivate request.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_reactivate_comengdevice'
                - $ref: '#/components/schemas/giftcards_reactivate_comengcloud'
                - $ref: '#/components/schemas/giftcards_reactivate_utgdevice'
                - $ref: '#/components/schemas/giftcards_reactivate_token_gtv'
                - $ref: '#/components/schemas/giftcards_reactivate_token_legacy'
                - $ref: '#/components/schemas/giftcards_reactivate_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_reactivate_p2pe_tdesdukpt_msr'
                - $ref: >-
                    #/components/schemas/giftcards_reactivate_p2pe_onguardsde_msr
                - $ref: '#/components/schemas/giftcards_reactivate_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          $ref: '#/components/schemas/CardResponseGC'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    card:
                      number: XXXXXXXXXXXX1333
                      balance:
                        amount: 30
                      token:
                        value: 0009hfqbt8b396x1
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192033'
                      responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/reload:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Reload
      operationId: reload
      security:
        - AccessToken: []
      description: >
        This function requests that an active gift card be loaded with
        additional funds.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_reload_comengdevice'
                - $ref: '#/components/schemas/giftcards_reload_comengcloud'
                - $ref: '#/components/schemas/giftcards_reload_utgdevice'
                - $ref: '#/components/schemas/giftcards_reload_token_gtv'
                - $ref: '#/components/schemas/giftcards_reload_token_legacy'
                - $ref: '#/components/schemas/giftcards_reload_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_reload_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/giftcards_reload_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/giftcards_reload_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          $ref: '#/components/schemas/CardResponseGC'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 20
                    card:
                      number: XXXXXXXXXXXX1333
                      balance:
                        amount: 30
                      token:
                        value: 0009hfqbt8b396x1
                      type: YC
                    device:
                      terminalId: '1742'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: UTGAPI01CE
                    transaction:
                      authSource: E
                      invoice: '192031'
                      responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/balance:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Balance
      operationId: balance
      security:
        - AccessToken: []
      description: >
        This function requests that a gift card's balance, masked card number,
        expiration date, and discount percentage be returned. Merchants may be
        required to pay a fee for an inquiry request depending on their
        processor agreement.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_balance_comengdevice'
                - $ref: '#/components/schemas/giftcards_balance_comengcloud'
                - $ref: '#/components/schemas/giftcards_balance_utgdevice'
                - $ref: '#/components/schemas/giftcards_balance_token_gtv'
                - $ref: '#/components/schemas/giftcards_balance_token_legacy'
                - $ref: '#/components/schemas/giftcards_balance_p2pe_idtech'
                - $ref: '#/components/schemas/giftcards_balance_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/giftcards_balance_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/giftcards_balance_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          $ref: '#/components/schemas/CardResponseDeact'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        history:
                          type: array
                          description: |
                            Returned if `RETURNHIST` is sent in `apiOptions`.
                          items:
                            type: object
                            properties:
                              dateTime:
                                $ref: '#/components/schemas/DateTime'
                              amount:
                                $ref: '#/components/schemas/AmountTotalOnly'
                              transactionType:
                                type: string
                                enum:
                                  - Sale
                                  - Activate
                                  - Allocate
                                  - Deactivate
                                  - Cashback
                                  - Reactivate
                                  - Reload
                                  - Balance
                                  - Cancel
                                description: |
                                  The gift card transaction type
              examples:
                Active:
                  summary: Active Card
                  value:
                    result:
                      - dateTime: '2019-04-15T16:10:44.000-07:00'
                        card:
                          balance:
                            amount: 20
                          entryMode: M
                          number: XXXXXXXXXXXX1333
                          token:
                            value: 1333jd4nmj9p787m
                          type: YC
                        merchant:
                          mid: 15877
                          name: Merchant XYZ
                        server:
                          name: U2API01CE
                        transaction:
                          authSource: E
                          invoice: '6241932450'
                          responseCode: A
                        history:
                          - dateTime: '2019-04-12T08:13:23.000-07:00'
                            amount:
                              total: 80
                            transactionType: Sale
                          - dateTime: '2019-03-12T08:10:44.000-07:00'
                            amount:
                              total: 100
                            transactionType: Activate
                Inactive:
                  summary: Inactive Card
                  value:
                    result:
                      - dateTime: '2021-04-15T09:18:23.283-07:00'
                        card:
                          balance:
                            amount: 24.33
                          deactivationReason: lost or stolen
                          entryMode: M
                          number: XXXXXXXXXXXX8774
                          present: 'Y'
                          token:
                            value: 87743q5p3ffhv67y
                          type: YC
                        merchant:
                          mid: 15877
                          name: Merchant XYZ
                        server:
                          name: U2API01CE
                        transaction:
                          authSource: E
                          invoice: '192029'
                          responseCode: A
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /giftcards/cancel:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Gift Cards
      summary: Cancel
      operationId: cancel
      security:
        - AccessToken: []
      description: >
        This function attempts to undo the last /giftcards/* request that was
        made against a gift card or private label card. For example, an Activate
        or Reload request may eligible for cancellation.  Some processors do not
        support this functionality.  This endpoint cannot be used to cancel a
        sale or authorization against a gift card - the Void request should be
        used for that scenario.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/giftcards_cancel_token_gtv'
                - $ref: '#/components/schemas/giftcards_cancel_token_legacy'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountGCResponse'
                        card:
                          $ref: '#/components/schemas/CardResponseGC'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/CardTokenErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /cards/verify:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
    post:
      tags:
        - Cards
      summary: Verify Card with Processor
      operationId: cardsverify
      security:
        - AccessToken: []
      description: >
        This function is used to request card validation by going online to
        verify the card information with the processor. If Address Verification
        System (AVS) and/or Card Security Code (CSC) data are sent in the
        request, that information will also be validated.


        To process an Account Name Inquiry request the `USEANI` API Option and
        `customer.lastName` must be sent in the request. `customer.firstName`
        and `customer.middleName` are optional. Account Name Inquiry requests
        are currently limited to Visa cards.


        **Integration Methods:**

        - Host Direct

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/cards_verify_comengdevice'
                - $ref: '#/components/schemas/cards_verify_comengcloud'
                - $ref: '#/components/schemas/cards_verify_utgdevice'
                - $ref: '#/components/schemas/cards_verify_token_gtv'
                - $ref: '#/components/schemas/cards_verify_token_legacy'
                - $ref: '#/components/schemas/cards_verify_p2pe_idtech'
                - $ref: '#/components/schemas/cards_verify_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/cards_verify_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/cards_verify_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/cards_verify_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/cards_verify_unencryptedcard'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        customer:
                          $ref: '#/components/schemas/Customer'
                        card:
                          type: object
                          properties:
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            securityCode:
                              $ref: '#/components/schemas/CardSecurityCode'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeCardsVerify
                            avs:
                              $ref: '#/components/schemas/AVS'
                            cardOnFile:
                              $ref: '#/components/schemas/CardOnFile'
                        server:
                          $ref: '#/components/schemas/Server'
                        accountNameInquiry:
                          $ref: '#/components/schemas/AccountNameInquiryResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /cards/identify:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
    post:
      tags:
        - Cards
      summary: Identify Card Type
      operationId: cardsidentify
      security:
        - AccessToken: []
      description: >
        This function is used to request and return the card type.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.  
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/cards_identify_utgdevice'
                - $ref: '#/components/schemas/cards_identify_token_gtv'
                - $ref: '#/components/schemas/cards_identify_token_legacy'
                - $ref: '#/components/schemas/cards_identify_p2pe_idtech'
                - $ref: '#/components/schemas/cards_identify_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/cards_identify_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/cards_identify_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/cards_identify_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/cards_identify_unencryptedcard'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        card:
                          $ref: '#/components/schemas/CardResponseIdentify'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptsignature:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Devices
      summary: Request Signature
      operationId: devicessignatures
      security:
        - AccessToken: []
      description: >
        This function is used to request a prompt for signature on a UTG or
        Commerce Engine controlled PIN pad and returns the signature.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_promptsignature_comengdevice'
                - $ref: '#/components/schemas/devices_promptsignature_comengcloud'
                - $ref: '#/components/schemas/devices_promptsignature_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptconfirmation:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Prompt Confirmation
      operationId: devicespromptconfirmation
      security:
        - AccessToken: []
      description: >
        This function is used to display text for a consumer’s confirmation on a
        UTG-controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                device:
                  type: object
                  required:
                    - terminalId
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
                    promptConfirmation:
                      $ref: '#/components/schemas/DevicePromptConfirmation'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptConfirmation:
                              $ref: '#/components/schemas/DevicePromptConfirmation'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/termsandconditions:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Prompt Terms and Conditions
      operationId: devicestermsandconditions
      security:
        - AccessToken: []
      description: >
        This function is used to display terms and conditions for a consumer to
        accept or decline on a Commerce Engine or UTG-controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_termsandconditions_comengdevice'
                - $ref: '#/components/schemas/devices_termsandconditions_comengcloud'
                - $ref: '#/components/schemas/devices_termsandconditions_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptTermsAndConditions:
                              $ref: >-
                                #/components/schemas/DevicePromptTermsAndConditions
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/lineitems:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Display Line Items
      operationId: deviceslineitems
      security:
        - AccessToken: []
      description: >
        This function is used to display up to 10 line items on a UTG-controlled
        PIN pad. In additional Display Line Items requests, if the API Option
        APPENDLINEITEM is sent, the UTG will append the new line item(s) to the
        existing line item(s) displayed.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                apiOptions:
                  $ref: '#/components/schemas/ApiOptions'
                device:
                  type: object
                  required:
                    - terminalId
                    - lineItems
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
                    lineItems:
                      $ref: '#/components/schemas/DeviceLineItemsArray'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              device:
                lineItems:
                  - Hamburger
                  - Fries
                  - Soda
                  - Cookie
                terminalId: '1742'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
    delete:
      tags:
        - Devices
      summary: Clear Line Items
      operationId: devicesdeletelineitems
      security:
        - AccessToken: []
      description: >
        This function is used to clear the line items displayed on a
        UTG-controlled PIN pad.


        *Note: The DELETE request does not support a request body. Sending an
        empty request body may result in an error.*


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/TerminalID'
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/info:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    get:
      tags:
        - Devices
      summary: Device Information
      operationId: devicesinfo
      security:
        - AccessToken: []
      description: >
        This function is used to request information regarding the status of a
        specific Commerce Engine or UTG-controlled PIN pad. Depending on the
        type of device in use, this request may return a variety of device
        information in the response, including the types of encryption keys
        injected on the device.


        *Note: The GET request does not support a request body. Sending an empty
        request body may result in an error.*


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/TerminalIDDevicesInfo'
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/devices_info_comeng'
                  - $ref: '#/components/schemas/devices_info_utgingenico'
                  - $ref: '#/components/schemas/devices_info_utgverifone'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/initializereaders:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Initialize Readers
      operationId: devicesinitializereaders
      security:
        - AccessToken: []
      description: >
        This function is used to request a card swipe, insert, tap (if
        applicable), etc. on a UTG-controlled PIN pad before an
        [Authorization](/apis/payments-platform-rest/openapi/transactions/transactionsauthorization)
        or
        [Sale/Purchase](/apis/payments-platform-rest/openapi/transactions/transactionssale)
        request.


        **Integration Methods:**

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - device
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                device:
                  type: object
                  required:
                    - terminalId
                  properties:
                    terminalId:
                      $ref: '#/components/schemas/DeviceTerminalIdRequired'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/reset:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Reset Device
      operationId: devicesreset
      security:
        - AccessToken: []
      description: >
        This function is used to reset a Commerce Engine or UTG-controlled PIN
        pad to idle. When there is pending consumer input (e.g., waiting for the
        consumer to confirm the amount, swipe their card, select credit or
        debit, etc.), sending this request will cancel the request.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_reset_comengdevice'
                - $ref: '#/components/schemas/devices_reset_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptcardread:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Prompt Card Read
      operationId: devicespromptcardread
      security:
        - AccessToken: []
      description: >
        This function is used to prompt a P2PE-enabled, Commerce Engine or UTG
        controlled PIN pad to request a pass-through card swipe, causing the
        output of the swipe to be returned directly to the interface without any
        action or validation by Shift4 or the processor.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_promptcardread_comengdevice'
                - $ref: '#/components/schemas/devices_promptcardread_comengcloud'
                - $ref: '#/components/schemas/devices_promptcardread_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - title: Unencrypted Gift, Loyalty, or Employee Badge Data
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            card:
                              type: object
                              properties:
                                entryMode:
                                  $ref: >-
                                    #/components/schemas/CardEntryModeResponseTrackOnly
                                expirationDate:
                                  type: integer
                                  minLength: 3
                                  maxLength: 4
                                  format: MMYY
                                  description: >
                                    Card expiration date in MMYY format. This
                                    will only be returned for non-card brand
                                    cards such as gift cards and employee badge
                                    cards.


                                    This field will not be returned if the swipe
                                    data received is in a non-standard format.
                                number:
                                  type: string
                                  maxLength: 32
                                  description: >
                                    The unencrypted card number. This will only
                                    be returned for non-card brand cards such as
                                    gift cards and employee badge cards.


                                    This field will not be returned if the swipe
                                    data received is in a non-standard format.
                                trackData:
                                  type: string
                                  description: >
                                    The raw track data read from the card swipe.
                                    This can contain track 1 data, track 2 data,
                                    or both. This will only be returned for
                                    non-card brand cards such as gift cards and
                                    employee badge cards.
                            server:
                              $ref: '#/components/schemas/Server'
                  - title: Encrypted Card Brand Data
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            card:
                              type: object
                              properties:
                                entryMode:
                                  $ref: >-
                                    #/components/schemas/CardEntryModeResponseTrackOnly
                                number:
                                  $ref: '#/components/schemas/CardMaskedNumber'
                                type:
                                  $ref: '#/components/schemas/CardTypeResp'
                            p2pe:
                              $ref: '#/components/schemas/P2PE'
                            server:
                              $ref: '#/components/schemas/Server'
              examples:
                unencryptedgiftcard:
                  summary: Unencrypted Gift Card
                  value:
                    result:
                      - dateTime: '2024-05-21T09:18:23.283-07:00'
                        card:
                          entryMode: '2'
                          expirationDate: 643
                          number: '0001366477393106'
                          trackData: ;0001366477393106=430692960042575?
                        server:
                          name: Commerce Engine K
                unencryptedemployeecard:
                  summary: Unencrypted Employee Badge Data Card
                  value:
                    result:
                      - dateTime: '2024-05-21T09:18:23.283-07:00'
                        card:
                          entryMode: '2'
                          trackData: ;:<>4114952129?
                        server:
                          name: Commerce Engine K
                encryptedcard:
                  summary: Encrypted Card Brand Data
                  value:
                    result:
                      - dateTime: '2024-05-21T09:18:23.283-07:00'
                        card:
                          entryMode: '1'
                          number: XXXXXXXXXXXX6186
                          type: NS
                        p2pe:
                          data: >-
                            a%B369989****6186^DC/TRACK1
                            ONLY^2212101**************************??b?c;FFFF49003614954000BB:1:0072:8B997BF3896636D43593897B86C58A4C7B684B69C5DC150FF53882A15C34C3FCBCEBCFEA0FA68FAC3F0148431B3C6470514A20A5104AF853BDF4D1BD8EBD0E9FAB493176BD2614DC
                          format: '03'
                        server:
                          name: U2API01CE
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/promptinput:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Prompt for Input
      operationId: devicespromptinput
      security:
        - AccessToken: []
      description: >
        This function is used to prompt a Commerce Engine or UTG-controlled PIN
        pad to collect a specified value from a consumer. The interface will
        specify the value based on the `device.promptInput.index` field. Each
        request will collect one specified value; when multiple values need to
        be collected, separate requests must be sent.


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_promptinput_comengdevice'
                - $ref: '#/components/schemas/devices_promptinput_comengcloud'
                - $ref: '#/components/schemas/devices_promptinput_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          type: object
                          properties:
                            terminalId:
                              $ref: '#/components/schemas/DeviceTerminalId'
                            promptInput:
                              $ref: '#/components/schemas/DevicePromptInput'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/processform:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Display Custom Form
      operationId: devicesprocessform
      security:
        - AccessToken: []
      description: >
        This function is used to display a custom form and text for a consumer’s
        input on a Commerce Engine or UTG controlled PIN pad.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_processform_comengdevice'
                - $ref: '#/components/schemas/devices_processform_comengcloud'
                - $ref: '#/components/schemas/devices_processform_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/devices_processform_response_utg'
                  - $ref: >-
                      #/components/schemas/devices_processform_response_comeng_message
                  - $ref: >-
                      #/components/schemas/devices_processform_response_comeng_multiButtonScrollingText
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/print:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - Devices
      summary: Print Receipts
      operationId: devicesprint
      security:
        - AccessToken: []
      description: >
        This function is used to print a receipt using a device’s built-in
        printer. The receipt may include a scannable bar code.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        Commerce Engine for On Premise and Commerce Engine For Cloud support
        both the legacy printing format for backwards compability with UTG
        integrations as well as a new structured printing format. With the new
        structured printing format you can format an entire receipt as a bmp
        image including text, QR codes, and images. In future Commerce Engine
        releases we will be enhancing the structured format to support handling
        text and bar codes.

        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_print_comengdevice_structured'
                - $ref: '#/components/schemas/devices_print_comengcloud_structured'
                - $ref: '#/components/schemas/devices_print_comengdevice_legacy'
                - $ref: '#/components/schemas/devices_print_comengcloud_legacy'
                - $ref: '#/components/schemas/devices_print_utgdevice'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        device:
                          $ref: '#/components/schemas/DeviceOnlyTIDResponse'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/getstatus:
    servers:
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Devices
      summary: Get Device Status
      operationId: devicesgetstatus
      security:
        - AccessToken: []
      description: >
        This function is used to get the status of the device.


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_getstatus_comengdevice'
                - $ref: '#/components/schemas/devices_getstatus_comengcloud'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        cloudRegistered:
                          $ref: '#/components/schemas/CloudRegistered'
                        cloudConnected:
                          $ref: '#/components/schemas/CloudConnected'
                        offlineMode:
                          $ref: '#/components/schemas/OfflineMode'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /devices/prompttip:
    servers:
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
      - url: https://api.shift4test.com/api/rest/v1
        description: Commerce Engine For Cloud Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Commerce Engine For Cloud Production URL
    post:
      tags:
        - Devices
      summary: Prompt Tip
      operationId: devicesprompttip
      security:
        - AccessToken: []
      description: >
        This function is used to prompt for tip outside of a payment
        transaction.


        **Integration Methods:**

        - Commerce Engine For On Premise

        - Commerce Engine For Cloud


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/devices_prompttip_comengdevice'
                - $ref: '#/components/schemas/devices_prompttip_comengcloud'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          properties:
                            tip:
                              $ref: '#/components/schemas/AmountTipResponse'
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        tip:
                          type: object
                          properties:
                            selectedOption:
                              $ref: '#/components/schemas/TipSelectedOption'
                        server:
                          $ref: '#/components/schemas/ServerComEng'
        '400':
          $ref: '#/components/responses/TerminalIDErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /reports/batchtotals:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    get:
      tags:
        - Reports
      summary: Totals Report
      operationId: reportsbatchtotals
      security:
        - AccessToken: []
      description: >
        This function is used to request a simple totals report for automated
        analysis. It does not supersede the standard auditing and reporting
        tools that are included with Shift4’ products.


        *Note: The GET request does not support a request body. Sending an empty
        request body may result in an error.*


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/BusinessDateTotals'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/Inclusive'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        batch:
                          $ref: '#/components/schemas/BatchResponseNoProcessors'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            businessDate:
                              $ref: '#/components/schemas/TransactionBusinessDate'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/AccessTokenNotFoundError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /batches/submit:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - Batches
      summary: Submit Batch
      operationId: batchessubmit
      security:
        - AccessToken: []
      description: >
        This function is used to close a batch.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - transaction
                - batch
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                transaction:
                  type: object
                  required:
                    - businessDate
                  properties:
                    businessDate:
                      $ref: '#/components/schemas/SubmitBatchBusinessDate'
                batch:
                  $ref: '#/components/schemas/Batch'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        batch:
                          $ref: '#/components/schemas/BatchResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            businessDate:
                              $ref: '#/components/schemas/TransactionBusinessDate'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/BatchError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /qrpayments/getqrcode:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - QR Payments
      summary: Get QR Code
      operationId: getqrcode
      security:
        - AccessToken: []
      description: >
        This endpoint is used to obtain a transaction based QR code.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - amount
                - transaction
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                amount:
                  type: object
                  required:
                    - total
                    - tax
                  properties:
                    total:
                      $ref: '#/components/schemas/AmountTotal'
                    tax:
                      $ref: '#/components/schemas/AmountTax'
                    tip:
                      $ref: '#/components/schemas/AmountTip'
                    cashback:
                      $ref: '#/components/schemas/AmountCashback'
                transaction:
                  type: object
                  required:
                    - invoice
                    - saleFlag
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
                    saleFlag:
                      $ref: '#/components/schemas/TransactionSaleFlagQR'
                    vendorReference:
                      $ref: '#/components/schemas/TransactionVendorReference'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        qrCode:
                          $ref: '#/components/schemas/QRCodeResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        amount:
                          type: object
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                            tax:
                              $ref: '#/components/schemas/AmountTax'
                            tip:
                              $ref: '#/components/schemas/AmountTip'
                            cashback:
                              $ref: '#/components/schemas/AmountCashback'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlagQR'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - error:
                      longText: Fail to post QR Pay record
                      primaryCode: 9870
                      secondaryCode: 4
                      shortText: QR PAY ERROR
                    server:
                      name: U2API02CE
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /qrpayments/getqrdetails:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - QR Payments
      summary: Get QR Details
      operationId: getqrdetails
      security:
        - AccessToken: []
      description: >
        This endpoint is used to get detailed information for a transaction
        based QR code.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - qrCode
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                qrCode:
                  $ref: '#/components/schemas/QRCodeRequest'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                            tax:
                              $ref: '#/components/schemas/AmountTax'
                            tip:
                              $ref: '#/components/schemas/AmountTip'
                            cashback:
                              $ref: '#/components/schemas/AmountCashback'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlagQR'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        merchant:
                          type: object
                          properties:
                            addressLine1:
                              $ref: '#/components/schemas/MerchantAddressLine1'
                            addressLine2:
                              $ref: '#/components/schemas/MerchantAddressLine2'
                            city:
                              $ref: '#/components/schemas/MerchantCity'
                            dayEndingTime:
                              $ref: '#/components/schemas/MerchantDayEndingTime'
                            industry:
                              $ref: '#/components/schemas/MerchantIndustry'
                            name:
                              $ref: '#/components/schemas/MerchantName'
                            region:
                              $ref: '#/components/schemas/MerchantRegion'
                            phone:
                              $ref: '#/components/schemas/MerchantPhone'
                            postalCode:
                              $ref: '#/components/schemas/MerchantPostalCode'
                            serialNumber:
                              $ref: '#/components/schemas/MerchantSerialNumber'
                            mid:
                              $ref: '#/components/schemas/MerchantMID'
                            cardTypes:
                              $ref: '#/components/schemas/MerchantCardTypesArray'
                        qrPayConfig:
                          $ref: '#/components/schemas/QRPayConfig'
                        server:
                          $ref: '#/components/schemas/Server'
                        credential:
                          type: object
                          properties:
                            accessToken:
                              $ref: '#/components/schemas/CredentialAccessToken'
                            apiSerialNumber:
                              $ref: '#/components/schemas/CredentialApiSerialNumber'
                            apiPassword:
                              $ref: '#/components/schemas/CredentialAuthToken'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - error:
                      longText: Invalid QR Code - not found
                      primaryCode: 9870
                      secondaryCode: 1
                      shortText: QR PAY ERROR
                    server:
                      name: U2API01CE
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /qrpayments/getqrpaymentstatus:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - QR Payments
      summary: Get QR Payment Status
      operationId: getqrpaymentstatus
      security:
        - AccessToken: []
      description: >
        This endpoint is used to poll for the status of the QR code payment.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - qrCode
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                qrCode:
                  $ref: '#/components/schemas/QRCodeRequest'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/Amount'
                        card:
                          $ref: '#/components/schemas/CardResponse'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        receipt:
                          $ref: '#/components/schemas/ReceiptArray'
                        server:
                          $ref: '#/components/schemas/Server'
                        signature:
                          $ref: '#/components/schemas/Signature'
                        transaction:
                          type: object
                          properties:
                            authorizationCode:
                              $ref: >-
                                #/components/schemas/TransactionAuthorizationCode
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeQRPaymentStatus
                            saleFlag:
                              $ref: '#/components/schemas/TransactionSaleFlag'
                            amex:
                              $ref: '#/components/schemas/TransactionAmex'
                            avs:
                              $ref: '#/components/schemas/AVS'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
              examples:
                QRPAYSUCCESS:
                  summary: QR Payment Processed Successfully
                  value:
                    result:
                      - dateTime: '2021-04-15T09:18:23.283-07:00'
                        amount:
                          cashback: 20
                          tax: 15
                          tip: 20
                          total: 160
                        card:
                          entryMode: '1'
                          expirationDate: 1222
                          number: XXXXXXXXXXXX1119
                          present: 'N'
                          token:
                            value: '8048471746471119'
                          type: VS
                        clerk:
                          numericId: 1576
                        customer:
                          firstName: John
                          lastName: Smith
                        merchant:
                          mid: 15877
                          name: Merchant XYZ
                        receipt:
                          - key: CardEntryMode
                            printName: ENTRY METHOD
                            printValue: KEYED
                          - key: MaskedPAN
                            printValue: XXXXXXXXXXXX1119
                          - key: SignatureRequired
                            printValue: 'Y'
                          - key: TransactionResponse
                            printName: Response
                            printValue: APPROVED
                        server:
                          name: UTGAPI01CE
                        transaction:
                          authorizationCode: OK126Z
                          authSource: E
                          invoice: '192029'
                          responseCode: A
                          saleFlag: S
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - error:
                      longText: QR Pay is Cancelled - unable to process request
                      primaryCode: 9870
                      secondaryCode: 6
                      shortText: QR PAY ERROR
                    server:
                      name: U2API01CE
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /qrpayments/cancelqrpayment:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
    post:
      tags:
        - QR Payments
      summary: Cancel QR Payment
      operationId: cancelqrpayment
      security:
        - AccessToken: []
      description: >
        This endpoint is used to cancel a QR code payment. If the payment was
        already processed the transaction will be reversed. If the payment has
        not yet processed it will prevent the QR code from being used to process
        a payment.


        **Integration Methods:**

        - Host Direct

        - Locally Installed UTG


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - qrCode
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                qrCode:
                  $ref: '#/components/schemas/QRCodeRequest'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        transaction:
                          type: object
                          properties:
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeQRCancel
                        merchant:
                          type: object
                          properties:
                            serialNumber:
                              $ref: '#/components/schemas/MerchantSerialNumber'
                            mid:
                              $ref: '#/components/schemas/MerchantMID'
                            name:
                              $ref: '#/components/schemas/MerchantName'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - error:
                      longText: Invalid QR Code - not found
                      primaryCode: 9870
                      secondaryCode: 1
                      shortText: QR PAY ERROR
                    server:
                      name: U2API01CE
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /mode/offline:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
    post:
      tags:
        - Mode
      summary: Go Offline
      operationId: modeoffline
      security:
        - AccessToken: []
      description: >
        This function is used to put UTG/Commerce Engine into offline mode.
        UTG/Commerce Engine will be configured to set a maximum duration for how
        long it will stay in offline mode in order to prevent UTG/Commerce
        Engine from staying offline indefinitely if the Interface Vendor does
        not send the go online request. 


        Note: To utilize this feature with UTG, you must be running UTG version
        3080 or later. UTG can be configured to disable this feature, which will
        prevent the API request from putting UTG into offline mode.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
      responses:
        '200':
          description: Go Offline request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceMode'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/AuthTokenNotValidError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /mode/online:
    servers:
      - url: https://192.168.1.10:277/api/rest/v1
        description: Locally Installed UTG URL
      - url: https://192.168.1.20:8085/api/rest/v1
        description: Commerce Engine For On Premise URL
    post:
      tags:
        - Mode
      summary: Go Online
      operationId: modeonline
      security:
        - AccessToken: []
      description: >
        This function is used to bring UTG/Commerce Engine out of offline mode
        after putting UTG/Commerce Engine into offline mode via the [Go
        Online](/apis/payments-platform-rest/openapi/mode/modeoffline) request. 


        Note: To utilize this feature with UTG, you must be running UTG version
        3080 or later.


        **Integration Methods:**

        - Locally Installed UTG

        - Commerce Engine For On Premise


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
      responses:
        '200':
          description: Go Online request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceMode'
                        server:
                          $ref: '#/components/schemas/Server'
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        server:
                          $ref: '#/components/schemas/Server'
              examples:
                Error:
                  $ref: '#/components/examples/AuthTokenNotValidError'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /risk/assess:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - Risk
      summary: Risk Assess
      operationId: riskassess
      security:
        - AccessToken: []
      description: >
        Used to check the level of risk before processing a transaction. Risk
        assessment returns four possible values: approve, deny, escalate and
        review. If the risk  transaction is approved or review, you will be able
        to make a payment call with the risk  assessment, risk id and
        transaction id you get in response.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/risk_assess_unencryptedcard'
                - $ref: '#/components/schemas/risk_assess_token_gtv'
      responses:
        '200':
          description: Risk assessment was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      required:
                        - dateTime
                        - amount
                        - risk
                        - transaction
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          required:
                            - total
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        card:
                          type: object
                          properties:
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        risk:
                          type: object
                          required:
                            - tranId
                            - assessment
                          properties:
                            tranId:
                              $ref: '#/components/schemas/RiskTranId'
                            assessment:
                              $ref: '#/components/schemas/RiskAssessment'
                        transaction:
                          type: object
                          required:
                            - s4RiskId
                            - invoice
                          properties:
                            s4RiskId:
                              $ref: '#/components/schemas/TransactionS4RiskId'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            orderId:
                              $ref: '#/components/schemas/TransactionOrderId'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 76001.99
                    card:
                      token:
                        value: '8058471748284111'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    risk:
                      tranId: DDWT0P3LG6LL
                      assessment: A
                    transaction:
                      s4RiskId: EC52377F-5A8E-4534-BE7A-CF779A35BE45
                      invoice: '0207123502'
                      orderId: orderId
        '400':
          description: Error
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        transaction:
                          type: object
                          properties:
                            s4RiskId:
                              $ref: '#/components/schemas/TransactionS4RiskId'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            hostResponse:
                              type: object
                              properties:
                                reasonCode:
                                  $ref: >-
                                    #/components/schemas/HostResponseReasonCodeRisk
                                reasonDescription:
                                  $ref: >-
                                    #/components/schemas/HostResponseReasonDescriptionRisk
                            orderId:
                              $ref: '#/components/schemas/TransactionOrderId'
                example:
                  result:
                    - error:
                        longText: format error
                        primaryCode: 9151
                        secondaryCode: 0
                        shortText: format error
                      transaction:
                        s4RiskId: EC52377F-5A8E-4534-BE7A-CF779A35BE45
                        invoice: '0207123502'
                        orderId: orderId
                        hostResponse:
                          reasonCode: '232'
                          reasonDescription: The credit card information is missing
        '504':
          description: Timeout
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        error:
                          $ref: '#/components/schemas/Error'
                        transaction:
                          type: object
                          properties:
                            s4RiskId:
                              $ref: '#/components/schemas/TransactionS4RiskId'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            orderId:
                              $ref: '#/components/schemas/TransactionOrderId'
                example:
                  result:
                    - error:
                        longText: Timeout waiting for response across the internet
                        primaryCode: 9951
                        secondaryCode: 0
                        shortText: RESPONSE TIMEOUT
                      transaction:
                        s4RiskId: EC52377F-5A8E-4534-BE7A-CF779A35BE45
                        invoice: '0207123502'
                        orderId: orderId
  /paypal/initiate:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - PayPal
      summary: PayPal Initiate
      operationId: paypalinitiate
      security:
        - AccessToken: []
      description: >
        This request initiates a PayPal transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - amount
                - currencyCode
                - customer
                - dateTime
                - sourceIp
                - transaction
              properties:
                amount:
                  type: object
                  required:
                    - tax
                    - total
                  properties:
                    tax:
                      $ref: '#/components/schemas/AmountTax'
                    total:
                      $ref: '#/components/schemas/AmountTotal'
                currencyCode:
                  $ref: '#/components/schemas/CurrencyCode'
                customer:
                  type: object
                  required:
                    - addressLine1
                    - city
                    - country
                    - emailAddress
                    - firstName
                    - lastName
                    - ipAddress
                    - phoneNumber
                    - phoneCountry
                    - region
                    - externalId
                    - enrollDate
                  properties:
                    addressLine1:
                      $ref: '#/components/schemas/CustomerAddressLine1'
                    city:
                      $ref: '#/components/schemas/CustomerCity'
                    country:
                      $ref: '#/components/schemas/CustomerCountry'
                    emailAddress:
                      $ref: '#/components/schemas/CustomerEmailAddress'
                    firstName:
                      $ref: '#/components/schemas/CustomerFirstName'
                    lastName:
                      $ref: '#/components/schemas/CustomerLastName'
                    ipAddress:
                      $ref: '#/components/schemas/CustomerIpAddress'
                    phoneNumber:
                      $ref: '#/components/schemas/CustomerPhoneNumber'
                    phoneCountry:
                      $ref: '#/components/schemas/CustomerPhoneCountry'
                    region:
                      $ref: '#/components/schemas/CustomerRegion'
                    externalId:
                      $ref: '#/components/schemas/CustomerExternalId'
                    enrollDate:
                      $ref: '#/components/schemas/CustomerEnrollDate'
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                sourceIp:
                  $ref: '#/components/schemas/SourceIP'
                transaction:
                  type: object
                  required:
                    - invoice
                    - vendorReference
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
                    ota:
                      $ref: '#/components/schemas/OTARequestPayPal'
                    vendorReference:
                      $ref: '#/components/schemas/TransactionVendorReference'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      required:
                        - amount
                        - dateTime
                        - payPal
                        - server
                        - transaction
                      properties:
                        amount:
                          type: object
                          required:
                            - tax
                            - total
                          properties:
                            tax:
                              $ref: '#/components/schemas/AmountTax'
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        payPal:
                          type: object
                          required:
                            - clientToken
                          properties:
                            clientMetaDataId:
                              $ref: '#/components/schemas/PayPalClientMetaDataId'
                            clientToken:
                              $ref: '#/components/schemas/PayPalClientToken'
                        server:
                          type: object
                          required:
                            - name
                          properties:
                            name:
                              $ref: '#/components/schemas/ServerName'
                        transaction:
                          type: object
                          required:
                            - authSource
                            - invoice
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
  /paypal/sale:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - PayPal
      summary: PayPal Sale Transaction
      operationId: paypalsale
      security:
        - AccessToken: []
      description: >
        This authorizes and captures the transaction. In addition, it will
        return a payload that includes the transaction's  sale details.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - amount
                - transaction
                - sourceIp
                - customer
                - currencyCode
                - payPal
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                amount:
                  type: object
                  required:
                    - total
                  properties:
                    total:
                      $ref: '#/components/schemas/AmountTotal'
                payPal:
                  type: object
                  required:
                    - payerId
                    - paymentMethodNonce
                    - deviceData
                  properties:
                    payerId:
                      $ref: '#/components/schemas/PayPalPayerId'
                    paymentMethodNonce:
                      $ref: '#/components/schemas/PayPalPaymentMethodNonce'
                    paymentMethodIdUsage:
                      $ref: '#/components/schemas/PayPalPaymentMethodIdUsage'
                    deviceData:
                      $ref: '#/components/schemas/PayPalDeviceData'
                transaction:
                  type: object
                  required:
                    - invoice
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
                    airline:
                      $ref: '#/components/schemas/AirlineRequestPayPal'
                    notes:
                      $ref: '#/components/schemas/TransactionNotes'
                    vendorReference:
                      $ref: '#/components/schemas/TransactionVendorReference'
                currencyCode:
                  $ref: '#/components/schemas/CurrencyCode'
                sourceIp:
                  $ref: '#/components/schemas/SourceIP'
                customer:
                  type: object
                  required:
                    - browserType
                  properties:
                    browserType:
                      $ref: '#/components/schemas/CustomerBrowserType'
            example:
              dateTime: '2022-04-14T13:31:52.023807'
              amount:
                total: 15
              currencyCode: USD
              transaction:
                invoice: '0414133134'
              payPal:
                payerId: 6CB2GS6AQRS5S
                paymentMethodNonce: fd66f90e-c8ec-0363-6b45-aeb930175e43
                deviceData: '{"correlation_id":"010e4 a744d78644f971fc5f9dc1c43aa"}'
              sourceIp: 10.249.11.254
              customer:
                browserType: Mozilla 5.0
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      required:
                        - payPal
                        - dateTime
                        - amount
                        - transaction
                        - server
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          required:
                            - total
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          required:
                            - authSource
                            - invoice
                            - responseCode
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        server:
                          type: object
                          required:
                            - name
                          properties:
                            name:
                              $ref: '#/components/schemas/ServerName'
                        payPal:
                          type: object
                          required:
                            - transactionId
                            - legacyId
                            - authorizationId
                            - captureId
                            - orderId
                            - status
                          properties:
                            transactionId:
                              $ref: '#/components/schemas/PayPalTransactionId'
                            legacyId:
                              $ref: '#/components/schemas/PayPalLegacyId'
                            orderId:
                              $ref: '#/components/schemas/PayPalOrderId'
                            status:
                              $ref: '#/components/schemas/PayPalStatus'
                            authorizationId:
                              $ref: '#/components/schemas/PayPalAuthorizationId'
                            captureId:
                              $ref: '#/components/schemas/PayPalCaptureId'
                            paymentMethodId:
                              $ref: '#/components/schemas/PayPalPaymentMethodId'
              example:
                result:
                  - dateTime: '2022-04-14T12:18:26.717923-07:00'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    transaction:
                      authSource: A
                      invoice: '0414151800'
                      responseCode: A
                    server:
                      name: WH-APM-V01.PPDEV1
                    payPal:
                      transactionId: dHJhbnNhY3Rpb25fazd6cDB5ZzA
                      legacyId: k7zp0yg0
                      orderId: 444106-8010720-0414151800-4371
                      authorizationId: 6W6361048T1775802
                      captureId: 3EK61497JE2934158
                      status: SETTLING
                      paymentMethodId: dda7z0fq
                    amount:
                      total: 15
  /paypal/refund:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - PayPal
      summary: PayPal Refund Transaction
      operationId: paypalrefund
      security:
        - AccessToken: []
      description: >
        This refunds a settled transaction. In addition, it will return a 
        payload that includes the transaction’s refund details.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - amount
                - transaction
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                amount:
                  type: object
                  required:
                    - total
                  properties:
                    total:
                      $ref: '#/components/schemas/AmountTotal'
                transaction:
                  type: object
                  required:
                    - invoice
                    - originalInvoice
                    - originalDate
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
                    originalInvoice:
                      $ref: '#/components/schemas/TransactionOriginalInvoice'
                    originalDate:
                      $ref: '#/components/schemas/TransactionOriginalDate'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              amount:
                total: 15
              transaction:
                invoice: '0414151837'
                originalInvoice: '0414151800'
                originalDate: '2022-04-14T00:00:00-04:00'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      required:
                        - dateTime
                        - amount
                        - transaction
                        - server
                        - payPal
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          required:
                            - total
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        payPal:
                          type: object
                          required:
                            - transactionId
                            - legacyId
                            - orderId
                            - status
                          properties:
                            transactionId:
                              $ref: '#/components/schemas/PayPalTransactionId'
                            legacyId:
                              $ref: '#/components/schemas/PayPalLegacyId'
                            orderId:
                              $ref: '#/components/schemas/PayPalOrderId'
                            status:
                              $ref: '#/components/schemas/PayPalStatus'
                        transaction:
                          type: object
                          required:
                            - authSource
                            - invoice
                            - responseCode
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCode'
                        server:
                          type: object
                          required:
                            - name
                          properties:
                            name:
                              $ref: '#/components/schemas/ServerName'
              example:
                result:
                  - dateTime: '2022-04-14T12:18:47.515770-07:00'
                    amount:
                      total: 15
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    transaction:
                      authSource: A
                      invoice: '0414151837'
                      responseCode: A
                    payPal:
                      transactionId: cmVmdW5kX2s4dDRkZGEx
                      legacyId: k8t4dda1
                      orderId: 444106-8010720-0414151837-4372
                      status: SETTLING
                    server:
                      name: WH-APM-V01.PPDEV1
  /3dsecure/standalone:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - 3D Secure
      summary: 3D Secure Standalone
      operationId: 3dsecurestandalone
      security:
        - AccessToken: []
      description: >
        This function is used to process a request via the 3D Secure process
        without authorizing the payment. This will return the result of the 3D
        Secure process as well as the 3D Secure data that can then be used to
        process a payment via the
        [Authorization](/apis/payments-platform-rest/openapi/transactions/transactionsauthorization)
        or
        [Sale/Purchase](/apis/payments-platform-rest/openapi/transactions/transactionssale)
        endpoint.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/3dsecure_standalone_cardnumber'
                - $ref: '#/components/schemas/3dsecure_standalone_token_gtv'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                oneOf:
                  - title: Request Complete
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          required:
                            - dateTime
                            - amount
                            - currencyCode
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            amount:
                              $ref: '#/components/schemas/Amount'
                            currencyCode:
                              $ref: '#/components/schemas/CurrencyCode'
                            card:
                              $ref: '#/components/schemas/CardResponse'
                            customer:
                              type: object
                              properties:
                                firstName:
                                  $ref: '#/components/schemas/CustomerFirstName'
                                lastName:
                                  $ref: '#/components/schemas/CustomerLastName'
                                phoneNumber:
                                  $ref: '#/components/schemas/CustomerPhoneNumber'
                                emailAddress:
                                  $ref: '#/components/schemas/CustomerEmailAddress'
                                addressLine1:
                                  $ref: '#/components/schemas/CustomerAddressLine1'
                                city:
                                  $ref: '#/components/schemas/CustomerCity'
                                region:
                                  $ref: '#/components/schemas/CustomerRegion'
                                postalCode:
                                  $ref: '#/components/schemas/CustomerPostalCode'
                                country:
                                  $ref: '#/components/schemas/CustomerCountry'
                                ipAddress:
                                  $ref: '#/components/schemas/CustomerIpAddress'
                                shipping:
                                  $ref: >-
                                    #/components/schemas/CustomerShipping3DSecure
                            merchant:
                              $ref: '#/components/schemas/MerchantResponse'
                            transaction:
                              type: object
                              properties:
                                authSource:
                                  $ref: '#/components/schemas/TransactionAuthSource'
                                hostResponse:
                                  $ref: '#/components/schemas/HostResponse'
                                invoice:
                                  $ref: '#/components/schemas/TransactionInvoice'
                                responseCode:
                                  $ref: >-
                                    #/components/schemas/TransactionResponseCode3DSStandalone
                                retrievalReference:
                                  $ref: >-
                                    #/components/schemas/TransactionRetrievalReference
                                avs:
                                  $ref: '#/components/schemas/AVS'
                            threeDSecure:
                              type: object
                              properties:
                                trxId:
                                  $ref: '#/components/schemas/ThreeDSecureTrxId'
                                cardholderInfo:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureCardholderInfo
                                cryptogram:
                                  $ref: '#/components/schemas/ThreeDSecureCryptogram'
                                programProtocol:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureProgramProtocol
                                directoryServerTranId:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureDirectoryServerTranId
                                ecommIndicator:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureEcommIndicator
                                securityLevelIndicator:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureSecurityLevelIndicator
                            receipt:
                              $ref: '#/components/schemas/ReceiptArray'
                            server:
                              $ref: '#/components/schemas/Server'
                            universalToken:
                              $ref: '#/components/schemas/UniversalToken'
                            cardBrandToken:
                              $ref: '#/components/schemas/CardBrandToken'
                        example:
                          dateTime: '2022-05-04T09:20:04.487-07:00'
                          amount:
                            tax: 15
                            total: 160
                          currencyCode: EUR
                          card:
                            entryMode: M
                            number: XXXXXXXXXXXX1119
                            present: 'N'
                            securityCode:
                              result: M
                              valid: 'Y'
                            token:
                              value: '8048471746471119'
                            type: VS
                          customer:
                            firstName: John
                            lastName: Smith
                            addressLine1: 65 Easy St
                            city: Las Vegas
                            postalCode: '65144'
                            emailAddress: firstname.lastname@email.com
                            ipAddress: 63.57.84.101
                          merchant:
                            mid: 15877
                            name: Merchant XYZ
                          threeDSecure:
                            trxId: a7bbd49a-ffe6-49b2-8a92-541f0a3b053d
                            cryptogram: >-
                              AAAAAAAA/COBt84dnIEcwAA3gAAGhgEDoLABAAhAgAABAAAALnNCLw==
                            programProtocol: '2'
                            directoryServerTranId: 07e54000-2721-4df9-aa51-04fa0e079aa8
                            ecommIndicator: '5'
                          server:
                            name: TM01CE
                          transaction:
                            authSource: A
                            avs:
                              postalCodeVerified: 'N'
                              result: A
                              streetVerified: 'Y'
                              valid: 'Y'
                            invoice: '730518'
                            responseCode: A
                            retrievalReference: 402F9H0230S0
                          receipt:
                            - key: CardEntryMode
                              printName: ENTRY METHOD
                              printValue: KEYED
                            - key: MaskedPAN
                              printValue: XXXXXXXXXXXX1119
                            - key: SignatureRequired
                              printValue: 'Y'
                            - key: TransactionResponse
                              printName: Response
                              printValue: APPROVED
                  - title: Device Fingerprint
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          required:
                            - dateTime
                            - amount
                            - currencyCode
                            - threeDSecure
                            - redirectUrl
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            amount:
                              $ref: '#/components/schemas/Amount'
                            currencyCode:
                              $ref: '#/components/schemas/CurrencyCode'
                            card:
                              $ref: '#/components/schemas/CardResponse3DSChallenge'
                            customer:
                              type: object
                              properties:
                                firstName:
                                  $ref: '#/components/schemas/CustomerFirstName'
                                lastName:
                                  $ref: '#/components/schemas/CustomerLastName'
                                phoneNumber:
                                  $ref: '#/components/schemas/CustomerPhoneNumber'
                                emailAddress:
                                  $ref: '#/components/schemas/CustomerEmailAddress'
                                addressLine1:
                                  $ref: '#/components/schemas/CustomerAddressLine1'
                                city:
                                  $ref: '#/components/schemas/CustomerCity'
                                region:
                                  $ref: '#/components/schemas/CustomerRegion'
                                postalCode:
                                  $ref: '#/components/schemas/CustomerPostalCode'
                                country:
                                  $ref: '#/components/schemas/CustomerCountry'
                                ipAddress:
                                  $ref: '#/components/schemas/CustomerIpAddress'
                                shipping:
                                  $ref: >-
                                    #/components/schemas/CustomerShipping3DSecure
                            merchant:
                              $ref: '#/components/schemas/MerchantResponse'
                            transaction:
                              type: object
                              properties:
                                authSource:
                                  $ref: '#/components/schemas/TransactionAuthSource'
                                invoice:
                                  $ref: '#/components/schemas/TransactionInvoice'
                                responseCode:
                                  $ref: >-
                                    #/components/schemas/TransactionResponseCode3DSFingerprint
                                retrievalReference:
                                  $ref: >-
                                    #/components/schemas/TransactionRetrievalReference
                            threeDSecure:
                              type: object
                              required:
                                - trxId
                              properties:
                                trxId:
                                  $ref: '#/components/schemas/ThreeDSecureTrxId'
                            redirectUrl:
                              $ref: '#/components/schemas/RedirectURL3DSResponse'
                            server:
                              $ref: '#/components/schemas/Server'
                        example:
                          dateTime: '2022-05-04T09:20:04.487-07:00'
                          amount:
                            tax: 15
                            total: 160
                          currencyCode: EUR
                          card:
                            entryMode: M
                            number: XXXXXXXXXXXX1119
                            present: 'N'
                            type: VS
                            token:
                              value: '8048471746471119'
                          customer:
                            firstName: John
                            lastName: Smith
                            addressLine1: 65 Easy St
                            city: Las Vegas
                            postalCode: '65144'
                            emailAddress: firstname.lastname@email.com
                            ipAddress: 63.57.84.101
                          merchant:
                            mid: 15877
                            name: Merchant XYZ
                          transaction:
                            authSource: A
                            invoice: '730518'
                            responseCode: H
                            retrievalReference: 402F9H0230S0
                          redirectUrl: https://issuer.com/fingerprint
                          threeDSecure:
                            trxId: a7bbd49a-ffe6-49b2-8a92-541f0a3b053d
                          server:
                            name: TM01CE
                  - title: 3D Secure Challenge
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          required:
                            - dateTime
                            - amount
                            - currencyCode
                            - threeDSecure
                            - redirectUrl
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            amount:
                              $ref: '#/components/schemas/Amount'
                            currencyCode:
                              $ref: '#/components/schemas/CurrencyCode'
                            card:
                              $ref: '#/components/schemas/CardResponse3DSChallenge'
                            customer:
                              type: object
                              properties:
                                firstName:
                                  $ref: '#/components/schemas/CustomerFirstName'
                                lastName:
                                  $ref: '#/components/schemas/CustomerLastName'
                                phoneNumber:
                                  $ref: '#/components/schemas/CustomerPhoneNumber'
                                emailAddress:
                                  $ref: '#/components/schemas/CustomerEmailAddress'
                                addressLine1:
                                  $ref: '#/components/schemas/CustomerAddressLine1'
                                city:
                                  $ref: '#/components/schemas/CustomerCity'
                                region:
                                  $ref: '#/components/schemas/CustomerRegion'
                                postalCode:
                                  $ref: '#/components/schemas/CustomerPostalCode'
                                country:
                                  $ref: '#/components/schemas/CustomerCountry'
                                ipAddress:
                                  $ref: '#/components/schemas/CustomerIpAddress'
                                shipping:
                                  $ref: >-
                                    #/components/schemas/CustomerShipping3DSecure
                            merchant:
                              $ref: '#/components/schemas/MerchantResponse'
                            transaction:
                              type: object
                              properties:
                                authSource:
                                  $ref: '#/components/schemas/TransactionAuthSource'
                                invoice:
                                  $ref: '#/components/schemas/TransactionInvoice'
                                responseCode:
                                  $ref: >-
                                    #/components/schemas/TransactionResponseCode3DSChallenge
                                retrievalReference:
                                  $ref: >-
                                    #/components/schemas/TransactionRetrievalReference
                            threeDSecure:
                              type: object
                              required:
                                - trxId
                              properties:
                                trxId:
                                  $ref: '#/components/schemas/ThreeDSecureTrxId'
                            redirectUrl:
                              $ref: '#/components/schemas/RedirectURL3DSResponse'
                            server:
                              $ref: '#/components/schemas/Server'
                        example:
                          dateTime: '2022-05-04T09:20:04.487-07:00'
                          amount:
                            tax: 15
                            total: 160
                          currencyCode: EUR
                          card:
                            entryMode: M
                            number: XXXXXXXXXXXX1119
                            present: 'N'
                            type: VS
                            token:
                              value: '8048471746471119'
                          customer:
                            firstName: John
                            lastName: Smith
                            addressLine1: 65 Easy St
                            city: Las Vegas
                            postalCode: '65144'
                            emailAddress: firstname.lastname@email.com
                            ipAddress: 63.57.84.101
                          merchant:
                            mid: 15877
                            name: Merchant XYZ
                          transaction:
                            authSource: A
                            invoice: '730518'
                            responseCode: G
                            retrievalReference: 402F9H0230S0
                          redirectUrl: https://issuer.com/challenge
                          server:
                            name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponse3DSecure'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /3dsecure/completion:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - 3D Secure
      summary: 3D Secure Completion
      operationId: 3dsecurecompletion
      security:
        - AccessToken: []
      description: >
        This endpoint is utilized to send the status of the device fingerprint.
        This must be sent whenever the response to the [3D Secure
        Standalone](/apis/payments-platform-rest/openapi/3d-secure/3dsecurestandalone)
        results in a device fingerprint required.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - transaction
                - threeDSecure
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                merchant:
                  $ref: '#/components/schemas/MerchantResponse'
                transaction:
                  type: object
                  required:
                    - invoice
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoice'
                threeDSecure:
                  type: object
                  required:
                    - trxId
                    - compInd
                  properties:
                    trxId:
                      $ref: '#/components/schemas/ThreeDSecureTrxId'
                    compInd:
                      $ref: '#/components/schemas/ThreeDSecureCompInd'
            example:
              dateTime: '2022-05-04T09:20:04.487-07:00'
              merchant:
                mid: 15877
                name: Merchant XYZ
              transaction:
                invoice: '730518'
              threeDSecure:
                trxId: a7bbd49a-ffe6-49b2-8a92-541f0a3b053d
                compInd: 'Y'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                oneOf:
                  - title: Transaction Complete
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          required:
                            - dateTime
                            - amount
                            - currencyCode
                            - card
                            - customer
                            - transaction
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            amount:
                              $ref: '#/components/schemas/Amount'
                            currencyCode:
                              $ref: '#/components/schemas/CurrencyCode'
                            card:
                              $ref: '#/components/schemas/CardResponse'
                            customer:
                              type: object
                              properties:
                                firstName:
                                  $ref: '#/components/schemas/CustomerFirstName'
                                lastName:
                                  $ref: '#/components/schemas/CustomerLastName'
                                phoneNumber:
                                  $ref: '#/components/schemas/CustomerPhoneNumber'
                                emailAddress:
                                  $ref: '#/components/schemas/CustomerEmailAddress'
                                addressLine1:
                                  $ref: '#/components/schemas/CustomerAddressLine1'
                                city:
                                  $ref: '#/components/schemas/CustomerCity'
                                region:
                                  $ref: '#/components/schemas/CustomerRegion'
                                postalCode:
                                  $ref: '#/components/schemas/CustomerPostalCode'
                                country:
                                  $ref: '#/components/schemas/CustomerCountry'
                                ipAddress:
                                  $ref: '#/components/schemas/CustomerIpAddress'
                            merchant:
                              $ref: '#/components/schemas/MerchantResponse'
                            transaction:
                              type: object
                              properties:
                                authorizationCode:
                                  $ref: >-
                                    #/components/schemas/TransactionAuthorizationCode
                                authSource:
                                  $ref: '#/components/schemas/TransactionAuthSource'
                                hostResponse:
                                  $ref: '#/components/schemas/HostResponse'
                                invoice:
                                  $ref: '#/components/schemas/TransactionInvoice'
                                responseCode:
                                  $ref: >-
                                    #/components/schemas/TransactionResponseCode3DSStandalone
                                retrievalReference:
                                  $ref: >-
                                    #/components/schemas/TransactionRetrievalReference
                                saleFlag:
                                  $ref: '#/components/schemas/TransactionSaleFlag'
                                avs:
                                  $ref: '#/components/schemas/AVS'
                                cardOnFile:
                                  $ref: '#/components/schemas/CardOnFile'
                            threeDSecure:
                              type: object
                              properties:
                                trxId:
                                  $ref: '#/components/schemas/ThreeDSecureTrxId'
                                cardholderInfo:
                                  $ref: >-
                                    #/components/schemas/ThreeDSecureCardholderInfo
                            receipt:
                              $ref: '#/components/schemas/ReceiptArray'
                            server:
                              $ref: '#/components/schemas/Server'
                            universalToken:
                              $ref: '#/components/schemas/UniversalToken'
                            cardBrandToken:
                              $ref: '#/components/schemas/CardBrandToken'
                        example:
                          dateTime: '2022-05-04T09:20:04.487-07:00'
                          amount:
                            tax: 15
                            total: 160
                          currencyCode: EUR
                          card:
                            entryMode: M
                            number: XXXXXXXXXXXX1119
                            present: 'N'
                            securityCode:
                              result: M
                              valid: 'Y'
                            token:
                              value: '8048471746471119'
                            type: VS
                          customer:
                            firstName: John
                            lastName: Smith
                            addressLine1: 65 Easy St
                            city: Las Vegas
                            postalCode: '65144'
                            emailAddress: firstname.lastname@email.com
                            ipAddress: 63.57.84.101
                          merchant:
                            mid: 15877
                            name: Merchant XYZ
                          server:
                            name: TM01CE
                          transaction:
                            authorizationCode: OK868Z
                            authSource: A
                            avs:
                              postalCodeVerified: 'N'
                              result: A
                              streetVerified: 'Y'
                              valid: 'Y'
                            invoice: '730518'
                            responseCode: A
                            retrievalReference: 402F9H0230S0
                            saleFlag: S
                          receipt:
                            - key: CardEntryMode
                              printName: ENTRY METHOD
                              printValue: KEYED
                            - key: MaskedPAN
                              printValue: XXXXXXXXXXXX1119
                            - key: SignatureRequired
                              printValue: 'Y'
                            - key: TransactionResponse
                              printName: Response
                              printValue: APPROVED
                  - title: 3D Secure Challenge
                    properties:
                      result:
                        type: array
                        items:
                          type: object
                          required:
                            - dateTime
                            - amount
                            - currencyCode
                            - card
                            - customer
                            - transaction
                            - threeDSecure
                            - redirectUrl
                          properties:
                            dateTime:
                              $ref: '#/components/schemas/DateTime'
                            amount:
                              $ref: '#/components/schemas/Amount'
                            currencyCode:
                              $ref: '#/components/schemas/CurrencyCode'
                            card:
                              $ref: '#/components/schemas/CardResponse3DSChallenge'
                            customer:
                              type: object
                              properties:
                                firstName:
                                  $ref: '#/components/schemas/CustomerFirstName'
                                lastName:
                                  $ref: '#/components/schemas/CustomerLastName'
                                phoneNumber:
                                  $ref: '#/components/schemas/CustomerPhoneNumber'
                                emailAddress:
                                  $ref: '#/components/schemas/CustomerEmailAddress'
                                addressLine1:
                                  $ref: '#/components/schemas/CustomerAddressLine1'
                                city:
                                  $ref: '#/components/schemas/CustomerCity'
                                region:
                                  $ref: '#/components/schemas/CustomerRegion'
                                postalCode:
                                  $ref: '#/components/schemas/CustomerPostalCode'
                                country:
                                  $ref: '#/components/schemas/CustomerCountry'
                                ipAddress:
                                  $ref: '#/components/schemas/CustomerIpAddress'
                            merchant:
                              $ref: '#/components/schemas/MerchantResponse'
                            transaction:
                              type: object
                              properties:
                                authSource:
                                  $ref: '#/components/schemas/TransactionAuthSource'
                                invoice:
                                  $ref: '#/components/schemas/TransactionInvoice'
                                responseCode:
                                  $ref: >-
                                    #/components/schemas/TransactionResponseCode3DSChallenge
                                retrievalReference:
                                  $ref: >-
                                    #/components/schemas/TransactionRetrievalReference
                                saleFlag:
                                  $ref: '#/components/schemas/TransactionSaleFlag'
                                cardOnFile:
                                  $ref: '#/components/schemas/CardOnFile'
                            threeDSecure:
                              type: object
                              required:
                                - trxId
                              properties:
                                trxId:
                                  $ref: '#/components/schemas/ThreeDSecureTrxId'
                            redirectUrl:
                              $ref: '#/components/schemas/RedirectURL3DSResponse'
                            server:
                              $ref: '#/components/schemas/Server'
                        example:
                          dateTime: '2022-05-04T09:20:04.487-07:00'
                          amount:
                            tax: 15
                            total: 160
                          currencyCode: EUR
                          card:
                            entryMode: M
                            number: XXXXXXXXXXXX1119
                            present: 'N'
                            type: VS
                            token:
                              value: '8048471746471119'
                          customer:
                            firstName: John
                            lastName: Smith
                            addressLine1: 65 Easy St
                            city: Las Vegas
                            postalCode: '65144'
                            emailAddress: firstname.lastname@email.com
                            ipAddress: 63.57.84.101
                          merchant:
                            mid: 15877
                            name: Merchant XYZ
                          transaction:
                            authSource: A
                            invoice: '730518'
                            responseCode: G
                            retrievalReference: 402F9H0230S0
                            saleFlag: S
                          threeDSecure:
                            trxId: a7bbd49a-ffe6-49b2-8a92-541f0a3b053d
                          redirectUrl: https://issuer.com/challenge
                          server:
                            name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponse3DSecure'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /oct/payout:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - OCT
      summary: OCT Payout
      operationId: octpayout
      security:
        - AccessToken: []
      description: >
        Used to process an original credit transaction to transfer funds from
        the merchant to the recipient.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/oct_payout_unencryptedcard'
                - $ref: '#/components/schemas/oct_payout_token_gtv'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: >
                            Object containing information regarding the amount
                            being requested. The `total` field within the object
                            is required and specifies the amount being
                            requested.
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                            fee:
                              $ref: '#/components/schemas/AmountFeeOCT'
                        card:
                          type: object
                          properties:
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                        customer:
                          type: object
                          properties:
                            firstName:
                              $ref: '#/components/schemas/CustomerFirstNameResponse'
                            lastName:
                              $ref: '#/components/schemas/CustomerLastNameResponse'
                            emailAddress:
                              $ref: '#/components/schemas/CustomerEmailAddress'
                            ipAddress:
                              $ref: '#/components/schemas/CustomerIpAddress'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            invoice:
                              $ref: >-
                                #/components/schemas/TransactionInvoiceAlphanumeric
                            responseCode:
                              type: string
                              minLength: 1
                              maxLength: 1
                              readOnly: true
                              example: A
                              enum:
                                - A
                                - D
                              description: >
                                Code indicating the Shift4 host
                                response.        


                                Value  | Description | Details

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

                                A      | Approved    | The transaction is
                                approved.

                                D      | Declined    | The transaction is
                                declined. 
                            hostResponse:
                              $ref: '#/components/schemas/HostResponseOCT'
                            retrievalReference:
                              $ref: >-
                                #/components/schemas/TransactionRetrievalReferenceOCT
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
              example:
                result:
                  - dateTime: '2021-04-15T09:18:23.283-07:00'
                    amount:
                      total: 160
                    card:
                      number: XXXXXXXXXXXX1119
                      type: VS
                      token:
                        value: '8048471746471119'
                    customer:
                      firstName: John
                      lastName: Smith
                      emailAddress: johnsmith@email.com
                      ipAddress: 63.57.84.101
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: TM01CE
                    transaction:
                      authSource: A
                      invoice: '192029'
                      responseCode: A
                      retrievalReference: ICTN-178768-233-79170-FUX
        '400':
          $ref: '#/components/responses/ErrorResponseOCT'
        '504':
          $ref: '#/components/responses/TimeoutResponseOCT'
  /oct/updaterecipient:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - OCT
      summary: OCT Update Recipient
      operationId: octupdaterecipient
      security:
        - AccessToken: []
      description: >
        Used to update the OCT recipient email address.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - customer
                - sourceIp
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                customer:
                  type: object
                  required:
                    - emailAddress
                    - newEmailAddress
                  properties:
                    emailAddress:
                      $ref: '#/components/schemas/CustomerEmailAddress'
                    newEmailAddress:
                      $ref: '#/components/schemas/CustomerNewEmailAddress'
                sourceIp:
                  $ref: '#/components/schemas/SourceIP'
            example:
              dateTime: '2021-04-15T09:18:23.283-07:00'
              sourceIp: 63.57.84.101
              customer:
                emailAddress: oldaddress@email.com
                newEmailAddress: newaddress@email.com
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        customer:
                          type: object
                          properties:
                            emailAddress:
                              $ref: '#/components/schemas/CustomerEmailAddress'
                            newEmailAddress:
                              $ref: '#/components/schemas/CustomerNewEmailAddress'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              type: string
                              minLength: 1
                              maxLength: 1
                              readOnly: true
                              example: A
                              enum:
                                - A
                              description: >
                                Code indicating the Shift4 host
                                response.        


                                Value  | Description | Details

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

                                A      | Approved    | The request is approved.
                        server:
                          $ref: '#/components/schemas/Server'
                example:
                  result:
                    - dateTime: '2022-05-10T06:34:25.049-07:00'
                      customer:
                        emailAddress: firstname.lastname@email.com
                        newEmailAddress: firstname.lastname@email.com
                      merchant:
                        mid: 15877
                        name: Merchant XYZ
                      transaction:
                        authSource: A
                        responseCode: A
                      server:
                        name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseOCT'
        '504':
          $ref: '#/components/responses/TimeoutResponseOCT'
  /ach/verify:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: ACH Verify
      operationId: achverify
      security:
        - AccessToken: []
      description: >
        Used to verify an ach bank account prior to sending an ACH sale/refund
        transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - dateTime
                - ach
                - sourceIp
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                ach:
                  type: object
                  required:
                    - accountNumber
                    - routingNumber
                    - accountType
                    - verificationType
                    - accountHolderName
                  properties:
                    accountNumber:
                      $ref: '#/components/schemas/ACHAccountNumber'
                    routingNumber:
                      $ref: '#/components/schemas/ACHRoutingNumber'
                    accountType:
                      $ref: '#/components/schemas/ACHAccountType'
                    verificationType:
                      $ref: '#/components/schemas/ACHVerificationTypePrenotification'
                    accountHolderName:
                      $ref: '#/components/schemas/ACHAccountHolderName'
                sourceIp:
                  $ref: '#/components/schemas/SourceIP'
                transaction:
                  type: object
                  properties:
                    vendorReference:
                      $ref: '#/components/schemas/TransactionVendorReference'
              example:
                dateTime: '2023-02-08T09:18:23.283-07:00'
                ach:
                  accountNumber: '1234567890'
                  routingNumber: '121000248'
                  accountType: PC
                  verificationType: P
                  accountHolderName: John Smith
                sourceIp: 172.110.166.244
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeACHPending
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        server:
                          $ref: '#/components/schemas/Server'
                example:
                  result:
                    - dateTime: '2023-02-08T09:18:23.283-07:00'
                      merchant:
                        mid: 15877
                        name: Merchant XYZ
                      token:
                        value: '9829283019231234'
                        type: ACH
                      transaction:
                        authSource: A
                        responseCode: P
                      notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                      server:
                        name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/sale:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: ACH Sale
      operationId: achsale
      security:
        - AccessToken: []
      description: >
        Used to process an ach sale transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ach_sale_bankaccount'
                - $ref: '#/components/schemas/ach_sale_token_gtv'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: >
                            Object containing information regarding the amount
                            being requested. The `total` field within the object
                            is required and specifies the amount being
                            requested.
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        ach:
                          type: object
                          properties:
                            balanceVerificationResult:
                              $ref: >-
                                #/components/schemas/ACHBalanceVerificationResult
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            invoice:
                              $ref: >-
                                #/components/schemas/TransactionInvoiceAlphanumeric
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACH'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    amount:
                      total: 135.87
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    token:
                      value: '9829283019231234'
                      type: ACH
                    ach:
                      balanceVerificationResult: VS
                    transaction:
                      authSource: A
                      invoice: '192029'
                      responseCode: P
                    notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/refund:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: ACH Refund
      operationId: achrefund
      security:
        - AccessToken: []
      description: >
        Used to process an ach refund transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ach_refund_bankaccount'
                - $ref: '#/components/schemas/ach_refund_token_gtv'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: >
                            Object containing information regarding the amount
                            being requested. The `total` field within the object
                            is required and specifies the amount being
                            requested.
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            invoice:
                              $ref: >-
                                #/components/schemas/TransactionInvoiceAlphanumeric
                            originalInvoice:
                              $ref: '#/components/schemas/TransactionOriginalInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACH'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
              example:
                result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    amount:
                      total: 135.87
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    token:
                      value: '9829283019231234'
                      type: ACH
                    transaction:
                      authSource: A
                      invoice: '192030'
                      originalInvoice: '192029'
                      responseCode: P
                    notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/status:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: ACH Status
      operationId: achstatus
      security:
        - AccessToken: []
      description: >
        Used to process an ach sale transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - transaction
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                transaction:
                  type: object
                  required:
                    - invoice
                  properties:
                    invoice:
                      $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: >
                            Object containing information regarding the amount
                            being requested. The `total` field within the object
                            is required and specifies the amount being
                            requested.
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            type:
                              $ref: '#/components/schemas/TransactionTypeACH'
                            invoice:
                              $ref: >-
                                #/components/schemas/TransactionInvoiceAlphanumeric
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACH'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                            hostResponse:
                              $ref: '#/components/schemas/HostResponseACH'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    amount:
                      total: 135.87
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    token:
                      value: '9829283019231234'
                      type: ACH
                    transaction:
                      authSource: A
                      type: S
                      invoice: '192029'
                      responseCode: P
                    notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/plaid/link_token/create:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: Create Plaid Link Token
      operationId: achplaidlinktokencreate
      security:
        - AccessToken: []
      description: >
        Used to create a Plaid Link token to use with the Plaid Link UI.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - plaid
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                plaid:
                  type: object
                  required:
                    - client_user_id
                  properties:
                    client_user_id:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenClientUserId'
                    language:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenLanguage'
                    redirectUrl:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenRedirectUrl'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeACHPlaidLinkToken
                        plaid:
                          type: object
                          properties:
                            link_token:
                              $ref: '#/components/schemas/ACHPlaidLinkToken'
                            expiration:
                              $ref: '#/components/schemas/ACHPlaidLinkTokenExpiration'
                            client_user_id:
                              $ref: >-
                                #/components/schemas/ACHPlaidLinkTokenClientUserId
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    transaction:
                      authSource: A
                      responseCode: S
                    plaid:
                      link_token: link-sandbox-bea285c1-ad79-4191-8d1b-aaf537f7df59
                      expiration: '2023-02-13T21:00:25Z'
                      client_user_id: ae1a59fe-8646-4637-bbb8-d270856c508c
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/plaid/public_token/exchange:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - ACH
      summary: Plaid Public Token Exchange
      operationId: achplaidpublictokenexchange
      security:
        - AccessToken: []
      description: >
        Used to create a Plaid Link token to use with the Plaid Link UI.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - ach
                - plaid
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                ach:
                  type: object
                  required:
                    - accountHolderName
                  properties:
                    accountHolderName:
                      $ref: '#/components/schemas/ACHAccountHolderName'
                plaid:
                  type: object
                  required:
                    - public_token
                    - metadata
                  properties:
                    public_token:
                      $ref: '#/components/schemas/ACHPlaidPublicToken'
                    metadata:
                      $ref: '#/components/schemas/ACHPlaidPublicTokenMetadata'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: >-
                                #/components/schemas/TransactionResponseCodeACHPlaidPublicTokenExchange
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        ach:
                          type: object
                          properties:
                            accountLastFour:
                              $ref: '#/components/schemas/ACHAccountNumberLastFour'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    transaction:
                      authSource: A
                      responseCode: A
                    notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                    ach:
                      accountLastFour: '7890'
                    token:
                      value: '9829283019231234'
                      type: ACH
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /updater/request:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - Updater
      summary: Account Update
      operationId: updaterrequest
      security:
        - AccessToken: []
      description: >
        This function is used to request an account update for a set of tokens.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - cards
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                cards:
                  type: array
                  minItems: 1
                  maxItems: 5000
                  description: |
                    Array of card tokens
                  items:
                    type: object
                    required:
                      - token
                    properties:
                      token:
                        description: >
                          The token representing the card account number for
                          which you are requesting an update.
                        type: string
                        maxLength: 16
                  example:
                    - token: '8589410119524356'
                    - token: '8048471746471119'
                    - token: '8589410119529857'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        updaterRequestId:
                          $ref: '#/components/schemas/UpdaterRequestId'
        '400':
          $ref: '#/components/responses/ErrorResponseUpdater'
        '504':
          $ref: '#/components/responses/TimeoutResponseUpdater'
  /updater/status:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - Updater
      summary: Account Update Status
      operationId: updaterstatus
      security:
        - AccessToken: []
      description: >
        This function is used to request a status update to a previous [Account
        Update](/apis/payments-platform-rest/openapi/updater/updaterrequest)
        request for a set of tokens.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - dateTime
                - updaterRequestId
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                updaterRequestId:
                  $ref: '#/components/schemas/UpdaterRequestId'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        cards:
                          type: array
                          description: |
                            Array of card tokens
                          items:
                            type: object
                            properties:
                              token:
                                $ref: '#/components/schemas/UpdaterToken'
                              status:
                                $ref: '#/components/schemas/UpdaterCardsStatus'
                              expirationDate:
                                $ref: '#/components/schemas/UpdaterExpirationDate'
                              newExpirationDate:
                                $ref: '#/components/schemas/UpdaterNewExpirationDate'
                              newToken:
                                $ref: '#/components/schemas/UpdaterNewToken'
                          example:
                            - token: '8589410119524356'
                              status: A
                              expirationDate: '0824'
                              newToken: '8589410119524357'
                            - token: '8048471746471119'
                              status: B
                              expirationDate: '0925'
                              newExpirationDate: '1026'
                            - token: '8589410119529857'
                              status: E
                              expirationDate: '1024'
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        server:
                          $ref: '#/components/schemas/Server'
                        updaterRequestId:
                          $ref: '#/components/schemas/UpdaterRequestId'
                        updaterStatus:
                          $ref: '#/components/schemas/UpdaterStatus'
        '400':
          $ref: '#/components/responses/ErrorResponseUpdater'
        '504':
          $ref: '#/components/responses/TimeoutResponseUpdater'
  /dcc/ratelookup:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - DCC
      summary: DCC Rate Lookup
      operationId: dccratelookup
      security:
        - AccessToken: []
      description: >
        Used to look up the dynamic currency conversion rate.

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/dcc_ratelookup_token_gtv'
                - $ref: '#/components/schemas/dcc_ratelookup_token_legacy'
                - $ref: '#/components/schemas/dcc_ratelookup_p2pe_idtech'
                - $ref: '#/components/schemas/dcc_ratelookup_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/dcc_ratelookup_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/dcc_ratelookup_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/dcc_ratelookup_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/dcc_ratelookup_unencryptedcard'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          $ref: '#/components/schemas/AmountTotalOnly'
                        card:
                          type: object
                          properties:
                            expirationDate:
                              $ref: '#/components/schemas/CardExpirationDateResponse'
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            securityCode:
                              $ref: '#/components/schemas/CardSecurityCodeResponse'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                        dcc:
                          $ref: '#/components/schemas/DCCResponse'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2024-07-09T09:18:23.283-07:00'
                    amount:
                      total: 160
                    card:
                      number: XXXXXXXXXXXX1119
                      token:
                        value: '8048471746471119'
                    dcc:
                      rateTimeStamp: '2024-07-09T09:18:25.875-07:00'
                      currencyCode: CAD
                      foreignAmount: 180.23
                      conversionRate: '1.35'
                      marginPercentage: '9.73'
                      currencyMinorUnits: 2
                      transactionId: 1A2820D2G334
                      diffOverEcb: '2.85'
                      displayUnit: 2
                      provider: GLOBAL_BLUE
                      supportIndicator: '0'
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /rule/verify:
    servers:
      - url: https://api.shift4test.com/api/rest/v1
        description: Host Direct Test URL
      - url: https://api.shift4api.net/api/rest/v1
        description: Host Direct Production URL
    post:
      tags:
        - Rule
      summary: Rule Verification
      operationId: ruleverify
      security:
        - AccessToken: []
      description: >
        Used to check for various processing rules such as surcharge
        eligibility.

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for
        more details on the various JSON body formats.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/rules_verify_token_gtv'
                - $ref: '#/components/schemas/rules_verify_p2pe_idtech'
                - $ref: '#/components/schemas/rules_verify_p2pe_tdesdukpt_emv'
                - $ref: '#/components/schemas/rules_verify_p2pe_tdesdukpt_msr'
                - $ref: '#/components/schemas/rules_verify_p2pe_onguardsde_emv'
                - $ref: '#/components/schemas/rules_verify_p2pe_onguardsde_msr'
                - $ref: '#/components/schemas/rules_verify_unencryptedcard'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          properties:
                            total:
                              type: number
                              maxLength: 14
                              description: >
                                The total amount being charged for a particular
                                transaction.


                                If the `ruleCheck` array contained `SURCHARGE`
                                in the request and the card is surcharge
                                eligible the `amount.total` value will be
                                incremented by the `amount.surcharge` value. For
                                example, if the rule verification request had
                                `amount.total = 100` and the
                                `surcharge.percentage` was 1.5%, the rule
                                verification response would include
                                `amount.total = 101.50` and `amount.surcharge =
                                1.50`
                            surcharge:
                              type: number
                              maxLength: 14
                              description: >
                                **Conditional: Returned if the `ruleCheck` array
                                contained `SURCHARGE` in the request and the
                                card is surcharge eligible.**


                                The surcharge fee amount that can be applied to
                                the transaction. The fee amount is also added
                                into `amount.total`. For example, if the rule
                                verification request had `amount.total = 100`
                                and the `surcharge.percentage` was 1.5%, the
                                rule verification response would include
                                `amount.total = 101.50` and `amount.surcharge =
                                1.50`
                        card:
                          type: object
                          properties:
                            number:
                              $ref: '#/components/schemas/CardMaskedNumber'
                            token:
                              $ref: '#/components/schemas/CardTokenResponse'
                            type:
                              $ref: '#/components/schemas/CardTypeResp'
                        surcharge:
                          type: object
                          description: >
                            Returned if the `ruleCheck` array contained
                            `SURCHARGE` in the request.
                          properties:
                            result:
                              $ref: '#/components/schemas/SurchargeResult'
                            transactionId:
                              $ref: '#/components/schemas/RulesTransactionId'
                            percentage:
                              $ref: '#/components/schemas/SurchargePercentage'
                        transaction:
                          type: object
                          properties:
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoice'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSource'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        clerk:
                          $ref: '#/components/schemas/ClerkOptional'
                        currencyCode:
                          $ref: '#/components/schemas/CurrencyCode'
                        universalToken:
                          $ref: '#/components/schemas/UniversalToken'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                  - dateTime: '2024-05-21T09:18:23.283-07:00'
                    amount:
                      total: 163.2
                      surcharge: 3.2
                    card:
                      number: XXXXXXXXXXXX1119
                      token:
                        value: '8048471746471119'
                      type: VS
                    surcharge:
                      result: P
                      transactionId: string
                      percentage: 2
                    transaction:
                      invoice: '0510093358'
                      vendorReference: 12382-01
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /paymentlinks/create:
    post:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Payment Links
      summary: Create Link
      operationId: paymentslinkcreate
      security:
        - AccessToken: []
      description: >
        Used to send out a link via the Payment Links system


        Set `paymentLink.type` to choose the flow:

        - `line_items` (default) — a standard payment flow. Provide the products
        in `paymentLink.lineItems`.

        - `card_verification` — performs a $0 authorization to confirm the card
        is valid and save it on file **without** charging it. These links take
        **no** `lineItems`, but **require** `paymentLink.currency` and a
        `customer` (a new inline customer or an existing one referenced by
        `id`).

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - paymentLink
              properties:
                paymentLink:
                  $ref: '#/components/schemas/PaymentLinkRequest'
                customer:
                  $ref: '#/components/schemas/PaymentLinksCustomer'
                metadata:
                  $ref: '#/components/schemas/PaymentLinksMetadata'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        paymentLink:
                          $ref: '#/components/schemas/PaymentLinkResponse'
                        customer:
                          $ref: '#/components/schemas/PaymentLinksCustomerResponse'
                        metadata:
                          $ref: '#/components/schemas/PaymentLinksMetadata'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /paymentlinks/list:
    get:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Payment Links
      summary: List Links
      operationId: paymentslinklist
      security:
        - AccessToken: []
      description: >
        Used to retrieve a list of links via the Payment Links system

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/PaymentLinksLimit'
        - $ref: '#/components/parameters/PaymentLinksStartingAfterId'
        - $ref: '#/components/parameters/PaymentLinksEndingBeforeId'
        - $ref: '#/components/parameters/PaymentLinksDateTimeAfter'
        - $ref: '#/components/parameters/PaymentLinksDateTimeBefore'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  hasMore:
                    $ref: '#/components/schemas/PaymentLinksHasMore'
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        paymentLink:
                          $ref: '#/components/schemas/PaymentLinkResponse'
                        customer:
                          $ref: '#/components/schemas/PaymentLinksCustomerResponse'
                        metadata:
                          $ref: '#/components/schemas/PaymentLinksMetadata'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /paymentlinks/retrieve:
    get:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Payment Links
      summary: Retrieve Link
      operationId: paymentslinkretrieve
      security:
        - AccessToken: []
      description: >
        Used to retrieve a single link via the Payment Links system

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/PaymentLinksId'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        paymentLink:
                          $ref: '#/components/schemas/PaymentLinkResponse'
                        customer:
                          $ref: '#/components/schemas/PaymentLinksCustomerResponse'
                        metadata:
                          $ref: '#/components/schemas/PaymentLinksMetadata'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /paymentlinks/update:
    post:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Payment Links
      summary: Update Link
      operationId: paymentslinkupdate
      security:
        - AccessToken: []
      description: >
        Used to update an existing payment link.

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/PaymentLinksId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                paymentLink:
                  $ref: '#/components/schemas/PaymentLinkUpdateRequest'
                metadata:
                  $ref: '#/components/schemas/PaymentLinksMetadata'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        paymentLink:
                          $ref: '#/components/schemas/PaymentLinkResponse'
                        customer:
                          $ref: '#/components/schemas/PaymentLinksCustomerResponse'
                        metadata:
                          $ref: '#/components/schemas/PaymentLinksMetadata'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /checkoutsessions/list:
    get:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Checkout Sessions
      summary: List Checkout Sessions
      operationId: checkoutsessionslist
      security:
        - AccessToken: []
      description: >
        Used to retrieve a list of checkout sessions via the Payment Links
        system

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/PaymentLinksLimit'
        - $ref: '#/components/parameters/PaymentLinksStartingAfterId'
        - $ref: '#/components/parameters/PaymentLinksEndingBeforeId'
        - $ref: '#/components/parameters/PaymentLinksDateTimeAfter'
        - $ref: '#/components/parameters/PaymentLinksDateTimeBefore'
        - $ref: '#/components/parameters/PaymentLinksIdOptional'
        - $ref: '#/components/parameters/CheckoutSessionsStatus'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  hasMore:
                    $ref: '#/components/schemas/PaymentLinksHasMore'
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        paymentLink:
                          type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/PaymentLinkId'
                        checkoutSession:
                          $ref: '#/components/schemas/CheckoutSessionResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
  /checkoutsessions/retrieve:
    get:
      servers:
        - url: https://api.shift4.com/api/rest/v1
          description: Host Direct URL
      tags:
        - Checkout Sessions
      summary: Retrieve Checkout Session
      operationId: checkoutsessionsretrieve
      security:
        - AccessToken: []
      description: >
        Used to retrieve a single checkout session via the Payment Links system

         **Integration Methods:**
        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods)
        and [URLs Section](/guides/quickstart#urls) sections of the Development
        Quick Start guide for details regarding each processing option.
      parameters:
        - $ref: '#/components/parameters/InterfaceVersion'
        - $ref: '#/components/parameters/InterfaceName'
        - $ref: '#/components/parameters/CompanyName'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/CheckoutSessionsId'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/PaymentLinksDateTime'
                        checkoutSession:
                          $ref: '#/components/schemas/CheckoutSessionResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '504':
          $ref: '#/components/responses/TimeoutResponse'
webhooks:
  ach-notification:
    post:
      tags:
        - ACH
      summary: Notification
      description: >
        This is an outbound HTTP POST message from the Shift4 gateway to the
        merchant's environment that provides status of the ach request. This
        notification request will be sent from Shift4 to the URL provided in the
        merchant's boarding configuration.


        This requires the interface vendor to establish a listening service to
        receive these requests.
      operationId: achnotification
      security:
        - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/webhook_ach_verification_status_update'
                - $ref: '#/components/schemas/webhook_ach_sale_status_update'
                - $ref: '#/components/schemas/webhook_ach_refund_status_update'
                - $ref: '#/components/schemas/webhook_ach_dispute_initiated'
                - $ref: '#/components/schemas/webhook_ach_dispute_status_update'
                - $ref: '#/components/schemas/webhook_ach_distribute_status_update'
      responses:
        '200':
          description: >
            Return 200 status to indicate that the Notification was received
            successfully.
  paymentlinks-notification:
    post:
      servers:
        - url: https://api.merchant.com
      tags:
        - Payment Links
      summary: Payment Links Notification
      description: >
        This is an outbound HTTP POST message from the Shift4 gateway to the
        merchant's environment that provides a status of the Payment Links
        request. This notification request will be sent from Shift4 to the URL
        provided in the merchant's boarding configuration.


        This requires the interface vendor to establish a listening service to
        receive these requests.
      operationId: paymentlinksnotification
      security:
        - {}
      requestBody:
        content:
          application/json:
            schema:
              properties:
                event:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - payment_link_created
                        - payment_link_updated
                      description: >
                        Occurs when the status of the Payment Links request is
                        updated.


                        | Value                | Description                   
                        |

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

                        | payment_link_created | Payment Link has been created.
                        |

                        | payment_link_updated | Payment Link has been updated.
                        |
                dateTime:
                  $ref: '#/components/schemas/PaymentLinksDateTime'
                paymentLink:
                  $ref: '#/components/schemas/PaymentLinkResponse'
                customer:
                  $ref: '#/components/schemas/PaymentLinksCustomerResponse'
                metadata:
                  $ref: '#/components/schemas/PaymentLinksMetadata'
      responses:
        '200':
          description: >
            Return 200 status to indicate that the Notification was received
            successfully.
  checkoutsessions-notification:
    post:
      servers:
        - url: https://api.merchant.com
      tags:
        - Checkout Sessions
      summary: Checkout Sessions Notification
      description: >
        This is an outbound HTTP POST message from the Shift4 gateway to the
        merchant's environment that provides a status of the checkout session.
        This notification request will be sent from Shift4 to the URL provided
        in the merchant's boarding configuration.


        This requires the interface vendor to establish a listening service to
        receive these requests.
      operationId: checkoutsessionsnotification
      security:
        - {}
      requestBody:
        content:
          application/json:
            schema:
              properties:
                event:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - checkout_session_completed
                      description: >
                        Occurs when the status of the Checkout Session is
                        updated.


                        | Value                                   |
                        Description                                       |

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

                        | checkout_session_completed              | Checkout
                        session has been completed.              |
                dateTime:
                  $ref: '#/components/schemas/PaymentLinksDateTime'
                paymentLink:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/PaymentLinkId'
                checkoutSession:
                  $ref: '#/components/schemas/CheckoutSessionResponse'
      responses:
        '200':
          description: >
            Return 200 status to indicate that the Notification was received
            successfully.
