Para cualquier consulta estamos a un clic

Hacer una pregunta

Datos de pago guardados y tipos de transacciones

En esta sección se describen los tipos de transacciones admitidos para los datos de pago guardados.

Tipos de datos de pago guardados

La pasarela de pago permite crear y utilizar tres tipos de datos de pago guardados:

Una tarjeta puede tener datos de pago guardados de diferentes tipos. Además, la tarjeta puede tener varios datos de pago guardados para diferentes planes de pago a plazos.

Tipo de transacciones

Las transacciones con datos de pago guardados pertenecen a uno de dos grupos según el iniciador de la transacción:

El tipo de transacción debe pasarse en el parámetro tii de las solicitudes API de pago. Lea más sobre los valores del parámetro tii aquí.

Gestión de datos de pago guardados a través de API

A continuación se presentan ejemplos de creación y uso de diferentes tipos de datos de pago guardados a través de API utilizando la página de pago propia del comerciante:

Datos de pago guardados comunes

Creación de datos de pago guardados comunes

Para crear datos de pago guardados comunes, ejecute la siguiente secuencia de solicitudes:

  1. Ejecute la solicitud register.do con el parámetro clientId, obtenga en respuesta orderId y formUrl.
  2. Transfiera el valor obtenido orderId en el parámetro MDORDER de la solicitud paymentorder.do.

Como resultado se crearán los datos de pago guardados para el cliente con el clientId indicado inicialmente. Puede ejecutar la solicitud getBindings.do para asegurarse de que los datos de pago guardados están creados.

Ejemplo de solicitud paymentorder.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data '$CVC=123' \
  --data '$EXPIRY=203012' \
  --data '$PAN=4000001111111118' \
  --data 'TEXT=TEST CARDHOLDER' \
  --data MDORDER=59e00106-1f69-76a7-b893-b27c00b4f820 \
  --data userName=test_user \
  --data password=test_user_password
{
  "redirect": "https://dev.bpcbt.com/payment/merchants/pay/finish.html?orderId=59e00106-1f69-76a7-b893-b27c00b4f820&lang=en",
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0
}

Pago con datos de pago guardados comunes

Para pagar el pedido con datos de pago guardados comunes utilice la siguiente secuencia de solicitudes:

  1. Ejecute la solicitud register.do con el parámetro clientId → obtenga en respuesta orderId.
  2. Obtenga la lista de datos de pago guardados con ayuda de la solicitud getBindings.do con el mismo valor clientId y con bindingType=C → obtenga en respuesta bindingId.
  3. Ejecute la solicitud paymentOrderBinding.do. Transfiera el valor orderId (obtenido en el Paso 1) en el parámetro mdOrder, así como transfiera el bindingId obtenido. Valores disponibles de tii: F, U.

Como resultado el pedido será pagado con ayuda de los datos de pago guardados con el bindingId indicado.

Ejemplo de solicitud paymentOrderBinding.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentOrderBinding.do \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data mdOrder=24c3d392-4c60-7f0b-9ff5-b00100b4f820 \
  --data ip=127.0.0.1 \
  --data cvc=123 \
  --data bindingId=b83317e0-1679-7d85-b375-a63200b4f820 \
  --data userName=test_user \
  --data password=test_user_password \
  --data language=en \
  --data tii=F
{
  "redirect": "https://dev.bpcbt.com/payment/merchants/pay/finish.html?orderId=24c3d392-4c60-7f0b-9ff5-b00100b4f820&lang=en",
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0
}

Datos de pago guardados recurrentes

Creación de datos de pago guardados recurrentes

Para crear datos de pago guardados recurrentes, ejecute la siguiente secuencia de solicitudes:

  1. Ejecute la solicitud register.do con el parámetro clientId, obtenga en respuesta orderId y formUrl
  2. Transmita el valor obtenido orderId en el parámetro MDORDER de la solicitud paymentorder.do. Es necesario transmitir parámetros adicionales recurringFrequency y recurringExpiry (no se realiza verificación, pero esta información es utilizada por el banco emisor de la tarjeta).

Como resultado se creará un enlace de datos de pago guardados para el cliente con el clientId inicialmente especificado. Puede ejecutar la solicitud getBindings.do para asegurarse de que el enlace de datos de pago guardados esté creado.

