Recibir Eventos en Webhook Endpoints

Una vez inscrito un Webhook Endpoint, Toku notificará los eventos suscritos. Lo hará a través de una request POST a la URL suscrita. Debes tener habilitado este endpoint para poder recibir y almacenar la información que se le envíe. A continuación, listamos los parámetros con los que Toku enviará las requests POST a tus Webhook Endpoints.

Parámetros enviados en un evento a un Webhook Endpoint

Nombre

Tipo

Descripción

Requerido

id

'int`

ID del evento.

:radio-button: Si

event_type

string

Tipo de evento.

:radio-button: Si

  • object

json

Valores adicionales específicos de cada evento.

:radio-button: Si

Toku-Signature

string

Firma para verificar validez del evento.

:radio-button: Si

❗️

Importante

El parámetro Toku-Signature se incluye en el Header de la request POST, a diferencia del resto de los parámetros incluidos en el Body. Este puede ser utilizado para comprobar que la notificación proviene de Toku y no de un tercero. Es de la forma t=1618960495,s=c896f1eb1438c706f4eb8b59d5453582b44a4cb442fd23ed9eb2690e1f9213b7, y su construcción se explica en la siguiente sección.

🚧

Atención

  • El nombre del parámetro object cambiará dependiendo del event_type. Corresponderá a la primera mitad del nombre del evento. Para el evento payment_method.attached , object será payment_method, y para los eventos payment_intent.succeeded y payment_intent.payment_failed, object será payment_intent. Esto quedará más claro en los ejemplos que se exponen a continuación.

Ejemplos de Body

interaction.outgoing

{
    "id": "eve_ARC6o7o3xEHvYTw8o7fq74r2tLq-2tAS",
    "event_type": "interaction.outgoing",
    "interaction": {
        "id": "inter_tgK-vdZo8J8UH7E9Ng_K7Jejn_PYykch",
        "customer": "cus_lq1wGjwgFyqQm4ACZx0QjE84qKm8fffa",
        "created_at": "2022-01-01 20:03:07.963677",
        "channel": "wsp",
        "type": "outgoing",
        "sender_contact": "+15614186678",
        "customer_contact": "+56989934148",
        "message": "test outgoing",
        "subject": null
    }
}

interaction.incoming

{
    "id": "eve_dDWgyidyo3so0yPhHc-Wyx27xOfXxnQc",
    "event_type": "interaction.incoming",
    "interaction": {
        "id": "inter_XUc55FMipFh3-kucknWQR_1rv_AR942L",
        "customer": "cus_lq1wGjwgFyqQm4ACZx0QjE84qKm8fffa",
        "created_at": "2022-01-01 20:16:29.648457",
        "channel": "wsp",
        "type": "outgoing",
        "sender_contact": "+15614186678",
        "customer_contact": "+56989934148",
        "message": "test incoming",
        "subject": null
    }
}

payment_method.attached Transbank

{
    "id": "eve_MOnNVXKNYDCZXzI9slA3smhASQmuRleM",
    "event_type": "payment_method.attached",
    "payment_method": {
        "id": "pm_9tN0ZtjUDjS1qi8qZQ3uJHJbwtcXYH9d",
        "customer": "cus_lq1wGjwgFyqQm4ACZx0QjE84qKm8fffa",
        "id_account": "acc_l8ojrji3k8SC7iLbVBxxgwVeOLRRbkEc",
        "gateway": "transbank_oneclick",
        "card_type": "Visa",
        "card_number": "XXXXXXXXXXXX6623",
        "status": "chargeable",
        "additional": {}
    }
}

payment_method.attached PAC

{
    "id": "eve_MOnNVXKNYDCZXzI9slA3smhASQmuRleM",
    "event_type": "payment_method.attached",
    "payment_method": {
        "id": "pm_9tN0ZtjUDjS1qi8qZQ3uJHJbwtcXYH9d",
        "customer": "cus_lq1wGjwgFyqQm4ACZx0QjE84qKm8fffa",
    "id_account": "acc_l8ojrji3k8SC7iLbVBxxgwVeOLRRbkEc",
        "gateway": "toku_pac",
        "card_type": null,
        "card_number": null,
        "status": "chargeable",
        "additional": {
            "mandate_id": "489205",
            "holder_id": "18349385K",
            "account_type": "checking_account",
            "account_number": "00498540594",
            "institution_id": "cl_banco_estado",
            "institution_name": "Banco Estado",
            "institution_country": "cl",
            "limit_uf": 50,
            "voucher_url": "https://example.com/example.pdf"
        }
    }
}

Los campos institution_name e institution_id pueden tomar los siguientes valores:

institution_name

institution_id

Banco BCI

cl_banco_bci

Banco de Chile

cl_banco_de_chile

Banco Estado

cl_banco_estado

Banco Falabella

cl_banco_falabella

Banco Itaú

cl_banco_itau

Banco Santander

cl_banco_santander

Banco Scotiabank

cl_banco_scotiabank

payment_intent.succeeded

{
    "id": "eve_nsHM-5paB_ZTGGhWni49URhW1JEpQADW",
    "event_type": "payment_intent.succeeded",
    "payment_intent": {
        "id": "pi_JHjBcHZysyBj6dPDtt5OxFNydEtjw8L7",
        "invoice": "in_5tswGjwgAxrQm4ACZx0QjE84qKm8fgsw",
        "customer": "cus_lq1wGjwgFyqQm4ACZx0QjE84qKm8fffa",
        "id_account": "acc_l8ojrji3k8SC7iLbVBxxgwVeOLRRbkEc",
        "gateway": "transbank_oneclick",
        "payment_method": "pm_9tN0ZtjUDjS1qi8qZQ3uJHJbwtcXYH9d",
        "due_date": "2021-03-04",
        "product_id": "92792",
        "amount": "1000.0000",
        "transaction_date": "2021-07-26 20:28:00.717000",
        "card_detail": "6623",
        "buy_order": "1931280",
        "child_buy_order": "2931280",
        "status": "AUTHORIZED",
        "authorization_code": "1213",
        "payment_type_code": "VN",
        "response_code": 0,
        "installments_number": 0
    }
}

payment_intent.succeeded Transferencia

{
    "id": "eve_zwr5c8Ddcu0sW2zl57aTTeTFmovcysl-",
    "event_type": "payment_intent.succeeded",
    "payment_intent": {
        "id": "pi_cGuAf-JSoTrg7QhQlabJTsuhQaGborN4",
        "invoice": "in_poaFZEY8fgpxXhwhOYj4KBk1tjLQA-wa",
        "customer": "cus_HpnoeQFzNB-pOiAobqFrccfk7Kpwin_b",
        "id_account": "acc_l8ojrji3k8SC7iLbVBxxgwVeOLRRbkEc",
        "gateway": "khipu_transfer",
        "amount": "10000.0000",
        "status": "AUTHORIZED",
        "payment_method": "pm_AM4LvUGcqfxzgiUgxMocVuR-MD3xjb4N",
        "transaction_date": "2022-04-07 21:39:28.344703",
        "card_detail": null,
        "buy_order": "156967510939",
        "child_buy_order": null,
        "authorization_code": null,
        "payment_type_code": null,
        "response_code": null,
        "toku_response_code": null,
        "installments_number": null,
        "mc_order_id": null
    }
}

Siguientes pasos

Para dotar de seguridad a tus Webhook Endpoints, Toku firma cada evento enviado. A continuación, se explica cómo verificar que los eventos enviados provienen de Toku y no de terceros.