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.