Nequi
Nequi QR
Le permite a tus clientes pagar escaneando un código QR utilizando su aplicación de Nequi. La API de Bamboo genera el código QR en la respuesta del request.
El estado de la compra para Medios de Pago Alternativos permanecerá en Pending hasta que el cliente complete el pago.
Flujo de Pago
Parámetros del Request
Es necesario incluir campos específicos para que este método de pago funcione correctamente. Consulte el artículo operación de compra para obtener información detallada sobre la autenticación, los idiomas de la respuesta y los parámetros de compra básica como el monto y la moneda.
Propiedad | Tipo | ¿Obligatorio? | Descripción |
---|---|---|---|
PaymentMethod | string | Sí | Encuentre el valor en la tabla de Medios de pago. |
TargetCountryISO | string | Sí | Indica el país destino. |
Customer → Email | string | Sí | Correo electrónico del cliente. |
Customer → FirstName | string | No | Nombre del cliente. |
Customer → LastName | string | No | Apellido del cliente. |
Customer → DocumentType | string | No * | Tipo de documento del cliente. Consulte la tabla de tipos de documento para ver los posibles valores. |
Customer → DocumentNumber | string | No * | Número de documento del cliente. |
Customer → PhoneNumber | string | No * | Número de teléfono del cliente. |
Customer → Address → Country | string | No | País del cliente. |
Customer → Address → State | string | No | Departamento del cliente. |
Customer → Address → City | string | No | Ciudad del cliente. |
Customer → Address → AddressDetail | string | No | Detalle de la dirección del cliente. |
Customer → Address → PostalCode | string | No | Código postal del cliente. |
MetaDataIn → PaymentExpirationInMinutes | numeric | No | Configure el tiempo de expiración del pago a través de este campo, especificando la duración en minutos. Si no envía este campo, la API asignará un valor por defecto. |
¡Importante!
* Si se desea operar con reembolsos, los parámetros PhoneNumber
, DocumentType
y DocumentNumber
son obligatorios en el request. Caso contrario, no podrá realizarse un reembolso si los parámetros no fueron enviados.
Ejemplo del Request
{
"PaymentMethod": "NQQ",
"Order": "CH2023-001",
"Amount": 100000,
"Currency": "COP",
"Description": "Purchase Test",
"TargetCountryISO": "CO",
"Customer": {
"FirstName": "Joao",
"LastName": "Silva",
"Email": "joao.silva@example.com",
"DocumentType":"CC.CO",
"DocumentNumber":"12345672",
"PhoneNumber":"3188060418",
"ReferenceCode":"123123"
},
"MetaDataIn": {
"PaymentExpirationInMinutes": "7200"
}
}
Parámetros del Response
El siguiente ejemplo muestra la respuesta al request.
{
"TransactionId": "79632697147789184",
"Result": "ACTION_REQUIRED",
"Status": "PENDING",
"ErrorCode": null,
"ErrorDescription": null,
"Created": "2024-08-07T17:51:54.620",
"AuthorizationDate": null,
"AuthorizationCode": null,
"Amount": 100000,
"Currency": "COP",
"TaxableAmount": null,
"Tip": null,
"Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
"MetadataOut":
{
"CodeQr": "bancadigital-C001-10011-1131320",
"Base64Qr": "data:image/png;base64,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"
},
"MetaDataIn": {
"PaymentExpirationInMinutes": "7200"
},
"Action": null,
"PaymentMethod": {
"Brand": "NequiQR",
"CardOwner": null,
"Bin": null,
"IssuerBank": null,
"Type": "BankTransfer",
"Expiration": null,
"Last4": null
}
}
En el campo MetadataOut
dentro del objeto Response
, el código QR se devuelve como una imagen base64 (Parámetro Base64Qr
); añada esta imagen dentro de una etiqueta HTML de imagen. Por ejemplo:
<img src="data:image/png;base64,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" id="qr-code-display" style="max-width: 400px;">
Resultado:
Nequi Push
Al utilizar este método de pago, su cliente recibirá una notificación para que abra su aplicación Nequi y acepte o rechace el pago.
El estado de la compra para Medios de Pago Alternativos permanecerá en Pending hasta que el cliente complete el pago.
Payment Flow
Parámetros del Request
Es necesario incluir campos específicos para que este método de pago funcione correctamente. Consulte el artículo operación de compra para obtener información detallada sobre la autenticación, los idiomas de la respuesta y los parámetros de compra básica como el monto y la moneda.
Propiedad | Tipo | ¿Obligatorio? | Descripción |
---|---|---|---|
PaymentMethod | string | Sí | Encuentre el valor en la tabla de Medios de pago. |
TargetCountryISO | string | Sí | Indica el país destino. |
Customer → Email | string | Sí | Correo electrónico del cliente. |
Customer → FirstName | string | No | Nombre del cliente. |
Customer → LastName | string | No | Apellido del cliente. |
Customer → DocumentType | string | No * | Tipo de documento del cliente. Consulte la tabla de tipos de documento para ver los posibles valores. |
Customer → DocumentNumber | string | No * | Número de documento del cliente. |
Customer → PhoneNumber | string | Sí | Número de teléfono del cliente. El número debe tener 10 dígitos y no debe tener prefijos. Ejemplo: 3188255555. |
Customer → Address → Country | string | No | País del cliente. |
Customer → Address → State | string | No | Departamento del cliente. |
Customer → Address → City | string | No | Ciudad del cliente. |
Customer → Address → AddressDetail | string | No | Detalle de la dirección del cliente. |
Customer → Address → PostalCode | string | No | Código postal del cliente. |
MetaDataIn → PaymentExpirationInMinutes | numeric | No | Configure el tiempo de expiración del pago a través de este campo, especificando la duración en minutos. Si no envía este campo, la API asignará un valor por defecto. |
¡Importante!
* Si se desea operar con reembolsos, el parámetro DocumentType
y DocumentNumber
son obligatorios en el request. Caso contrario, no podrá realizarse un reembolso si los parámetros no fueron enviados.
Ejemplo del Request
{
"PaymentMethod": "NQP",
"Order": "CH2023-001",
"Amount": 100000,
"Currency": "COP",
"Description": "Purchase Test",
"TargetCountryISO": "CO",
"Customer": {
"FirstName": "Joao",
"LastName": "Silva",
"Email": "joao.silva@example.com",
"DocumentType":"CC.CO",
"DocumentNumber":"12345672",
"PhoneNumber":"3188060418",
"ReferenceCode":"123123"
},
"MetaDataIn": {
"PaymentExpirationInMinutes": "7200"
}
}
Parámetros del Response
Nequi genera la orden de pago y envía una notificación push al pagador; luego, el pagador necesita ingresar a la aplicación de Nequi para aceptar o rechazar el pago.
Para más información sobre los parámetros del Response, consulte la sección de parámetros de la creación de la compra.
Ejemplo del Response
{
"TransactionId": "79632697147789184",
"Result": "ACTION_REQUIRED",
"Status": "PENDING",
"ErrorCode": null,
"ErrorDescription": null,
"Created": "2024-08-07T17:51:54.620",
"AuthorizationDate": null,
"AuthorizationCode": null,
"Amount": 100000,
"Currency": "COP",
"TaxableAmount": null,
"Tip": null,
"Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
"MetadataOut": null,
"MetaDataIn": {
"PaymentExpirationInMinutes": "7200"
},
"Action": null,
"PaymentMethod": {
"Brand": "NequiPush",
"CardOwner": null,
"Bin": null,
"IssuerBank": null,
"Type": "BankTransfer",
"Expiration": null,
"Last4": null
}
}