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.

Cargo VPOS

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.

Cargo 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. 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:

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:

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.
email 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.
Powered By