Skip to main content
In-Store Payments

Sale

The Payment Terminal Application supports your ability to process sale, tokenized sale, force sale, and mail order/telephone order (MOTO) sale transactions.

Sale

The Sale operation allows a merchant and a cardholder to perform a credit or debit card sale transaction using the supported card brands and entry modes.

Properties

The following table lists the properties of a credit or debit sale transaction.

Properties of a credit or debit sale transaction

Item

Description

Operation name displayed on a terminal

Sale

Operation name displayed on a receipt

SALE

Cardholder is requested to supply the following data

Card, Tip, EMV Application Selection, PIN, signature.

ISO transaction message

1200

Can the operation be autoreversed?

Yes

Does the operation use data supplied by the cardholder?

Yes

Merchant copy of the receipt?

Yes

Cardholder copy of the receipt?

Yes

Is the receipt stored as last receipt?

Yes

Can the receipt have a signature line?

Yes

Request fields

The following table lists and defines the Sale request fields:

Request fields for sale
Field                                              Description

Presence       

operation
Contains the value Transaction.

Mandatory

type
The transaction type.

Mandatory

requestedAmount

The amount of the transaction. The amount field is numeric. No other characters are permitted.

The amount value contains two implied decimal places. For example, the value 50000 represents $500.00 and the value 500 represents $5.00.

Mandatory

cashbackAmount Additional cash back amount included as part of the sale. 

Optional

reference

A POS-generated reference number.

  • Maximum of 12 alphanumeric characters.
  • If no value is supplied, a value will be generated by our payment host.
  • If this field is used, it must be unique per batch.
  • This value is inserted into the Retrieval Reference Number (RRN) field of the transaction response receipt data.

Optional

invoice The invoice number associated with the transaction. Maximum of 6 numeric characters.

Optional

customer

The customer number associated with the transaction. Maximum of 8 alphanumeric characters.

Optional

ticket

The ticket number associated with the transaction. Maximum of 6 alphanumeric characters.

Optional

purchase

The purchase number associated with the transaction. Maximum of 8 alphanumeric characters.

Optional

isDebit Used to force the debit/credit information for swiped sale transactions. If not provided and the card is swiped, the Payment Terminal Application prompts for debit or credit.

Optional

commercialCardType

When this field is present, the card is assumed to be a commercial card. This field determines the type of commercial card:

  • 0 — Corporate
  • 1 — Purchasing

Optional

customerReference Required for commercial card processing. Contains the customer reference number. Maximum of 17 alphanumeric characters.

Optional

taxAmount If provided, taxAmount overrides the calculation based on the TAXPERCENT parameter (if configured). This value has the same format as the requestedAmount field.

Optional

tipAmount

If tipAmount is provided, the Payment Terminal Application does not prompt for tip during the transaction flow.

Optional

expDate

Card expiration date manually captured at the POS in format YYMM.

If you send expDate, the payment terminal device does not prompt for card entry.

Optional

zip The ZIP code associated to the cardholder account (for AVS purposes). Required for American Express commercial card processing.

Optional

address The address associated to the cardholder account (for AVS purposes).

Optional

ebtVoucher The EBT SNAP voucher serial number.

Optional

ebtApprovalCode The EBT SNAP voucher approval code.

Optional

lastFour Last 4 digits of the card number. When provided by the POS application, the Payment Terminal Application compares the lastFour value with the captured card number to help prevent fraud.

Optional

duplicateCheck

If you send a value of 1, the Payment Terminal Application checks the last performed transaction for a matching card number and amount. If the previous transaction matches, the Payment Terminal Application returns an error.

Value:

  • 0 = Ignore duplicates
  • 1 = Check duplicates

Optional

uniqueTransactionId

Unique reference provided by the POS application or a 30-character unique ID generated by the Payment Terminal Application. The first 22 characters (left justified) are used for reporting. This field is alphanumeric.

Optional

printReceipt

Applies to receipts printed by the payment terminal device or a printer attached to it.

If you omit printReceipt, the default value is 0 and no receipt is printed.

Value:

  • 0 = Do not print receipt
  • 1 = Print receipt (if supported)

Optional

Example

The following example is request to process a sale transaction:

{
  "operation": "Transaction",
  "type": "SALE",
  "requestedAmount": "500",
  "taxAmount": "100"
}

