Skip to main content

Banplus

Introduction

This document provides the specifications for implementing Banplus 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 registering and validating payments made through mobile payment methods.

Request

POST {URL}/api/v1/transaccion/banplus.p2c

Headers

Content-Type: application/json
Authorization: Bearer {token}
userIp: {customer IP address}

Request Body

Field NameDescriptionTypeRequired
NombrePagadorCustomer's nameStringNo
CodigoBancoPagadorBank code for the destination of the fundsStringYes
TelefonoPagadorPhone number from which the mobile payment was madeStringYes
CedulaIdentification document of the natural or legal person receiving the fundsStringYes
NumeroReferenciaReference number of the mobile payment madeStringYes
MontoAmount of the transactionNumberYes
EmailEmail address of the customer making the paymentStringYes
IdTrazaUnique traceability identifier in the merchant's databaseStringYes
ReferenciaFinal customer's identification if requiredStringNo
idCanalChannel through which the transaction is made. Possible values: 1: Gateway, 2: API (default), 3: Payment Link, 4: Android, 5: iOSNumberNo
FechaMovimientoDate when the mobile payment was made. Format: “DD/MM/YYYY”StringYes
DireccionIpIP address from which the connection is madeStringYes
CargosAdicionalesObject with additional charges informationObjectNo
MontoOriginalObject with original amount information. Used when currency conversion is requiredObjectNo

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

{
"TrazaId": "12fcb37859ed",
"NombrePagador": "Pedro Perez",
"CodigoBancoPagador": "0134",
"TelefonoPagador": "584121234567",
"IdCanal": 2,
"Cedula": "V12345678",
"NumeroReferencia": "123456789",
"Monto": 16.03,
"Email": "demo@example.com",
"Link": null,
"MontoOriginal": null,
"CargosAdicionales": null,
"Referencia": "",
"FechaMovimiento": "09/08/2024"
}

Response Body

{
"Monto":16.03,
"MontoUsd":0,
"InfoProceso": {
"EstatusProcesamiento": "pending",
"CodigoRespuestaCvv": null
},
"TarjetaHabiente": null,
"Moneda": "VES",
"InfoTarjeta": null,
"InfoUsuarioPagador": {
"Nombre": "Pedro",
"Apellido": "Perez",
"Email": "demo@example.com"
},
"TransaccionId": 12345,
"MerchantId": 516458,
"Descripcion": "transaction under review",
"TrazaId": "1362c6e9f67e",
"Exitoso": true,
"MedioDePago": "Mobile Payment",
"Canal": "API",
"MontoOriginal": null,
"MerchantId": "30867220134",
"FechaOperacion": "05/07/2024 19:23:20",
"CargosAdicionales": null,
"Cuotas": null
}

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.