Loading...
To take a dollar amount from a customer’s account, send a POST request to the relevant endpoint.
| Scenario | Merchant uses the POS to: |
|---|---|
| A customer wants to purchase a baseball cap at $15. | Run a sale to take $15 from the customer’s account. |
To save a customer’s payment details, send a value of true in the create_token parameter.
Note: If you send a value of true in the create_token parameter, you must also send a value in the create_token_reason parameter.
| Environment | URL |
|---|---|
| Test | https://api.pit.paygateway.com/transactions/cardpresent/sales |
| Production | https://api.paygateway.com/transactions/cardpresent/sales |
| Object | Parameter | Type | Size | Required? | Description |
|---|---|---|---|---|---|
| N/A | reference_id | String | 1-50 | Required | Unique identifier for the sale. This is an alphanumeric value that the merchant creates, for example, XAZR863990. |
| payment | amount | String | 1-10 | Required | Total dollar amount for the sale. The value includes two decimal places, for example, 10.00. |
| currency_code | String | Explicit | Required | ISO currency code for the sale. For a list of possible values, see the currency code enumeration. | |
| invoice_number | String | 1-8 | Required | Alphanumeric invoice number or order number that the merchant creates and assigns to the sale. | |
| gratuity_eligible_amount | String | 1-7 | Optional | Dollar amount to include as a tip in the sale. The value includes two decimal places, for example, 10.00. | |
| healthcare_amounts | Object | N/A | Optional | Object that includes dollar amounts for healthcare services. For a list of parameters, see the healthcare_amounts object. | |
| purchase_order | Object | N/A | Required | Object that includes customer information and tax amounts. For a list of parameters, see the purchase_order object. | |
| receipt | clerk_id | String | 1-20 | Required | Clerk ID that the merchant wants to display on the receipt. This is an alphanumeric value that the merchant assigns to a clerk, for example, Al090-John Doe. |
| transaction | keyed_entry_mode | String | Explicit | Optional | Indicates if the device allows the user to enter the card details using the keypad. Send one of the following values: • default - The device uses only keyed entry.• allowed - The device can accept keyed entry and displays it as an option on the payment selection screen.Note: If you don’t send a value, the device doesn’t display keyed entry as an option on the payment selection screen. |
| country_code | String | Explicit | Required | ISO code for the country where the sale originated. For a list of possible values, see the country code enumeration | |
| language | String | Explicit | Optional | Language for the text that displays on the device and receipts. For a list of possible values, see the language enumeration. Note: If the customer uses an EMV card, the language defaults to the language on the card. | |
| processing_indicators | Object | N/A | Optional | Object that includes options for additional actions. For a list of parameters, see the processing_indicators object. | |
| create_token_reason | String | Explicit | Conditional | If the value for create_token is true, you must indicate who requested the transaction. Send one of the following values:• unscheduled_merchant_initiated_transaction - The merchant requested the transaction.• unscheduled_customer_initiated_transaction - The customer requested the transaction. | |
| terminal | Object | N/A | Optional | Object that includes information to identify the terminal. For a list of parameters, see the terminal object |
healthcare_amounts object
| Parameter | Type | Size | Required? | Description |
|---|---|---|---|---|
| copay_amount | String | 1-9 | Optional | Total dollar amount for healthcare copayments. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
| clinical_amount | String | 1-9 | Optional | Total dollar amount for clinical expenses. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
| dental_amount | String | 1-9 | Optional | Total dollar amount for dental expenses. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
| prescription_amount | String | 1-9 | Optional | Total dollar amount for prescription expenses. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
| vision_amount | String | 1-9 | Optional | Total dollar amount for vision expenses. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
| healthcare_total_amount | String | 1-9 | Optional | Total dollar amount of all healthcare services. The value includes two decimal places, for example, 10.00. Our gateway accepts values between 0.01 and 999999.99. |
purchase_order object
| Parameter | Type | Size | Required? | Description |
|---|---|---|---|---|
| destination_postal_code | String | 1-9 | Conditional | Postal code of the destination where the merchant ships the goods to. Required for Level 2 transactions. |
| po_number | String | 1-17 | Conditional | Purchase order number for the transaction when the customer uses a corporate purchase card. Required for Level 2 transactions. This is an alphanumeric value that the merchant can create, for example, 2343445. |
| tax_amount | String | 1-8 | Optional | Total tax amount for the transaction. The value includes two decimal places, for example, 10.00. |
processing_indicators object
| Parameter | Type | Size | Required? | Description |
|---|---|---|---|---|
| allow_duplicate | Boolean | Explicit | Optional | If set to true, you can send duplicate requests. The default time frame to block duplicate transactions is 15 minutes. |
| create_token | Boolean | Explicit | Optional | If set to true, we save the card details to our vault. Our gateway creates a token and returns it in the response. |
| partial_approval | Boolean | Explicit | Optional | If set to true, we allow you to accept partial approvals. |
terminal object
| Parameter | Type | Size | Required? | Description |
|---|---|---|---|---|
| terminal_id | String | 8-10 | Optional | Unique numeric value that we assign to the terminal, for example, 90030234. |
| Object | Field | Type | Description |
|---|---|---|---|
| N/A | invoice_number | String | Invoice number for the sale. |
| N/A | amount | String | Total dollar amount of the sale. Note: • If the transaction was partially approved, the amount we return is less than the dollar amount you sent in the request. • If the request included a tip, the amount we return is greater than the amount you send in the request. |
| N/A | status | String | Indicates the status of the request. For a list of possible values, see the request status enumeration. |
| N/A | currency_code | String | ISO currency code for the sale. For a list of possible values, see the currency code enumeration. |
| N/A | gratuity_amount | String | Dollar amount that was tip in the original sale. |
| transactions | tender_type | String | The payment type that the customer used for the sale. The value is one of the following: • credit• debit |
| entry_type | String | Indicates how the user entered the card details. The value is one of the following: • Contact• Contactless• Manual• Swipe | |
| id | String | Unique identifier that our gateway generated for the sale. Note: This is the creditsale_id or debitsale_id that you can include in the endpoint URL for follow-on transactions. | |
| reference_id | Unique identifier for the sale that the merchant created. Note: This is the reference_id that you can include in the endpoint URL for follow-on transactions. | ||
| status | String | Indicates the status of the sale. For a list of possible values, see the transaction status enumeration. | |
| status_code | String | Indicates the status of the request. For a list of status codes, see Handling responses. | |
| transaction_datetime | String | Date and time of the sale that the processor returns in YYYY-MM-DDThh:mm:ssZ format, for example, 2019-12-15T13:00:00Z. |
credit_attributes object
| Object | Field | Type | Description |
|---|---|---|---|
| N/A | approval_code | String | Approval code for the sale from the processor. |
| N/A | avs_response | String | Response code from an address verification service (AVS) lookup. For a list of possible values, see the AVS response enumeration. |
| N/A | avs_response_description | String | Text that describes the response code that the processor returned in the avs_response field. |
| N/A | cardsecurity_response | String | Indicates if the card security code (CSC) that the customer entered matches the CSC of the card. For a list of possible values, see the card security response enumeration. |
| payment | amount | String | Total dollar amount for the sale. |
| cashback_amount | String | Dollar amount of cashback for the sale. | |
| type | String | Type of payment for the sale. For a list of possible values, see the payment type enumeration. | |
| fees | Object | Object that contains details of the fees that the customer paid. For a list of parameters, see the fees object below. | |
| card | masked_card_number | String | Masked card number of the card that the customer used for the sale. We mask all digits except the first six and the last four. |
| cardholder_name | String | Name that appears on the customer’s card. | |
| expiry_month | String | Month that the card expires in MM format. | |
| expiry_year | String | Year that the card expires in YY format. | |
| token | String | Unique reference for the customer's payment details that they stored on our vault. | |
| type | String | Name of the card brand that issued the card. For a list of possible values, see the card type enumeration. | |
| balance | String | Dollar amount that remains on the card. | |
| postal_code | String | Postal code that the card is registered to. | |
| rfmiq | String | Unique token that tracks the customer’s spending habits. | |
| card_on_file_attributes | Object | If our gateway was unable to create a token, this object contains error details. See the object. |
fees object
| Parameter | Type | Size | Description |
|---|---|---|---|
| surcharge_amount | Numeric | Variable | For US credit transactions, this is the surcharge amount applied to the amount submitted in the transaction request if surcharge fees have been configured for the merchant in the gateway. It is a dollar amount the merchant charged the cardholder as a surcharge for paying using a credit card. |
debit_attributes object
| Object | Field | Type | Description |
|---|---|---|---|
| N/A | approval_code | String | Approval code for the sale from the processor. |
| N/A | avs_response | String | Response code from an address verification service (AVS) lookup. For a list of possible values, see the AVS response enumeration. |
| N/A | avs_response_description | String | Text that describes the response code that the processor returned in the avs_response field. |
| N/A | cardsecurity_response | String | Indicates if the card security code (CSC) that the customer entered matches the CSC of the card. For a list of possible values, see the card security response enumeration. |
| payment | amount | String | Total dollar amount for the sale. |
| cashback_amount | String | Dollar amount of cashback for the sale. | |
| type | String | Type of payment for the sale. For a list of possible values, see the payment type enumeration. | |
| card | masked_card_number | String | Masked card number of the card that the customer used for the sale. We mask all digits except the first six and the last four. |
| cardholder_name | String | Name that appears on the customer’s card. | |
| expiry_month | String | Month that the card expires in MM format. | |
| expiry_year | String | Year that the card expires in YY format. | |
| token | String | Unique reference for the customer's payment details that they stored on our vault. | |
| type | String | Name of the card brand that issued the card. For a list of possible values, see the card type enumeration. | |
| balance | String | Dollar amount that remains on the card. | |
| postal_code | String | Postal code that the card is registered to. | |
| debit_trace_number | String | Unique number that banks can use to track transactions. We return this for debit transactions. | |
| rfmiq | String | Unique token that tracks the customer’s spending habits. | |
| card_on_file_attributes | Object | If our gateway was unable to create a token, this object contains error details. See the object. |
card_on_file_attributes object
| Field | Type | Description |
|---|---|---|
| tokenization_error_code | String | Response code from our gateway. |
| tokenization_error_message | String | Text that describes why our gateway could not store the card details. |
amount object
| Field | Type | Description |
|---|---|---|
| amount_authorized | String | Dollar amount that was approved for the sale. |
| amount_other | String | Dollar amount that was cashback. |
icc object
| Field | Type | Description |
|---|---|---|
| dedicated_file_name | String | Name of the EMV Dedicated File for receipts. For more information, refer to the EMVCo website. |
| application_label | String | Application label for an EMV transaction. |
| application_expiry_date | String | Date the application expires. |
| application_effective_date | String | Date the application was released. |
| application_interchange_profile | String | Indicates the card’s functions. |
| application_version_number | String | Version number of the application. |
| application_transaction_counter | String | Application transaction counter (ATC) for an EMV transaction. |
| application_usage_control | String | Indicates the geographic and service restrictions that the issuer has placed on the card. |
| application_preferred_name | String | Name of the application in the cardholder’s local language. |
| application_display_name | String | Name of the application to display. |
| application_pan_sequence_number | String | Sequence number to identify cards with the same PAN in a transaction. |
| application_cryptogram | String | Application cryptogram (AC) for an EMV transaction. |
| application_cryptogram_type | String | Type of cryptogram that the application uses. The value is one of the following: • TC - Transaction Certificate• AAC - Application Authorization Cryptogram• ARQC - Authorization Request Cryptogram |
| cardholder_verification_method_results | String | Result of the last card verification. |
| issuer_application_data | String | Information for sending the transaction request to the issuer. |
| terminal_verification_results | String | Terminal verification results (TVR) for an EMV transaction. |
| unpredictable_number | String | Value that the terminal uses to generate a cryptogram. |
| pos_entry_mode | String | Indicates how the device read the card details. |
| terminal_type | String | Details of the terminal that sent the transaction. |
| ifd_serial_number | String | Serial number of the terminal or device. |
{
"receipt": {
"clerk_id": "KB"
},
"transaction": {
"keyed_entry_mode": "allowed",
"country_code": "840",
"language": "en-US",
"processing_indicators": {
"allow_duplicate": true,
"partial_approval": true,
"create_token": true
},
"terminal": {
"terminal_id": "1234567890"
},
"create_token_reason": "unscheduled_merchant_initiated_transaction"
},
"payment": {
"amount": "2.01",
"currency_code": "840",
"gratuity_eligible_amount": "2.3",
"invoice_number": "223332",
"healthcare_amounts": {
"copay_amount": "9.3",
"clinical_amount": "4.2",
"dental_amount": "2.4",
"prescription_amount": "1.0",
"vision_amount": "3.2",
"healthcare_total_amount": "1.2"
},
"purchase_order": {
"tax_amount": "7.4",
"po_number": "12458",
"destination_postal_code": "9687"
}
},
"reference_id": "abcd"
}{
"invoice_number": "239087",
"amount": "23.09",
"status": "completed",
"currency_code": "840",
"gratuity_amount": "10.00",
"transactions": [
{
"tender_type": "credit",
"entry_type": "contactless",
"id": "0000012345678903266",
"reference_id": "XAZR863990",
"status": "approved",
"status_code": "200",
"processor_response": "APPROVAL ADB123",
"transaction_datetime": "2019-12-15T13:00:00Z",
"credit_attributes": {
"approval_code": "ADB123",
"avs_response": "full_match",
"avs_response_description": "Match - Street Address",
"cardsecurity_response": "match",
"payment": {
"amount": "23.09",
"cashback_amount": "10.00",
"type": "credit",
"fees": {
"surcharge_amount": "10.00"
}
},
"card": {
"masked_card_number": "XXXXXXXXXXX5538",
"cardholder_name": "Joe Doe",
"expiry_month": "03",
"expiry_year": "23",
"token": "EnzMcSVlkP",
"type": "visa",
"balance": "12.09",
"postal_code": "84042",
"rfmiq": "ADB12",
"card_on_file_attributes": {
"tokenization_error_code": "ADB12",
"tokenization_error_message": "ADB12"
}
},
"emv": {
"amount": {
"amount_authorized": "225.09",
"amount_other": "225.09"
},
"icc": {
"dedicated_file_name": "A000000004101",
"application_label": "Visa",
"application_expiry_date": "string",
"application_effective_date": "string",
"application_interchange_profile": "5C00",
"application_version_number": "0001",
"application_transaction_counter": "3601",
"application_usage_control": "stri",
"application_preferred_name": "4D617374657243617264",
"application_display_name": "string",
"application_pan_sequence_number": "99",
"application_cryptogram": "AC2E521325F52EEC",
"application_cryptogram_type": "TC",
"cardholder_verification_method_results": "string",
"issuer_application_data": "0210A0800F240000000000000000000000FF",
"terminal_verification_results": "0200008000",
"unpredictable_number": "95637FFD",
"pos_entry_mode": "st",
"terminal_type": "21",
"ifd_serial_number": "stringstringstri",
"terminal_country_code": "840",
"terminal_identification": "stringstringstri",
"tac_default": "ABCFFF",
"tac_denial": "ABCFFF",
"tac_online": "ABCFFF",
"transaction_type": "00",
"transaction_currency_code": "840",
"transaction_status_information": "E800",
"cryptogram_information_data": "80",
"pin_statement": "PIN Verified",
"cvm_method": "string",
"iac_default": "AABB32",
"iac_denial": "AABB32",
"iac_online": "string",
"authorization_response_code": "st"
}
}
},
"debit_attributes": {
"approval_code": "ADB123",
"avs_response": "full_match",
"avs_response_description": "Match - Street Address",
"cardsecurity_response": "match",
"payment": {
"amount": "23.09",
"cashback_amount": "10.00",
"type": "credit",
"fees": {
"surcharge_amount": "10.00"
}
},
"card": {
"masked_card_number": "XXXXXXXXXXX5538",
"cardholder_name": "Joe Doe",
"expiry_month": "03",
"expiry_year": "23",
"token": "EnzMcSVlkP",
"type": "visa",
"balance": "12.09",
"postal_code": "84042",
"debit_trace_number": "dbttrace",
"rfmiq": "ADB12",
"card_on_file_attributes": {
"tokenization_error_code": "ADB12",
"tokenization_error_message": "ADB12"
}
},
"emv": {
"amount": {
"amount_authorized": "225.09",
"amount_other": "225.09"
},
"icc": {
"dedicated_file_name": "A000000004101",
"application_label": "Visa",
"application_expiry_date": "string",
"application_effective_date": "string",
"application_interchange_profile": "5C00",
"application_version_number": "0001",
"application_transaction_counter": "3601",
"application_usage_control": "stri",
"application_preferred_name": "4D617374657243617264",
"application_display_name": "string",
"application_pan_sequence_number": "99",
"application_cryptogram": "AC2E521325F52EEC",
"application_cryptogram_type": "TC",
"cardholder_verification_method_results": "string",
"issuer_application_data": "0210A0800F240000000000000000000000FF",
"terminal_verification_results": "0200008000",
"unpredictable_number": "95637FFD",
"pos_entry_mode": "st",
"terminal_type": "21",
"ifd_serial_number": "stringstringstri",
"terminal_country_code": "840",
"terminal_identification": "stringstringstri",
"tac_default": "ABCFFF",
"tac_denial": "ABCFFF",
"tac_online": "ABCFFF",
"transaction_type": "00",
"transaction_currency_code": "840",
"transaction_status_information": "E800",
"cryptogram_information_data": "80",
"pin_statement": "PIN Verified",
"cvm_method": "string",
"iac_default": "AABB32",
"iac_denial": "AABB32",
"iac_online": "string",
"authorization_response_code": "st"
}
}
}
}
]
}{
"receipt": {
"clerk_id": "KB"
},
"transaction": {
"keyed_entry_mode": "allowed",
"country_code": "840",
"language": "en-US",
"processing_indicators": {
"allow_duplicate": true,
"partial_approval": true,
"create_token": true
},
"terminal": {
"terminal_id": "1234567890"
},
"create_token_reason": "unscheduled_merchant_initiated_transaction"
},
"payment": {
"amount": "2.01",
"currency_code": "840",
"gratuity_eligible_amount": "2.3",
"invoice_number": "223332",
"healthcare_amounts": {
"copay_amount": "9.3",
"clinical_amount": "4.2",
"dental_amount": "2.4",
"prescription_amount": "1.0",
"vision_amount": "3.2",
"healthcare_total_amount": "1.2"
},
"purchase_order": {
"tax_amount": "7.4",
"po_number": "12458",
"customer_code": "9687"
}
},
"reference_id": "abcd"
}{
"amount": "2.01",
"currency_code": "840",
"status": "completed",
"gratuity_amount": "1.00",
"transactions": [
{
"id": "3141607231",
"entry_type": "contact",
"tender_type": "credit",
"status": "approved",
"status_code": "201",
"processor_response": "",
"reference_id": "abcd",
"transaction_datetime": "2021-02-18T10:15:35Z",
"credit_attributes": {
"card": {
"cardholder_name": "TEST/TSYS \t",
"masked_card_number": "************1608",
"type": "mastercard"
},
"payment": {
"amount": "2.01",
"type": "credit",
"cashback_amount": "0.00"
},
"approval_code": "NC1000",
"emv": {
"icc": {
"cardholder_verification_method_results": "5E0000",
"issuer_application_data": "06010A03600000",
"terminal_verification_results": "8000008000",
"unpredictable_number": "3C922244",
"pos_entry_mode": "05",
"cryptogram_information_data": "40",
"cvm_method": "signature",
"iac_default": "FC50AC8800",
"iac_denial": "0000000000",
"iac_online": "FC70BC9800",
"authorization_response_code": "00",
"dedicated_file_name": "A0000000031010",
"application_label": "VISA DEBIT",
"application_interchange_profile": "1800",
"application_version_number": "0096",
"application_transaction_counter": "0135",
"application_usage_control": "FF80",
"application_display_name": "VISA DEBIT",
"application_cryptogram_type": "TC",
"application_cryptogram": "B72DEB06C19F9E2C",
"terminal_type": "22",
"terminal_country_code": "840",
"tac_default": "DC4000A800",
"tac_denial": "0010000000",
"tac_online": "DC4004F800",
"transaction_type": "00",
"transaction_currency_code": "840",
"transaction_status_information": "6800"
},
"amount": {
"amount_authorized": "11.00",
"amount_other": "0.00"
}
}
}
}
]
}| credit_attributes | Object | Object that contains details of credit card transactions. See the credit_attributes object. |
| debit_attributes | Object | Object that contains details of debit card transactions. See the debit_attributes object. |
| emv | amount | Object | Object that contains details about the dollar amount of the sale. See the amount object. |
| icc | Object | Object that contains details about the integrated circuit card (ICC). See the icc object. |
| emv | amount | Object | Object that contains details about the dollar amount of the sale. See the amount object. |
| icc | Object | Object that contains details about the integrated circuit card (ICC). See the icc object. |
| terminal_country_code | String | ISO code for the country where the transaction originated. For a list of possible values, see the country code enumeration. |
| terminal_identification | String | Indicates the location of the terminal. |
| tac_default | String | Indicates the conditions that cause a terminal to reject a transaction. |
| tac_denial | String | Indicates the conditions that cause a terminal to reject an offline transaction. |
| tac_online | String | Indicates the conditions that cause a terminal to run an online transaction. |
| transaction_type | String | Type of transaction you ran. |
| transaction_currency_code | String | ISO currency code for the transaction. For a list of possible values, see the currency code enumeration. |
| transaction_status_information | String | Transaction status information (TSI) for an EMV transaction. |
| cryptogram_information_data | String | Details of the cryptogram. |
| pin_statement | String | Text for information about PIN Verification. The value is one of the following: • PIN Verified• PIN Bypassed• PIN Locked |
| cvm_method | String | Method that the merchant or POS used to verify the customer is the cardholder. |
| iac_default | String | Indicates the conditions that cause the card to reject a transaction. |
| iac_denial | String | Indicates the conditions that cause the card to reject an offline transaction. |
| iac_online | String | Indicates the conditions that cause the card to run an online transaction. |
| authorization_response_code | String | Response code for an authorization. |