The following example is a Sale response:

{
  "AC": "D12B848C02847E67",
  "AID": "A0000000031010",
  "ARC": "3030",
  "IAD": "06010A03A00000",
  "PARData": "V0010013018037103627480477422",
  "TSI": "0000",
  "TVR": "0000000000",
  "account": "476173******0011",
  "accountType": "0",
  "approval": "approved",
  "approvalMode": "ISSUER",
  "authCode": "006830",
  "authorizedAmount": "500",
  "balance": "0",
  "batchJulianDay": "25092",
  "batchNumber": "000001",
  "cardBrand": "VISA",
  "cardToken": "4761737240390011",
  "cardTypeProcessed": "1",
  "cardholderLanguage": "en",
  "cardholderReceipt": "\n\n\nMerc. ID: 9999999\nTerm. ID: 009\nRRN: 000000005545\nTax Number: 0\nFri,Apr 04,2025         00:55:45\n\n              SALE\n\n            APPROVED\n\n      No Signature Required\n\n      ****************0011\nVISA                 Contactless\n\nAMOUNT                     $5.00\nSUBTOTAL                   $5.00\n            ____________________\nTOTAL                      $5.00\n\nTran ID:0920000011000002\nBatch#: 092-001\nApproval Code: 006830\nVISA CREDIT\nAID: A0000000031010\n\nTVR: 0000000000\nIAD: 06010A03A00000\nTSI: 0000\nARC: 3030\n\n          Customer copy\n            Thank You\n        Please Come Again\n",
  "cashbackAmount": "0",
  "commercialCardType": "-1",
  "currencyCode": "USD",
  "cvm": "NO CVM",
  "dateTime": "04-04-2025 00:55:45",
  "demoMode": "no",
  "dueAmount": "0",
  "emvTags": [
    {
      "description": "pan_desc",
      "tag": "5A",
      "value": ""
    },
    {
      "description": "application_label_desc",
      "tag": "50",
      "value": "VISA CREDIT"
    },
    {
      "description": "aip_desc",
      "tag": "82",
      "value": "2000"
    },
    {
      "description": "ddf_desc",
      "tag": "84",
      "value": "A0000000031010"
    },
    {
      "description": "trans_date_desc",
      "tag": "9A",
      "value": "250404"
    },
    {
      "description": "trans_time_desc",
      "tag": "9F21",
      "value": "005544"
    },
    {
      "description": "trans_type_desc",
      "tag": "9C",
      "value": "00"
    },
    {
      "description": "pan_sequence_num_desc",
      "tag": "5F34",
      "value": "01"
    },
    {
      "description": "currency_code_desc",
      "tag": "5F2A",
      "value": "0840"
    },
    {
      "description": "amount_auth_desc",
      "tag": "9F02",
      "value": "000000000500"
    },
    {
      "description": "amount_other_desc",
      "tag": "9F03",
      "value": "000000000000"
    },
    {
      "description": "icc_app_version_desc",
      "tag": "9F08",
      "value": ""
    },
    {
      "description": "term_app_version_desc",
      "tag": "9F09",
      "value": "0096"
    },
    {
      "description": "term_country_code_desc",
      "tag": "9F1A",
      "value": "0840"
    },
    {
      "description": "term_capabilities_desc",
      "tag": "9F33",
      "value": "E068C8"
    },
    {
      "description": "cvm_results_desc",
      "tag": "9F34",
      "value": ""
    },
    {
      "description": "terminal_type_desc",
      "tag": "9F35",
      "value": "22"
    },
    {
      "description": "atc_desc",
      "tag": "9F36",
      "value": "0077"
    },
    {
      "description": "unpredictable_num_desc",
      "tag": "9F37",
      "value": "B5DD7EF2"
    },
    {
      "description": "iac_denial_desc",
      "tag": "9F0D",
      "value": ""
    },
    {
      "description": "iac_online_desc",
      "tag": "9F0E",
      "value": ""
    },
    {
      "description": "iac_default_desc",
      "tag": "9F0F",
      "value": ""
    },
    {
      "description": "tvr_gen_ac1_desc",
      "tag": "95",
      "value": "0000000000"
    },
    {
      "description": "issuer_apl_data_desc",
      "tag": "9F10",
      "value": "06010A03A00000"
    },
    {
      "description": "application_cryptogram_1_desc",
      "tag": "9F26",
      "value": "D12B848C02847E67"
    },
    {
      "description": "cid1_desc",
      "tag": "9F27",
      "value": "80"
    },
    {
      "description": "iad_desc",
      "tag": "91",
      "value": "208524E6358A637E3030"
    },
    {
      "description": "tvr_gen_ac2_desc",
      "tag": "DF9500",
      "value": ""
    },
    {
      "description": "application_cryptogram_2_desc",
      "tag": "DF9F26",
      "value": ""
    },
    {
      "description": "cid2_desc",
      "tag": "DF9F27",
      "value": ""
    },
    {
      "description": "auth_response_code_desc",
      "tag": "8A",
      "value": ""
    },
    {
      "description": "tsi_desc",
      "tag": "9B",
      "value": "0000"
    }
  ],
  "entryMode": "Contactless",
  "expDate": "2412",
  "footerLine1": "Thank You",
  "footerLine2": "Please Come Again",
  "hostError": "00000",
  "merchantID": "9999999",
  "merchantReceipt": "\n\n\nMerc. ID: 9999999\nTerm. ID: 009\nRRN: 000000005545\nTax Number: 0\nFri,Apr 04,2025         00:55:45\n\n              SALE\n\n            APPROVED\n\n      No Signature Required\n\n      ****************0011\nVISA                 Contactless\n\nAMOUNT                     $5.00\nSUBTOTAL                   $5.00\n            ____________________\nTOTAL                      $5.00\n\nTran ID:0920000011000002\nBatch#: 092-001\nApproval Code: 006830\nVISA CREDIT\nAID: A0000000031010\n\nTVR: 0000000000\nIAD: 06010A03A00000\nTSI: 0000\nARC: 3030\n\n          Merchant copy\n            Thank You\n        Please Come Again\n",
  "operation": "Transaction",
  "preferredName": "VISA CREDIT",
  "reference": "000000005545",
  "requestedAmount": "500",
  "responseCode": "00",
  "result": "0",
  "shift": "0",
  "signatureRequired": "no",
  "subTotalAmount": "500",
  "surchargeAmount": "0",
  "surchargeFixed": "0",
  "surchargePercentage": "0",
  "table": "0",
  "taxAmount": "100",
  "terminalID": "009",
  "tipAmount": "0",
  "totalAmount": "500",
  "transactionID": "0920000011000002",
  "transactionType": "SALE",
  "type": "SALE",
  "uniqueTransactionId": "700000014312009174370294500100"
}

