Crear una intención de pago
Una intención de pago es un llamado que contiene los detalles de una transacción a realizarse.
Para crear una intención de pago, necesitarás haber realizado anteriormente la llamada para obtener el código de la terminal a la que se asociará la transacción. Ten en cuenta que, si ya lo hiciste una vez y guardaste el id
de la terminal, no necesitarás repetir esta consulta, ya que ese código es único e invariable.
Luego, realiza una llamada POST {https://api-dev.redelcom.cl:20010/v2}/pago
a la API, agregando el valor obtenido previamente al campo terminalId
y reemplazando X-Authentication
, clientId
y secret
por tus credenciales:
curl
curl -X POST \ 'https://api-dev.redelcom.cl:20010/v2/pago' \ --header 'X-Authentication: clientId;secret' \ --header 'Content-Type: application/json' \ --data '{ "amount": 6900, "description": "Compra de prueba", "paymentType": "EFECTIVO", "products": [{ "description": "PIZZA MEDIANA", "id": "1845", "iva_exempt": false, "quantity": 10, "unit_price": 300 }], "rdcDTE": true, "requestTip": true, "responseCallback": "https://eom2h2tqm3g6y7l.m.pipedream.net", "terminalId": "3127", "userTransactionId": "345565" }'
Configura los campos de esta llamada siguiendo estas especificaciones:
Campo | Tipo | Descripción |
amount | integer | Obligatorio. Monto de la transacción. Debe ser un número entre 1 y 99999999. |
Description | string | Opcional. Información adicional a mostrar en la solicitud de pago. |
dte | string | Opcional. Debes configurarlo en caso de que el Documento Tributario Electrónico asociado al pago no sea generado por Redelcom y quieras que lo imprima el POS. Solo aplica si rdcDTE es false . Puedes consultar la sección "Imprimir DTE" para más información. |
paymentType | enum | Opcional. Medio de pago a utilizar. Si el parámetro se omite, el medio de pago deberá ser elegido en el POS. Valores posibles: EFECTIVO , TARJETA , WALLET , SIN_EFECTIVO , SIN_WALLET . |
Products - description | string | Opcional. Descripción breve del producto vendido. |
Products - id | string | Opcional. Código del producto. |
Products - iva_exempt | boolean | Opcional. Si el producto está o no exento de IVA. Valores posibles: True si está exento; false si no. |
Products - quantity | integer | Opcional. Cantidad de ítems. |
Products - unit_price | integer | Opcional. Precio unitario del ítem vendido. |
rdcDTE | boolean | Opcional. Si la generación del DTE la debe hacer Redelcom (por defecto, no). |
requestTip | boolean | Opcional. Si la terminal debe solicitar propina (por defecto, no). |
responseCallback | string | Opcional. Es aquella URL propia del integrador que será invocada por Redelcom para informar el estado de un pago al finalizar la transacción, sea exitosa o no. Para configurarla, dirígete al subtítulo “Implementar la URL de respuesta”. Recomendamos utilizar este método para evitar tener que realizar un llamado de consulta para las intenciones de pago. |
terminalId | string | Obligatorio. Código de la terminal a la que se asociará la transacción, resultado de la llamada “Obtener terminal”. |
UserTransactionId | string | Obligatorio. Código referencial de la solicitud de pago, que puedes definir. |
Si la solicitud fue exitosa, la respuesta te devolverá el código asociado a la solicitud del pago, y se parecerá al siguiente ejemplo:
json
{ "rdcTransactionId": "294-3727-16384" }
Errores en el procesamiento de una intención de pago
En la siguiente tabla, puedes ver los principales motivos por los que esta solicitud puede no ser procesada:
Error | Motivo |
STATUS CODE - 400 | Información de pago inválida. Revisa la información enviada y vuelve a intentarlo. |
STATUS CODE 401 | Autenticación inválida o inexistente. Revisa la información correspondiente a tus credenciales. |
STATUS CODE - 409 | Ya existe una intención de pago pendiente. Vuelve a intentarlo luego. |
Implementar la URL de respuesta
Al crear una intención de pago, recomendamos configurar el parámetro responseCallback
, que te permitirá recibir las actualizaciones de los estados finales de esas intenciones en una URL propia.
Para implementar este responseCallback
, ten en cuenta:
- Debe ser una llamada
POST
con un único parámetro en el queryString,rdcTransactionId
, que es el identifcador de la transacción entregado por RedelCom al solicitar el pago. - El
Content-Type
seráapplication/json
.
Esta implementación se habrá realizado de manera exitosa si el servicio devuelve como respuesta un código HTTP 200 OK
. Si, en cambio, la respuesta entrega un código 5xx
, el servicio reintentará la llamada a la URL cada 1 minuto, 3 veces.
En caso de que la respuesta devuelta no sea ninguna de las dos opciones mencionadas, la implementación se considerará fallida y no se reintentará.