Introduction
The API is designed on REST, therefore you’ll find that URLs are oriented to resources and that HTTP response codes are used to indicate errors in the API.
All the API responses are in JSON format, including the errors.
In the case to use the existents API clients (Java, PHP, C#, Ruby), the responses are specifically of type defined in the clients and their respective languajes.
Quick Guide
This is a quick guide to the flow of operation and description of each point in order to accompany the development of the stores. We highly recommend reading the integration specifications in detail before starting to develop.
Charges with VPOS
Flow Chart of the Operation.

Note : All merchants are created by default with 3d Secure authentication and VPOS
1.- The cardholder enters the web page of the store, selects their products once selected and inside the shopping cart clicks on the option to pay.
2.- The merchant generates a request with a JSON object that contains the fields listed in “Charges with VPOS”. Within the object, a field must be included with the URL to which the flow is redirected at the end of the transaction, whether authorized or rejected.
Example of URL: “redirect_url”: “https://micomercio.com”
Note: The data that is included in this object is from the purchase. They are not sensitive data.
3.- BBVA returns a response with a JSON object named “transaction” that contains the URL to which the cardholder must be directed to capture the data in the VPOS The field “id” (string) is a unique assigned identifier by BBVA at the time of its creation. The merchant has to associate a sale order number with this ID.
4.- The merchant redirects the cardholder to the URL that displays the VPOS, which travels in the Json object named “transaction”
Example: “url” :
“https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/trywj1kyx7vczirifkyw/card_capture”
5.- The cardholder, enters the sensitive data in the VPOS, card number, CVV, expiration date, and sends the information directly to BBVA
5.5.- 3d Secure authentication is carried out by the issuing bank of the Debit or Credit Card
6.- BBVA processes the transaction and redirects the cardholder to the URL sent by the merchant in step “2”
7.- The merchant receives the request from the client’s browser and uses the id of the transaction to query the result (Authorized or Rejected) through the Get a Charge service this ID field was associated with the identifier of Order of sale in step number 3.
Example of URL: “redirect_url”: “https://micomercio.com”
Including in the URL, the ID of the transaction …
Ej .- https://www.micomercio.com?id=tr72356487234bd238d
8 .- The merchant makes a request to the Get a Charge service The status of the transaction is requested from the BBVA server and an object “Transaction object” is answered.
Note.- The merchant generates your purchase receipt based on the information obtained from the object “Get a Charge” The status of the transaction must be requested from the BBVA server and the latter responds to an object “Transaction object”. with the data that should be shown on the payment receipt.
IMPORTANT
Always include the secret key and the MID as well as the Version
POST https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges.
To make requests to the API, it is necessary to send the API key (API Key) in all your calls to our servers. You can get the key from the dashboard.
API key:
Private.- For requests between servers and with full access to all API operations (it should never be shared).
Charges with card (WITHOUT VPOS)
¡ IMPORTANT !
To use the charge without VPOS you must request authorization with your account executive !!!
Flow Chart of the Operation.

1.- The cardholder enters the web page of the store, selects their products once selected and inside the shopping cart clicks on the option to pay. Within the Trade Checkout, sensitive data such as card number, CVV, expiration date are captured and the information is sent directly to BBVA
2.- The trade creates a Json object containing the fields listed in “With card” charges and the “card” object is added with the cardholder’s sensitive data.
Within the object should include the url where the flow is redirected at the end of the transaction, whether authorized or rejected.
Example of URL.- “redirect_url”: “https:/micomercio.com”
3.- BBVA returns the response with a JSON object named “transaction” that contains the URL to which the cardholder must be directed for 3D Secure authentication. This URL is located within the response in the “payment_method” object:
Example of URL.-
https://sand-api.ecommercebbva.com/v1/md8r38qyiyiprpmim9yy/charges/trrla2nopehlfx31fbrg/redirect/
The field “id” (string) is a unique identifier assigned by BBVA at the time of its creation. The merchant has to associate a sale order number with this ID.
3.5.- Authentication of the cardholder is carried out by means of 3d Secure with the issuing bank of the Debit or Credit Card
4.- BBVA processes the transaction and redirects the cardholder to the URL sent by the merchant in step “2”
5.- The merchant receives the request from the client’s browser and uses the transaction id to query the result (Authorized or Rejected) through the “Get a Charge” service this ID field was associated with the order identifier of the sale in step number 3.
Example of URL.- “redirect_url”: “https://micomercio.com”
Including in the URL, the ID of the transaction …
Ej .- https://www.micomercio.com?id=tr72356487234bd238d
6.- The trade makes a request with the “Get a Charge” service The status of the transaction is requested from the BBVA server and an object “Transaction object” is answered.
Note.- The merchant generates your purchase receipt based on the information obtained from the object “Obtain a Position” The status of the transaction must be requested from the BBVA server and the latter responds to an object “Transaction object”. with the data that should be shown on the payment receipt.
Troubleshooting
If you have any questions you can check the issues section of the library you are using:
API Endpoints
Available resourcers
/v1/{MERCHANT_ID}/charges
/v1/{MERCHANT_ID}/charges/{TRANSACTION_ID}
The BBVA REST API has a test environment (sandbox) and a production environment. For integrating your system with BBVA, use the credentials that were generated when you signed up. Once you are ready to move to production environment and your request is approved, new credentials will be generated for accessing the production environment.
The following URIs are the basis of the endpoints for the supported environments:
- Test, URI base:
https://sand-api.ecommercebbva.com - Production, URI base:
https://api.ecommercebbva.com
A complete endpoint consists of the base URI of the environment, the identifier of the Merchant and the resource.
For example, if we want to create a new charge, the endpoint would be::
POST https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges
In order to create a complete request is necessary to send the right HTTP headers and the information in JSON format.
Authentication
Authentication example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges \
-u sk_326c6d0443f6457aae29ffbd48f7d1be:
The -u parameter is responsible for the HTTP basic authentication (adding two points after the private key prevents the use of password)
<?
//Sandbox is used by default
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
?>
//Sandbox
final BbvaAPI api = new BbvaAPI("https://sand-api.ecommercebbva.com", "mptdggroasfcmqs8plpy", "sk_326c6d0443f6457aae29ffbd48f7d1be");
//Production
final BbvaAPI api = new BbvaAPI("https://api.ecommercebbva.com", "mptdggroasfcmqs8plpy", "sk_326c6d0443f6457aae29ffbd48f7d1be");
//Sandbox
BbvaAPI bbvaAPI = new Bbva("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
bbvaAPI.Production = false; // Default value = false
//Produtcion
BbvaAPI bbvaAPI = new Bbva("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
bbvaAPI.Production = true;
#Sandbox
bbva=BbvaApi.new("mptdggroasfcmqs8plpy","sk_326c6d0443f6457aae29ffbd48f7d1be")
#Production
bbva=BbvaApi.new("mptdggroasfcmqs8plpy","sk_326c6d0443f6457aae29ffbd48f7d1be", true)
#Define the timeout for the requests
#This client uses a default 90 secs timeout. In order to configure the timeout used to create request to the BBVA services, you need to clearly define the kind of environment, followed by the new timeout value for the request:
#Syntax:
# bbva_prod=BbvaApi.new(merchant_id,private_key,isProduction,timeout)
#Example:
# bbva_prod=BbvaApi.new(merchant_id,private_key,false,30)
Production
You only need to use the URI base https://api.ecommercebbva.com
<?
Bbva::setProductionMode(true);
?>
//You only need to use the URI base https://api.ecommercebbva.com
bbvaAPI.Production = true;
#You only need to pass a "true" value as the third argument when creating the BbvaApi object.
To make requests to the BBVA API, is necessary to send the API Key on all your calls to our servers. You can get the key from the dashboard.
API key:
- Private.- For calls between servers and full access to all API operations (should never be shared).
For API authentication you must use the basic access authentication, where the API key is the username. The password is not required and it should be left blank for purposes of simplicity
Errors
BBVA returns JSON objects in the service responses.
Error Object
Object example
{
"category" : "request",
"description" : "The customer with id 'm4hqp35pswl02mmc567' does not exist",
"http_code" : 404,
"error_code" : 1005,
"request_id" : "1981cdb8-19cb-4bad-8256-e95d58bc035c",
"fraud_rules": [
"Billing <> BIN Country for VISA/MC"
]
}
//For Java every operation will return an instance of the "BbvaServiceException" class which will have the error information. ```
```csharp
//For C Sharp, every operation will return an instance of the "BbvaException" class which will have the error information.
#For Ruby, every operation can return any of the following exceptions:
# => BbvaException: For generic errors, like invalid resources, etc.
# => BbvaConnectionException: For errors related with server connection problems.
# => BbvaTransactionException: For errors during operations implementation.
| Property | Description |
|---|---|
| category | string request: Indicates an error caused by data sent by the customer. For example, an invalid request, an attempt at a transaction without funds or a transfer to an account that does not exist. internal: Indicates an error on BBVA side, and will occur very rarely. gateway: Indicates an error during the transaction of funds from one card to the BBVA account or from the account to a bank or card. |
| error_code | numeric BBVA numeric error code indicating a problem happened. |
| description | string Error description. |
| http_code | string HTTP error code of the response. |
| request_id | string Request identifier. |
| fraud_rules | array Array with antifraud rules broken according to fraud detection rules. |
Error codes
General
| Code | HTTP Error | Cause |
|---|---|---|
| 1000 | 500 Internal Server Error | An internal error occurred on the BBVA server |
| 1001 | 400 Bad Request | The format of the request is not JSON, the fields do not have the correct format, or the request does not have fields that are required. |
| 1002 | 401 Unauthorized | The call is not authenticated or the authentication is incorrect. |
| 1003 | 422 Unprocessable Entity | The operation could not be completed because the value of one or more of the parameters is incorrect. |
| 1004 | 503 Service Unavailable | A necessary for processing the transaction service is unavailable. |
| 1005 | 404 Not Found | One of the resources requested does not exist. |
| 1006 | 409 Conflict | A transaction with the same order ID already exists. |
| 1007 | 402 Payment Required | The transfer of funds from a bank account or card to the BBVA account was not accepted. |
| 1008 | 423 Locked | One of the accounts required in the request is deactivated. |
| 1009 | 413 Request Entity too large | The request body is too large. |
Storage
| Code | HTTP Error | Cause |
|---|---|---|
| 2001 | 409 Conflict | The bank account with this CLABE is already registered on the customer. |
| 2002 | 409 Conflict | The card with this number is already registered on the customer. |
| 2003 | 409 Conflict | Customer with this external identifier (External ID) already exists. |
| 2004 | 422 Unprocessable Entity | The check digit card number is invalid according to the Luhn algorithm. |
| 2005 | 400 Bad Request | The expiration date of the card is prior to the current date. |
| 2006 | 400 Bad Request | Security code card (CVV2) was not provided. |
| 2007 | 412 Precondition Failed | The card number is a test number and can only be used in Sandbox. |
| 2008 | 412 Precondition Failed | The consulted card is not valid for points. |
Cards
| Code | HTTP Error | Cause |
|---|---|---|
| 3001 | 402 percent Required | The card was declined. |
| 3002 | 402 Payment Required | The card has expired. |
| 3003 | 402 Payment Required | The card has insufficient funds. |
| 3004 | 402 Payment Required | The card has been identified as a stolen card. |
| 3005 | 402 Payment Required | The card has been identified as a fraudulent card. |
| 3006 | 412 Precondition Failed | The operation is not allowed for this customer or this transaction. |
| 3008 | 412 Precondition Failed | The card is not supported in online transactions. |
| 3009 | 402 Payment Required | The card was reported missing. |
| 3010 | 402 Payment Required | The bank has restricted the card. |
| 3011 | 402 Payment Required | The bank has requested that the card is retained. Contact the bank. |
| 3012 | 412 Precondition Failed | A bank authorization is required to make this payment. |
Charges
Charges can be made to cards, stores and banks. Each charge is assigned with an unique identifier in the system.
In card charges you can do by showing a form for the user to capture the card information.
¡ IMPORTANT !
The handling and sending of data, as well as the capture of responses from each of the transactions is the responsibility of the commerce
With VPOS
This type of charge don’t requires a saved card or a previously generated token
Definition
Merchant
POST https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges
<?
Merchant
$bbva->charges->create(chargeRequest);
?>
//Merchant
bbvaAPI.charges().create(List<Parameter> request);
//Merchant
bbvaAPI.ChargeService.Create(List<IParameter> request);
#Merchant
@charges=@bbva.create(:charges)
@charges.create(request_hash)
Merchant request example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges \
-u sk_326c6d0443f6457aae29ffbd48f7d1be: \
-H "Content-type: application/json" \
-X POST -d '{
"affiliation_bbva" : "781500",
"amount" : 100,
"description" : "Init charge",
"currency" : "MXN",
"order_id" : "oid-00051",
"customer": {
"name": "Juan",
"last_name": "Vazquez Juarez",
"email": "juan.vazquez@example.com.mx",
"phone_number": "555-444-3322"
},
"redirect_url": "https://micomercio.com"
}'
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
ParameterContainer customer = new ParameterContainer("customer");
customer.AddValue("name", "Juan");
customer.AddValue("last_name", "Vazquez Juarez");
customer.AddValue("email", "juan.vazquez@example.com.mx");
customer.AddValue("phone_number", "554-170-3567");
ParameterContainer request = new ParameterContainer("charge");
request.AddValue("affiliation_bbva", "781500");
request.AddValue("amount", "100.00");
request.AddValue("description", "Init charge");
request.AddValue("currency", "MXN");
request.AddValue("order_id", "oid-00051");
request.AddValue("redirect_url", "https://sand-portal.ecommercebbva.com");
request.AddMultiValue(customer):
Dictionary<String, Object> chargeDictionary = bbvaAPI.ChargeService.Create(request.ParameterValues);
ParameterContainer charge = new ParameterContainer("charge", chargeDictionary);
BbvaAPI api = new BbvaAPI(
"https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
ParameterContainer customer = new ParameterContainer("customer");
customer.addValue("name", "Juan");
customer.addValue("last_name", "Vazquez Juarez");
customer.addValue("email", "juan.vazquez@example.com.mx");
customer.addValue("phone_number", "554-170-3567");
ParameterContainer charge = new ParameterContainer("charge");
charge.addValue("affiliation_bbva", "781500");
charge.addValue("amount", "100.00");
charge.addValue("description", "Init charge");
charge.addValue("currency", "MXN");
charge.addValue("order_id", "oid-00051");
charge.addValue("redirect_url", "https://sand-portal.ecommercebbva.com");
charge.addMultiValue(customer);
Map chargeAsMap = api.charges().create(request);
ParameterContainer charge = new ParameterContainer("charge", chargeAsMap);
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$chargeRequest = array(
'affiliation_bbva' => '781500',
'amount' => 100,
'description' => 'Init charge',
'currency' => 'MXN',
'order_id' => 'oid-00051',
'redirect_url' => 'https://sand-portal.ecommercebbva.com',
'customer' => array(
'name' => 'Juan',
'last_name' => 'Vazquez Juarez',
'email' => 'juan.vazquez@example.com.mx',
'phone_number' => '554-170-3567')
);
$charge = $bbva->charges->create($chargeRequest);
?>
@bbva=BbvaApi.new("moiep6umtcnanql3jrxp","sk_3433941e467c4875b178ce26348b0fac")
@charges=@bbva.create(:charges)
customer_hash={
"name" => "Juan",
"last_name" => "Vazquez Juarez",
"phone_number" => "4423456723",
"email" => "juan.vazquez@example.com.mx"
}
request_hash={
"affiliation_bbva" => "781500",
"amount" => 100.00,
"currency" => "MXN",
"description" => "Init charge",
"order_id" => "oid-00051",
"redirect_url" => "https://sand-portal.ecommercebbva.com",
"customer" => customer_hash
}
response_hash=@charges.create(request_hash.to_hash)
Response example
{
"id": "trz8v1n3g992xtylohts",
"authorization": null,
"operation_type": "in",
"method": "card",
"transaction_type": "charge",
"status": "charge_pending",
"conciliated": false,
"creation_date": "2019-04-03T03:57:58-06:00",
"operation_date": "2019-04-03T03:57:58-06:00",
"description": "Pago",
"error_message": null,
"order_id": "oid-00051",
"payment_method": {
"type": "redirect",
"url": "https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/trywj1kyx7vczirifkyw/card_capture"
},
"currency": "MXN",
"amount": 100.00,
"customer": {
"name": "Juan",
"last_name": "Vazquez Juarez",
"email": "juan.vazquez@example.com.mx",
"phone_number": "555-444-3322",
"address": null,
"creation_date": "2019-04-03T03:57:58-06:00",
"external_id": null,
"clabe": null
}
}
Request
| Property | Description |
|---|---|
| affiliation_bbva | string (required) It must contain the affiliation number. |
| amount | numeric (required) Amount to charge. Must be an amount greater than zero, with up to two decimal digits. |
| description | string (required, length = 250) A description associated to the charge. |
| currency | string (optional) Charge currency type. Currently you can only use two currency types: Mexican pesos(MXN) y American dollars(USD). |
| order_id | string (optional, length = 100) Unique identifier of charge. Must be unique among all transactions. |
| customer | object (required) Customer information who is charged. You can use the same parameters used in the creation of a customer but an account for the customer will not be created. Note: This parameter can be used only by creating the charge at the merchant level To create a customer and keep a record of their charges history refer to Objeto Cliente (#create-a-new-customer) and do the charge at the customer level. |
| payment_plan | object (optional) Plan data months without interest is desired as use in the charge. Refer to PaymentPlan Object. |
| redirect_url | string (required) Used in redirect charges. It indicates the url to which redirect after a successful transaction in the BBVA payment form. |
| use_3d_secure | string (optional) By default the value is TRUE, if the trade has enabled the configuration to not use 3d secure, then you can send the parameter to FALSE. |
Response
Returns a transaction object with the charge information or with an error response.
With card
Definition
Merchant
POST https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges
<?
Merchant
$bbva->charges->create(chargeRequest);
?>
//Merchant
bbvaAPI.charges().create(List<Parameter> request);
//Merchant
bbvaAPI.ChargeService.Create(List<IParameter> request);
#Merchant
@charges=@bbva.create(:charges)
@charges.create(request_hash)
Merchant request example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges \
-u sk_326c6d0443f6457aae29ffbd48f7d1be: \
-H "Content-type: application/json" \
-X POST -d '{
"affiliation_bbva" : "781500",
"amount" : 100,
"description" : "Init charge",
"currency" : "MXN",
"order_id" : "oid-00051",
"customer": {
"name": "Juan",
"last_name": "Vazquez Juarez",
"email": "juan.vazquez@example.com.mx",
"phone_number": "555-444-3322"
},
"card" : {
"holder_name" : "Juan Vazquez",
"card_number" : "4242424242424242",
"expiration_month" : "12",
"expiration_year" : "21",
"cvv2" : "842"
}
"redirect_url": "https://micomercio.com"
}'
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
ParameterContainer customer = new ParameterContainer("customer");
customer.AddValue("name", "Juan");
customer.AddValue("last_name", "Vazquez Juarez");
customer.AddValue("email", "juan.vazquez@example.com.mx");
customer.AddValue("phone_number", "554-170-3567");
ParameterContainer card = new ParameterContainer("card");
customer.AddValue("holder_name", "Juan Vazquez Juarez");
customer.AddValue("card_number", "4242424242424242");
customer.AddValue("expiration_month", "12");
customer.AddValue("expiration_year", "21");
customer.AddValue("cvv2", "842");
ParameterContainer request = new ParameterContainer("charge");
request.AddValue("affiliation_bbva", "781500");
request.AddValue("amount", "100.00");
request.AddValue("description", "Init charge");
request.AddValue("currency", "MXN");
request.AddValue("order_id", "oid-00051");
request.AddValue("redirect_url", "https://sand-portal.ecommercebbva.com");
request.AddMultiValue(customer);
request.AddMultiValue(card):
Dictionary<String, Object> chargeDictionary = bbvaAPI.ChargeService.Create(request.ParameterValues);
ParameterContainer charge = new ParameterContainer("charge", chargeDictionary);
BbvaAPI api = new BbvaAPI(
"https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
ParameterContainer customer = new ParameterContainer("customer");
customer.addValue("name", "Juan");
customer.addValue("last_name", "Vazquez Juarez");
customer.addValue("email", "juan.vazquez@example.com.mx");
customer.addValue("phone_number", "554-170-3567");
ParameterContainer card = new ParameterContainer("card");
card.addValue("card_number", "4242424242424242");
card.addValue("holder_name", "Juan Vazquez");
card.addValue("expiration_year", "21");
card.addValue("expiration_month", "12");
card.addValue("cvv2", "842");
ParameterContainer charge = new ParameterContainer("charge");
charge.addValue("affiliation_bbva", "781500");
charge.addValue("amount", "100.00");
charge.addValue("description", "Init charge");
charge.addValue("currency", "MXN");
charge.addValue("order_id", "oid-00051");
charge.addValue("redirect_url", "https://sand-portal.ecommercebbva.com");
charge.addMultiValue(customer);
charge.addMultiValue(card);
Map chargeAsMap = api.charges().create(charge.getParameterValues());
ParameterContainer charge = new ParameterContainer("charge", chargeAsMap);
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$chargeRequest = array(
'affiliation_bbva' => '781500',
'amount' => 100,
'description' => 'Init charge',
'currency' => 'MXN',
'order_id' => 'oid-00051',
'redirect_url' => 'https://sand-portal.ecommercebbva.com',
'card' => array(
'holder_name' => 'Juan Vazquez',
'card_number' => '4242424242424242',
'expiration_month' => '12',
'expiration_year' => '21'
'cvv2' => '842'),
'customer' => array(
'name' => 'Juan',
'last_name' => 'Vazquez Juarez',
'email' => 'juan.vazquez@example.com.mx',
'phone_number' => '554-170-3567')
);
$charge = $bbva->charges->create($chargeRequest);
?>
@bbva=BbvaApi.new("mptdggroasfcmqs8plpy","sk_326c6d0443f6457aae29ffbd48f7d1be")
@charges=@bbva.create(:charges)
customer_hash={
"name" => "Juan",
"last_name" => "Vazquez Juarez",
"phone_number" => "4423456723",
"email" => "juan.vazquez@example.com.mx"
}
card_hash={
"holder_name" => "Juan Vazquez",
"card_number" => "4242424242424242",
"expiration_month" => "12",
"expiration_year" => "21",
"cvv2" => "842"
}
request_hash={
"affiliation_bbva" => "781500",
"amount" => 100.00,
"currency" => "MXN",
"description" => "Init charge",
"order_id" => "oid-00051",
"redirect_url" => "https://sand-portal.ecommercebbva.com",
"customer" => customer_hash,
"card" => card_hash
}
response_hash=@charges.create(request_hash.to_hash)
Response example
{
"id": "trocmtrnivm5scpfguvl",
"authorization": "trocmtrnivm5scpfguvl",
"operation_type": "in",
"method": "card",
"transaction_type": "charge",
"card": {
"type": "credit",
"brand": "visa",
"address": null,
"card_number": "424242XXXXXX4242",
"holder_name": "Juan Vazquez",
"expiration_year": "21",
"expiration_month": "12",
"allows_charges": true,
"allows_payouts": false,
"bank_name": "BBVA",
"points_type": "BBVA",
"bank_code": "012",
"points_card": true
},
"status": "charge_pending",
"conciliated": true,
"creation_date": "2019-04-24T10:43:06-05:00",
"operation_date": "2019-04-24T10:43:06-05:00",
"description": "Pago",
"error_message": null,
"order_id": "1556120584928",
"amount": 105.32,
"customer": {
"name": "Juan",
"last_name": "Perez",
"email": "juanperez@example.com",
"phone_number": "554-170-3567",
"address": {
"line1": "Calle Morelos #12 - 11",
"line2": "Colonia Centro",
"line3": "Cuauhtémoc",
"state": "Queretaro",
"city": "Queretaro",
"postal_code": "12345",
"country_code": "MX"
},
"creation_date": "2019-04-24T10:43:06-05:00",
"external_id": null,
"clabe": null
},
"payment_method": {
"type": "redirect",
"url": "https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/trocmtrnivm5scpfguvl/redirect/"
},
"currency": "MXN"
}
Request
| Property | Description |
|---|---|
| affiliation_bbva | string (required) It must contain the affiliation number. |
| amount | numeric (required) Amount to charge. Must be an amount greater than zero, with up to two decimal digits. |
| description | string (required, length = 250) A description associated to the charge. |
| currency | string (optional) Charge currency type. Currently you can only use two currency types: Mexican pesos(MXN) y American dollars(USD). |
| order_id | string (optional, length = 100) Unique identifier of charge. Must be unique among all transactions. |
| customer | object (required) Customer information who is charged. You can use the same parameters used in the creation of a customer but an account for the customer will not be created. Note: This parameter can be used only by creating the charge at the merchant level To create a customer and keep a record of their charges history refer to Objeto Cliente (#create-a-new-customer) and do the charge at the customer level. |
| card | object (required) Card information where the funds are withdrawn. |
| redirect_url | string (required) Used in redirect charges. It indicates the url to which redirect after a successful transaction in the BBVA payment form. |
| use_3d_secure | string (optional) By default the value is TRUE, if the trade has enabled the configuration to not use 3d secure, then you can send the parameter to FALSE. |
Response
Returns a transaction object with the charge information or with an error response.
Confirming a charge
Definition
Merchant
POST https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges/{TRANSACTION_ID}/capture
<?
Merchant
$charge = $bbva->charges->get(transactionId);
$charge->capture(captureData);
?>
//Merchant
bbvaAPI.charges().confirmCapture(ConfirmCaptureParams request);
//Merchant
bbvaAPI.ChargeService.Capture(string transaction_id, Decimal? amount);
// Merchant
bbva.charges.capture(transactionId, captureRequest, callback);
#Merchant
@charges=@bbva.create(:charges)
@charges.capture(transaction_id)
Merchant request example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/tryqihxac3msedn4yxed/capture \
-u sk_326c6d0443f6457aae29ffbd48f7d1be: \
-H "Content-type: application/json" \
-X POST -d '{
"amount" : 100.00
} '
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$captureData = array('amount' => 100.00);
$charge = $bbva->charges->get('ag4nktpdzebjiye1tlze');
$charge->capture($captureData);
?>
BbvaAPI api = new BbvaAPI("https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
ConfirmCaptureParams request = new ConfirmCaptureParams();
request.chargeId("tryqihxac3msedn4yxed");
request.amount(new BigDecimal("100.00"));
Charge charge = api.charges().confirmCapture("ag4nktpdzebjiye1tlze", request);
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
Charge charge = api.ChargeService.Capture("ag4nktpdzebjiye1tlze", "tryqihxac3msedn4yxed", new Decimal(100.00));
@bbva=BbvaApi.new("moiep6umtcnanql3jrxp","sk_3433941e467c4875b178ce26348b0fac")
@charges=@bbva.create(:charges)
response_hash=@charges.capture("tryqihxac3msedn4yxed", "ag4nktpdzebjiye1tlze")
Response example
{
"id":"tryqihxac3msedn4yxed",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"in",
"transaction_type":"charge",
"card":{
"type":"debit",
"brand":"visa",
"address":null,
"card_number":"411111XXXXXX1111",
"holder_name":"Juan Perez Ramirez",
"expiration_year":"20",
"expiration_month":"12",
"allows_charges":true,
"allows_payouts":true,
"bank_name":"Banamex",
"bank_code":"002"
},
"status":"completed",
"currency":"MXN",
"creation_date":"2014-05-26T14:00:17-05:00",
"operation_date":"2014-05-26T14:00:17-05:00",
"description":"Init charge",
"error_message":null,
"order_id":null,
"customer_id":"ag4nktpdzebjiye1tlze"
}
Confirm a charge created with the capture = "false" property, this method is the second part of the create a charge with a card and it can confirm the amount captured on the first call or a lesser amount.
Note: You only can confirm charges via card. To cancel the charge created you should make a call to the method charge refund
Request
| Property | Description |
|---|---|
| amount | numeric (required) Amount to confirm. It can be less than or equal to the amount given with up to two decimal digits |
Response
Returns a transaction object with the charge information or with an error response.
Refunding a charge
Definition
Merchant
POST https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges/{TRANSACTION_ID}/refund
<?
Merchant
$charge = $bbva->charges->get(transactionId);
$charge->refund(refundData);
?>
//Merchant
bbvaAPI.charges().refund(RefundParams request);
//Merchant
bbvaAPI.ChargeService.Refund(string transaction_id, string description);
#Merchant
@charges=@bbva.create(:charges)
@charges.refund(transaction_id, request_hash)
Merchant request example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/tr6cxbcefzatd10guvvw/refund \
-u sk_326c6d0443f6457aae29ffbd48f7d1be: \
-H "Content-type: application/json" \
-X POST -d '{
"description" : "devolución",
"amount" : 100.00
} '
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$refundData = array(
'description' => 'devolución',
'amount' => 100);
$charge = $bbva->charges->get('ag4nktpdzebjiye1tlze');
$charge->refund(refundData);
?>
BbvaAPI api = new BbvaAPI("https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
RefundParams request = new RefundParams();
request.chargeId("tryqihxac3msedn4yxed");
request.description("Monto de cargo devuelto");
request.amount(new BigDecimal("100.00"));
Charge charge = api.charges().refund("ag4nktpdzebjiye1tlze", request);
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
Charge charge = api.ChargeService.Refund("ag4nktpdzebjiye1tlze", "tryqihxac3msedn4yxed", "Monto de cargo devuelto", , new Decimal(100.00));
@bbva=BbvaApi.new("moiep6umtcnanql3jrxp","sk_3433941e467c4875b178ce26348b0fac")
@charges=@bbva.create(:charges)
request_hash={
"description" => "Monto de cargo devuelto",
"amount" => 100.00
}
response_hash=@charges.refund("tryqihxac3msedn4yxed", request_hash.to_hash, "ag4nktpdzebjiye1tlze")
Response example
{
"id":"tr6cxbcefzatd10guvvw",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"in",
"transaction_type":"charge",
"card":{
"type":"debit",
"brand":"visa",
"address":null,
"card_number":"411111XXXXXX1111",
"holder_name":"Juan Perez Ramirez",
"expiration_year":"20",
"expiration_month":"12",
"allows_charges":true,
"allows_payouts":true,
"bank_name":"Banamex",
"bank_code":"002"
},
"status":"completed",
"refund":{
"id":"trcbsmjkroqmjobxqhpb",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"out",
"transaction_type":"refund",
"status":"completed",
"currency":"MXN",
"creation_date":"2014-05-26T13:56:21-05:00",
"operation_date":"2014-05-26T13:56:21-05:00",
"description":"devolucion",
"error_message":null,
"order_id":null,
"customer_id":"ag4nktpdzebjiye1tlze"
},
"currency":"MXN",
"creation_date":"2014-05-26T11:56:25-05:00",
"operation_date":"2014-05-26T11:56:25-05:00",
"description":"Init charge",
"error_message":null,
"order_id":"oid-00052",
"customer_id":"ag4nktpdzebjiye1tlze"
}
You can use this method if you want to make a charge refund to a card. The amount to be returned will be the total charge or a lower amount. Note that the refund may be delayed in the statement of your customer for 1-3 business days.
Request
| Property | Description |
|---|---|
| description | string (optional, length = 250) Text to describe the refund reason. |
| amount | numeric (opcional) Amount to refund. Must be an amount greater than zero and lesser or equal than the original amount, with up to two decimal digits. |
Response
Returns a transaction object with the charge information or with an error response.
Get a charge
Definition
Merchant
GET https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges/{TRANSACTION_ID}
<?
Merchant
$charge = $bbva->charges->get(transactionId);
?>
//Merchant
bbvaAPI.charges().get(String transactionId);
//Merchant
bbvaAPI.ChargeService.Get(string transaction_id);
#Merchant
@charges=@bbva.create(:charges)
@charges.get(transaction_id)
Merchant request example
curl https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges/tr6cxbcefzatd10guvvw \
-u sk_326c6d0443f6457aae29ffbd48f7d1be:
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$charge = $bbva->charges->get('tr6cxbcefzatd10guvvw');
?>
BbvaAPI api = new BbvaAPI("https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
Charge charge = api.charges().get("ag4nktpdzebjiye1tlze", "tr6cxbcefzatd10guvvw");
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
Charge charge = api.ChargeService.Get("ag4nktpdzebjiye1tlze", "tryqihxac3msedn4yxed");
@bbva=BbvaApi.new("moiep6umtcnanql3jrxp","sk_3433941e467c4875b178ce26348b0fac")
@charges=@bbva.create(:charges)
response_hash=@charges.get("tr6cxbcefzatd10guvvw", "ag4nktpdzebjiye1tlze")
Response example
{
"id":"tr6cxbcefzatd10guvvw",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"in",
"transaction_type":"charge",
"card":{
"type":"debit",
"brand":"visa",
"address":null,
"card_number":"411111XXXXXX1111",
"holder_name":"Juan Perez Ramirez",
"expiration_year":"20",
"expiration_month":"12",
"allows_charges":true,
"allows_payouts":true,
"bank_name":"Banamex",
"bank_code":"002"
},
"status":"completed",
"refund":{
"id":"trcbsmjkroqmjobxqhpb",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"out",
"transaction_type":"refund",
"status":"completed",
"currency":"MXN",
"creation_date":"2014-05-26T13:56:21-05:00",
"operation_date":"2014-05-26T13:56:21-05:00",
"description":"devolucion",
"error_message":null,
"order_id":null,
"customer_id":"ag4nktpdzebjiye1tlze"
},
"currency":"MXN",
"creation_date":"2014-05-26T11:56:25-05:00",
"operation_date":"2014-05-26T11:56:25-05:00",
"description":"Init charge",
"error_message":null,
"order_id":"oid-00052",
"customer_id":"ag4nktpdzebjiye1tlze"
}
Returns the information of a charge generated at any moment, only by knowing the charge id.
Request
| Property | Description |
|---|---|
| transaction_id | string (required, length = 45) Charge Id. |
Response
Returns a transaction object with the charge information or with an error response..
List of charges
Definition
Merchant
GET https://sand-api.ecommercebbva.com/v1/{MERCHANT_ID}/charges
<?
Merchant
$chargeList = $bbva->charges->getList(searchParams);
?>
//Merchant
bbvaAPI.charges().list(SearchParams request);
//Merchant
bbvaAPI.ChargeService.List(SearchParams request = null);
// Customer
bbva.customers.charges.list(customerId, callback);
bbva.customers.charges.list(customerId, searchParams, callback);
#Merchant
@charges=@bbva.create(:charges)
@charges.all
Merchant request example
curl -g "https://sand-api.ecommercebbva.com/v1/mptdggroasfcmqs8plpy/charges?creation[gte]=2013-11-01&limit=2" \
-u sk_326c6d0443f6457aae29ffbd48f7d1be:
<?
$bbva = Bbva::getInstance('mptdggroasfcmqs8plpy', 'sk_326c6d0443f6457aae29ffbd48f7d1be');
$searchParams = array(
'creation[gte]' => '2013-11-01',
'creation[lte]' => '2014-11-01',
'offset' => 0,
'limit' => 2);
$customer = $bbva->customers->get('ag4nktpdzebjiye1tlze');
$chargeList = $customer->charges->getList($searchParams);
?>
final Calendar dateGte = Calendar.getInstance();
final Calendar dateLte = Calendar.getInstance();
dateGte.set(2014, 5, 1, 0, 0, 0);
dateLte.set(2014, 5, 15, 0, 0, 0);
BbvaAPI api = new BbvaAPI("https://sand-api.ecommercebbva.com", "sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
SearchParams request = new SearchParams();
request.creationGte(dateGte.getTime());
request.creationLte(dateLte.getTime());
request.offset(0);
request.limit(100);
request.amount(new BigDecimal("100.00"));
List<Charge> charges = api.charges().list("ag4nktpdzebjiye1tlze", request);
BbvaAPI api = new BbvaAPI("sk_326c6d0443f6457aae29ffbd48f7d1be", "mptdggroasfcmqs8plpy");
SearchParams request = new SearchParams();
request.CreationGte = new Datetime(2014, 5, 1);
request.CreationLte = new DateTime(2014, 5, 15);
request.Offset = 0;
request.Limit = 100;
request.Amount = new Decimal(100.00);
List<Charge> charges= bbvaAPI.ChargeService.List("ag4nktpdzebjiye1tlze", request);
var searchParams = {
'creation[gte]' : '2013-11-01',
'limit' : 2
};
bbva.customers.charges.list('ag4nktpdzebjiye1tlze',searchParams, function(error, chargeList) {
// ...
});
@bbva=BbvaApi.new("moiep6umtcnanql3jrxp","sk_3433941e467c4875b178ce26348b0fac")
@charges=@bbva.create(:charges)
response_hash=@charges.all("ag4nktpdzebjiye1tlze")
Response example
[
{
"id":"tryqihxac3msedn4yxed",
"amount":100.00,
"authorization":"801585",
"method":"card",
"operation_type":"in",
"transaction_type":"charge",
"card":{
"type":"debit",
"brand":"visa",
"address":null,
"card_number":"411111XXXXXX1111",
"holder_name":"Juan Perez Ramirez",
"expiration_year":"20",
"expiration_month":"12",
"allows_charges":true,
"allows_payouts":true,
"bank_name":"Banamex",
"bank_code":"002"
},
"status":"completed",
"currency":"MXN",
"creation_date":"2014-05-26T14:00:17-05:00",
"operation_date":"2014-05-26T14:00:17-05:00",
"description":"Init charge",
"error_message":null,
"order_id":null,
"customer_id":"ag4nktpdzebjiye1tlze"
},
{
"id":"trnzf2xjwpupjfryyj23",
"amount":100.00,
"authorization":null,
"method":"bank_account",
"operation_type":"in",
"transaction_type":"charge",
"status":"in_progress",
"currency":"MXN",
"creation_date":"2014-05-26T13:51:25-05:00",
"operation_date":"2014-05-26T13:51:25-05:00",
"description":"Cargo con banco",
"error_message":null,
"order_id":"oid-00055",
"customer_id":"ag4nktpdzebjiye1tlze",
"payment_method":{
"type":"bank_transfer",
"agreement" : "1411217",
"bank":"BBVA",
"clabe":"012914002014112176",
"name":"11030021342311520255"
}
}
]
Gets a list of the charges made by Merchant or customer.
Request
You can search using the following parameters as filters.
| Property | Description |
|---|---|
| order_id | string Unique order id generated by the merchant and associated to the transaction by the order_id field of the charge request. |
| creation | date Same as creation date. Format yyyy-mm-dd |
| creation[gte] | date After the creation date. Format yyyy-mm-dd |
| creation[lte] | date Before the creation date. Format yyyy-mm-dd |
| offset | numeric Number of records to skip at the beginning, default 0. |
| limit | numeric Number of required records, default 10. |
| amount | numeric Same as the amount. |
| amount[gte] | numeric Greater than or equal to the amount. |
| amount[lte] | numeric Less than or equal to the amount. |
| status | TransactionStatus Estado de la transacción (IN_PROGRESS,COMPLETED,REFUNDED,CHARGE_PENDING,CANCELLED,FAILED). |
Response
Returns an array of transaction objects charges in descending order by creation date.
Common Objects
Information for objects shared in request and response.
Transaction Object
Object example:
{
"id":"trehwr2zarltvae56vxl",
"authorization":null,
"transaction_type":"payout",
"operation_type":"out",
"currency":"MXN",
"method":"bank",
"creation_date":"2013-11-14T18:29:35-06:00",
"order_id":"000001",
"status":"in_progress",
"amount":500,
"description":"Winning payments",
"error_message":null,
"customer_id":"afk4csrazjp1udezj1po",
"bank_account":{
"rfc":ONE316015PM1,
"mobile":null,
"alias":null,
"bank_name":"BBVA",
"creation_date":"2013-11-14T18:29:34-06:00",
"clabe":"012XXXXXXXXXX24616",
"holder_name":"Juan Tapia Trejo",
"bank_code":"012"
}
}
| Property | Description |
|---|---|
| id | string Unique identifier assigned by BBVA at the moment of creation. |
| authorization | string Authorization number created by the processor entity. |
| transaction_type | string Transaction type: fee, charge, payout, transfer. |
| operation_type | string Operation type in the account: in, out. |
| method | string Transaction method type: card, bank o customer. |
| creation_date | datetime Transaction creation date in ISO 8601 format. |
| order_id | string Unique transaction and reference number. |
| status | string Current transaction status. Possible values: completed, in_progress, failed. |
| amount | numeric Transaction full amount, including two decimal places. |
| description | string Transaction description. |
| error_message | string If the transaction is in failed status, this field will include the error message. |
| customer_id | string Unique identifier for the customer who this transaction belongs. If the value is null the transaction belongs to Merchant account. |
| currency | string Currency used in the operation by default is MXN (Mexican pesos). |
| bank_account | object Bank account data used for the transaction. See the BankAccount object. |
| card | object Credit card data used in the transaction. See the Card object. |
| card_points | object Contains information about the reward points used for payment, if they were used. See the CardPoints object |
Address Object
Object example:
{
"line1":"Av 5 de Febrero",
"line2":"Roble 207",
"line3":"col carrillo",
"state":"Queretaro",
"city":"Querétaro",
"postal_code":"76900",
"country_code":"MX"
}
| Property | Description |
|---|---|
| line1 | string (required) The first line is the card owner address. It’s commonly used to indicate street address and number. |
| line2 | string Second addres line, commonly use to indicate interior number, suite number or county. |
| line3 | string Third address line, commonly use to to indicate the neighborhood. |
| postal_code | string (required) Zip code |
| state | string (required) State |
| city | string (required) City |
| country_code | string (required) Country code, in the two character format: ISO_3166-1. |
PaymentPlan Object
Object example:
{
"payments":"6"
}
| Property | Description |
|---|---|
| payments | numeric Plan data months without interest is desired as use in the charge (3, 6, 9, 12, 18). |
Cardpoints Object
Object example:
{
"used": 134,
"remaining": 300,
"caption": "TRANSACCION APROBADA. ME OBLIGO EN LOS TERMINOS Y CONDICIONES DEL PROGRAMA RECOMPENSAS SANTANDER. PARA CUALQUIER DUDA O ACLARACION LLAME AL 01800 RECOMPE (73-266-73).",
"amount": 10
}
| Property | Description |
|---|---|
| used | numeric Amount of points used in the payment. |
| remaining | numeric Amount of points remaining in the card after the payment. |
| amount | numeric Transaction amount paid using points. |
| caption | string (opcional) A message to be shown to the customer in their ticket or receipt. |
Object PaynetChain
Object example:
{
"name": "EXTRA",
"logo": "http://www.bbva.mx/logotipos/extra.png",
"thumb": "http://www.bbva.mx/thumb/extra.png",
"max_amount": 99999.99
}
| Property | Description |
|---|---|
| name | string Chain name. |
| logo | string URL logo image chain. |
| thumb | string URL thumbnail image chain. |
| max_amount | numeric Maximum payment amount that accept chain stores |
Object Transaction Status
| Value | Description |
|---|---|
| IN_PROGRESS | Transaction is in progress |
| COMPLETED | Transaction was succesfully completed |
| REFUNDED | Transaction that has been refunded |
| CHARGE_PENDING | Transaction that is waiting to be paid |
| CANCELLED | Transaction that was not paid and has been cancelled |
| FAILED | Transaction that was paid but ocurred an error |
Customer object
Ejemplo de Objeto:
{
"id":"cz4nkhrlcu9k7qd4lwqx",
"creation_date":"2013-11-08T12:04:46-06:00",
"name":"Rodrigo",
"last_name":"Velazco Perez",
"email":"rodrigo.velazco@payments.com",
"phone_number":"4425667045",
"external_id":"cliente1",
"status":"active",
"balance":103,
"address":{
"line1":"Av. 5 de febrero No. 1080 int Roble 207",
"line2":"Carrillo puerto",
"line3":"Zona industrial carrillo puerto",
"postal_code":"06500",
"state":"Querétaro",
"city":"Querétaro",
"country_code":"MX"
},
"clabe": "646180109400423323"
}
| Property | Description |
|---|---|
| id | string Customer unique identifier. |
| creation_date | datetime Date and time when the customer was created in ISO 8601 format. |
| name | string Name of the customer. |
| last_name | string Last name of the customer. |
| string Email of the customer. |
|
| phone_number | numeric Telephone number of the customer. |
| status | string Account status of the customer can be active or deleted. If the account is on deleted status, no transaction is allowed. |
| balance | numeric Account balance with two decimal digits. |
| clabe | numeric CLABE account used to receive funds by transfer from any bank in Mexico. |
| address | object Address of the customer. It is usually used as shipping address. |
| store | object* Contains reference string to go to Store and make deposits, the url to generate barcode is contained too. |
Card Object
Object example
{
"type":"debit",
"brand":"mastercard",
"address":{
"line1":"Av 5 de Febrero",
"line2":"Roble 207",
"line3":"col carrillo",
"state":"Queretaro",
"city":"Querétaro",
"postal_code":"76900",
"country_code":"MX"
},
"id":"kgipbqixvjg3gbzowl7l",
"card_number":"1111",
"holder_name":"Juan Perez Ramirez",
"expiration_year":"20",
"expiration_month":"12",
"allows_charges":true,
"allows_payouts":false,
"creation_date":"2013-12-12T17:50:00-06:00",
"bank_name":"DESCONOCIDO",
"bank_code":"000",
"customer_id":"a2b79p8xmzeyvmolqfja",
"points_card":true
}
| Property | Description |
|---|---|
| id | string Unique identifier of the card. |
| creation_date | datetime Date and time when the card was created in ISO 8601 format. |
| holder_name | string Name of the cardholder. |
| card_number | numeric Card Number, it can be 16 or 19 digits. |
| cvv2 | numeric Security code as it appears on the back of the card. Usually 3 digits.. |
| expiration_month | numeric Expiration month as it appears on the card. |
| expiration_year | numeric Expiration year as it appears on the card. |
| address | object Billing address of cardholder. |
| allows_charges | boolean It allows to know if you can make charges to the card. |
| allows_payouts | boolean It allows to know if you can send payments to the card. |
| brand | string Card brand: visa, mastercard, carnet or american express. |
| type | string Card Type: debit, credit, cash, etc. |
| bank_name | string Name of the issuing bank. |
| bank_code | string Code of the issuing bank. |
| customer_id | string Customer identifier to which the card belongs. If the card is at Merchant level this value is null. |
| points_card | boolean Indicates whether the card allows the use of reward points. |
