Skip to main content

Payments with Customer Tokens


The customer token represents customer-related information including details for a payment card or electronic check, billing address, shipping address, and merchant defined data. You can make a payment using an existing customer token or create one. To make a payment using a new customer token, you must include token creation in the authorization request. To process a payment using an existing customer token, you must include the customer token ID as the value in the paymentInformation.customer.id field.

Authorize a Payment with a Customer Token

This section provides the information you need to authorize a payment with a customer token.

Endpoint

POST /pts/v2/payments

POST /pts/v2/payments

Example

{  "clientReferenceInformation": {    "code": "12345678"  },  "paymentInformation": {    "customer": {      "id": "F45FB3E443AC3C57E053A2598D0A9CFF"    }  },  "orderInformation": {    "amountDetails": {      "currency": "USD",      "totalAmount": "10.00"    }  }}
{  "_links": {    "authReversal": {      "method": "POST",      "href": "/pts/v2/payments/7055928871556818104953/reversals"    },    "self": {      "method": "GET",      "href": "/pts/v2/payments/7055928871556818104953"    },    "capture": {      "method": "POST",      "href": "/pts/v2/payments/7055928871556818104953/captures"    }  },  "clientReferenceInformation": {    "code": "12345678"  },  "id": "7055928871556818104953",  "orderInformation": {    "amountDetails": {      "authorizedAmount": "10.00",      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "001"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "001"    },    "instrumentIdentifier": {      "id": "7010000000016241111",      "state": "ACTIVE"    },    "shippingAddress": {      "id": "0F35F0D99AD088B5E063A2598D0AE066"    },    "paymentInstrument": {      "id": "0F35E9CFEA463E34E063A2598D0A3FC2"    },    "card": {      "type": "001"    },    "customer": {      "id": "B21E6717A6F03479E05341588E0A303F"    }  },  "pointOfSaleInformation": {    "terminalId": "111111"  },  "processorInformation": {    "approvalCode": "888888",    "networkTransactionId": "123456789619999",    "transactionId": "123456789619999",    "responseCode": "100",    "avs": {      "code": "X",      "codeRaw": "I1"    }  },  "reconciliationId": "67467352CRIISD1G",  "status": "AUTHORIZED",  "submitTimeUtc": "2024-01-18T15:48:07Z"}

The request response returns the payment instrument and shipping address IDs that are used as the customer's defaults.

Network Token Variant

The following example authorizes a payment using a customer token that is linked to a network token.

{  "clientReferenceInformation": {    "code": "12345678"  },  "paymentInformation": {    "customer": {      "id": "F60328413BAB09A4E053AF598E0A33DB"    }  },  "orderInformation": {    "amountDetails": {      "totalAmount": "102.21",      "currency": "USD"    }  }}
{  "_links": {    "authReversal": {      "method": "POST",      "href": "/pts/v2/payments/6778647071126384904953/reversals"    },    "self": {      "method": "GET",      "href": "/pts/v2/payments/6778647071126384904953"    },    "capture": {      "method": "POST",      "href": "/pts/v2/payments/6778647071126384904953/captures"    }  },  "clientReferenceInformation": {    "code": "TC50171_3"  },  "id": "6778647071126384904953",  "issuerInformation": {    "responseRaw": "0110322000000E100002000....."  },  "orderInformation": {    "amountDetails": {      "authorizedAmount": "102.21",      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "002"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "002"    },    "instrumentIdentifier": {      "id": "7020000000010603216",      "state": "ACTIVE"    },    "shippingAddress": {      "id": "F60328413BAE09A4E053AF598E0A33DB"    },    "paymentInstrument": {      "id": "F6032841BE33098EE053AF598E0AB0A5"    },    "card": {      "type": "002"    },    "customer": {      "id": "F60328413BAB09A4E053AF598E0A33DB"    }  },  "pointOfSaleInformation": {    "terminalId": "08244117"  },  "processingInformation": {    "paymentSolution": "014"  },  "processorInformation": {    "paymentAccountReferenceNumber": "50015OU4U5UYXLV127XTONYN49CL1",    "merchantNumber": "000844028303882",    "approvalCode": "831000",    "networkTransactionId": "0602MCC603474",    "transactionId": "0602MCC603474",    "responseCode": "00",    "avs": {      "code": "Y",      "codeRaw": "Y"    }  },  "reconciliationId": "EUHW1EMHIZ3O",  "status": "AUTHORIZED",  "submitTimeUtc": "2023-03-03T17:31:48Z"}

The request response returns the payment instrument and shipping address IDs that are used as the customer's defaults.

Create a Customer Token with Validated Payment Details

This section describes how to create a customer with validated payment details.

Endpoint

POST /pts/v2/payments

POST /pts/v2/payments

Example

