Transacciones BCI Pagos
En este capítulo se muestran las transacciones definidas en la aplicación BCI Pagos.
-En esta aplicación, los tópicos usados para publicar y suscribir mensajes son los siguientes:
| Operación | APP ID | CLIENTID | Tópico |
|---|---|---|---|
| publicar | 600045 | ecr100742 | ecr-req/600045/ecr100742 |
| suscribir | 600045 | ecr100742 | ecr-res/600045/ecr100742 |
-Todos los mensajes, ya sea de solicitud o de respuesta, tienen un campo de texto llamado metadata, que contiene información relevante para el negocio. Toda la información que se envíe en el campo metadata no será interpretada ni sufrirá alteraciones, permaneciendo inmutable en el transcurso de la transacción. Uno de los usos posibles es enviar un string con separadores de campos, un json, etc.
-CashClosing (Cierre)
Esta transacción permite realizar un cierre de operaciones en un terminal de pago.
-A continuación se muestra un ejemplo de un mensaje JSON de solicitud de la transacción CashClosing y la explicación de sus campos.
{
"sdkVersion": 4,
"appId": "600045",
"id": "302ec8d7-eb0f-466e-bea4-1387d054a054",
"eid": "MD2026",
"sn": "2820171412",
"time": 1770853192334,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"packageName\":\"cl.bci.bcipagos.dev\",\"category\":\"cl.transformapp.payment.cashClosing\",\"jsonData\":\"{\\\"print\\\":true,\\\"metadata\\\":\\\"\\\"}\"}"
}-Los campos de las diferentes capas de esta solicitud de la transacción CashClosing son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
time | 1717044602254 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| La capa de control está codificada como un String en este campo:
|
-Los campos de la capa de parámetros en la solicitud de la transacción CashClosing son los siguientes:
Campo | Tipo | Descripción |
|---|---|---|
Boolean | Si es true, entonces se imprime en el POS. | |
metadata | String | Datos requeridos por el terminal de pago. |
-A continuación se muestra el mensaje JSON con la respuesta de la transacción CashClosing:
{
"sdkVersion": 5,
"appId": "600045",
"id": "260bb710-c5c7-44ef-8df4-70427efae5d5",
"eid": "MD2025",
"sn": "1852370411",
"retCode": 0,
"errMsg": "",
"time": 1759426183232,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"jsonData\":\":{\\\"commerceCode\\\":3,\\\"metadata\\\":\\\"datos\\\",\\\"responseCode\\\":0,\\\"responseMessage\\\":\\\"Success\\\"}\"}"
}-Los campos de las diferentes capas de la respuesta de la transacción CashClosing son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 5 | La versión del SDK |
appId | 600045 | El indentificador de la aplicación |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
retCode | 0 | El código de respuesta (0 = Éxito). |
errMsg | Mensaje de error. | |
time | 1759426183232 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| Campos de respuesta de la transacción. |
-Los subcampos del campo jsonData de la respuesta de la transacción CashClosing son:
Campo | Tipo | Descripción |
|---|---|---|
commerceCode | Integer | Código del comercio. |
responseCode | Integer | Código de respuesta. |
responseMessage | String | Mensaje de respuesta. |
metadata | String | Datos requeridos por el terminal de pago. |
- Return (Devolución)
Esta transacción permite devolver parte o el total de una venta realizada previamente.
-A continuación se muestra un ejemplo de un mensaje JSON de solicitud de la transacción Return y la explicación de sus campos.
{
"sdkVersion": 4,
"appId": "600045",
"id": "302ec8d7-eb0f-466e-bea4-1387d054a054",
"eid": "MD2026",
"sn": "2820171412",
"time": 1770853382817,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"packageName\":\"cl.bci.bcipagos.dev\",\"category\":\"cl.transformapp.payment.return\",\"jsonData\":\"{\\\"print\\\":true,\\\"returnAmount\\\":0,\\\"authorizationCode\\\":0,\\\"saleAmount\\\":5000,\\\"saleDate\\\":\\\"11-02-2026\\\",\\\"metadata\\\":\\\"\\\"}\"}"
}-Los campos de las diferentes capas de esta solicitud de la transacción Return son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK. |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-7042 7efae5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
time | 1717044602254 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Pay ment | El tipo de mensaje. |
jsonData |
| La capa de control está codificada como un String en este campo:
|
-Los campos de la capa de parámetros en la solicitud de la transacción Return son los siguientes:
Campo | Tipo | Descripción |
|---|---|---|
Boolean | Si es true, entonces se imprime en el POS. | |
returnAmount | Integer | Monto a anular. Debe ser menor o igual que el monto de la venta (saleAmount). |
authorizationCode | Integer | Código de autorización de la venta a devolver. |
saleAmount | Integer | Monto de la venta original. |
saleDate | String | Fecha de la venta a devolver en formato DD-MM-AAAA. |
metadata | String | Datos requeridos por el terminal de pago. |
-A continuación se muestra el mensaje JSON con la respuesta de la transacción Return:
{
"sdkVersion": 4,
"appId": "600045",
"id": "260bb710-c5c7-44ef-8df4-70427efae5d5",
"eid": "MD2025",
"sn": "1852370411",
"retCode": 0,
"errMsg": "",
"time": 1759426183232,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"jsonData\":\":{\\\"commerceCode\\\":3,\\\"responseCode\\\":0,\\\"responseMessage\\\":\\\"Success\\\",\\\"serialNumber\\\":9876543210,\\\"tid\\\":\\\"P101\\\",\\\"authorizationCode\\\":987654,\\\"metadata\\\":\\\"datos\\\"}\"}"
} -Los campos de las diferentes capas de la respuesta de la transacción Return son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK. |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-704 27efae5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
retCode | 0 | El código de respuesta (0 = Éxito). |
errMsg | Mensaje de error. | |
time | 1759426183232 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Pay ment | El tipo de mensaje |
jsonData |
| Campos de respuesta de la transacción. |
-Los subcampos del campo jsonData de la respuesta de la transacción Return son:
Campo | Tipo | Descripción |
|---|---|---|
commerceCode | Integer | Código del comercio. |
responseCode | Integer | Código de respuesta. |
responseMessage | String | Mensaje de respuesta. |
serialNumber | Integer | Serial Number del POS |
tid | String | Identificación del terminal. |
authorizationCode | Integer | Código de autorización de la anulación. |
metadata | String | Datos requeridos por el terminal de pago. |
-Sale (Venta)
Esta transacción permite realizar una venta en un terminal de pago.
-A continuación se muestra un ejemplo de un mensaje JSON de solicitud de la transacción Sale y la explicación de sus campos.
{
"sdkVersion": 4,
"appId": "600045",
"id": "302ec8d7-eb0f-466e-bea4-1387d054a054",
"eid": "MD2026",
"sn": "2820171412",
"time": 1770853529913,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"packageName\":\"cl.bci.bcipagos.dev\",\"category\":\"cl.transformapp.payment.sale\",\"jsonData\":\"{\\\"saleAmount\\\":5000,\\\"ticket\\\":\\\"123\\\",\\\"print\\\":true,\\\"saleType\\\":0,\\\"tipAmount\\\":500,\\\"installmentsNumber\\\":0,\\\"metadata\\\":\\\"\\\"}\"}"
}-Los campos de las diferentes capas de esta solicitud de la transacción Sale son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK. |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
time | 1717044602254 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| La capa de control está codificada como un String en este campo:
|
-Los campos de la capa de parámetros en la solicitud de la transacción Sale son los siguientes:
Campo | Tipo | Descripción |
|---|---|---|
Boolean | Si es true, entonces se imprime en el POS. | |
saleAmount | Integer | Monto de la venta. |
ticket | String | Número del ticket. |
saleType | Integer | Tipo de la venta (0=AFECTA/ 1= EXENTA). |
saleTip | Integer | Monto de la propina. |
installmentsNumber | Integer | Cantidad de cuotas. |
metadata | String | Datos requeridos por el terminal de pago. |
-A continuación se muestra el mensaje JSON con la respuesta de la transacción Sale:
{
"sdkVersion": 4,
"appId": "600045",
"id": "260bb710-c5c7-44ef-8df4-70427efae5d5",
"eid": "MD2025",
"sn": "1852370411",
"retCode": 0,
"errMsg": "",
"time": 1759426183232,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"jsonData\":\":{\\\"commerceCode\\\":3,\\\"responseCode\\\":0,\\\"responseMessage\\\":\\\"Success\\\", \\\"serialNumber\\\":9876543210,\\\"ticketValue\\\":\\\"\\\",\\\"saleAmount\\\":10000, \\\"sharesNumber\\\":0,\\\"saleBIN\\\":444455,\\\"operationId\\\":123,\\\"cardType\\\":\\\"C\\\", \\\"saleTip\\\":1000,\\\"tid\\\":\\\"P101\\\",\\\"authorizationCode\\\":765432,\\\"accountingData\\\":\\\"03-10-2025 15:12:40\\\",\\\"saleType\\\":\\\"AFECTA\\\", \\\"metadata\\\":\\\"datos\\\"}\"}"
} -Los campos de las diferentes capas de la respuesta de la transacción Sale son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
retCode | 0 | El código de respuesta (0 = Éxito). |
time | 1759426183232 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| Campos de respuesta de la transacción. |
-Los subcampos del campo jsonData de la respuesta de la transacción Sale son:
| Campo | Tipo | Descripción |
|---|---|---|
| commerceCode | Integer | Código del comercio. |
| responseCode | Integer | Código de respuesta. |
| responseMessage | String | Mensaje de respuesta. |
| serialNumber | Integer | Número de serie del terminal |
| ticketValue | String | Número del ticket (reservado para uso futuro). |
| saleAmount | Integer | Monto de la venta. |
| sharesNumber | Integer | Número de cuotas. |
| saleBIN | Integer | Contiene el BIN (6 primeros dígitos de la tarjeta). |
| operationId | Integer | Identificador de la operación. |
| cardType | String | Tipo de la tarjeta. |
| saleTip | Integer | Monto de la propina. |
| tid | String | Identificación del terminal. |
| authorizationCode | Integer | Código de autorización de la anulación. |
| accountingData | String | Fecha y hora de la transacción. |
| saleType | String | Tipo de la venta. |
| metadata | String | Datos requeridos por el terminal de pago. |
-Void (Cancelación)
Esta transacción permite cancelar una venta previa en un terminal de pago. A continuación se muestra un ejemplo de un mensaje JSON de solicitud de la transacción Void y la explicación de sus campos
{
"sdkVersion": 4,
"appId": "600045",
"id": "302ec8d7-eb0f-466e-bea4-1387d054a054",
"eid": "MD2026",
"sn": "2820171412",
"time": 1770853586363,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"packageName\":\"cl.bci.bcipagos.dev\",\"category\":\"cl.transformapp.payment.void\",\"jsonData\":\"{\\\"print\\\":true,\\\"operationId\\\":0,\\\"authorizationCode\\\":0,\\\"metadata\\\":\\\"\\\"}\"}"
}-Los campos de las diferentes capas de esta solicitud de la transacción Void son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 4 | La versión del SDK. |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
time | 1717044602254 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| La capa de control está codificada como un String en este campo:
|
-Los campos de la capa de parámetros en la solicitud de la transacción Void son los siguientes:
| Campo | Tipo | Descripción |
|---|---|---|
| Boolean | Si es true, entonces se imprime en el POS. | |
| operationId | Integer | Identificador de la operación. |
| authorizationCode | Integer | Código de autorización de la venta a cancelar. |
| metadata | String | Datos requeridos por el terminal de pago. |
-A continuación se muestra el mensaje JSON con la respuesta de la transacción Void:
{
"sdkVersion": 5,
"appId": "600045",
"id": "260bb710-c5c7-44ef-8df4-70427efae5d5",
"eid": "MD2025",
"sn": "1852370411",
"retCode": 0,
"errMsg": "",
"time": 1759426183232,
"type": "com.pax.nebula.message.Payment",
"jsonData":
"{\"jsonData\":\":{\\\"commerceCode\\\":3,\\\"responseCode\\\":0,\\\"responseMessage\\\":\\\"Success\\\", \\\"serialNumber\\\":9876543210,\\\"tid\\\":101,\\\"authorizationCode\\\":123456, \\\"operationId\\\":1234,\\\"metadata\\\":\\\"datos\\\"}\"}"
}-Los campos de las diferentes capas de la respuesta de la transacción Void son:
Campo | Valor | Descripción |
|---|---|---|
sdkVersion | 5 | La versión del SDK. |
appId | 600045 | El identificador de la aplicación. |
id | 260bb710-c5c7-44ef-8df4-70427efa e5d5 | El identificador de la transacción es el UUID. |
eid | MD2025 | El identificador del EPOS. |
sn | 1852370411 | El número de serie del terminal de pago. |
retCode | 0 | El código de respuesta (0 = Éxito). |
errMsg | Mensaje de error. | |
time | 1759426183232 | El timestamp en milisegundos de cuando el mensaje fue enviado. |
type | com.pax.nebula.message.Payment | El tipo de mensaje. |
jsonData |
| Campos de respuesta de la transacción. |
-Los subcampos del campo jsonData de la respuesta de la transacción Void son:
| Campo | Tipo | Descripción |
|---|---|---|
| commerceCode | Integer | Código del comercio. |
| responseCode | Integer | Código de respuesta. |
| responseMessage | String | Mensaje de respuesta. |
| serialNumber | Integer | Número de serie del terminal |
| tid | String | Identificación del terminal. |
| authorizationCode | Integer | Código de autorización de la transacción. |
| operationId | Integer | Identificador de la operación |
| metadata | String | Datos requeridos por el terminal de pago. |
Updated about 1 month ago