Ejemplo de solicitud paymentorder.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data '$CVC=123' \
  --data '$EXPIRY=203012' \
  --data '$PAN=4000001111111118' \
  --data 'TEXT=TEST CARDHOLDER' \
  --data MDORDER=59e00106-1f69-76a7-b893-b27c00b4f820 \
  --data userName=test_user \
  --data password=test_user_password \
  --data language=en \
  --data 'jsonParams={"recurringFrequency": "1", "recurringExpiry":"20261231"}'
{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "efa8e3ce-a4a6-49f8-b422-df781de18119",
  "threeDSMethodURLServer": "https://dev.bpcbt.com/payment/client/gather?threeDSServerTransID=efa8e3ce-a4a6-49f8-b422-df781de18119"
}

Pago con enlace de datos de pago guardados recurrente

Para el pago del pedido con enlace de datos de pago guardados recurrente utilice la siguiente secuencia de solicitudes:

  1. Obtenga la lista de enlaces de datos de pago guardados utilizando la solicitud getBindings.do con bindingType=R → obtenga en respuesta bindingId.
  2. Ejecute la solicitud recurrentPayment.do con el bindingId obtenido.

Como resultado el pedido será pagado mediante el enlace de datos de pago guardados con el bindingId especificado.

Ejemplo de solicitud recurrentPayment.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/recurrentPayment.do \
  --header 'Content-Type: application/json' \
  --data '{
  "userName": "test_user",
  "password": "test_user_password",
  "orderNumber": "UAF-203974-DE-12",
  "language": "EN",
  "bindingId": "3080a436-02a0-75c2-a2ce-41be00b40dc0",
  "amount": 12300,
  "currency": "978",
  "description" : "Test description",
  "additionalParameters": {
    "firstParamName": "firstParamValue",
    "secondParamName": "secondParamValue"
  }
 }'
{
  "success": true,
  "data": {
    "orderId": "9adaa8f0-3b5a-742f-80b4-172200b40dc0"
  },
  "orderStatus": {
    "errorCode": "0",
    "orderNumber": "9003",
    "orderStatus": 2,
    "actionCode": 0,
    "actionCodeDescription": "",
    "amount": 12300,
    "currency": "978",
    "date": 1618338779501,
    "orderDescription": "Test description",
    "merchantOrderParams": [
      {
        "name": "firstParamName",
        "value": "firstParamValue"
      },
      {
        "name": "secondParamName",
        "value": "secondParamValue"
      }
    ],
    "transactionAttributes": [],
    "attributes": [
      {
        "name": "mdOrder",
        "value": "9adaa8f0-3b5a-742f-80b4-172200b40dc0"
      }
    ],
    "cardAuthInfo": {
      "maskedPan": "400000**1118",
      "expiration": "202612",
      "cardholderName": "TEST CARDHOLDER",
      "approvalCode": "123456",
      "paymentSystem": "VISA",
      "product": "visa-product",
      "secureAuthInfo": {
        "eci": 7
      },
      "pan": "400000**1118"
    },
    "bindingInfo": {
      "clientId": "test-client",
      "bindingId": "3080a436-02a0-75c2-a2ce-41be00b40dc0"
    },
    "authDateTime": 1618338779790,
    "authRefNum": "111111111111",
    "paymentAmountInfo": {
      "paymentState": "DEPOSITED",
      "approvedAmount": 12300,
      "depositedAmount": 12300,
      "refundedAmount": 0,
      "totalAmount": 12300
    },
    "bankInfo": {
      "bankName": "ES TEST BANK",
      "bankCountryCode": "ES",
      "bankCountryName": "Spain"
    },
    "chargeback": false,
    "operations": [
      {
        "amount": 12300,
        "cardHolder": "TEST CARDHOLDER",
        "authCode": "123456"
      }
    ]
  }
}

Enlaces de datos de pago guardados para pagos a plazos

Creación de enlace de datos de pago guardados para pago a plazos

Para crear un enlace de datos de pago guardados para pagos a plazos, ejecute la siguiente secuencia de solicitudes:

  1. Ejecute la solicitud register.do con el parámetro clientId → obtenga en respuesta orderId.
  2. Transmita el valor obtenido orderId en el parámetro MDORDER de la solicitud paymentorder.do. Es necesario transmitir parámetros adicionales installments, totalInstallmentAmount, recurringFrequency y recurringExpiry.

