Transacciones

Si no usas nuestro Core de crédito o nuestro Autorizador, deberás implementar y exponer en tu backend los endpoints de “Autorización” y “Ajustes” para que podamos comunicarnos.

Vamos a consumir tus endpoints en estos momentos:

  • Durante el flujo online, cada vez que un usuario utiliza su tarjeta en cualquier tienda o comercio electrónico.
  • Cuando la red (Mastercard, Visa, etc) solicita la conciliación de todos los pagos que presentan los comerciantes.

Consideraciones:

  • Si hubiera una diferencia en la conciliación, solicitaremos un ajuste a tu API.
  • Necesitaremos que tus endpoints respondan lo más rápido posible para garantizar una buena experiencia de usuario. Si la respuesta se demora, rechazaremos la transacción.
  • Usaremos un header de idempotencia para evitar crear dos o más recursos para la misma solicitud. Saber más
  • Tendrás que validar y firmar las autorizaciones siguiendo los pasos de está documentación.

Cómo probar tu implementación y código de ejemplo


Puedes probar la implementación de tu backend con algunas operaciones típicas que enviaremos con una colección de Postman incluida en nuestro repositorio de ejemplos públicos. Podrás importar la colección a una instancia de Postman y así simular pedidos reales hacia tu backend, incluido el algoritmo de generación y chequeo de firma.

 

Archivo de conciliación


Diariamente te enviaremos dos archivos en formato CSV mediante un SFTP (Secure File Transfer Protocol) para que puedas conciliar todas las transacciones entre tu sistema y el nuestro.

 

Autorizar Transacción

El endpoint /transactions/authorizations permite autorizar las transacciones.

Te enviaremos una solicitud para autorizar o rechazar la transacción.

Consideraciones

Esperamos una respuesta rápida para garantizar una buena experiencia. Si la respuesta se demora, rechazaremos la transacción.

Además de validar la firma que te enviamos, al generar la respuesta debes firmar tu body junto con el timestamp y el endpoint de respuesta con tu api-secret luego de impactar la operación. Ten en cuenta que validaremos la firma y rechazaremos la transacción si la firma no coincide o expiró.

Puedes encontrar más información en Configuración de Webhooks.

Parámetros disponibles
Body Parameters
transactionobject
Información relacionada con la transacción
merchantobject
Información relacionada con el comercio
cardobject
Información no sensible relacionada a la tarjeta
installmentsobject
Información relacionada a las cuotas de la transacción, se recibirá este parámetro solo para autorizaciones de compra con cuotas en tarjeta de crédito.
userobject
Información relacionada al usuario que realizó la transacción
amountobject
Información relacionada a los montos de la transacción. Estos montos podrán ser mayor o igual a cero
extra_dataobject
Información relacionada a campos extras de la transacción
Detalle de respuestas
statusstring
Un estado que nos indica si debemos aprobar o rechazar la transacción
Enum: APPROVEDREJECTED
messagestring
Mensaje descriptivo con el resultado de la operación
status_detailstring
Permite rastrear el motivo por el que no se aprobó la transacción
Enum: APPROVEDINSUFFICIENT_FUNDSINVALID_MERCHANTINVALID_AMOUNTSYSTEM_ERROROTHER
balanceobject
Balance de la cuenta. Se devuelve sólo en caso de que se mande el type 'BALANCE_INQUIRY'. Disponible sólo para México.

¿Te resultó útil esta sección?

POST/transactions/authorizations
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PURCHASE"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
"extra_data":{
"cardholder_verification_method":
"FAIL_PROCESSING"
"pin_presence":
"ONLINE"
"pin_validation":
"VALID"
"cvv_presence":
"PRESENT"
"cvv_validation":
"MATCHING"
"expiration_date_presence":
"PRESENT"
"expiration_date_validation":
"EXPIRED"
"function_code":
"STANDARD"
"tokenization_wallet_name":
"Apple_Pay"
"tokenization_wallet_id":
"0"
"cardholder_presence":
"CARDHOLDER_PRESENCE_PRESENT"
"card_presence":
"PRESENT"
"pin_change_send":
"SENT"
"pin_change_result":
"APPLIED"
}
}
Ejemplo de respuestas
{
"status":
"APPROVED"
"message":
"string"
"status_detail":
"APPROVED"
"balance":{
"total":
"982345.12"
"currency":
"ARS"
}
}

Autorizar Transacción de Crédito

El endpoint /transactions/authorizations/credit permite autorizar o rechazar las transacciones de crédito.

Consideraciones

Esperamos una respuesta rápida para garantizar una buena experiencia. Si la respuesta se demora, rechazaremos la transacción.

Además de validar la firma que te enviamos, al generar la respuesta debes firmar tu body junto con el timestamp y el endpoint de respuesta con tu api-secret luego de impactar la operación. Ten en cuenta que validaremos la firma y rechazaremos la transacción si la firma no coincide o expiró.

Puedes encontrar más información en Configuración de Webhooks.