Tokenized Sale

Tokenization is the process of replacing sensitive card data with a unique identification token that retains all the essential information without compromising security. At the point-of-sale (POS), the token is captured and forwarded through the normal authorization flow, where the network or token service provider detokenizes the token to the underlying primary acount number (PAN) in a controlled, secure environment so the issuer can authorize the purchase.

Token transactions are processed as card-not-present (CNP) and routed through the credit rail. Because token transactions are not processed as debit, they do not support PIN entry.

The following example is a token transaction sale request:

{
  "operation": "Transaction",
  "type": "SALE",
  "requestedAmount": "1700",
  "cardToken": "4761736242620011",
  "expDate": "3112",
  "storedCredential": "1"
}

The following example is a token transaction sale response:

{
  "AC": "",
  "ARC": "",
  "IAD": "",
  "PARData": "VI01Z28RKA1EBL470G9XYG90R5D3E",
  "TSI": "",
  "accountType": "0",
  "approval": "approved",
  "approvalMode": "ISSUER",
  "authCode": "093588",
  "authorizedAmount": "1700",
  "balance": "0",
  "batchJulianDay": "260",
  "batchNumber": "000003",
  "cardBrand": "VISA",
  "cardToken": "4761736242620011",
  "cardTypeProcessed": "1",
  "cardholderReceipt": "\n              test\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 260093032547\nThu,Sep 17,2026         09:30:32\n\n              SALE\n\n            APPROVED\n\n      No Signature Required\n\nVISA                         Cof\n\nAMOUNT                    $17.00\nSUBTOTAL                  $17.00\n            ____________________\nTOTAL                     $17.00\n\nTransaction ID:\n                2600000031000005\nBatch#:                  260-003\nApproval Code:            093588\n\n\n      *** Customer copy ***\n\n            Thank You\n        Please Come Again\n",
  "cashbackAmount": "0",
  "commercialCardType": "-1",
  "currencyCode": "USD",
  "cvm": "NO CVM",
  "dateTime": "09-17-2026 09:30:32",
  "dccBillingAmount": "0",
  "dccExchangeRate": "0.0",
  "dccIndicator": "0",
  "dccMarkup": "0",
  "dccProvider": "Fexco",
  "demoMode": "no",
  "dueAmount": "0",
  "entryMode": "COF",
  "expDate": "3112",
  "footerLine1": "Thank You",
  "footerLine2": "Please Come Again",
  "merchantID": "9999999",
  "merchantReceipt": "\n              test\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 260093032547\nThu,Sep 17,2026         09:30:32\n\n              SALE\n\n            APPROVED\n\n      No Signature Required\n\nVISA                         Cof\n\nAMOUNT                    $17.00\nSUBTOTAL                  $17.00\n            ____________________\nTOTAL                     $17.00\n\nTransaction ID:\n                2600000031000005\nBatch#:                  260-003\nApproval Code:            093588\n\n\n      *** Merchant copy ***\n\n            Thank You\n        Please Come Again\n",
  "operation": "Transaction",
  "processorLine1": "test",
  "reference": "260093032547",
  "requestedAmount": "1700",
  "responseCode": "00",
  "result": "0",
  "safState": "-1",
  "safSubmissionState": "0",
  "shift": "1",
  "signatureRequired": "no",
  "subTotalAmount": "1700",
  "surchargeAmount": "0",
  "surchargeFixed": "0",
  "surchargePercentage": "0",
  "table": "0",
  "taxAmount": "0",
  "taxAmount2": "0",
  "taxLabel": "Tax:",
  "taxLabel2": "TAX2:",
  "terminalID": "002",
  "tipAmount": "0",
  "totalAmount": "1700",
  "transactionID": "2600000031000005",
  "transactionType": "SALE",
  "type": "SALE",
  "uniqueTransactionId": "700000014039002178965183200000"
}

