Skip to main content

Bancaribe

Introduction

This document provides the specifications for implementing Bancaribe 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

Immediate Transfer

Allows merchants to make payments to suppliers or customers through transfers to any national bank.

Request

POST {URL}/api/v1/transaccion/bancaribe.transferencia

Headers

Content-Type: application/json
Authorization: Bearer {token}
userIp: {client's IP address}

Body

Field NameDescriptionTypeRequired
browserAgentWeb browser used for the requestStringYes
cuentaDestinoAccount number or phone number of the transfer recipientStringYes
bancoDestinoDestination bank codeStringYes
idTrazaUnique trace identifier in the merchant's databaseStringYes
cedulaBeneficiarioIdentification document of the individual or legal entity receiving the fundsStringYes
nombreBeneficiarioName of the recipientStringYes
montoAmount of the transactionNumberYes
idCanalChannel through which the transaction is made. Possible values: 1: Gateway, 2: API (default), 3: Payment Link, 4: Android, 5: iOSNumberNo
referenciaFinal customer's reference, if requiredStringNo
emailCustomer's email addressStringYes

Response

Body

Field NameDescriptionType
CanalIndicates the channel being used for the payment in LukapayNumber
CargosAdicionalesObject containing additional chargesObject
CuotasObject containing installment informationObject
DescripciónContains the payment response, including transaction status and additional informationString
ExitosoIndicates whether the transaction was successfulBoolean
FechaOperacionDate of the transactionString
InfoProcesoObject with detailed status information of the transactionObject
InfoTarjetaObject containing credit card information used for the payment (only applies to credit card payments)Object
InfoUsuarioPagadorObject returning basic information of the paying userObject
MedioDePagoIndicates the payment method usedString
MerchantIdMerchant transaction reference used for the paymentString
MonedaCurrency code used for the paymentString
MontoIndicates the payment amountNumber
MontoOriginalObject with information on the original amount, used if a currency conversion is appliedObject
MontoUsdAmount value in US dollars, used when MontoOriginal is specifiedNumber
TarjetaHabienteObject containing payer information (if specified)Object
TransaccionIdLukapay transaction referenceNumber
TransaccionMerchantIdMerchant transaction reference used for the paymentNumber
TrazaIdMerchant's internal identifier; if not provided, a random code is generatedString

Object attributes are specified in Transaction Response.

Usage Example

Request Body

{
"BancoDestino": "0114",
"CedulaBeneficiario": "V1234567",
"CuentaDestino": "01140111111112222222",
"BrowserAgent": "Chrome",
"Monto": 16.03,
"NombreBeneficiario": "Pedro Perez",
"IdTraza": "1362c6e9f67e",
"idCanal": 1,
"Referencia": "",
"Email": "demo@example.com"
}

Response Body

{
"Monto": 16.03,
"MontoUsd": 0,
"InfoProceso": {
"EstatusProcesamiento": "success"
},
"TarjetaHabiente": null,
"Moneda": "VES",
"InfoTarjeta": null,
"InfoUsuarioPagador": {
"Nombre": "Pedro",
"Apellido": "Perez",
"Email": "demo@example.com"
},
"TransaccionId": 11339,
"MerchantId": 516458,
"Descripcion": "Transacción exitosa",
"TrazaId": "1362c6e9f67e",
"Exitoso": true,
"MedioDePago": "Transferencia",
"Canal": "API",
"MontoOriginal": null,
"MerchantId": "30867220134",
"FechaOperacion": "05/07/2024 19:23:20",
"CargosAdicionales": null,
"Cuotas": null
}

Mobile Payment and Transfer

Allows the validation and registration of a payment made via mobile payment and transfer.

Request

POST {URL}/api/v1/transaccion/bancaribe.consulta

Headers

Content-Type: application/json
Authorization: Bearer {token}
userIp: {client's IP address}

Body

Field NameDescriptionTypeRequired
nombrePagadorPayer's nameStringNo
codigoBancoPagadorPayer's bank code (4 digits)StringYes
telefonoPagadorPayer's mobile phone numberStringYes
cedulaPagadorPayer's IDStringNo
numeroReferenciaMobile payment or transfer authorization codeStringYes
montoTransaction amountNumberYes
emailPayer's emailStringYes
referenciaOptional value to identify something related to the paymentStringNo
idTrazaUnique trace identifier in the merchant's databaseStringYes
idCanalChannel through which the transaction is madeNumberNo
tipoTransaccionTransaction type. "PM": Mobile Payment, "TRF": TransferStringYes

Response

Body

Field NameDescriptionType
CanalIndicates the channel being used for the payment in LukapayNumber
CargosAdicionalesObject containing additional chargesObject
CuotasObject containing installment informationObject
DescripciónContains the payment response, including transaction status and additional informationString
ExitosoIndicates whether the transaction was successfulBoolean
FechaOperacionDate of the transactionString
InfoProcesoObject with detailed status information of the transactionObject
InfoTarjetaObject containing credit card information used for the payment (only applies to credit card payments)Object
InfoUsuarioPagadorObject returning basic information of the paying userObject
MedioDePagoIndicates the payment method usedString
MerchantIdMerchant transaction reference used for the paymentString
MonedaCurrency code used for the paymentString
MontoIndicates the payment amountNumber
MontoOriginalObject with information on the original amount, used if a currency conversion is appliedObject
MontoUsdAmount value in US dollars, used when MontoOriginal is specifiedNumber
TarjetaHabienteObject containing payer information (if specified)Object
TransaccionIdLukapay transaction referenceNumber
TransaccionMerchantIdMerchant transaction reference used for the paymentNumber
TrazaIdMerchant's internal identifier; if not provided, a random code is generatedString

Object attributes are specified in Transaction Response.

Usage Example

Request body

{
"nombrePagador": "Pedro Perez",
"codigoBancoPagador": "0105",
"telefonoPagador": "04125555555",
"cedulaPagador": "V12345678",
"numeroReferencia": "30867220134",
"monto": 1.0,
"email": "email@example.com",
"referencia": "",
"idTraza": "aedda81a8aee",
"idCanal": 1,
"numeroFactura": "null",
"tipoTransaccion": "PM"
}

Response body

Success

The payment was validated and registered successfully.

{
"Monto": 1.03,
"MontoUsd": 0.0,
"InfoProceso": {
"EstatusProcesamiento": "success",
"CodigoRespuestaCvv": null
},
"TarjetaHabiente": null,
"InfoUsuarioPagador": {
"Nombre": "Pedro",
"Apellido": "Perez",
"NumeroIdentidad": "V

12345678",
"Email": "email@example.com"
},
"TransaccionId": 2000000,
"MerchantId": 516458,
"Descripcion": "Transacción exitosa",
"TrazaId": "aedda81a8aee",
"Exitoso": true,
"MedioDePago": "Transferencia",
"Canal": "API",
"MontoOriginal": null,
"MerchantId": "30867220134",
"FechaOperacion": "23/07/2024 19:23:20",
"CargosAdicionales": null,
"Cuotas": null
}
Pending

The transaction was not validated and is recorded as pending.

note

For more information on pending payments, see Webhooks: Asynchronous Payments.

Error: Payment Registered

The same payment has already been validated and recorded previously.

{
"Code": 400,
"Message": "the payment has already been registered",
"Continue": false
}

C2P Payment

Allows to make payments using the C2P method, enabling customers to pay using their bank account.

Request

POST {URL}/api/v1/transaccion/bancaribe.c2p

Headers

Content-Type: application/json
Authorization: Bearer {token}
userIp: {client's IP address}

Request Body

Field NameDescriptionTypeRequired
browserAgentWeb browser used by the customerStringYes
cuentaDestinoCustomer's phone numberStringYes
bancoDestinoPayer's bank codeStringYes
idTrazaUnique transaction identifier in the merchant's databaseStringYes
cedulaBeneficiarioPayer's IDStringYes
nombreBeneficiarioPayer's nameStringYes
montoTransaction amountNumberYes
idCanalTransaction channel. Possible values: 1 (Gateway), 2 (API), 3 (Payment Link), 4 (Android), 5 (iOS)NumberNo
emailEmail address of the customer making the paymentStringYes
referenciaCustomer identifier if neededStringNo
claveTemporalOTP (One-Time Password)StringYes

Response

Field NameDescriptionType
CanalChannel used to process the paymentNumber
CargosAdicionalesAdditional charges detailsObject
CuotasInformation about payment installmentsObject
DescripciónResponse providing the transaction status and any additional informationString
ExitosoIndicates if the transaction was successfulBoolean
FechaOperacionDate and time of the transactionString
InfoProcesoDetailed information about the transaction statusObject
InfoTarjetaCredit card details used for payment (if applicable)Object
InfoUsuarioPagadorInformation about the customer making the paymentObject
MedioDePagoPayment method usedString
MerchantIdMerchant's transaction identifierString
MonedaCurrency used for the paymentString
MontoAmount paidNumber
MontoOriginalInformation about the original amount (if currency conversion applies)Object
MontoUsdValue of the amount in U.S. dollarsNumber
TarjetaHabientePayer's details if a card is usedObject
TransaccionIdTransaction identifier in LukapayNumber
TransaccionMerchantIdTransaction identifier from the merchantNumber
TrazaIdUnique identifier for the transaction in the merchant's databaseString

For more details on the response objects, see Transaction Response.

Example Usage

Request Body

{
"bancoDestino": "0114",
"cedulaBeneficiario": "V1234567",
"cuentaDestino": "01140111111112222222",
"browserAgent": "Chrome",
"monto": 16.03,
"nombreBeneficiario": "Pedro Perez",
"idTraza": "1362c6e9f67e",
"idCanal": 1,
"email": "demo@example.com",
"claveTemporal": "15487898"
}

Response Body

{
"Monto": 16.03,
"MontoUsd": 0,
"InfoProceso": {
"EstatusProcesamiento": "success"
},
"TarjetaHabiente": null,
"Moneda": "VES",
"InfoTarjeta": null,
"InfoUsuarioPagador": {
"Nombre": "Pedro",
"Apellido": "Perez",
"Email": "demo@example.com"
},
"TransaccionId": 11339,
"MerchantId": 516458,
"Descripcion": "Transaction successful",
"TrazaId": "1362c6e9f67e",
"Exitoso": true,
"MedioDePago": "C2P",
"Canal": "API",
"MontoOriginal": null,
"MerchantId": "30867220134",
"FechaOperacion": "05/07/2024 19:23:20",
"CargosAdicionales": null,
"Cuotas": null
}

Change

Work in progress.

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.

Learn more about webhooks.