Transbank Transacción Completa
Transbank en modo de Transacción Completa permite hacer un cargo a cliente permitiendole capturar la tarjeta en un sitio web distinto al de Transbank.
Creación de token de tarjeta
Definición
POST /v1/{MERCHANT_ID}/tokens
Ejemplo de petición de Token
{
"card_number": "4242424242424242",
"holder_name": "ELI",
"cvv2": "123",
"expiration_year": "20",
"expiration_month": "12",
"address": {
"country_code": "CL",
"postal_code": "10001",
"city": "City",
"line1": "Street #123",
"state": "State"
}
}
Ejemplo de respuesta
{
"id": "kh1kh38y8guiyiagavg8",
"card": {
"card_number": "424242XXXXXX4242",
"holder_name": "ELI",
"expiration_year": "20",
"expiration_month": "12",
"address": {
"country_code": "CL",
"postal_code": "10001",
"city": "City",
"line1": "Street #123",
"state": "State"
},
"creation_date": null,
"brand": "visa",
"points_card": true,
"points_type": "bancomer"
}
}
La obtención del token de cargo para Transbank con Transacción Completa se obtiene de forma estándar, sin necesidad de modificaciones a como se obtiene el token en otros gateways. Para más información consultar la sección de Tokens.
Obtención de promociones disponibles (Cuotas)
Definición
POST /v1/{MERCHANT_ID}/tokens/{TOKEN_ID}/promotions
Ejemplo de petición de promociones (cuotas)
{
"amount": "100000",
"currency": "CLP",
"payments": [ 3, 6, 9 ],
"affiliation": {
"name" : "WEB",
"gateway": "transbank_complete"
}
}
Ejemplo de respuesta de promociones (cuotas)
{
"available": [
{
"payments": 3,
"amount": 33334,
"deferred": []
},
{
"payments": 6,
"amount": 16667,
"deferred": []
},
{
"payments": 9,
"amount": 11112,
"deferred": [
1,
2,
3
],
"deferred_costs": [
{
"months": 1,
"amount": 11162
},
{
"months": 2,
"amount": 11212
},
{
"months": 3,
"amount": 11262
}
]
}
]
}
Transbank proporciona la opción de poder cobrar pagos en cuotas y con méses diferidos. Para poder realizar esta operación, es necesario solicitar el número de cuotas disponibles, así como el costo mensual asociado a cada periodo. En caso de que el número de cuotas seleccionado no esté disponible, no se regresará este valor en la respuesta de promociones.
De acuerdo a los lineamientos de Transbank, en caso de usar cuotas o meses diferidos es necesario mostrar al cliente el monto que le será cobrado cada mes para que consienta a la realización del cargo. Openpay no permitirá hacer un cobro con cuotas si no se ha solicitado la información para dicho número de cuotas.
En caso de solicitar a Transbank esta información, el comercio contará con 5 minutos para realizar un cargo con el token usado, y el cargo deberá ser por el mismo monto que se indicó en este servicio.
Petición
Propiedad | Descripción |
---|---|
amount | numeric (requerido) Monto que se cobrará en la transacción. |
currency | string (requerido) Moneda en la que se cobrará la transacción. |
payments | numeric array (requerido) Números de cuotas de los cuales se desea obtener la información. |
affiliation | object (requerido) Opciones de afiliación a utilizar para verificar esta información. |
Objeto de opciones de afiliación
Propiedad | Descripción |
---|---|
gateway | string (requerido) Valor fijo "transbank_complete" para este caso. |
name | string (opcional) Indicador de afiliación a usar cuando hay multiples afiliaciones para un procesador. |
Respuesta
Propiedad | Descripción |
---|---|
available | object array Arreglo de objetos indicando las cuotas disponibles y sus montos por mes. |
Objeto de cuotas disponibles
Propiedad | Descripción |
---|---|
payments | numeric Número de cuotas para las que aplica este objeto. |
amount | numeric Monto mensual que tendrá que pagar el cliente. |
deferred | numeric array Arreglo con los meses diferidos que se permiten en este número de cuotas. |
deferred_costs | object Arreglo que indica el monto mensual que tendrá que pagar el cliente si se seleccionan ciertos meses diferidos. |
Objecto de costos de meses diferidos
Propiedad | Descripción |
---|---|
months | numeric Meses diferidos para los que aplica este costo |
amount | numeric Costo que el cliente tendrá que pagar si se hace el cargo a este número de meses diferidos. |
Petición de cargo
Definición
POST /v1/{MERCHANT_ID}/charges
Ejemplo de petición de cargo
{
"method": "card",
"amount": "100000",
"source_id": "kh1kh38y8guiyiagavg8",
"currency": "CLP",
"description": "Charge with Transbank Complete",
"order_id": "1511307450",
"customer": {
"name": "John",
"last_name": "Doe",
"phone_number": "1234567890",
"email": "john.doe@example.com"
},
"payment_plan": {
"payments": 9,
"deferred_months": 1
},
"affiliation": {
"name" : "WEB",
"gateway": "transbank_complete"
}
}
Ejemplo de respuesta de cargo
{
"id": "trzvvokrml1ldbt08j3i",
"authorization": "121314",
"operation_type": "in",
"method": "card",
"transaction_type": "charge",
"card": {
"type": "credit",
"brand": "visa",
"address": {
"country_code": "CL",
"postal_code": "10001",
"city": "City",
"line1": "Street #123",
"state": "State"
},
"card_number": "424242XXXXXX4242",
"holder_name": "ELI",
"expiration_year": "20",
"expiration_month": "12",
"allows_charges": true,
"allows_payouts": false,
"bank_name": null,
"bank_code": "000"
},
"status": "completed",
"conciliated": true,
"creation_date": "2017-11-11T17:59:19-06:00",
"operation_date": "2017-11-11T17:59:23-06:00",
"description": "Charge with Transbank Complete",
"error_message": null,
"order_id": null,
"amount": 100000,
"payments" : 9,
"payment_plan": {
"payments": 9,
"deferred" : 1,
"payments_type": "unknown"
},
"customer": {
"name": "John",
"last_name": "Doe",
"phone_number": "1234567890",
"email": "john.doe@example.com"
},
"currency": "CLP"
}
Para realizar el cargo usando Transbank con Transacción Completa se requiere indicar el procesador a
usar en la petición, usando el campo affiliation.gateway
. En caso de usar nombres de afiliaciones,
también es necesario indicar el nombre de la afiliación a usar en el campo affiliation.name
.
Opcionalmente, si se desean hacer cargos con cuotas, se debe especificar el nodo payment_plan
en
el objeto de cargo.
Para más información consultar la documentación de Cargos con ID de tarjeta o token.