Force Sale

The Force Sale operation allows you to perform a capture on a previously approved voice authorization.

Properties

The following table lists the properties of a Force Sale operation:

Properties of a force sale operation

Item

Description

Operation name displayed on a terminal

Force Sale

Operation name displayed on a receipt

FORCE SALE

Cardholder is requested to supply the following data

Signature

ISO transaction message

1200

Can the operation be autoreversed?

Yes

Does the operation use data supplied by the cardholder?

Yes

Merchant copy of the receipt?

Yes

Cardholder copy of the receipt?

Yes

Is the receipt stored as “last receipt”?

Yes

Can the receipt have a signature line?

Yes

Request fields

The following table lists and defines the Force Sale request fields:

Request fields for force sale
Field                                              Description

Presence       

operation
Contains the value Transaction.

Mandatory

type
The transaction type.

Mandatory

requestedAmount
  • The amount of the transaction. The amount field is numeric. No other characters are permitted.
  • The amount value contains two implied decimal places. For example, the value 50000 represents $500.00 and the value 500 represents $5.00.

Mandatory

reference

A POS-generated reference number.

  • Maximum of 12 alphanumeric characters.
  • If no value is supplied, a value will be generated by our payment host.
  • If this field is used, it must be unique per batch.
  • This value is inserted into the Retrieval Reference Number (RRN) field of the transaction response receipt data.

Optional

invoice
  • The invoice number associated with the transaction. 
  • Maximum of 6 numeric characters.

Optional

customer

  • The customer number associated with the transaction. 
  • Maximum of 8 alphanumeric characters.

Optional

ticket

  • The ticket number associated with the transaction. 
  • Maximum of 6 alphanumeric characters.

Optional

purchase

  • The purchase number associated with the transaction. 
  • Maximum of 8 alphanumeric characters.

Optional

originalAuthCode
  • The authorization code returned in the original authorization.
  • This field is alphanumeric.

Mandatory

taxAmount
  • If provided, taxAmount overrides the calculation based on the TAXPERCENT parameter (if configured). 
  • This value has the same format as the requestedAmount field.