Como resultado se creará un enlace de datos de pago guardados para el cliente con el clientId inicialmente especificado. Puede ejecutar la solicitud getBindings.do para asegurarse de que el enlace de datos de pago guardados esté creado.

Ejemplo de solicitud paymentorder.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data '$CVC=123' \
  --data '$EXPIRY=203012' \
  --data '$PAN=4000001111111118' \
  --data 'TEXT=TEST CARDHOLDER' \
  --data MDORDER=bd30b67f-f8c7-7c9c-a4ac-66b300b40dc0 \
  --data userName=test_user \
  --data password=test_user_password \
  --data language=en \
  --data 'jsonParams={"installments": "3", "totalInstallmentAmount": "900000", "recurringFrequency": "3", "recurringExpiry":"20261231"}'
{
    "errorCode": 0,
    "is3DSVer2": true,
    "threeDSServerTransId": "3e07d895-8cac-460c-81f3-da6f6389dc11",
    "threeDSMethodURLServer": "https://dev.bpcbt.com/payment/client/gather?threeDSServerTransID=3e07d895-8cac-460c-81f3-da6f6389dc11",
    "threeDSMethodURLServerDirect": "https://dev.bpcbt.com/payment/rest/3dsmethod.do"
}

Pago con enlace de datos de pago guardados para pagos a plazos

Para el pago del pedido con enlace de datos de pago guardados para pagos a plazos utilice la siguiente secuencia de solicitudes:

  1. Obtenga la lista de enlaces de datos de pago guardados utilizando la solicitud getBindings.do con bindingType=I → obtenga en respuesta bindingId.
  2. Ejecute la solicitud installmentPayment.do con el bindingId obtenido.

Como resultado el pedido será pagado mediante el enlace de datos de pago guardados con el bindingId especificado.

Ejemplo de solicitud installmentPayment.do:

curl --request POST \
  --url https://dev.bpcbt.com/payment/installmentPayment.do \
  --header 'Content-Type: application/json' \
  --data '{
  "userName": "test_user",
  "password": "test_user_password",
  "orderNumber": "UAF-203974-DE-12",
  "language": "EN",
  "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820",
  "amount": 12300,
  "currency": "978",
  "description" : "Test description",
  "additionalParameters": {
    "firstParamName": "firstParamValue",
    "secondParamName": "secondParamValue"
  }
 }'
{
  "errorCode": 0,
  "errorMessage": "Success",
  "orderId": "0e441115-f3bc-711c-8827-2fdc00b4f820",
  "orderStatus": {
    "errorCode": "0",
    "orderNumber": "7033",
    "orderStatus": 2,
    "actionCode": 0,
    "actionCodeDescription": "",
    "amount": 12300,
    "currency": "978",
    "date": 1618340470944,
    "orderDescription": "Test description",
    "merchantOrderParams": [
      {
        "name": "firstParamName",
        "value": "firstParamValue"
      },
      {
        "name": "secondParamName",
        "value": "secondParamValue"
      }
    ],
    "transactionAttributes": [],
    "attributes": [
      {
        "name": "mdOrder",
        "value": "0e441115-f3bc-711c-8827-2fdc00b4f820"
      }
    ],
    "cardAuthInfo": {
      "maskedPan": "400000**1118",
      "expiration": "203012",
      "cardholderName": "TEST CARDHOLDER",
      "approvalCode": "123456",
      "paymentSystem": "VISA",
      "product": "visa-product",
      "secureAuthInfo": {
        "eci": 7
      },
      "pan": "400000**1118"
    },
    "bindingInfo": {
      "clientId": "test-client",
      "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820"
    },
    "authDateTime": 1618340471076,
    "authRefNum": "111111111111",
    "paymentAmountInfo": {
      "paymentState": "DEPOSITED",
      "approvedAmount": 12300,
      "depositedAmount": 12300,
      "refundedAmount": 0,
      "totalAmount": 12300
    },
    "bankInfo": {
      "bankName": "ES TEST BANK",
      "bankCountryCode": "ES",
      "bankCountryName": "Spain"
    },
    "chargeback": false,
    "operations": [
      {
        "amount": 12300,
        "cardHolder": "TEST CARDHOLDER",
        "authCode": "123456"
      }
    ]
  },
  "error": false
}
Categorías:
eCommerce API V1
Categorías
Resultados de búsqueda