Parámetros disponibles
Body Parameters
transactionobject
Información relacionada con la transacción
merchantobject
Información relacionada con el comercio
cardobject
Información no sensible relacionada a la tarjeta
installmentsobject
Información relacionada a las cuotas de la transacción, se recibirá este parámetro solo para autorizaciones de compra con cuotas en tarjeta de crédito.
userobject
Información relacionada al usuario que realizó la transacción
amountobject
Información relacionada a los montos de la transacción. Estos montos podrán ser mayor o igual a cero
extra_dataobject
Información relacionada a campos extras de la transacción
Detalle de respuestas
statusstring
Un estado que nos indica si debemos aprobar o rechazar la transacción
Enum: APPROVEDREJECTED
messagestring
Mensaje descriptivo con el resultado de la operación
status_detailstring
Permite rastrear el motivo por el que no se aprobó la transacción
Enum: APPROVEDINSUFFICIENT_FUNDSINVALID_MERCHANTINVALID_AMOUNTSYSTEM_ERROROTHER
balanceobject
Balance de la cuenta. Se devuelve sólo en caso de que se mande el type 'BALANCE_INQUIRY'. Disponible sólo para México.

¿Te resultó útil esta sección?

POST/transactions/authorizations/credit
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PAYMENT"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
"extra_data":{
"cardholder_verification_method":
"FAIL_PROCESSING"
"pin_presence":
"ONLINE"
"pin_validation":
"VALID"
"cvv_presence":
"PRESENT"
"cvv_validation":
"MATCHING"
"expiration_date_presence":
"PRESENT"
"expiration_date_validation":
"EXPIRED"
"function_code":
"STANDARD"
"tokenization_wallet_name":
"Apple_Pay"
"tokenization_wallet_id":
"0"
"cardholder_presence":
"CARDHOLDER_PRESENCE_PRESENT"
"card_presence":
"PRESENT"
"pin_change_send":
"SENT"
"pin_change_result":
"APPLIED"
}
}
Ejemplo de respuestas
{
"status":
"APPROVED"
"message":
"string"
"status_detail":
"APPROVED"
"balance":{
"total":
"982345.12"
"currency":
"ARS"
}
}

Ajustes

El endpoint /transactions/adjustments/{type} nos permite hacer ajustes de crédito y débito en las transacciones.

Te enviaremos una solicitud para informarle que la red (MC, VISA) forzó una autorización.

Consideraciones

Este endpoint se usa durante la conciliación y los flujos online, principalmente para hacer ajustes durante el proceso de liquidación y también en caso de devoluciones.

Además de validar la firma que te enviamos, al generar la respuesta debes firmar tu body junto con el timestamp y el endpoint de respuesta con tu api-secret luego de impactar la operación. Ten en cuenta que validaremos la firma y rechazaremos la transacción si la firma no coincide o expiró.

Puedes encontrar más información en Configuración de Webhooks.

Parámetros disponibles
Body Parameters
transactionobject
Información relacionada con la transacción
merchantobject
Información relacionada con el comercio
cardobject
Información no sensible relacionada a la tarjeta
installmentsobject
Información relacionada a las cuotas de la transacción, se recibirá este parámetro solo para autorizaciones de compra con cuotas en tarjeta de crédito.
userobject
Información relacionada al usuario que realizó la transacción
amountobject
Información relacionada a los montos de la transacción. Estos montos podrán ser mayor o igual a cero
Path Parameters
typestringrequired
El tipo de operación que se ejecutará en el saldo del usuario. Si es débito, se debe deducir el monto del saldo del usuario. Si es crédito, se debe agregar fondos al saldo del usuario. NOTA: Es posible que reciba ajustes con valores muy pequeños, depende del cliente si desea afectarlos en el saldo del usuario o no.
Enum: debitcredit
Detalle de respuestas

¿Te resultó útil esta sección?

POST/transactions/adjustments/{type}
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PURCHASE"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
}
Ejemplo de respuestas

Notificaciones

Este servicio permite notificar cuando se resuelve una transacción, ya sea por parte de Pomelo o por parte de la bandera (Mastercard, Visa, etc.).

Consideraciones

Esperamos una respuesta del tipo 2XX para asegurarnos que la notificación fue recibida. Caso contrario, volveremos a enviarla.

Puedes encontrar más información en Configuración de Webhooks.

Parámetros disponibles
Body Parameters
event_idstring
Identificador de evento.
Ejemplo: authorization-advice
event_detailobject
Información relacionada al evento. Esta puede variar según el tipo de evento.
idempotency_keystring
Identificador idempotente de creación del evento.
Ejemplo: ctx-2CIllOHdIcC5qWjpiwRlFy2nZM8

¿Te resultó útil esta sección?

POST/transactions/v1/notifications
{
"event_id":
"authorization-advice"
"event_detail":{
"transaction":{
...
}
"merchant":{
...
}
"card":{
...
}
"installments":{
...
}
"user":{
...
}
"amount":{
...
}
"status":
"REJECTED"
"status_detail":
"string"
"extra_detail":
"string"
"extra_data":{
...
}
}
"idempotency_key":
"ctx-2CIllOHdIcC5qWjpiwRlFy2nZM8"
}
Ejemplo de respuestas