Optional

tipAmount

If tipAmount is provided, the Payment Terminal Application does not prompt for tip during the transaction flow.

Optional

expDate
  • Card expiration date manually captured at the POS in format YYMM.
  • When this field is provided, the payment terminal device does not prompt for card entry.

Optional

lastFour Last 4 digits of the card number. When provided by the POS application, the Payment Terminal Application uses this field for fraud control by comparing with the captured card number.

Optional

duplicateCheck

If you send a value of 1, the Payment Terminal Application checks the last performed transaction for a matching card number and amount. If the previous transaction matches, the Payment Terminal Application returns an error.

Value:

  • 0 = Ignore duplicates
  • 1 = Check duplicates

Optional

uniqueTransactionId

  • Unique reference provided by the POS application or a 30-character unique ID generated by the Payment Terminal Application. 
  • The first 22 characters (left justified) are used for reporting. 
  • This field is alphanumeric.

Optional

printReceipt

Applies to receipts printed by the payment terminal device or a printer attached to it.

If you omit printReceipt, the default value is 0 and no receipt is printed.

Value:

  • 0 = Do not print receipt
  • 1 = Print receipt (if supported)

Optional

Example

The following example is a request to process a force sale:

{
  "operation": "Transaction",
  "type": "FORCE_SALE",
  "requestedAmount": "700",
  "originalAuthCode": "016555"
}

The following example is a Force Sale response:

{
  "account": "476173******0011",
  "approval": "approved",
  "approvalMode": "ISSUER",
  "authCode": "016555",
  "authorizedAmount": "700",
  "batchJulianDay": "25092",
  "batchNumber": "000001",
  "cardBrand": "VISA",
  "cardholderReceipt": "\n\n\nMerc. ID: 9999999\nTerm. ID: 009\nRRN: 000000013332\nTax Number: 0\nFri,Apr 04,2025         01:33:32\n\n           FORCE SALE\n\n            APPROVED\n\n      ****************0011\nVISA                      Manual\n\nAMOUNT                     $7.00\nSUBTOTAL                   $7.00\n            ____________________\nTOTAL                      $7.00\n\nTran ID:0920000011000004\nBatch#: 092-001\nApproval Code: 016555\n\n          Customer copy\n            Thank You\n        Please Come Again\n",
  "currencyCode": "USD",
  "dateTime": "04-04-2025 01:33:32",
  "demoMode": "no",
  "entryMode": "Manual",
  "footerLine1": "Thank You",
  "footerLine2": "Please Come Again",
  "hostError": "00000",
  "merchantID": "9999999",
  "merchantReceipt": "\n\n\nMerc. ID: 9999999\nTerm. ID: 009\nRRN: 000000013332\nTax Number: 0\nFri,Apr 04,2025         01:33:32\n\n           FORCE SALE\n\n            APPROVED\n\n      ****************0011\nVISA                      Manual\n\nAMOUNT                     $7.00\nSUBTOTAL                   $7.00\n            ____________________\nTOTAL                      $7.00\n\nTran ID:0920000011000004\nBatch#: 092-001\nApproval Code: 016555\n\n          Merchant copy\n            Thank You\n        Please Come Again\n",
  "operation": "Transaction",
  "reference": "000000013332",
  "requestedAmount": "700",
  "responseCode": "00",
  "result": "0",
  "signatureRequired": "no",
  "subTotalAmount": "700",
  "taxAmount": "0",
  "terminalID": "009",
  "totalAmount": "700",
  "transactionID": "0920000011000004",
  "transactionType": "FORCE SALE",
  "type": "FORCE_SALE",
  "uniqueTransactionId": "700000014312009174370521200000"
}

MOTO Sale

The MOTO Sale operation allows you to perform a mail order/telephone order (MOTO) sale transaction.

MOTO transactions are authorized online. 

Properties

The following table lists the properties of a MOTO Sale operation:

Properties of a MOTO sale operation

Item

Description

Operation name displayed on a terminal

MOTO Sale

Operation name displayed on a receipt

MOTO SALE

ISO transaction message

1200

Can the operation be autoreversed?

Yes

Merchant copy of the receipt?

Yes

Cardholder copy of the receipt?

Yes

Is the receipt stored as “last receipt”?

Yes

