A Card object represents a credit or debit card. It contains many useful pieces of information about the card but importantly, it does not contain the full card number and CVC (which are kept securely in the ProcessOut Vault). However, you can use the card for a single payment by creating a card token with it. If you want to use the card for multiple payments, then you can use the card token to create a reusable customer token. Note that once you have used the card token either for a payment or to create a customer token, the card token becomes invalid, and you cannot use it further.
You can use the expires_soon field of the Card object to identify cards that will become invalid in the near future. When we detect that a card is about to expire, we will also fire an event to notify your webhook endpoint. You might respond by prompting the customer to supply a new payment card, for example.
Card object
List of fields
While the card 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 card. |
project_id | string | Project that the card belongs to. |
name | string | Cardholder’s name. |
address1 | string | First line of cardholder’s address. |
address2 | string | Second line of cardholder’s address. |
city | string | City of cardholder’s address. |
state | string | State or county of cardholder’s address. |
country_code | string | Country code of cardholder’s address. |
zip | string | ZIP code of cardholder’s address. |
ip_address | string | IP address of the cardholder |
metadata | object | Metadata related to the card, in the form of key-value pairs (string - string). |
preferred_scheme | string | Preferred scheme defined by the Customer. This gets priority when processing the Transaction. |
scheme | string | Scheme of the card, such as Visa or Mastercard. |
co_scheme | string | Co-scheme of the card, such as Carte Bancaire. |
type | string | Card type ( |
bank_name | string | Name of the card’s issuing bank. |
brand | string | Brand of the card, such as Electron, Classic or Gold. |
category | string | Card category ( |
iin | string | Issuer identification number. Corresponds to the first 6 or 8 digits of the main card number. |
last_4_digits | string | Last 4 digits of the card. |
fingerprint | string | Hash value that remains the same for this card even if it is tokenized several times. Note that this value is different for each project and cannot be used for payment. |
exp_month | integer | Month of the expiration date. |
exp_year | integer | Year of the expiration date. |
cvc_check | string | CVC check status.
|
avs_check | string | AVS check status.
|
token_type | string | Contains the name of a third party tokenization method (such as |
used | boolean | Denotes whether or not this card has been assigned to a Customer Token or has been successfully authorized. This field is tied with If
If |
has_been_authorized | boolean | Denotes whether or not this card has been successfully authorized.
|
sandbox | boolean | Denotes whether or not this card was created in the sandbox testing environment. |
created_at | datetime | Date and time when this card was created. |
The billing address of the
Cardwill be overwritten with the billing address of the invoice, if it is set during transaction processing (except for the card country code, which is automatically derived from the card number). In order of priority, ProcessOut uses the invoice billing address, then theCardbilling address, before falling back to theCustomerbilling address if no other address is available.
JSON object
{
"card": {
"project_id": "proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S",
"update_type": null,
"update_reason_code": null,
"scheme": "visa",
"co_scheme": null,
"preferred_scheme": null,
"type": "debit",
"bank_name": "REVOLUT LIMITED",
"brand": "visa infinite",
"category": "consumer",
"iin": "41659815",
"last_4_digits": "4111",
"fingerprint": "5543c446bbacd7ab48f22e1fe0e4d88e590ba37ecb9ab2cfd3f7e7269bd194e7",
"exp_month": 12,
"exp_year": 2027,
"cvc_check": "passed",
"avs_check": "passed",
"checks": {
"cvc_check": "passed",
"cvc_check_reason": null,
"avs_check": "passed",
"avs_postal_check": "passed",
"avs_postal_check_reason": null,
"avs_street_check": "passed",
"avs_street_check_reason": null,
"avs_name_check": "passed",
"avs_name_check_reason": null
},
"token_type": null,
"name": "Pierre L",
"address1": "133 rue Lamarck",
"address2": null,
"city": "Paris",
"state": "Ile de France",
"country_code": "FR",
"zip": "75018",
"ip_address": "1.2.3.4",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15",
"header_accept": "*/*",
"app_color_depth": 24,
"app_java_enabled": false,
"app_language": "en-US",
"app_screen_height": 900,
"app_screen_width": 1440,
"app_timezone_offset": -60,
"header_referer": "https://js.processout.com/",
"expires_soon": false,
"metadata": {},
"used": true,
"has_been_authorized": false,
"sandbox": true,
"created_at": "2023-04-24T11:27:12.943960085Z",
"updated_at": "2023-04-24T11:27:12.943960014Z",
"id": "card_iyBjJk4tClg445emITDYv6paTXZDgwsP",
"cvc_tokenized": true,
"tokenization_method": null,
"payment_source_detail": null
},
"success": true
}