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.
Item |
Description |
|---|---|
Operation name displayed on a terminal |
Sale |
Operation name displayed on a receipt |
|
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 |
Yes |
Can the receipt have a signature line? |
Yes |
Request fields
The following table lists and defines the Sale request fields:
| 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.
|
Optional |
invoice |
The invoice number associated with the transaction. Maximum of 6 numeric characters. | Optional |
|
The customer number associated with the transaction. Maximum of 8 alphanumeric characters. | Optional |
|
The ticket number associated with the transaction. Maximum of 6 alphanumeric characters. | Optional |
|
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:
|
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 |
|
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 |
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:
|
Optional |
|
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 Value:
|
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:
Item |
Description |
|---|---|
Operation name displayed on a terminal |
Force Sale |
Operation name displayed on a receipt |
|
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:
| Field | Description | Presence |
|---|---|---|
operation |
Contains the value Transaction. |
Mandatory |
type |
The transaction type. | Mandatory |
requestedAmount |
|
Mandatory |
reference |
A POS-generated reference number.
|
Optional |
invoice |
|
Optional |
|
|
Optional |
|
|
Optional |
|
|
Optional |
originalAuthCode |
|
Mandatory |
taxAmount |
|
Optional |
|
If tipAmount is provided, the Payment Terminal Application does not prompt for tip during the transaction flow. | Optional |
expDate |
|
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:
|
Optional |
|
|
Optional |
printReceipt |
Applies to receipts printed by the payment terminal device or a printer attached to it. If you omit Value:
|
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:
Item |
Description |
|---|---|
Operation name displayed on a terminal |
MOTO Sale |
Operation name displayed on a receipt |
|
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:
| Field | Description | Presence |
|---|---|---|
operation |
Contains the value Transaction. |
Mandatory |
type |
The transaction type. | Mandatory |
requestedAmount |
|
Mandatory |
reference |
A POS-generated reference number.
|
Optional |
invoice |
|
Optional |
|
|
Optional |
|
|
Optional |
|
|
Optional |
order |
|
Mandatory |
taxAmount |
|
Optional |
expDate |
|
Optional |
zip |
|
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:
|
Optional |
|
|
Optional |
printReceipt |
Applies to receipts printed by the payment terminal device or a printer attached to it. If you omit Value:
|
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"
}