{  "clientReferenceInformation": {    "code": "TC50171_3"  },  "processingInformation": {    "commerceIndicator": "internet",    "actionList": [      "TOKEN_CREATE"    ],    "actionTokenTypes": [      "customer",      "paymentInstrument",      "shippingAddress"    ]  },  "orderInformation": {    "billTo": {      "country": "US",      "lastName": "Deo",      "address2": "Address 2",      "address1": "201 S. Division St.",      "postalCode": "48104-2201",      "locality": "Ann Arbor",      "administrativeArea": "MI",      "firstName": "John",      "phoneNumber": "999999999",      "district": "MI",      "buildingNumber": "123",      "company": "Visa",      "email": "{% t key="test-email" /%}"    },    "shipTo": {      "country": "US",      "lastName": "Deo",      "address2": "Address 2",      "address1": "201 S. Division St.",      "postalCode": "48104-2201",      "locality": "Ann Arbor",      "administrativeArea": "MI",      "firstName": "John",      "phoneNumber": "999999999",      "district": "MI",      "buildingNumber": "123",      "company": "Visa",      "email": "{% t key="test-email" /%}"    },    "amountDetails": {      "totalAmount": "102.00",      "currency": "USD"    }  },  "paymentInformation": {    "card": {      "expirationYear": "2031",      "number": "4895379987X11515",      "securityCode": "089",      "expirationMonth": "12"    }  }}
{  "_links": {    "authReversal": {      "method": "POST",      "href": "/pts/v2/payments/6760630088136127303955/reversals"    },    "self": {      "method": "GET",      "href": "/pts/v2/payments/6760630088136127303955"    },    "capture": {      "method": "POST",      "href": "/pts/v2/payments/6760630088136127303955/captures"    }  },  "clientReferenceInformation": {    "code": "TC50171_3"  },  "id": "6760630088136127303955",  "orderInformation": {    "amountDetails": {      "authorizedAmount": "102.00",      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "001"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "001"    },    "card": {      "type": "001"    }  },  "pointOfSaleInformation": {    "terminalId": "111111"  },  "processorInformation": {    "paymentAccountReferenceNumber": "V0010013019326121174070050420",    "approvalCode": "888888",    "networkTransactionId": "123456789619999",    "transactionId": "123456789619999",    "responseCode": "100",    "avs": {      "code": "X",      "codeRaw": "I1"    }  },  "reconciliationId": "69816012FDTK35GM",  "status": "AUTHORIZED",  "submitTimeUtc": "2023-02-10T21:03:29Z",  "tokenInformation": {    "instrumentidentifierNew": false,    "instrumentIdentifier": {      "state": "ACTIVE",      "id": "7030000000014911515"    },    "shippingAddress": {      "id": "F45FB3E443AF3C57E053A2598D0A9CFF"    },    "paymentInstrument": {      "id": "F45FC6785E3C31A2E053A2598D0A5346"    },    "customer": {      "id": "F45FB3E443AC3C57E053A2598D0A9CFF"    }  }}
FieldTypeDescription
orderInformation.amountDetails.currencystringThe currency for the order. Use the three-character ISO Standard Currency Code.
orderInformation.amountDetails.totalAmountstringThe total amount for the order.
orderInformation.billTo.address1stringThe first line of the billing street address.
orderInformation.billTo.administrativeAreastringState or province in the billing address.
orderInformation.billTo.countrystringCountry of the billing address. Use the two-character ISO Standard Country Code.
orderInformation.billTo.emailstringThe customer's billing email address.
orderInformation.billTo.firstNamestringThe customer's first name.
orderInformation.billTo.lastNamestringThe customer's last name.
orderInformation.billTo.localitystringCity in the billing address.
orderInformation.billTo.postalCodestringZIP or postal code in the billing address.
paymentInformation.card.expirationMonthstringCard expiration month in two-digit format. For example, 12.
paymentInformation.card.expirationYearstringCard expiration year in four-digit format. For example, 2031.
paymentInformation.card.numberstringThe customer's card number.
processingInformation.actionListstringSet to TOKEN_CREATE.
processingInformation.actionTokenTypesstringSet to customer.
Optional Fields
FieldTypeDescription
paymentInformation.card.typestringThe card type code. For example, 001 for Visa.

Make a Credit with a Customer Token

This section describes how to make a credit with a customer token.

Endpoint

POST /pts/v2/credits

POST /pts/v2/credits

Example

{  "clientReferenceInformation": {    "code": "12345678"  },  "paymentInformation": {    "customer": {      "id": "F45FB3E443AC3C57E053A2598D0A9CFF"    }  },  "orderInformation": {    "amountDetails": {      "currency": "USD",      "totalAmount": "10.00"    }  }}
{  "_links": {    "void": {      "method": "POST",      "href": "/pts/v2/credits/7055967677826132904951/voids"    },    "self": {      "method": "GET",      "href": "/pts/v2/credits/7055967677826132904951"    }  },  "clientReferenceInformation": {    "code": "12345678"  },  "creditAmountDetails": {    "currency": "USD",    "creditAmount": "10.00"  },  "id": "7055967677826132904951",  "orderInformation": {    "amountDetails": {      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "001"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "001"    },    "instrumentIdentifier": {      "id": "7030000000014831523",      "state": "ACTIVE"    },    "shippingAddress": {      "id": "F45FD8DE51B99E9CE053A2598D0AFDFA"    },    "paymentInstrument": {      "id": "F45FE45E7993C7DBE053A2598D0AED19"    },    "card": {      "type": "001"    },    "customer": {      "id": "F45FB3E443AC3C57E053A2598D0A9CFF"    }  },  "processorInformation": {    "paymentAccountReferenceNumber": "V0010013019326121538313096266",    "approvalCode": "888888",    "responseCode": "100"  },  "reconciliationId": "67444961BRIL0BB8",  "status": "PENDING",  "submitTimeUtc": "2024-01-18T16:52:48Z"}
FieldTypeDescription
clientReferenceInformation.codestringUnique reference code for the transaction.
orderInformation.amountDetails.currencystringThe currency for the order. Use the three-character ISO Standard Currency Code.
orderInformation.amountDetails.totalAmountstringThe total amount for the order.
paymentInformation.customer.idstringThe ID of the customer token to use for the credit.

