---
title: "Checkout an atomic order"
method: POST
path: "/v3/merchants/{mId}/atomic_order/checkouts"
tags: ["ORDERS"]
---

# Checkout an atomic order

`POST /v3/merchants/{mId}/atomic_order/checkouts`

**Description** Builds an order. This includes calculating totals, taxes, discounts, and service charges and then displaying the summary information. The response includes order cart information, the order total, and taxes.<br> 
 **Note:** Clover has revoked the limitations of non-Clover inventory items and ad-hoc line items from the create an atomic order endpoint. You can now use the endpoint to create orders, such as create custom orders.<br> 
 **Tutorial:** [Manage orders data](https://docs.clover.com/v3/docs/working-with-orders).

## Path parameters

- `mId` string, required

## Headers

- `User-Agent` string, required

## Request body

- object
  - `orderCart` object — Order cart to put items, discounts, modifications and order-related information
    - `id` string — Unique identifier
    - `currency` string — Currency of this order. For example, USD
    - `title` string
    - `note` string — Arbitrary string with information about this order, may be printed on the order receipt and displayed in apps.
    - `clientCreatedTime` integer — Time at which the client created this order.
    - `serviceCharge` object — Optional service charge (gratuity) applied to this order.
      - `id` string — Unique identifier
      - `name` string — Service charge name
      - `enabled` boolean — Indicates if this service charge is enabled.
      - `percentage` integer — Deprecated use percentage decimal instead.
      - `percentageDecimal` integer — Percent to charge times 10000, for example, 12.5% will be 125000.
      - `isAutoApplied` boolean — Indicates service charge was auto applied or not.
    - `discounts` object[] — Amount or percentage discounts applied to the order subtotal. To retrieve discounts applied to individual items, use the Get all line items for an order endpoint with the discounts field expanded (v3/merchants/{mId}/orders/{orderId}/line_items?expand=discounts).
      - `id` string — Unique identifier
      - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
        - `id` string — Unique identifier.
      - `approver` object — The person that authorized a discount
        - `id` string — Unique identifier.
      - `name` string, required — Name of the discount
      - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
      - `percentage` integer — Discount amount in percent
    - `lineItems` object[] — Line items associated with this order
      - `id` string — Unique identifier.
      - `item` object — A reference to the inventory item that was used to create this line item. Note that since this a reference the item can be changed and deleted any time such that it no longer matches this line item.
        - `id` string — Unique identifier.
      - `colorCode` string — Hex code representation of the color assigned to item in the form of #fff, #ffffff, or #ffffffff. Note that item color can be changed and deleted any time such that it no longer matches this line item
      - `name` string — Line item name.
      - `alternateName` string — Alternate name of the line item.
      - `price` integer — Price of the item, typically in cents of merchant currency. When unit quantity is not null then this is the price for a single unit and is not the complete price.
      - `priceWithModifiers` integer — Price of item after adding all modifications. This is used only for reporting.
      - `priceWithModifiersAndItemAndOrderDiscounts` integer — Price of item after adding all modifications and subtracting all line item and order level discounts. This is used only for reporting.
      - `unitQty` integer — This is applicable only if the item is priced by quantity of a unit. The item must have a priceType of PER_UNIT. The value is a fixed-point integer with scaling factor of 1000 (e.g. if charging per ounce, the value should be set to 2500 for 2.5 ounces). To compute the complete price perform the following calculation: PRICE * (UNIT QTY / 1000). If the item doesn’t have a priceType of PER_UNIT, then unitQty is ignored.
      - `unitName` string — Unit name (e.g. oz, lb, etc) if priced by unit, otherwise null.
      - `itemCode` string
      - `note` string
      - `printed` boolean — True if this line item has been printed out on an order printer at least once already.
      - `exchangedLineItem` object
        - `id` string — Unique identifier.
      - `binName` string
      - `userData` string
      - `createdTime` integer
      - `orderClientCreatedTime` integer
      - `discounts` object[] — List of discounts applied to the line item. Each line item on an order may have zero or more percentage or amount discounts. Line item discounts are separate from order-level discounts (which are applied to the order subtotal).
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `orderLevelDiscounts` object[] — List of order level discounts attributed to this line item. Amounts are rounded to the nearest penny. This is for reporting purposes only. These rounding approximates are not used when calculating the transaction.
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `discountAmount` integer — Unnamed fixed discount amount in cents. Or, in reporting, this may be the calculated sum of all the line item discounts.
      - `orderLevelDiscountAmount` integer — The calculated sum of order level discounts attributed, approximately to the nearest cent, to this the line item. This is only used in reporting.
      - `exchanged` boolean
      - `modifications` object[] — List of references to modifications applied to this line item.
        - `id` string
        - `name` string — the name of the modifier when it was applied
        - `alternateName` string
        - `amount` integer — the additional cost of the modifier when it was applied
        - `modifier` object — The modifier object. Values from the Modifier are copied to the Modification at the time that the order is placed. Modifier values may change after the modification is created.
          - `id` string — Unique identifier
          - `name` string — Name of the modifier
          - `alternateName` string — Alternate name of the modifier
          - `available` boolean — True if this modifier is available across all channels
          - `price` integer — Additional cost when used
          - `modifierGroup` object
            - `id` string — Unique identifier.
        - `quantitySold` integer — This is only used in reports. The count of how many of these modifiers that were sold.
      - `tags` object[] — List of tags associated with this line item.
        - `id` string — Unique identifier
        - `name` string, required — Tag name
        - `showInReporting` boolean — True if tag is a summary label in the reporting app
        - `items` object[] — Items associated with this tag
          - `id` string — Unique identifier.
        - `printers` object[] — Printers associated with this tag
          - `id` string — Unique identifier.
      - `refunded` boolean — True if this line item has been refunded
      - `refund` object — direct item refund
        - `id` string — Unique identifier of the refund.
        - `orderRef` object — Reference number of the order with which the refund is associated.
          - `id` string — Unique identifier.
        - `device` object — Device which processed the transaction for this refund, a 128-bit UUID, not a normal base-13 Clover ID.
          - `id` string — Unique identifier.
        - `amount` integer — Total amount refunded, including tax and tip
        - `taxAmount` integer — Tax amount refunded.
        - `tipAmount` integer — Tip amount refunded.
        - `createdTime` integer — Time when the refund was recorded on the server.
        - `clientCreatedTime` integer — Time when the refund was recorded on the client.
        - `gatewayProcessingTime` integer — Time when the refund was processed by the payment gateway.
        - `payment` object — Payment with which the refund is associated.
          - `id` string — Unique identifier.
        - `employee` object
          - `id` string — Unique identifier.
        - `lineItems` object[]
          - `id` string — Unique identifier.
        - `overrideMerchantTender` object — Tender type associated with this payment, for example, credit card, cash, and so on.
          - `id` string — Unique identifier.
          - `editable` boolean — If this merchant tender is editable.
          - `labelKey` string — Label Key.
          - `label` string — Label Key.
          - `opensCashDrawer` boolean — Indicates that tender is opening the cash drawer.
          - `supportsTipping` boolean — Allow tipping on payment from tender.
          - `enabled` boolean — Indicates that merchant tender is enabled.
          - `visible` boolean — Indicates that merchant tender is visible.
          - `instructions` string — Instructions for how to process tender.
        - `taxableAmountRates` object[]
          - `id` string — Tax rate identifier.
          - `name` string — Tax rate name. This field is optional.
          - `taxableAmount` integer — Sub-total of line items on which the tax was based. For value-added tax (VAT), this amount includes the tax. For all others, this amount does not include tax.
          - `rate` integer — Tax rate. 100% = 1e7 or 1 followed by 7 zeros.
          - `isVat` boolean — Whether the taxable amount includes tax.
          - `taxAmount` integer — The amount of tax collected. In cases where there are multiple payments for an order then it may be necessary to add an extra cent of tax to the last payment.
          - `transactionRef` object — The refund with which the tax rate is associated.
            - `id` string — Unique identifier.
        - `serviceChargeAmount` object
          - `id` string — Service charge identifier.
          - `name` string — Indicates the name of the service charge applicable.
          - `amount` integer — Amount of the service charge.
        - `additionalCharges` object[]
          - `id` string — Additional charge identifier.
          - `amount` integer — Amount of the additional charge.
          - `rate` integer — Percent rate of the additional charge times 10000.
          - `type` 'INTERAC' | 'CREDIT_SURCHARGE' | 'CONVENIENCE_FEE' | 'INTERAC_V2' | 'DELIVERY_FEE' — Type of the additional charge.
        - `attributes` object — Indicates the attributes if any.
          - `default` string — Indicates the default value of attributes.
        - `germanInfo` object — German region-specific information.
          - `cardTrack2` string
          - `cardSequenceNumber` string
          - `transactionCaseGermany` string
          - `transactionTypeGermany` string
          - `terminalID` string
          - `traceNumber` string
          - `oldTraceNumber` string
          - `receiptNumber` string
          - `transactionAID` string
          - `transactionMSApp` string
          - `transactionScriptResults` string
          - `receiptType` string
          - `customerTransactionDOLValues` string
          - `merchantTransactionDOLValues` string
          - `merchantJournalDOL` string
          - `merchantJournalDOLValues` string
          - `configMerchantId` string
          - `configProductLabel` string
          - `hostResponseAidParBMP53` string
          - `hostResponsePrintDataBM60` string
          - `sepaElvReceiptFormat` string
          - `sepaElvExtAppLabel` string
          - `sepaElvPreNotification` string
          - `sepaElvMandate` string
          - `sepaElvCreditorId` string
          - `sepaElvMandateId` string
          - `sepaElvIban` string
        - `appTracking` object — Tracking information for the app that created this refund.
          - `developerAppId` string — Uuid from the developer application. This is typically populated and used only on the back end.
          - `applicationName` string — Name of the developer application.
          - `applicationID` string — String representing an application.
          - `applicationVersion` string — String representing a semanticversion. See http://semver.org/
          - `sourceSDK` string — String representing a SDK.
          - `sourceSDKVersion` string — String representing a SDK. See http://semver.org/
        - `voided` boolean — Indicates voided information.
        - `voidReason` string — Indicates reason of voided.
        - `cardTransaction` object — Information about the card used for credit or debit card refunds
          - `cardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Type of card used for the transaction.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Indicates the type of entry made for the card. For example: swiped, vaulted, scanned, and so on.
          - `first6` string — First 6-digits of the card number.
          - `last4` string — Last 4-digits of the card number.
          - `type` 'AUTH' | 'PREAUTH' | 'PREAUTHCAPTURE' | 'ADJUST' | 'VOID' | 'VOIDRETURN' | 'RETURN' | 'REFUND' | 'NAKEDREFUND' | 'GETBALANCE' | 'BATCHCLOSE' | 'ACTIVATE' | 'BALANCE_LOCK' | 'LOAD' | 'CASHOUT' | 'CASHOUT_ACTIVE_STATUS' | 'REDEMPTION' | 'REDEMPTION_UNLOCK' | 'RELOAD' | 'CASH_ADVANCE' | 'VOID_CREDIT' | 'REFUND_CREDIT' | 'INTERNET_ACTIVATE' | 'TOKEN_REQUEST' | 'VERIFICATION' — Indicates the type of transaction used by the card.
          - `authCode` string — Indicates the authorization code if successful.
          - `referenceId` string — Card transaction reference identifier.
          - `transactionNo` string — Card transaction number.
          - `state` 'PENDING' | 'CLOSED' — Indicates the status of the transaction.
          - `extra` object — Indicates extra information to be stored as part of gateway/card transaction.
            - `default` string — Indiactes any default message that will be appeared.
          - `begBalance` integer — Indicates the available balance in the card.
          - `endBalance` integer — Indicates the remaining balance in the card.
          - `avsResult` 'SUCCESS' | 'ZIP_CODE_MATCH' | 'ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED' | 'ADDRESS_MATCH' | 'ADDRESS_MATCH_ZIP_NOT_CHECKED' | 'NEITHER_MATCH' | 'SERVICE_FAILURE' | 'SERVICE_UNAVAILABLE' | 'NOT_CHECKED' | 'ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED' | 'ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED' — Indicates the status of the transaction.
          - `cardholderName` string — Indicates the card holder name for which payment is to be made.
          - `token` string — Indicates the token number of the card.
          - `vaultedCard` object — Vaulted card which can be used for subsequent transactions.
            - `first6` string, required — First 6-digits of the vaulted card.
            - `last4` string, required — Last 4-digits of the vaulted card.
            - `cardholderName` string — Card holder name of the vaulted card.
            - `expirationDate` string — Expiry date of the vaulted card.
            - `token` string — Token number of the vaulted card.
          - `gatewayTxState` 'INITIATED' | 'INITIATED_ON_AUTH' | 'ACKNOWLEDGED' | 'CONNECT_FAILED' | 'TIMEOUT' | 'FAILED' | 'REVERSE_INITIATED' | 'REVERSE_INITIATED_ON_AUTH' | 'REVERSED' | 'REVERSAL_FAILED' | 'EXTERNAL' — The state as currently recorded. This differs from the legacy 'state' field. The legacy 'state' field is calculated from the 'type' field and whether the transaction was captured.
          - `currency` string — Currency code.
          - `captured` boolean — Indicates whether the transaction was captured by the gateway or not.
          - `debitRefund` object — Indicates refund parameters required for debit card refunds.
            - `debitTransactionRouteInd` string — Route of the the payment transaction.
            - `isDebitTransactionRefundable` boolean — True, if debitTransactionRouteInd is C, else, its determined by the EDS entitlement rule for D/S
        - `transactionInfo` object — Transaction information.
          - `languageIndicator` string — 2 character language used for the transaction. Deprecated in factor of transactionLocale.
          - `transactionLocale` string — Locale for the transaction (e.g. en-CA)
          - `accountSelection` 'CREDIT' | 'DEBIT' | 'CHECKING' | 'SAVINGS' — Type of account.
          - `fiscalInvoiceNumber` string — Consists of 4-digits prefix + 8-digits.
          - `installmentsQuantity` integer — Indicates number of installments.
          - `installmentsPlanCode` string — Indicates plan in the alpha numuric code.
          - `installmentsPlanId` string — Indicates selected plan identifier.
          - `installmentsPlanDesc` string — Indicates selected plan desc.
          - `cardTypeLabel` string — Card type label.
          - `cardSymbol` string — Card Symbol for identify in payment_card_config table.
          - `stan` integer — STAN(System Audit Trace Number).
          - `identityDocument` object — Customers identification number and type.
            - `id` string — Unique identifier.
            - `type` string — Type of personal identification: National Document, Passport, etc
            - `number` string — Identification number.
            - `createdTime` integer — Created timestamp.
            - `modifiedTime` integer — Modified timestamp.
            - `deletedTime` integer — Deleted timestamp.
            - `payment` object
              - …
          - `batchNumber` string — Indicates transaction Batch number.
          - `receiptNumber` string — Indicates transaction Receipt number.
          - `reversalStanRefNum` string — Reversal STAN (STAN(system audit trace number) ref number.
          - `reversalStan` integer — STAN for reversal.
          - `reversalMac` string — MAC for reversal.
          - `reversalMacKsn` string — MAC KSN for reversal.
          - `terminalIdentification` string — Designates the unique location of a terminal at a merchant.
          - `externalTerminalId` string — Main internal identifier of terminal which should be the same across all Fiserv’s components.
          - `merchantIdentifier` string — When concatenated with the Acquirer Identifier, uniquely identifies a given merchant.
          - `merchantNameLocation` string — Indicates the name and location of the merchant.
          - `maskedTrack2` string — Masked track2 data.
          - `receiptExtraData` string — Extra data for receipt.
          - `selectedService` 'NONE' | 'PAYMENT' | 'REFUND' | 'CANCELLATION' | 'PRE_AUTH' | 'UPDATE_PRE_AUTH' | 'PAYMENT_COMPLETION' | 'CASH_ADVANCE' | 'DEFERRED_PAYMENT' | 'DEFERRED_PAYMENT_COMPLETION' | 'VOICE_AUTHORISATION' | 'CARDHOLDER_DETECTION' | 'TOKEN_REQUEST' | 'VERIFICATION' — Defines the Financial Service selected for the transaction.
          - `transactionResult` 'APPROVED' | 'DECLINED' | 'ABORTED' | 'VOICE_AUTHORISATION' | 'PAYMENT_PART_ONLY' | 'PARTIALLY_APPROVED' | 'NONE' — Result of the transaction.
          - `transactionTags` string — Contains a hex string with needed TLV tags for certification.
          - `txFormat` 'DEFAULT' | 'NEXO' — Contains the information how the data inside transactionTags should be coded - initially we cause default and nexo as formats.
          - `panMask` string — Contains the information how the PAN should masked.
          - `transactionSequenceCounter` string — Counter maintained by the terminal that is incremented for each transaction at the beginning of the Perform Service function.
          - `applicationPanSequenceNumber` string — Identifies and differentiates cards with the same PAN.
          - `reversalReason` 'CHIP_DECLINE' | 'CARDHOLDER_CANCELLATION' | 'COMMUNICATION_ERROR' | 'OTHER_REASON' — Contains the reason why the transaction should be reversed in the host. It has to be mapped in server with the expected value by the corresponding gateway.
          - `isTokenBasedTx` boolean — Boolean to determine if the transaction done using a vaulted card is a token based transaction.
          - `origTransactionSequenceCounter` string — For reversal and capture transactions, this contains the reference (transactionSequenceCounter) to the originating transaction.
          - `transactionSequenceCounterUpdate` string — This field is populated when the TSC of a terminal is out of sync and is provided with an update.
          - `emergencyFlag` boolean — Boolean value defining if the corresponding TX was performed in NEXO emergency mode according NEXO IS Spec chapter 10.2.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — This field contains the entry type of a transaction.
          - `promotionalMessage` object
            - `message` string — Indicates promotion message.
            - `showOnMerchantReceipt` boolean — Indicates whether message should be displayed on the merchant receipt or not. Value: True False.
            - `showOnCustomerReceipt` boolean — Indicates whether message should be displayed on the customer receipt or not. Value: True False.
            - `showOnDisplay` boolean — Indicates whether message should be displayed on the disply or not. Value: True False.
          - `sepaElvTransactionInfo` object
            - `receiptFormat` string — Value of tag E1.DF8206 from NEXO config.
            - `extAppLabel` string — Value of tag E6.DF8211 or E6.DF8212 (Online or Offline TX printout).
            - `preNotification` string — Value of tag E6.DF8214 info form NEXO config.
            - `mandate` string — Value of tag E6.DF8215 info from NEXO config.
            - `creditorId` string — Value of tag E6.DF8216 info from NEXO config.
            - `mandateId` string — Generated by SPA according to ELV – TBD: use Trace number instead of receipt number.
            - `iban` string — Received in ICC related data from IPG (tag 5F53).
            - `isMerchantForced` boolean — Defines if the corresponding SEPA ELV TX was forced by the merchant (override defined limit)
          - `clientCardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Client card type should be used only limited purpose only and should not be confused with cardType in other objects. This is a read only field and must not to be overwritten on server or client once set on client. This is set on client only for MSR tx for now as the AIDs are not identified for MSR. For few MSR tx, the card type was identified incorrectly on client side, and also on server side based on the bin match. In order to get the correct card types, this client card type will be sent to the server
          - `explicitlySelectedApp` string — The app explicitly selected by the customer via the choice button.
          - `isSepaElv` boolean — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `cardEntryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `printMessages` object[]
            - `destination` 'CUSTOMER_DISPLAY' | 'CUSTOMER_RECEIPT' | 'CUSTOMER_RECEIPT_AID_PARAM' | 'MERCHANT_DISPLAY' | 'MERCHANT_RECEIPT' | 'MERCHANT_RECEIPT_AID_PARAM' — Destination for the message CDSP - CustomerDisplay, CRCP - CustomerReceipt/AidParam, MDSP - MerchantDisplay, MRCP - MerchantReceipt/AidParam
            - `content` string — Contains the display and/or print message text from gateway.
        - `merchant` object
          - `id` string — Unique identifier.
        - `externalReferenceId` string — External reference identifier, if associated with the refund.
        - `authCode` string — Authorization code generated by the acquirer.
        - `status` 'FAIL' | 'SUCCESS' | 'PENDING' — Status of the refund. It can be Fail/Success/Pending.
        - `oceanGatewayInfo` object — India-region specific Ocean Gateway information.
          - `tranSource` string — This field contains transaction source returned from Ocean as part of notification for a transaction.
          - `tranChannel` string — This field contains LPM type information returned from Ocean as part of notification for a transaction.
          - `transactionType` string — This field contains transaction type information returned from Ocean as part of notification for a transaction.
          - `merchantId` string — This field contains MerchantId returned from Ocean as part of notification for a transaction.
          - `terminalId` string — This field contains TerminalId returned from Ocean as part of notification for a transaction.
          - `tenderType` string — This field contains tender type information returned from Ocean as part of notification for a transaction.
          - `entryMethod` string — This field contains the entry method returned from Ocean as part of notification for a transaction.
          - `transactionAmount` string — This field contains the transaction amount returned from Ocean as part of notification for a transaction.
          - `transactionCurrency` string — This field contains the transaction currency returned from Ocean as part of notification for a transaction.
          - `fpTransactionId` string — This field contains the ocean generated transaction Id for a transaction.
          - `merchantTxnId` string — This field contains the payment reference id provided by clover for a transaction.
          - `fpRefundTransactionId` string — This field contains the refund transaction id returned from Ocean for a transaction.
          - `transactionStatus` string — This field contains the transaction status returned from Ocean as part of notification for a transaction.
          - `transactionStatusDescription` string — This field contains the transaction status description returned from Ocean as part of notification for a transaction.
          - `rrn` string — This field contains rrn number (reference provided by bank) returned from Ocean as part of notification for a transaction.
          - `batchNo` string — This field contains batch number returned from Ocean as part of notification for a transaction.
          - `invoiceNo` string — This field contains invoice number returned from Ocean as part of notification for a transaction.
          - `cardScheme` string — This field contains Customer LPM information returned from Ocean as part of notification for a transaction.
          - `qrType` string — This field contains qr tpe either static or dynamic information returned from Ocean as part of notification for a transaction.
          - `transactionDateTime` string — This field contains transaction completion date information returned from Ocean as part of notification for a transaction.
          - `authCode` string — This field contains authorization Code returned from Ocean as part of notification for a transaction.
          - `pan` string — This field contains pan information like masked virtual payment address,vehicle info,userId returned from Ocean as part of notification for a transaction.
          - `customerMobile` string — This field contains customer mobile info returned from Ocean as part of notification for a transaction.
          - `customerName` string — This field contains customer name returned from Ocean as part of notification for a transaction.
          - `customerRemarks` string — This field contains customer remarks returned from Ocean as part of notification for a transaction.
          - `bankName` string — This field contains name of the bank returned from Ocean as part of notification for a transaction.
          - `bankCode` string — This field contains bank code returned from Ocean as part of notification for a transaction.
          - `emiDetails` object — This field indicates the EMI details of a customer returned from Ocean as part of notification for a transaction.
            - `lenderName` string — This field contains the equated monthly installment (EMI) lender name.
            - `tenure` string — This field contains total EMI tenure.
            - `interestRate` string — This field contains interest rate charged as part of EMI.
            - `interest` string — This field contains interest amount charged as part of EMI.
            - `emiAmount` string — This field contains EMI amount per month.
            - `lenderLoanId` string — This field contains lender loan id for the EMI.
            - `fees` string — This field contains processing fee charged for EMI.
            - `discountAmount` string — This field contains discount amount provided for EMI.
            - `offerCashback` string — This field contains offer cashback amount provided for EMI.
            - `tranAmount` string — This field contains total transaction amount.
            - `totalPayable` string — This field contains total payable amount which is total EMI with interest.
        - `reason` string — Reason why the refund initiated.
      - `isRevenue` boolean — True if this item should be counted as revenue, for example gift cards and donations would not.
      - `taxRates` object[] — Tax rates that apply to this line item
        - `id` string
        - `name` string, required
        - `taxType` 'VAT_TAXABLE' | 'VAT_NON_TAXABLE' | 'VAT_EXEMPT' | 'INTERNAL_TAX' | 'PARTNER_TAX' — Tax type used in Argentina.
        - `rate` integer — For percentage based discounts like sales tax
        - `isDefault` boolean
        - `items` object[] — Items associated with this tax rate
          - `id` string — Unique identifier.
        - `taxAmount` integer — For a flat tax like recycling redemption fee, expressed as number of cents
        - `deletedTime` integer — Timestamp when tax rate was last deleted
        - `modifiedTime` integer — Timestamp when tax rate was last modified
      - `payments` object[] — Payments that apply to this line item
        - `id` string — Line item unique identifier.
        - `percentage` integer — Percent of the line item covered by the payment.
        - `binName` string — Bank identification number (BIN) indicating the financial institution for line item.
        - `refunded` boolean — Indicates payment is refunded.
      - `revenueAmount` integer — Revenue collected for this. This field is only used in reporting.
      - `quantitySold` number — Quantity sold for this line item. This field is only used in reporting
      - `printGroup` object — Optional reference to the print group that this line item belongs to.
        - `id` string — Unique identifier.
    - `orderType` object
      - `id` string — Unique identifier
      - `labelKey` string — Label Key
      - `label` string — Label Key
      - `taxable` boolean — If this order type is taxable
      - `isDefault` boolean — If this order type is the default
      - `filterCategories` boolean — If set to false, then this order type includes all of the merchant's categories. Otherwise, it only contains the categories defined in the "categories" field on this object.
      - `isHidden` boolean — If this order type is hidden on the Register
      - `fee` integer — The price of a fee added to this order type, not fully implemented at this time.
      - `minOrderAmount` integer — The minimum amount required for an order to be placed
      - `maxOrderAmount` integer — The maximum amount for an order allowed
      - `maxRadius` integer — The maximum radius allowed for an order (i.e. delivery)
      - `avgOrderTime` integer — The average time it takes to complete the order
      - `hoursAvailable` 'ALL' | 'BUSINESS' | 'CUSTOM'
      - `customerIdMethod` 'NAME' | 'TABLE' | 'NAME_TABLE'
      - `isDeleted` boolean — If this order type is deleted
      - `systemOrderTypeId` string — Optional system order type that this order type is associated with.
      - `hours` object — The hours this order type is available (if they differ from normal merchant hours)
        - `id` string — Unique identifier
        - `name` string — Friendly name to describe the hours.
        - `reference` object
          - `id` string — Unique identifier.
        - `sunday` object[]
          - `start` integer, required
          - `end` integer, required
        - `monday` object[]
          - `start` integer, required
          - `end` integer, required
        - `tuesday` object[]
          - `start` integer, required
          - `end` integer, required
        - `wednesday` object[]
          - `start` integer, required
          - `end` integer, required
        - `thursday` object[]
          - `start` integer, required
          - `end` integer, required
        - `friday` object[]
          - `start` integer, required
          - `end` integer, required
        - `saturday` object[]
          - `start` integer, required
          - `end` integer, required
      - `categories` object[] — The categories of items that can be assigned to this order type
        - `id` string — Unique identifier.
    - `merchant` object
      - `id` string — Unique identifier.
    - `groupLineItems` boolean — Whether similar line items should be grouped together on the receipt that this order generates. Item "similarity" is based on items having matching values for a set of properties including price, modifiers, and discounts.

## Response `200`

Successful response. Order is checked out.

- object
  - `orderCart` object — The order cart to put items, discounts, modifications and order-related information
    - `id` string — Unique identifier
    - `currency` string — Currency of this order. For example, USD
    - `title` string
    - `note` string — Arbitrary string with information about this order, may be printed on the order receipt and displayed in apps.
    - `clientCreatedTime` integer — Time at which the client created this order.
    - `serviceCharge` object — Optional service charge (gratuity) applied to this order.
      - `id` string — Unique identifier
      - `name` string — Service charge name
      - `enabled` boolean — Indicates if this service charge is enabled.
      - `percentage` integer — Deprecated use percentage decimal instead.
      - `percentageDecimal` integer — Percent to charge times 10000, for example, 12.5% will be 125000.
      - `isAutoApplied` boolean — Indicates service charge was auto applied or not.
    - `discounts` object[] — Amount or percentage discounts applied to the order subtotal. To retrieve discounts applied to individual items, use the Get all line items for an order endpoint with the discounts field expanded (v3/merchants/{mId}/orders/{orderId}/line_items?expand=discounts).
      - `id` string — Unique identifier
      - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
        - `id` string — Unique identifier.
      - `approver` object — The person that authorized a discount
        - `id` string — Unique identifier.
      - `name` string, required — Name of the discount
      - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
      - `percentage` integer — Discount amount in percent
    - `lineItems` object[] — Line items associated with this order
      - `id` string — Unique identifier.
      - `item` object — A reference to the inventory item that was used to create this line item. Note that since this a reference the item can be changed and deleted any time such that it no longer matches this line item.
        - `id` string — Unique identifier.
      - `colorCode` string — Hex code representation of the color assigned to item in the form of #fff, #ffffff, or #ffffffff. Note that item color can be changed and deleted any time such that it no longer matches this line item
      - `name` string — Line item name.
      - `alternateName` string — Alternate name of the line item.
      - `price` integer — Price of the item, typically in cents of merchant currency. When unit quantity is not null then this is the price for a single unit and is not the complete price.
      - `priceWithModifiers` integer — Price of item after adding all modifications. This is used only for reporting.
      - `priceWithModifiersAndItemAndOrderDiscounts` integer — Price of item after adding all modifications and subtracting all line item and order level discounts. This is used only for reporting.
      - `unitQty` integer — This is applicable only if the item is priced by quantity of a unit. The item must have a priceType of PER_UNIT. The value is a fixed-point integer with scaling factor of 1000 (e.g. if charging per ounce, the value should be set to 2500 for 2.5 ounces). To compute the complete price perform the following calculation: PRICE * (UNIT QTY / 1000). If the item doesn’t have a priceType of PER_UNIT, then unitQty is ignored.
      - `unitName` string — Unit name (e.g. oz, lb, etc) if priced by unit, otherwise null.
      - `itemCode` string
      - `note` string
      - `printed` boolean — True if this line item has been printed out on an order printer at least once already.
      - `exchangedLineItem` object
        - `id` string — Unique identifier.
      - `binName` string
      - `userData` string
      - `createdTime` integer
      - `orderClientCreatedTime` integer
      - `discounts` object[] — List of discounts applied to the line item. Each line item on an order may have zero or more percentage or amount discounts. Line item discounts are separate from order-level discounts (which are applied to the order subtotal).
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `orderLevelDiscounts` object[] — List of order level discounts attributed to this line item. Amounts are rounded to the nearest penny. This is for reporting purposes only. These rounding approximates are not used when calculating the transaction.
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `discountAmount` integer — Unnamed fixed discount amount in cents. Or, in reporting, this may be the calculated sum of all the line item discounts.
      - `orderLevelDiscountAmount` integer — The calculated sum of order level discounts attributed, approximately to the nearest cent, to this the line item. This is only used in reporting.
      - `exchanged` boolean
      - `modifications` object[] — List of references to modifications applied to this line item.
        - `id` string
        - `name` string — the name of the modifier when it was applied
        - `alternateName` string
        - `amount` integer — the additional cost of the modifier when it was applied
        - `modifier` object — The modifier object. Values from the Modifier are copied to the Modification at the time that the order is placed. Modifier values may change after the modification is created.
          - `id` string — Unique identifier
          - `name` string — Name of the modifier
          - `alternateName` string — Alternate name of the modifier
          - `available` boolean — True if this modifier is available across all channels
          - `price` integer — Additional cost when used
          - `modifierGroup` object
            - `id` string — Unique identifier.
        - `quantitySold` integer — This is only used in reports. The count of how many of these modifiers that were sold.
      - `tags` object[] — List of tags associated with this line item.
        - `id` string — Unique identifier
        - `name` string, required — Tag name
        - `showInReporting` boolean — True if tag is a summary label in the reporting app
        - `items` object[] — Items associated with this tag
          - `id` string — Unique identifier.
        - `printers` object[] — Printers associated with this tag
          - `id` string — Unique identifier.
      - `refunded` boolean — True if this line item has been refunded
      - `refund` object — direct item refund
        - `id` string — Unique identifier of the refund.
        - `orderRef` object — Reference number of the order with which the refund is associated.
          - `id` string — Unique identifier.
        - `device` object — Device which processed the transaction for this refund, a 128-bit UUID, not a normal base-13 Clover ID.
          - `id` string — Unique identifier.
        - `amount` integer — Total amount refunded, including tax and tip
        - `taxAmount` integer — Tax amount refunded.
        - `tipAmount` integer — Tip amount refunded.
        - `createdTime` integer — Time when the refund was recorded on the server.
        - `clientCreatedTime` integer — Time when the refund was recorded on the client.
        - `gatewayProcessingTime` integer — Time when the refund was processed by the payment gateway.
        - `payment` object — Payment with which the refund is associated.
          - `id` string — Unique identifier.
        - `employee` object
          - `id` string — Unique identifier.
        - `lineItems` object[]
          - `id` string — Unique identifier.
        - `overrideMerchantTender` object — Tender type associated with this payment, for example, credit card, cash, and so on.
          - `id` string — Unique identifier.
          - `editable` boolean — If this merchant tender is editable.
          - `labelKey` string — Label Key.
          - `label` string — Label Key.
          - `opensCashDrawer` boolean — Indicates that tender is opening the cash drawer.
          - `supportsTipping` boolean — Allow tipping on payment from tender.
          - `enabled` boolean — Indicates that merchant tender is enabled.
          - `visible` boolean — Indicates that merchant tender is visible.
          - `instructions` string — Instructions for how to process tender.
        - `taxableAmountRates` object[]
          - `id` string — Tax rate identifier.
          - `name` string — Tax rate name. This field is optional.
          - `taxableAmount` integer — Sub-total of line items on which the tax was based. For value-added tax (VAT), this amount includes the tax. For all others, this amount does not include tax.
          - `rate` integer — Tax rate. 100% = 1e7 or 1 followed by 7 zeros.
          - `isVat` boolean — Whether the taxable amount includes tax.
          - `taxAmount` integer — The amount of tax collected. In cases where there are multiple payments for an order then it may be necessary to add an extra cent of tax to the last payment.
          - `transactionRef` object — The refund with which the tax rate is associated.
            - `id` string — Unique identifier.
        - `serviceChargeAmount` object
          - `id` string — Service charge identifier.
          - `name` string — Indicates the name of the service charge applicable.
          - `amount` integer — Amount of the service charge.
        - `additionalCharges` object[]
          - `id` string — Additional charge identifier.
          - `amount` integer — Amount of the additional charge.
          - `rate` integer — Percent rate of the additional charge times 10000.
          - `type` 'INTERAC' | 'CREDIT_SURCHARGE' | 'CONVENIENCE_FEE' | 'INTERAC_V2' | 'DELIVERY_FEE' — Type of the additional charge.
        - `attributes` object — Indicates the attributes if any.
          - `default` string — Indicates the default value of attributes.
        - `germanInfo` object — German region-specific information.
          - `cardTrack2` string
          - `cardSequenceNumber` string
          - `transactionCaseGermany` string
          - `transactionTypeGermany` string
          - `terminalID` string
          - `traceNumber` string
          - `oldTraceNumber` string
          - `receiptNumber` string
          - `transactionAID` string
          - `transactionMSApp` string
          - `transactionScriptResults` string
          - `receiptType` string
          - `customerTransactionDOLValues` string
          - `merchantTransactionDOLValues` string
          - `merchantJournalDOL` string
          - `merchantJournalDOLValues` string
          - `configMerchantId` string
          - `configProductLabel` string
          - `hostResponseAidParBMP53` string
          - `hostResponsePrintDataBM60` string
          - `sepaElvReceiptFormat` string
          - `sepaElvExtAppLabel` string
          - `sepaElvPreNotification` string
          - `sepaElvMandate` string
          - `sepaElvCreditorId` string
          - `sepaElvMandateId` string
          - `sepaElvIban` string
        - `appTracking` object — Tracking information for the app that created this refund.
          - `developerAppId` string — Uuid from the developer application. This is typically populated and used only on the back end.
          - `applicationName` string — Name of the developer application.
          - `applicationID` string — String representing an application.
          - `applicationVersion` string — String representing a semanticversion. See http://semver.org/
          - `sourceSDK` string — String representing a SDK.
          - `sourceSDKVersion` string — String representing a SDK. See http://semver.org/
        - `voided` boolean — Indicates voided information.
        - `voidReason` string — Indicates reason of voided.
        - `cardTransaction` object — Information about the card used for credit or debit card refunds
          - `cardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Type of card used for the transaction.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Indicates the type of entry made for the card. For example: swiped, vaulted, scanned, and so on.
          - `first6` string — First 6-digits of the card number.
          - `last4` string — Last 4-digits of the card number.
          - `type` 'AUTH' | 'PREAUTH' | 'PREAUTHCAPTURE' | 'ADJUST' | 'VOID' | 'VOIDRETURN' | 'RETURN' | 'REFUND' | 'NAKEDREFUND' | 'GETBALANCE' | 'BATCHCLOSE' | 'ACTIVATE' | 'BALANCE_LOCK' | 'LOAD' | 'CASHOUT' | 'CASHOUT_ACTIVE_STATUS' | 'REDEMPTION' | 'REDEMPTION_UNLOCK' | 'RELOAD' | 'CASH_ADVANCE' | 'VOID_CREDIT' | 'REFUND_CREDIT' | 'INTERNET_ACTIVATE' | 'TOKEN_REQUEST' | 'VERIFICATION' — Indicates the type of transaction used by the card.
          - `authCode` string — Indicates the authorization code if successful.
          - `referenceId` string — Card transaction reference identifier.
          - `transactionNo` string — Card transaction number.
          - `state` 'PENDING' | 'CLOSED' — Indicates the status of the transaction.
          - `extra` object — Indicates extra information to be stored as part of gateway/card transaction.
            - `default` string — Indiactes any default message that will be appeared.
          - `begBalance` integer — Indicates the available balance in the card.
          - `endBalance` integer — Indicates the remaining balance in the card.
          - `avsResult` 'SUCCESS' | 'ZIP_CODE_MATCH' | 'ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED' | 'ADDRESS_MATCH' | 'ADDRESS_MATCH_ZIP_NOT_CHECKED' | 'NEITHER_MATCH' | 'SERVICE_FAILURE' | 'SERVICE_UNAVAILABLE' | 'NOT_CHECKED' | 'ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED' | 'ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED' — Indicates the status of the transaction.
          - `cardholderName` string — Indicates the card holder name for which payment is to be made.
          - `token` string — Indicates the token number of the card.
          - `vaultedCard` object — Vaulted card which can be used for subsequent transactions.
            - `first6` string, required — First 6-digits of the vaulted card.
            - `last4` string, required — Last 4-digits of the vaulted card.
            - `cardholderName` string — Card holder name of the vaulted card.
            - `expirationDate` string — Expiry date of the vaulted card.
            - `token` string — Token number of the vaulted card.
          - `gatewayTxState` 'INITIATED' | 'INITIATED_ON_AUTH' | 'ACKNOWLEDGED' | 'CONNECT_FAILED' | 'TIMEOUT' | 'FAILED' | 'REVERSE_INITIATED' | 'REVERSE_INITIATED_ON_AUTH' | 'REVERSED' | 'REVERSAL_FAILED' | 'EXTERNAL' — The state as currently recorded. This differs from the legacy 'state' field. The legacy 'state' field is calculated from the 'type' field and whether the transaction was captured.
          - `currency` string — Currency code.
          - `captured` boolean — Indicates whether the transaction was captured by the gateway or not.
          - `debitRefund` object — Indicates refund parameters required for debit card refunds.
            - `debitTransactionRouteInd` string — Route of the the payment transaction.
            - `isDebitTransactionRefundable` boolean — True, if debitTransactionRouteInd is C, else, its determined by the EDS entitlement rule for D/S
        - `transactionInfo` object — Transaction information.
          - `languageIndicator` string — 2 character language used for the transaction. Deprecated in factor of transactionLocale.
          - `transactionLocale` string — Locale for the transaction (e.g. en-CA)
          - `accountSelection` 'CREDIT' | 'DEBIT' | 'CHECKING' | 'SAVINGS' — Type of account.
          - `fiscalInvoiceNumber` string — Consists of 4-digits prefix + 8-digits.
          - `installmentsQuantity` integer — Indicates number of installments.
          - `installmentsPlanCode` string — Indicates plan in the alpha numuric code.
          - `installmentsPlanId` string — Indicates selected plan identifier.
          - `installmentsPlanDesc` string — Indicates selected plan desc.
          - `cardTypeLabel` string — Card type label.
          - `cardSymbol` string — Card Symbol for identify in payment_card_config table.
          - `stan` integer — STAN(System Audit Trace Number).
          - `identityDocument` object — Customers identification number and type.
            - `id` string — Unique identifier.
            - `type` string — Type of personal identification: National Document, Passport, etc
            - `number` string — Identification number.
            - `createdTime` integer — Created timestamp.
            - `modifiedTime` integer — Modified timestamp.
            - `deletedTime` integer — Deleted timestamp.
            - `payment` object
              - …
          - `batchNumber` string — Indicates transaction Batch number.
          - `receiptNumber` string — Indicates transaction Receipt number.
          - `reversalStanRefNum` string — Reversal STAN (STAN(system audit trace number) ref number.
          - `reversalStan` integer — STAN for reversal.
          - `reversalMac` string — MAC for reversal.
          - `reversalMacKsn` string — MAC KSN for reversal.
          - `terminalIdentification` string — Designates the unique location of a terminal at a merchant.
          - `externalTerminalId` string — Main internal identifier of terminal which should be the same across all Fiserv’s components.
          - `merchantIdentifier` string — When concatenated with the Acquirer Identifier, uniquely identifies a given merchant.
          - `merchantNameLocation` string — Indicates the name and location of the merchant.
          - `maskedTrack2` string — Masked track2 data.
          - `receiptExtraData` string — Extra data for receipt.
          - `selectedService` 'NONE' | 'PAYMENT' | 'REFUND' | 'CANCELLATION' | 'PRE_AUTH' | 'UPDATE_PRE_AUTH' | 'PAYMENT_COMPLETION' | 'CASH_ADVANCE' | 'DEFERRED_PAYMENT' | 'DEFERRED_PAYMENT_COMPLETION' | 'VOICE_AUTHORISATION' | 'CARDHOLDER_DETECTION' | 'TOKEN_REQUEST' | 'VERIFICATION' — Defines the Financial Service selected for the transaction.
          - `transactionResult` 'APPROVED' | 'DECLINED' | 'ABORTED' | 'VOICE_AUTHORISATION' | 'PAYMENT_PART_ONLY' | 'PARTIALLY_APPROVED' | 'NONE' — Result of the transaction.
          - `transactionTags` string — Contains a hex string with needed TLV tags for certification.
          - `txFormat` 'DEFAULT' | 'NEXO' — Contains the information how the data inside transactionTags should be coded - initially we cause default and nexo as formats.
          - `panMask` string — Contains the information how the PAN should masked.
          - `transactionSequenceCounter` string — Counter maintained by the terminal that is incremented for each transaction at the beginning of the Perform Service function.
          - `applicationPanSequenceNumber` string — Identifies and differentiates cards with the same PAN.
          - `reversalReason` 'CHIP_DECLINE' | 'CARDHOLDER_CANCELLATION' | 'COMMUNICATION_ERROR' | 'OTHER_REASON' — Contains the reason why the transaction should be reversed in the host. It has to be mapped in server with the expected value by the corresponding gateway.
          - `isTokenBasedTx` boolean — Boolean to determine if the transaction done using a vaulted card is a token based transaction.
          - `origTransactionSequenceCounter` string — For reversal and capture transactions, this contains the reference (transactionSequenceCounter) to the originating transaction.
          - `transactionSequenceCounterUpdate` string — This field is populated when the TSC of a terminal is out of sync and is provided with an update.
          - `emergencyFlag` boolean — Boolean value defining if the corresponding TX was performed in NEXO emergency mode according NEXO IS Spec chapter 10.2.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — This field contains the entry type of a transaction.
          - `promotionalMessage` object
            - `message` string — Indicates promotion message.
            - `showOnMerchantReceipt` boolean — Indicates whether message should be displayed on the merchant receipt or not. Value: True False.
            - `showOnCustomerReceipt` boolean — Indicates whether message should be displayed on the customer receipt or not. Value: True False.
            - `showOnDisplay` boolean — Indicates whether message should be displayed on the disply or not. Value: True False.
          - `sepaElvTransactionInfo` object
            - `receiptFormat` string — Value of tag E1.DF8206 from NEXO config.
            - `extAppLabel` string — Value of tag E6.DF8211 or E6.DF8212 (Online or Offline TX printout).
            - `preNotification` string — Value of tag E6.DF8214 info form NEXO config.
            - `mandate` string — Value of tag E6.DF8215 info from NEXO config.
            - `creditorId` string — Value of tag E6.DF8216 info from NEXO config.
            - `mandateId` string — Generated by SPA according to ELV – TBD: use Trace number instead of receipt number.
            - `iban` string — Received in ICC related data from IPG (tag 5F53).
            - `isMerchantForced` boolean — Defines if the corresponding SEPA ELV TX was forced by the merchant (override defined limit)
          - `clientCardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Client card type should be used only limited purpose only and should not be confused with cardType in other objects. This is a read only field and must not to be overwritten on server or client once set on client. This is set on client only for MSR tx for now as the AIDs are not identified for MSR. For few MSR tx, the card type was identified incorrectly on client side, and also on server side based on the bin match. In order to get the correct card types, this client card type will be sent to the server
          - `explicitlySelectedApp` string — The app explicitly selected by the customer via the choice button.
          - `isSepaElv` boolean — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `cardEntryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `printMessages` object[]
            - `destination` 'CUSTOMER_DISPLAY' | 'CUSTOMER_RECEIPT' | 'CUSTOMER_RECEIPT_AID_PARAM' | 'MERCHANT_DISPLAY' | 'MERCHANT_RECEIPT' | 'MERCHANT_RECEIPT_AID_PARAM' — Destination for the message CDSP - CustomerDisplay, CRCP - CustomerReceipt/AidParam, MDSP - MerchantDisplay, MRCP - MerchantReceipt/AidParam
            - `content` string — Contains the display and/or print message text from gateway.
        - `merchant` object
          - `id` string — Unique identifier.
        - `externalReferenceId` string — External reference identifier, if associated with the refund.
        - `authCode` string — Authorization code generated by the acquirer.
        - `status` 'FAIL' | 'SUCCESS' | 'PENDING' — Status of the refund. It can be Fail/Success/Pending.
        - `oceanGatewayInfo` object — India-region specific Ocean Gateway information.
          - `tranSource` string — This field contains transaction source returned from Ocean as part of notification for a transaction.
          - `tranChannel` string — This field contains LPM type information returned from Ocean as part of notification for a transaction.
          - `transactionType` string — This field contains transaction type information returned from Ocean as part of notification for a transaction.
          - `merchantId` string — This field contains MerchantId returned from Ocean as part of notification for a transaction.
          - `terminalId` string — This field contains TerminalId returned from Ocean as part of notification for a transaction.
          - `tenderType` string — This field contains tender type information returned from Ocean as part of notification for a transaction.
          - `entryMethod` string — This field contains the entry method returned from Ocean as part of notification for a transaction.
          - `transactionAmount` string — This field contains the transaction amount returned from Ocean as part of notification for a transaction.
          - `transactionCurrency` string — This field contains the transaction currency returned from Ocean as part of notification for a transaction.
          - `fpTransactionId` string — This field contains the ocean generated transaction Id for a transaction.
          - `merchantTxnId` string — This field contains the payment reference id provided by clover for a transaction.
          - `fpRefundTransactionId` string — This field contains the refund transaction id returned from Ocean for a transaction.
          - `transactionStatus` string — This field contains the transaction status returned from Ocean as part of notification for a transaction.
          - `transactionStatusDescription` string — This field contains the transaction status description returned from Ocean as part of notification for a transaction.
          - `rrn` string — This field contains rrn number (reference provided by bank) returned from Ocean as part of notification for a transaction.
          - `batchNo` string — This field contains batch number returned from Ocean as part of notification for a transaction.
          - `invoiceNo` string — This field contains invoice number returned from Ocean as part of notification for a transaction.
          - `cardScheme` string — This field contains Customer LPM information returned from Ocean as part of notification for a transaction.
          - `qrType` string — This field contains qr tpe either static or dynamic information returned from Ocean as part of notification for a transaction.
          - `transactionDateTime` string — This field contains transaction completion date information returned from Ocean as part of notification for a transaction.
          - `authCode` string — This field contains authorization Code returned from Ocean as part of notification for a transaction.
          - `pan` string — This field contains pan information like masked virtual payment address,vehicle info,userId returned from Ocean as part of notification for a transaction.
          - `customerMobile` string — This field contains customer mobile info returned from Ocean as part of notification for a transaction.
          - `customerName` string — This field contains customer name returned from Ocean as part of notification for a transaction.
          - `customerRemarks` string — This field contains customer remarks returned from Ocean as part of notification for a transaction.
          - `bankName` string — This field contains name of the bank returned from Ocean as part of notification for a transaction.
          - `bankCode` string — This field contains bank code returned from Ocean as part of notification for a transaction.
          - `emiDetails` object — This field indicates the EMI details of a customer returned from Ocean as part of notification for a transaction.
            - `lenderName` string — This field contains the equated monthly installment (EMI) lender name.
            - `tenure` string — This field contains total EMI tenure.
            - `interestRate` string — This field contains interest rate charged as part of EMI.
            - `interest` string — This field contains interest amount charged as part of EMI.
            - `emiAmount` string — This field contains EMI amount per month.
            - `lenderLoanId` string — This field contains lender loan id for the EMI.
            - `fees` string — This field contains processing fee charged for EMI.
            - `discountAmount` string — This field contains discount amount provided for EMI.
            - `offerCashback` string — This field contains offer cashback amount provided for EMI.
            - `tranAmount` string — This field contains total transaction amount.
            - `totalPayable` string — This field contains total payable amount which is total EMI with interest.
        - `reason` string — Reason why the refund initiated.
      - `isRevenue` boolean — True if this item should be counted as revenue, for example gift cards and donations would not.
      - `taxRates` object[] — Tax rates that apply to this line item
        - `id` string
        - `name` string, required
        - `taxType` 'VAT_TAXABLE' | 'VAT_NON_TAXABLE' | 'VAT_EXEMPT' | 'INTERNAL_TAX' | 'PARTNER_TAX' — Tax type used in Argentina.
        - `rate` integer — For percentage based discounts like sales tax
        - `isDefault` boolean
        - `items` object[] — Items associated with this tax rate
          - `id` string — Unique identifier.
        - `taxAmount` integer — For a flat tax like recycling redemption fee, expressed as number of cents
        - `deletedTime` integer — Timestamp when tax rate was last deleted
        - `modifiedTime` integer — Timestamp when tax rate was last modified
      - `payments` object[] — Payments that apply to this line item
        - `id` string — Line item unique identifier.
        - `percentage` integer — Percent of the line item covered by the payment.
        - `binName` string — Bank identification number (BIN) indicating the financial institution for line item.
        - `refunded` boolean — Indicates payment is refunded.
      - `revenueAmount` integer — Revenue collected for this. This field is only used in reporting.
      - `quantitySold` number — Quantity sold for this line item. This field is only used in reporting
      - `printGroup` object — Optional reference to the print group that this line item belongs to.
        - `id` string — Unique identifier.
    - `orderType` object
      - `id` string — Unique identifier
      - `labelKey` string — Label Key
      - `label` string — Label Key
      - `taxable` boolean — If this order type is taxable
      - `isDefault` boolean — If this order type is the default
      - `filterCategories` boolean — If set to false, then this order type includes all of the merchant's categories. Otherwise, it only contains the categories defined in the "categories" field on this object.
      - `isHidden` boolean — If this order type is hidden on the Register
      - `fee` integer — The price of a fee added to this order type, not fully implemented at this time.
      - `minOrderAmount` integer — The minimum amount required for an order to be placed
      - `maxOrderAmount` integer — The maximum amount for an order allowed
      - `maxRadius` integer — The maximum radius allowed for an order (i.e. delivery)
      - `avgOrderTime` integer — The average time it takes to complete the order
      - `hoursAvailable` 'ALL' | 'BUSINESS' | 'CUSTOM'
      - `customerIdMethod` 'NAME' | 'TABLE' | 'NAME_TABLE'
      - `isDeleted` boolean — If this order type is deleted
      - `systemOrderTypeId` string — Optional system order type that this order type is associated with.
      - `hours` object — The hours this order type is available (if they differ from normal merchant hours)
        - `id` string — Unique identifier
        - `name` string — Friendly name to describe the hours.
        - `reference` object
          - `id` string — Unique identifier.
        - `sunday` object[]
          - `start` integer, required
          - `end` integer, required
        - `monday` object[]
          - `start` integer, required
          - `end` integer, required
        - `tuesday` object[]
          - `start` integer, required
          - `end` integer, required
        - `wednesday` object[]
          - `start` integer, required
          - `end` integer, required
        - `thursday` object[]
          - `start` integer, required
          - `end` integer, required
        - `friday` object[]
          - `start` integer, required
          - `end` integer, required
        - `saturday` object[]
          - `start` integer, required
          - `end` integer, required
      - `categories` object[] — The categories of items that can be assigned to this order type
        - `id` string — Unique identifier.
    - `merchant` object
      - `id` string — Unique identifier.
    - `groupLineItems` boolean — Whether similar line items should be grouped together on the receipt that this order generates. Item "similarity" is based on items having matching values for a set of properties including price, modifiers, and discounts.
  - `total` integer — Total price of the order in cents
  - `subtotal` integer — Subtotal price of the order in cents
  - `totalTaxAmount` integer — Amount of the total tax of the order in cents
  - `taxSummaries` object[]
    - `id` string
    - `name` string, required
    - `amount` integer, required
    - `rate` integer — Rate in percentage for this order tax rate
    - `lineItems` object[] — Line item associated with this order tax rate
      - `id` string — Unique identifier.
      - `item` object — A reference to the inventory item that was used to create this line item. Note that since this a reference the item can be changed and deleted any time such that it no longer matches this line item.
        - `id` string — Unique identifier.
      - `colorCode` string — Hex code representation of the color assigned to item in the form of #fff, #ffffff, or #ffffffff. Note that item color can be changed and deleted any time such that it no longer matches this line item
      - `name` string — Line item name.
      - `alternateName` string — Alternate name of the line item.
      - `price` integer — Price of the item, typically in cents of merchant currency. When unit quantity is not null then this is the price for a single unit and is not the complete price.
      - `priceWithModifiers` integer — Price of item after adding all modifications. This is used only for reporting.
      - `priceWithModifiersAndItemAndOrderDiscounts` integer — Price of item after adding all modifications and subtracting all line item and order level discounts. This is used only for reporting.
      - `unitQty` integer — This is applicable only if the item is priced by quantity of a unit. The item must have a priceType of PER_UNIT. The value is a fixed-point integer with scaling factor of 1000 (e.g. if charging per ounce, the value should be set to 2500 for 2.5 ounces). To compute the complete price perform the following calculation: PRICE * (UNIT QTY / 1000). If the item doesn’t have a priceType of PER_UNIT, then unitQty is ignored.
      - `unitName` string — Unit name (e.g. oz, lb, etc) if priced by unit, otherwise null.
      - `itemCode` string
      - `note` string
      - `printed` boolean — True if this line item has been printed out on an order printer at least once already.
      - `exchangedLineItem` object
        - `id` string — Unique identifier.
      - `binName` string
      - `userData` string
      - `createdTime` integer
      - `orderClientCreatedTime` integer
      - `discounts` object[] — List of discounts applied to the line item. Each line item on an order may have zero or more percentage or amount discounts. Line item discounts are separate from order-level discounts (which are applied to the order subtotal).
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `orderLevelDiscounts` object[] — List of order level discounts attributed to this line item. Amounts are rounded to the nearest penny. This is for reporting purposes only. These rounding approximates are not used when calculating the transaction.
        - `id` string — Unique identifier
        - `discount` object — If this item is based on a standard discount, this will point to the appropriate inventory.Discount
          - `id` string — Unique identifier.
        - `approver` object — The person that authorized a discount
          - `id` string — Unique identifier.
        - `name` string, required — Name of the discount
        - `amount` integer — Discount amount in fraction of currency unit, for example, in cents, based on currency supported. Accepts a negative (-) value and 0 (zero).
        - `percentage` integer — Discount amount in percent
      - `discountAmount` integer — Unnamed fixed discount amount in cents. Or, in reporting, this may be the calculated sum of all the line item discounts.
      - `orderLevelDiscountAmount` integer — The calculated sum of order level discounts attributed, approximately to the nearest cent, to this the line item. This is only used in reporting.
      - `exchanged` boolean
      - `modifications` object[] — List of references to modifications applied to this line item.
        - `id` string
        - `name` string — the name of the modifier when it was applied
        - `alternateName` string
        - `amount` integer — the additional cost of the modifier when it was applied
        - `modifier` object — The modifier object. Values from the Modifier are copied to the Modification at the time that the order is placed. Modifier values may change after the modification is created.
          - `id` string — Unique identifier
          - `name` string — Name of the modifier
          - `alternateName` string — Alternate name of the modifier
          - `available` boolean — True if this modifier is available across all channels
          - `price` integer — Additional cost when used
          - `modifierGroup` object
            - `id` string — Unique identifier.
        - `quantitySold` integer — This is only used in reports. The count of how many of these modifiers that were sold.
      - `tags` object[] — List of tags associated with this line item.
        - `id` string — Unique identifier
        - `name` string, required — Tag name
        - `showInReporting` boolean — True if tag is a summary label in the reporting app
        - `items` object[] — Items associated with this tag
          - `id` string — Unique identifier.
        - `printers` object[] — Printers associated with this tag
          - `id` string — Unique identifier.
      - `refunded` boolean — True if this line item has been refunded
      - `refund` object — direct item refund
        - `id` string — Unique identifier of the refund.
        - `orderRef` object — Reference number of the order with which the refund is associated.
          - `id` string — Unique identifier.
        - `device` object — Device which processed the transaction for this refund, a 128-bit UUID, not a normal base-13 Clover ID.
          - `id` string — Unique identifier.
        - `amount` integer — Total amount refunded, including tax and tip
        - `taxAmount` integer — Tax amount refunded.
        - `tipAmount` integer — Tip amount refunded.
        - `createdTime` integer — Time when the refund was recorded on the server.
        - `clientCreatedTime` integer — Time when the refund was recorded on the client.
        - `gatewayProcessingTime` integer — Time when the refund was processed by the payment gateway.
        - `payment` object — Payment with which the refund is associated.
          - `id` string — Unique identifier.
        - `employee` object
          - `id` string — Unique identifier.
        - `lineItems` object[]
          - `id` string — Unique identifier.
        - `overrideMerchantTender` object — Tender type associated with this payment, for example, credit card, cash, and so on.
          - `id` string — Unique identifier.
          - `editable` boolean — If this merchant tender is editable.
          - `labelKey` string — Label Key.
          - `label` string — Label Key.
          - `opensCashDrawer` boolean — Indicates that tender is opening the cash drawer.
          - `supportsTipping` boolean — Allow tipping on payment from tender.
          - `enabled` boolean — Indicates that merchant tender is enabled.
          - `visible` boolean — Indicates that merchant tender is visible.
          - `instructions` string — Instructions for how to process tender.
        - `taxableAmountRates` object[]
          - `id` string — Tax rate identifier.
          - `name` string — Tax rate name. This field is optional.
          - `taxableAmount` integer — Sub-total of line items on which the tax was based. For value-added tax (VAT), this amount includes the tax. For all others, this amount does not include tax.
          - `rate` integer — Tax rate. 100% = 1e7 or 1 followed by 7 zeros.
          - `isVat` boolean — Whether the taxable amount includes tax.
          - `taxAmount` integer — The amount of tax collected. In cases where there are multiple payments for an order then it may be necessary to add an extra cent of tax to the last payment.
          - `transactionRef` object — The refund with which the tax rate is associated.
            - `id` string — Unique identifier.
        - `serviceChargeAmount` object
          - `id` string — Service charge identifier.
          - `name` string — Indicates the name of the service charge applicable.
          - `amount` integer — Amount of the service charge.
        - `additionalCharges` object[]
          - `id` string — Additional charge identifier.
          - `amount` integer — Amount of the additional charge.
          - `rate` integer — Percent rate of the additional charge times 10000.
          - `type` 'INTERAC' | 'CREDIT_SURCHARGE' | 'CONVENIENCE_FEE' | 'INTERAC_V2' | 'DELIVERY_FEE' — Type of the additional charge.
        - `attributes` object — Indicates the attributes if any.
          - `default` string — Indicates the default value of attributes.
        - `germanInfo` object — German region-specific information.
          - `cardTrack2` string
          - `cardSequenceNumber` string
          - `transactionCaseGermany` string
          - `transactionTypeGermany` string
          - `terminalID` string
          - `traceNumber` string
          - `oldTraceNumber` string
          - `receiptNumber` string
          - `transactionAID` string
          - `transactionMSApp` string
          - `transactionScriptResults` string
          - `receiptType` string
          - `customerTransactionDOLValues` string
          - `merchantTransactionDOLValues` string
          - `merchantJournalDOL` string
          - `merchantJournalDOLValues` string
          - `configMerchantId` string
          - `configProductLabel` string
          - `hostResponseAidParBMP53` string
          - `hostResponsePrintDataBM60` string
          - `sepaElvReceiptFormat` string
          - `sepaElvExtAppLabel` string
          - `sepaElvPreNotification` string
          - `sepaElvMandate` string
          - `sepaElvCreditorId` string
          - `sepaElvMandateId` string
          - `sepaElvIban` string
        - `appTracking` object — Tracking information for the app that created this refund.
          - `developerAppId` string — Uuid from the developer application. This is typically populated and used only on the back end.
          - `applicationName` string — Name of the developer application.
          - `applicationID` string — String representing an application.
          - `applicationVersion` string — String representing a semanticversion. See http://semver.org/
          - `sourceSDK` string — String representing a SDK.
          - `sourceSDKVersion` string — String representing a SDK. See http://semver.org/
        - `voided` boolean — Indicates voided information.
        - `voidReason` string — Indicates reason of voided.
        - `cardTransaction` object — Information about the card used for credit or debit card refunds
          - `cardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Type of card used for the transaction.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Indicates the type of entry made for the card. For example: swiped, vaulted, scanned, and so on.
          - `first6` string — First 6-digits of the card number.
          - `last4` string — Last 4-digits of the card number.
          - `type` 'AUTH' | 'PREAUTH' | 'PREAUTHCAPTURE' | 'ADJUST' | 'VOID' | 'VOIDRETURN' | 'RETURN' | 'REFUND' | 'NAKEDREFUND' | 'GETBALANCE' | 'BATCHCLOSE' | 'ACTIVATE' | 'BALANCE_LOCK' | 'LOAD' | 'CASHOUT' | 'CASHOUT_ACTIVE_STATUS' | 'REDEMPTION' | 'REDEMPTION_UNLOCK' | 'RELOAD' | 'CASH_ADVANCE' | 'VOID_CREDIT' | 'REFUND_CREDIT' | 'INTERNET_ACTIVATE' | 'TOKEN_REQUEST' | 'VERIFICATION' — Indicates the type of transaction used by the card.
          - `authCode` string — Indicates the authorization code if successful.
          - `referenceId` string — Card transaction reference identifier.
          - `transactionNo` string — Card transaction number.
          - `state` 'PENDING' | 'CLOSED' — Indicates the status of the transaction.
          - `extra` object — Indicates extra information to be stored as part of gateway/card transaction.
            - `default` string — Indiactes any default message that will be appeared.
          - `begBalance` integer — Indicates the available balance in the card.
          - `endBalance` integer — Indicates the remaining balance in the card.
          - `avsResult` 'SUCCESS' | 'ZIP_CODE_MATCH' | 'ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED' | 'ADDRESS_MATCH' | 'ADDRESS_MATCH_ZIP_NOT_CHECKED' | 'NEITHER_MATCH' | 'SERVICE_FAILURE' | 'SERVICE_UNAVAILABLE' | 'NOT_CHECKED' | 'ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED' | 'ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED' — Indicates the status of the transaction.
          - `cardholderName` string — Indicates the card holder name for which payment is to be made.
          - `token` string — Indicates the token number of the card.
          - `vaultedCard` object — Vaulted card which can be used for subsequent transactions.
            - `first6` string, required — First 6-digits of the vaulted card.
            - `last4` string, required — Last 4-digits of the vaulted card.
            - `cardholderName` string — Card holder name of the vaulted card.
            - `expirationDate` string — Expiry date of the vaulted card.
            - `token` string — Token number of the vaulted card.
          - `gatewayTxState` 'INITIATED' | 'INITIATED_ON_AUTH' | 'ACKNOWLEDGED' | 'CONNECT_FAILED' | 'TIMEOUT' | 'FAILED' | 'REVERSE_INITIATED' | 'REVERSE_INITIATED_ON_AUTH' | 'REVERSED' | 'REVERSAL_FAILED' | 'EXTERNAL' — The state as currently recorded. This differs from the legacy 'state' field. The legacy 'state' field is calculated from the 'type' field and whether the transaction was captured.
          - `currency` string — Currency code.
          - `captured` boolean — Indicates whether the transaction was captured by the gateway or not.
          - `debitRefund` object — Indicates refund parameters required for debit card refunds.
            - `debitTransactionRouteInd` string — Route of the the payment transaction.
            - `isDebitTransactionRefundable` boolean — True, if debitTransactionRouteInd is C, else, its determined by the EDS entitlement rule for D/S
        - `transactionInfo` object — Transaction information.
          - `languageIndicator` string — 2 character language used for the transaction. Deprecated in factor of transactionLocale.
          - `transactionLocale` string — Locale for the transaction (e.g. en-CA)
          - `accountSelection` 'CREDIT' | 'DEBIT' | 'CHECKING' | 'SAVINGS' — Type of account.
          - `fiscalInvoiceNumber` string — Consists of 4-digits prefix + 8-digits.
          - `installmentsQuantity` integer — Indicates number of installments.
          - `installmentsPlanCode` string — Indicates plan in the alpha numuric code.
          - `installmentsPlanId` string — Indicates selected plan identifier.
          - `installmentsPlanDesc` string — Indicates selected plan desc.
          - `cardTypeLabel` string — Card type label.
          - `cardSymbol` string — Card Symbol for identify in payment_card_config table.
          - `stan` integer — STAN(System Audit Trace Number).
          - `identityDocument` object — Customers identification number and type.
            - `id` string — Unique identifier.
            - `type` string — Type of personal identification: National Document, Passport, etc
            - `number` string — Identification number.
            - `createdTime` integer — Created timestamp.
            - `modifiedTime` integer — Modified timestamp.
            - `deletedTime` integer — Deleted timestamp.
            - `payment` object
              - …
          - `batchNumber` string — Indicates transaction Batch number.
          - `receiptNumber` string — Indicates transaction Receipt number.
          - `reversalStanRefNum` string — Reversal STAN (STAN(system audit trace number) ref number.
          - `reversalStan` integer — STAN for reversal.
          - `reversalMac` string — MAC for reversal.
          - `reversalMacKsn` string — MAC KSN for reversal.
          - `terminalIdentification` string — Designates the unique location of a terminal at a merchant.
          - `externalTerminalId` string — Main internal identifier of terminal which should be the same across all Fiserv’s components.
          - `merchantIdentifier` string — When concatenated with the Acquirer Identifier, uniquely identifies a given merchant.
          - `merchantNameLocation` string — Indicates the name and location of the merchant.
          - `maskedTrack2` string — Masked track2 data.
          - `receiptExtraData` string — Extra data for receipt.
          - `selectedService` 'NONE' | 'PAYMENT' | 'REFUND' | 'CANCELLATION' | 'PRE_AUTH' | 'UPDATE_PRE_AUTH' | 'PAYMENT_COMPLETION' | 'CASH_ADVANCE' | 'DEFERRED_PAYMENT' | 'DEFERRED_PAYMENT_COMPLETION' | 'VOICE_AUTHORISATION' | 'CARDHOLDER_DETECTION' | 'TOKEN_REQUEST' | 'VERIFICATION' — Defines the Financial Service selected for the transaction.
          - `transactionResult` 'APPROVED' | 'DECLINED' | 'ABORTED' | 'VOICE_AUTHORISATION' | 'PAYMENT_PART_ONLY' | 'PARTIALLY_APPROVED' | 'NONE' — Result of the transaction.
          - `transactionTags` string — Contains a hex string with needed TLV tags for certification.
          - `txFormat` 'DEFAULT' | 'NEXO' — Contains the information how the data inside transactionTags should be coded - initially we cause default and nexo as formats.
          - `panMask` string — Contains the information how the PAN should masked.
          - `transactionSequenceCounter` string — Counter maintained by the terminal that is incremented for each transaction at the beginning of the Perform Service function.
          - `applicationPanSequenceNumber` string — Identifies and differentiates cards with the same PAN.
          - `reversalReason` 'CHIP_DECLINE' | 'CARDHOLDER_CANCELLATION' | 'COMMUNICATION_ERROR' | 'OTHER_REASON' — Contains the reason why the transaction should be reversed in the host. It has to be mapped in server with the expected value by the corresponding gateway.
          - `isTokenBasedTx` boolean — Boolean to determine if the transaction done using a vaulted card is a token based transaction.
          - `origTransactionSequenceCounter` string — For reversal and capture transactions, this contains the reference (transactionSequenceCounter) to the originating transaction.
          - `transactionSequenceCounterUpdate` string — This field is populated when the TSC of a terminal is out of sync and is provided with an update.
          - `emergencyFlag` boolean — Boolean value defining if the corresponding TX was performed in NEXO emergency mode according NEXO IS Spec chapter 10.2.
          - `entryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — This field contains the entry type of a transaction.
          - `promotionalMessage` object
            - `message` string — Indicates promotion message.
            - `showOnMerchantReceipt` boolean — Indicates whether message should be displayed on the merchant receipt or not. Value: True False.
            - `showOnCustomerReceipt` boolean — Indicates whether message should be displayed on the customer receipt or not. Value: True False.
            - `showOnDisplay` boolean — Indicates whether message should be displayed on the disply or not. Value: True False.
          - `sepaElvTransactionInfo` object
            - `receiptFormat` string — Value of tag E1.DF8206 from NEXO config.
            - `extAppLabel` string — Value of tag E6.DF8211 or E6.DF8212 (Online or Offline TX printout).
            - `preNotification` string — Value of tag E6.DF8214 info form NEXO config.
            - `mandate` string — Value of tag E6.DF8215 info from NEXO config.
            - `creditorId` string — Value of tag E6.DF8216 info from NEXO config.
            - `mandateId` string — Generated by SPA according to ELV – TBD: use Trace number instead of receipt number.
            - `iban` string — Received in ICC related data from IPG (tag 5F53).
            - `isMerchantForced` boolean — Defines if the corresponding SEPA ELV TX was forced by the merchant (override defined limit)
          - `clientCardType` 'VISA' | 'MC' | 'AMEX' | 'DISCOVER' | 'DINERS_CLUB' | 'JCB' | 'MAESTRO' | 'SOLO' | 'LASER' | 'CHINA_UNION_PAY' | 'CARTE_BLANCHE' | 'UNKNOWN' | 'GIFT_CARD' | 'EBT' | 'GIROCARD' | 'INTERAC' | 'OTHER' | 'RUPAY' — Client card type should be used only limited purpose only and should not be confused with cardType in other objects. This is a read only field and must not to be overwritten on server or client once set on client. This is set on client only for MSR tx for now as the AIDs are not identified for MSR. For few MSR tx, the card type was identified incorrectly on client side, and also on server side based on the bin match. In order to get the correct card types, this client card type will be sent to the server
          - `explicitlySelectedApp` string — The app explicitly selected by the customer via the choice button.
          - `isSepaElv` boolean — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `cardEntryType` 'SWIPED' | 'KEYED' | 'VOICE' | 'VAULTED' | 'OFFLINE_SWIPED' | 'OFFLINE_KEYED' | 'EMV_CONTACT' | 'EMV_CONTACTLESS' | 'MSD_CONTACTLESS' | 'PINPAD_MANUAL_ENTRY' | 'QR_CODE' | 'SCANNED' — Defines if the corresponding TX was performed as SEPA ELV TX.
          - `printMessages` object[]
            - `destination` 'CUSTOMER_DISPLAY' | 'CUSTOMER_RECEIPT' | 'CUSTOMER_RECEIPT_AID_PARAM' | 'MERCHANT_DISPLAY' | 'MERCHANT_RECEIPT' | 'MERCHANT_RECEIPT_AID_PARAM' — Destination for the message CDSP - CustomerDisplay, CRCP - CustomerReceipt/AidParam, MDSP - MerchantDisplay, MRCP - MerchantReceipt/AidParam
            - `content` string — Contains the display and/or print message text from gateway.
        - `merchant` object
          - `id` string — Unique identifier.
        - `externalReferenceId` string — External reference identifier, if associated with the refund.
        - `authCode` string — Authorization code generated by the acquirer.
        - `status` 'FAIL' | 'SUCCESS' | 'PENDING' — Status of the refund. It can be Fail/Success/Pending.
        - `oceanGatewayInfo` object — India-region specific Ocean Gateway information.
          - `tranSource` string — This field contains transaction source returned from Ocean as part of notification for a transaction.
          - `tranChannel` string — This field contains LPM type information returned from Ocean as part of notification for a transaction.
          - `transactionType` string — This field contains transaction type information returned from Ocean as part of notification for a transaction.
          - `merchantId` string — This field contains MerchantId returned from Ocean as part of notification for a transaction.
          - `terminalId` string — This field contains TerminalId returned from Ocean as part of notification for a transaction.
          - `tenderType` string — This field contains tender type information returned from Ocean as part of notification for a transaction.
          - `entryMethod` string — This field contains the entry method returned from Ocean as part of notification for a transaction.
          - `transactionAmount` string — This field contains the transaction amount returned from Ocean as part of notification for a transaction.
          - `transactionCurrency` string — This field contains the transaction currency returned from Ocean as part of notification for a transaction.
          - `fpTransactionId` string — This field contains the ocean generated transaction Id for a transaction.
          - `merchantTxnId` string — This field contains the payment reference id provided by clover for a transaction.
          - `fpRefundTransactionId` string — This field contains the refund transaction id returned from Ocean for a transaction.
          - `transactionStatus` string — This field contains the transaction status returned from Ocean as part of notification for a transaction.
          - `transactionStatusDescription` string — This field contains the transaction status description returned from Ocean as part of notification for a transaction.
          - `rrn` string — This field contains rrn number (reference provided by bank) returned from Ocean as part of notification for a transaction.
          - `batchNo` string — This field contains batch number returned from Ocean as part of notification for a transaction.
          - `invoiceNo` string — This field contains invoice number returned from Ocean as part of notification for a transaction.
          - `cardScheme` string — This field contains Customer LPM information returned from Ocean as part of notification for a transaction.
          - `qrType` string — This field contains qr tpe either static or dynamic information returned from Ocean as part of notification for a transaction.
          - `transactionDateTime` string — This field contains transaction completion date information returned from Ocean as part of notification for a transaction.
          - `authCode` string — This field contains authorization Code returned from Ocean as part of notification for a transaction.
          - `pan` string — This field contains pan information like masked virtual payment address,vehicle info,userId returned from Ocean as part of notification for a transaction.
          - `customerMobile` string — This field contains customer mobile info returned from Ocean as part of notification for a transaction.
          - `customerName` string — This field contains customer name returned from Ocean as part of notification for a transaction.
          - `customerRemarks` string — This field contains customer remarks returned from Ocean as part of notification for a transaction.
          - `bankName` string — This field contains name of the bank returned from Ocean as part of notification for a transaction.
          - `bankCode` string — This field contains bank code returned from Ocean as part of notification for a transaction.
          - `emiDetails` object — This field indicates the EMI details of a customer returned from Ocean as part of notification for a transaction.
            - `lenderName` string — This field contains the equated monthly installment (EMI) lender name.
            - `tenure` string — This field contains total EMI tenure.
            - `interestRate` string — This field contains interest rate charged as part of EMI.
            - `interest` string — This field contains interest amount charged as part of EMI.
            - `emiAmount` string — This field contains EMI amount per month.
            - `lenderLoanId` string — This field contains lender loan id for the EMI.
            - `fees` string — This field contains processing fee charged for EMI.
            - `discountAmount` string — This field contains discount amount provided for EMI.
            - `offerCashback` string — This field contains offer cashback amount provided for EMI.
            - `tranAmount` string — This field contains total transaction amount.
            - `totalPayable` string — This field contains total payable amount which is total EMI with interest.
        - `reason` string — Reason why the refund initiated.
      - `isRevenue` boolean — True if this item should be counted as revenue, for example gift cards and donations would not.
      - `taxRates` object[] — Tax rates that apply to this line item
        - `id` string
        - `name` string, required
        - `taxType` 'VAT_TAXABLE' | 'VAT_NON_TAXABLE' | 'VAT_EXEMPT' | 'INTERNAL_TAX' | 'PARTNER_TAX' — Tax type used in Argentina.
        - `rate` integer — For percentage based discounts like sales tax
        - `isDefault` boolean
        - `items` object[] — Items associated with this tax rate
          - `id` string — Unique identifier.
        - `taxAmount` integer — For a flat tax like recycling redemption fee, expressed as number of cents
        - `deletedTime` integer — Timestamp when tax rate was last deleted
        - `modifiedTime` integer — Timestamp when tax rate was last modified
      - `payments` object[] — Payments that apply to this line item
        - `id` string — Line item unique identifier.
        - `percentage` integer — Percent of the line item covered by the payment.
        - `binName` string — Bank identification number (BIN) indicating the financial institution for line item.
        - `refunded` boolean — Indicates payment is refunded.
      - `revenueAmount` integer — Revenue collected for this. This field is only used in reporting.
      - `quantitySold` number — Quantity sold for this line item. This field is only used in reporting
      - `printGroup` object — Optional reference to the print group that this line item belongs to.
        - `id` string — Unique identifier.
  - `isVat` boolean — If checkout by merchant with VAT enabled

---

[API](https://skmtc.dev/clover/apis/platform-api.md) · [All operations](https://skmtc.dev/clover/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/clover/platform-api/revisions/08da265101a3/schema)