Can the receipt have a signature line?

No

Request fields

The following table lists and defines the MOTO Sale request fields:

Request fields for MOTO sale
Field                                              Description

Presence       

operation
Contains the value Transaction.

Mandatory

type
The transaction type.

Mandatory

requestedAmount
  • The amount of the transaction. The amount field is numeric. No other characters are permitted.
  • The amount value contains two implied decimal places. For example, the value 50000 represents $500.00 and the value 500 represents $5.00.

Mandatory

reference

A POS-generated reference number.

  • Maximum of 12 alphanumeric characters.
  • If no value is supplied, a value will be generated by our payment host.
  • If this field is used, it must be unique per batch.
  • This value is inserted into the Retrieval Reference Number (RRN) field of the transaction response receipt data.

Optional

invoice
  • The invoice number associated with the transaction. 
  • Maximum of 6 numeric characters.

Optional

customer

  • The customer number associated with the transaction. 
  • Maximum of 8 alphanumeric characters.

Optional

ticket

  • The ticket number associated with the transaction. 
  • Maximum of 6 alphanumeric characters.

Optional

purchase

  • The purchase number associated with the transaction. 
  • Maximum of 8 alphanumeric characters.

Optional

order
  • The order number associated to the transaction. 
  • Maximum of 9 alphanumeric characters.

Mandatory

taxAmount
  • If provided, taxAmount overrides the calculation based on the TAXPERCENT parameter (if configured). 
  • This value has the same format as the requestedAmount field.

Optional

expDate
  • Card expiration date manually captured at the POS in format YYMM.
  • When this field is provided, the payment terminal device does not prompt for card entry.

Optional

zip
  • The ZIP code associated to the cardholder account (for AVS purposes). 
  • Required for American Express commercial card processing.

Optional

address The address associated to the cardholder account (for AVS purposes).

Optional

lastFour Last 4 digits of the card number. When provided by the POS application, the Payment Terminal Application uses this field for fraud control by comparing with the captured card number.

Optional

duplicateCheck

If you send a value of 1, the Payment Terminal Application checks the last performed transaction for a matching card number and amount. If the previous transaction matches, the Payment Terminal Application returns an error.

Value:

  • 0 = Ignore duplicates
  • 1 = Check duplicates

Optional

uniqueTransactionId

  • Unique reference provided by the POS application or a 30-character unique ID generated by the Payment Terminal Application. 
  • The first 22 characters (left justified) are used for reporting. 
  • This field is alphanumeric.

Optional

printReceipt

Applies to receipts printed by the payment terminal device or a printer attached to it.

If you omit printReceipt, the default value is 0 and no receipt is printed.

Value:

  • 0 = Do not print receipt
  • 1 = Print receipt (if supported)

Optional

Example

The following example is a request to process a MOTO sale:

{
    "operation":"Transaction",
    "type":"MOTO_SALE",
    "requestedAmount":"200",
    "order":"ABCD1234"
}

The following example is a MOTO Sale response:

{
    "AC": "",
    "ARC": "",
    "IAD": "",
    "PARData": "VI62Z28RKA1EBL470G9XYG90R5D3E",
    "TSI": "",
    "account": "476173******0011",
    "approval": "approved",
    "authCode": "096653",
    "avsAddressMatch": "Yes",
    "avsResult": "Y",
    "avsZipMatch": "Yes",
    "batchJulianDay": "24192",
    "batchNumber": "000001",
    "cardBrand": "VISA",
    "currencyCode": "CAD",
    "dateTime": "07-10-2024 15:35:28",
    "demoMode": "no",
    "dueAmount": "0",
    "entryMode": "Manual",
    "footerLine1": "Thank You",
    "footerLine2": "Please Come Again",
    "hostError": "00000",
    "merchantID": "9999999",
    "operation": "Transaction",
    "order": "ABCD1234",
    "reference": "000000153528",
    "requestedAmount": "200",
    "responseCode": "00",
    "result": "0",
    "shift": "0",
    "taxAmount": "0",
    "terminalID": "017",
    "totalAmount": "200",
    "transactionID": "1920000011000004",
    "transactionType": "MOTO",
    "type": "MOTO_SALE",
    "uniqueTransactionId": "700000204353017172064012800000"
}
Is this page helpful?