To process a payment using a payment instrument token, include the customer token ID as the value in the paymentInformation.paymentInstrument.id field. You can make payments using non-default payment instruments associated with the customer.

Authorize a Payment with a Non-Default Payment Instrument

Authorize a payment using a non-default payment instrument.

Endpoint

POST /pts/v2/payments

POST /pts/v2/payments

Example

{  "clientReferenceInformation": {    "code": "12345678"  },  "paymentInformation": {    "paymentInstrument": {      "id": "0F3BB131F8143A58E063A2598D0AB921"    }  },  "orderInformation": {    "amountDetails": {      "currency": "USD",      "totalAmount": "10.00"    }  }}
{  "_links": {    "authReversal": {      "method": "POST",      "href": "/pts/v2/payments/7055952648586653304951/reversals"    },    "self": {      "method": "GET",      "href": "/pts/v2/payments/7055952648586653304951"    },    "capture": {      "method": "POST",      "href": "/pts/v2/payments/7055952648586653304951/captures"    }  },  "clientReferenceInformation": {    "code": "12345678"  },  "id": "7055952648586653304951",  "orderInformation": {    "amountDetails": {      "authorizedAmount": "10.00",      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "001"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "001"    },    "instrumentIdentifier": {      "id": "7010000000016241111",      "state": "ACTIVE"    },    "paymentInstrument": {      "id": "0F3BB131F8143A58E063A2598D0AB921"    },    "card": {      "type": "001"    }  },  "pointOfSaleInformation": {    "terminalId": "111111"  },  "processorInformation": {    "approvalCode": "888888",    "networkTransactionId": "123456789619999",    "transactionId": "123456789619999",    "responseCode": "100",    "avs": {      "code": "X",      "codeRaw": "I1"    }  },  "reconciliationId": "67468244CRIL0U0Y",  "status": "AUTHORIZED",  "submitTimeUtc": "2024-01-18T16:27:45Z"}
FieldTypeDescription
paymentInformation.paymentInstrument.idstringThe customer token ID of the non-default payment instrument.
orderInformation.amountDetails.totalAmountstringThe total amount for the order.
orderInformation.amountDetails.currencystringThe currency for the order. Use the three-character ISO Standard Currency Code.

Make a Credit with a Non-Default Payment Instrument

Process a credit (refund) using a non-default payment instrument.

Endpoint

POST /pts/v2/credits

POST /pts/v2/credits

Example

{  "clientReferenceInformation": {    "code": "12345678"  },  "paymentInformation": {    "paymentInstrument": {      "id": "0F3BB131F8143A58E063A2598D0AB921"    }  },  "orderInformation": {    "amountDetails": {      "currency": "USD",      "totalAmount": "10.00"    }  }}
{  "_links": {    "void": {      "method": "POST",      "href": "/pts/v2/credits/7055968581386446104953/voids"    },    "self": {      "method": "GET",      "href": "/pts/v2/credits/7055968581386446104953"    }  },  "clientReferenceInformation": {    "code": "12345678"  },  "creditAmountDetails": {    "currency": "USD",    "creditAmount": "10.00"  },  "id": "7055968581386446104953",  "orderInformation": {    "amountDetails": {      "currency": "USD"    }  },  "paymentAccountInformation": {    "card": {      "type": "001"    }  },  "paymentInformation": {    "tokenizedCard": {      "type": "001"    },    "instrumentIdentifier": {      "id": "7010000000016241111",      "state": "ACTIVE"    },    "paymentInstrument": {      "id": "0F3BB131F8143A58E063A2598D0AB921"    },    "card": {      "type": "001"    }  },  "processorInformation": {    "approvalCode": "888888",    "responseCode": "100"  },  "reconciliationId": "67445196PRILCQCN",  "status": "PENDING",  "submitTimeUtc": "2024-01-18T16:54:18Z"}
FieldTypeDescription
paymentInformation.paymentInstrument.idstringThe customer token ID of the non-default payment instrument.
orderInformation.amountDetails.totalAmountstringThe total amount for the order.
orderInformation.amountDetails.currencystringThe currency for the order. Use the three-character ISO Standard Currency Code.

Last published: September 29, 2026