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.