Customer tokens (usually just called tokens for short) are objects that associate a payment source such as a card or APM token with a customer. You can only use a card or APM token once but you can make payments as many times as necessary with a customer token. This is a useful way to store payment details for a customer as a convenience but it is also essential for Merchant Initiated Transactions (MITs). See the guide page about saving a token to capture future payments to learn more about creating and using customer tokens.
Token object
List of fields
While the token object may seem to contain many parameters, only a handful are useful to merchants. Other may be used under specific scenarios as ProcessOut is fully transparent with the data it gathers. The following list contains most parameters that may be useful to merchants
Field | Type | Description |
|---|---|---|
id | string | String value that uniquely identifies the token. |
verify | boolean | Mark the token to be verified by a payment (0$ or 1$ for cards) as soon as a card is attached. |
verify_statement_descriptor | string | Statement descriptor for the payment verification that'll show on the customer statement. |
description | string | Description that will be sent to the tokenization gateway service. |
summary | string | Masked version of the payment details (for example, a card number that shows only the last 4 digits |
is_chargeable | boolean | Denotes whether or not this token is chargeable. |
can_get_balance | boolean | If true then you can find the balance for this token. |
return_url | string | For APMs, this is the URL to return to the app after payment is accepted. |
cancel_url | string | For APMs, this is the URL to return to the app after payment is canceled. |
metadata | object | Metadata related to the token, in the form of key-value pairs (string - string). |
verification_status | string | If you request verification for the token then this field tracks its status. The status can have the following values: |
customer_id (Expandable) | string | Customer object from which the token was created. |
gateway_configuration_id (Expandable) | string | Gateway configuration that the token is linked to (which can be empty if unused). |
card_id (Expandable) | string | Card used to create the token. |
invoice_id (Expandable) | string | Invoice used to verify the token. |
type | string | Source used to create the token |
is_default | boolean | Denotes whether or not this is the customer’s default token (the token used when capturing a payment using the customer’s ID as the source). |
sandbox | boolean | Denotes whether or not this token was created in the sandbox testing environment. |
created_at | datetime | Date and time when this token was created. |
network_token (Expandable) | object | This object represent the status of the network token. It can only be shown if a setting is activated on your project. |
webhook_url | string | Custom webhook URL for this customer token. Customer token events will be sent to this URL on top off your webhook endpoint URL. |
Network Token object
Field | Type | Description |
|---|---|---|
id | string | String value that uniquely identifies the Network Token. |
status | string | Represent the status of the token. Can be |
JSON object
Empty token
{
"success": true,
"token": {
"id": "tok_ETX8PdnQtKduob3ypkrJiHTNlK0skH6c",
"customer_id": "cust_D5BDaQQ8XL4xoUfKRjpBQjoEIwMA6asA",
"invoice_id": null,
"gateway_configuration_id": null,
"gateway_configuration_sub_account": null,
"card_id": null,
"is_subscription_only": false,
"is_default": false,
"return_url": "https://mymerchant.com/return",
"cancel_url": "https://mymerchant.com/cancel",
"is_chargeable": false,
"type": "pending",
"metadata": {
"test": "23456789"
},
"description": null,
"created_at": "2023-04-22T10:39:09.826201718Z",
"summary": null,
"verification_status": "not-requested",
"manual_invoice_cancellation": null,
"can_get_balance": null
}
}Token with a card attached
{
"success": true,
"token": {
"id": "tok_4H77e0IrpFrp3YhvBGmbuJr54MRob5yl",
"customer_id": "cust_D5BDaQQ8XL4xoUfKRjpBQjoEIwMA6asA",
"invoice_id": null,
"gateway_configuration_id": null,
"gateway_configuration_sub_account": null,
"card": {
"project_id": "proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S",
"update_type": null,
"update_reason_code": null,
"scheme": "visa",
"co_scheme": null,
"preferred_scheme": null,
"type": "credit",
"bank_name": null,
"brand": null,
"category": null,
"iin": "400000",
"last_4_digits": "0101",
"fingerprint": "43d7ff88cb38993d87311c2e54779cc9ec0c20298a5ef84c31e519ef6a068a79",
"exp_month": 7,
"exp_year": 2026,
"cvc_check": "unavailable",
"avs_check": "unavailable",
"checks": {
"cvc_check": "unavailable",
"cvc_check_reason": null,
"avs_check": "unavailable",
"avs_postal_check": "unavailable",
"avs_postal_check_reason": null,
"avs_street_check": "unavailable",
"avs_street_check_reason": null,
"avs_name_check": "unavailable",
"avs_name_check_reason": null
},
"token_type": null,
"name": "Matéo Garnier",
"address1": "133 rue Lamarck",
"address2": "Cedex 7",
"city": "Paris",
"state": "Ile De France",
"country_code": "US",
"zip": "75018",
"ip_address": "176.27.120.213",
"user_agent": "PostmanRuntime/7.32.2",
"header_accept": "*/*",
"app_color_depth": null,
"app_java_enabled": null,
"app_language": null,
"app_screen_height": null,
"app_screen_width": null,
"app_timezone_offset": null,
"header_referer": null,
"expires_soon": false,
"metadata": {},
"used": null,
"sandbox": true,
"created_at": "2023-04-22T10:37:15.854105Z",
"updated_at": "2023-04-22T10:37:15.854104Z",
"id": "card_WtbRZBADSSL0MJSTKrbYZHuPuCkSVGBy",
"cvc_tokenized": true,
"tokenization_method": null,
"payment_source_detail": null
},
"card_id": "card_WtbRZBADSSL0MJSTKrbYZHuPuCkSVGBy",
"is_subscription_only": false,
"is_default": true,
"return_url": "https://mymerchant.com/return",
"cancel_url": "https://mymerchant.com/cancel",
"is_chargeable": true,
"type": "card",
"metadata": {
"test": "23456789"
},
"description": null,
"created_at": "2023-04-22T10:37:17.950649Z",
"summary": "**** **** **** 0101",
"verification_status": "not-requested",
"manual_invoice_cancellation": null,
"can_get_balance": null
}
}Token with an alternative payment method attached
{
"success": true,
"token": {
"id": "tok_X6kIALJ8FR1x8wDuzOoWQRyZIbtzpA22",
"customer_id": "cust_D5BDaQQ8XL4xoUfKRjpBQjoEIwMA6asA",
"invoice_id": null,
"gateway_configuration_id": "gway_conf_c23e011db34f4bac44e051840dfa3783",
"gateway_configuration_sub_account": null,
"card_id": null,
"is_subscription_only": false,
"is_default": false,
"return_url": null,
"cancel_url": null,
"is_chargeable": true,
"type": "gateway_token",
"metadata": {
"test": "23456789"
},
"description": null,
"created_at": "2023-04-22T09:36:33.798042Z",
"summary": "test_summary",
"verification_status": "not-requested",
"manual_invoice_cancellation": null,
"can_get_balance": true
}
}