Bancamiga
Introduction
This document provides the specifications for implementing Bancamiga payment methods through the Luka API.
The URL is specified in Environments.
Authentication is done via a token (JWT) returned by the login method using the credentials provided by Lukapay. See documentation.
Payment methods
Mobile Payment
Allows you to check if a payment made through mobile payment exists.
Request
POST {URL}/api/v1/Transaccion/bancamiga.movpay
Headers
Authorization: Bearer {token}
userIp: {client's IP address}
Request body
| Field name | Description | Type | Required |
|---|---|---|---|
| nombrePagador | Customer's name | String | No |
| codigoBancoPagador | 4-digit code of the bank | String | Yes |
| telefonoPagador | Phone number from which the mobile payment was made | String | Yes |
| cedula | Customer's identity card number | String | No |
| numeroRerefencia | Mobile payment authorization code | String | Yes |
| monto | Amount of the transaction | Number | Yes |
| Customer's email address | String | Yes | |
| referencia | Optional value to identify something related to the payment | String | No |
| trazaId | Unique traceability identifier in the merchant's database | String | No |
| Tipo | Constant indicating if the mobile payment is sent or received. Possible values: R=RECEIVED, P=SENT. Default value: R | String | Yes |
Response
Response body
| Field name | Description | Type |
|---|---|---|
| Canal | Indicates the channel being used to apply the payment in Lukapay | Number |
| CargosAdicionales | Object containing additional charges | Object |
| Cuotas | Object containing information about installments | Object |
| Descripción | Contains the application's response to the payment, such as the transaction status and any additional information | String |
| Exitoso | Indicates if the transaction was successful. It is used to validate the response | Boolean |
| FechaOperacion | Date the transaction occurred | String |
| InfoProceso | Object containing more detailed information about the transaction status | Object |
| InfoTarjeta | Object containing information about the credit card used to make the payment. Only applies to card payments | Object |
| InfoUsuarioPagador | Object that returns basic information about the user making the payment | Object |
| MedioDePago | Indicates the payment method used | String |
| MerchantId | Reference for the transaction of the merchant used to apply the payment | String |
| Moneda | Currency code used to make the payment | String |
| Monto | Indicates the amount of the payment made | Number |
| MontoOriginal | Object with information about the original amount. It is used when a currency conversion must be applied | Object |
| MontoUsd | Value of the amount in U.S. dollars. It is used when MontoOriginal is specified | Number |
| TarjetaHabiente | Object containing information about the payer (if specified) | Object |
| TransaccionId | Reference for the transaction in Lukapay | Number |
| TransaccionMerchantId | Reference for the transaction of the merchant used to apply the payment | Number |
| TrazaId | Internal merchant identifier. If not provided by the merchant, a random code is generated | String |
The attributes of the objects are specified in Transaction Response.
Usage Example
Request body
{
"nombrePagador": "Pedro Perez",
"codigoBancoPagador": "0105",
"telefonoPagador": "584125555555",
"cedula": "V 12345678",
"numeroRerefencia": "30867220134",
"monto": 1.0,
"email": "email@example.com",
"referencia": "",
"trazaId": "",
"tipo": "R"
}
Response body
{
"monto": 0,
"montoUsd": 0,
"infoProceso": {
"estatusProcesamiento": "string",
"codigoRespuestaCvv": "string"
},
"tarjetaHabiente": null,
"infoUsuarioPagador": {
"nombre": "string",
"apellido": "string",
"numeroIdentidad": "string",
"numeroTelefono": "string",
"email": "string"
},
"moneda": "string",
"infoTarjeta": null,
"transaccionId": 0,
"transaccionMerchantId": 0,
"descripcion": "string",
"trazaId": "string",
"exitoso": true,
"canal": "string",
"medioDePago": "string",
"montoOriginal": null,
"merchantId": "string",
"fechaOperacion": "string",
"cargosAdicionales": null
}
Error Codes
| Code | Message |
|---|---|
| 401 | acceso no autorizado |
| 400 | el pago ya fue registrado |
| 400 | el número de teléfono no tiene el formato correcto |
| 400 | el código del banco es incorrecto |
| 400 | la moneda no está soportada |
| 500 | ocurrió un error inesperado |
{
"mensaje": "string",
"codigo": 0,
"continua": true,
"mensajeId": "string"
}
Webhooks for Asynchronous Payments
Our platform validates the payment reference provided by the user in real-time. If the reference is not automatically found, the transaction is marked as "Pending Review" and retried up to 5 times, with attempts every 2 minutes. If it still cannot be found, the transaction is reviewed manually. In such cases, the user is notified via email. In the integration, the Exitoso field will be marked as true, but you must check InfoProceso.EstatusProcesamiento to determine the actual status of the payment: either success (successful) or pending. The final status is sent through a webhook.