BETA
Conecta tu Datafono Bold a la Aplicación de tu Comercio de Forma Sencilla
Para conectar el flujo de pagos de Bold con tu sistema, hemos desarrollado una integración vía API que te permitirá enlazar tu aplicación directamente con tus datáfonos Bold.
¿Qué es API Integrations?
Esta nueva funcionalidad te ofrece la capacidad de integrar fácilmente la creación y gestión de pagos en tu plataforma existente. Con esta API, se podrán automatizar procesos, personalizar la experiencia de pago y aprovechar al máximo las capacidades de nuestra plataforma.
¿Cómo funciona?
El proceso de integración se realiza a través de una API que permite la comunicación directa entre tu aplicación (web o mobile) y los datáfonos Bold. Cuando tu sistema envía una notificación a la API, esta se encarga de indicarle al datáfono que debe iniciar el proceso de pago. El datáfono recibirá la instrucción y comenzará automáticamente el flujo de cobro, ya sea con tarjeta o medios de pago alternativos. Todo ocurre de manera automatizada y en tiempo real, facilitando una experiencia de pago rápida y sin intervención manual desde el datáfono.
¿Cómo lo integro?
Para usar API Integrations, ten en cuenta las siguientes consideraciones:
- Tener una cuenta Bold habilitada
- Tener vinculado al menos un datáfono SmartPro a tu cuenta Bold.
- El datáfono debe estar encendido y con la aplicación abierta o en modo background.
A continuación, te guiaré para integrar API Integrations en tu sistema:
1. Seguridad
La API funciona bajo un esquema de seguridad utilizando una llave de identidad (API key), la cual deberá ser enviada en las cabeceras de cada petición. Si deseas conocer como obtener tus llaves de integración puedes consultar esta documentación.
2. Autenticación de peticiones
Para autenticar tus peticiones, incluye la siguiente cabecera (header) en cada solicitud:
Llave | Valor |
---|---|
Authorization | x-api-key <llave_de_identidad> |
Asegúrate de reemplazar <llave de identidad>
con la correspondiente a tu comercio.
Por ejemplo, si la llave de identidad es:
DZSkDqh2iWmpYQg204C2fLigQerhPGXAcm5WyujxwYH
Quedaría de la siguiente forma:
Llave | Valor |
---|---|
Authorization | x-api-key DZSkDqh2iWmpYQg204C2fLigQerhPGXAcm5WyujxwYH |
3. URL base
Todas las solicitudes a los servicios deben realizarse utilizando la siguiente URL base:
https://integrations.api.bold.co
4. Consulta de métodos de pago disponibles
Este servicio permite a los comercios consultar los métodos de pago habilitados.
La solicitud se realiza mediante una petición GET al endpoint /payments/payment-methods
.
A continuación, se detalla la estructura de la respuesta.
Endpoint
GET /payments/payment-methods
Parámetros No se requieren parámetros adicionales en la solicitud GET.
Request
GET /payments/payment-methods
--header 'Authorization: x-api-key <llave_de_identidad>'
Respuesta La respuesta contiene un objeto payload que incluye la información sobre los métodos de pago disponibles para la integración.
{
"payload": {
"payment_methods": [
{
"name": "DAVIPLATA",
"enabled": true
},
{
"name": "NEQUI",
"enabled": true
},
{
"name": "PAY_BY_LINK",
"enabled": true
},
{
"name": "POS",
"enabled": true
}
]
},
"errors": []
}
Los posibles metodos son: POS
para pago con tarjeta, NEQUI
para pagos con Nequi mediante Push o QR, DAVIPLATA
para pagos mediante la aplicación de Daviplata y PAY_BY_LINK
para crear un link de pago y que tu cliente pueda realizar el pago en la web.
5. Consulta de terminales de pago disponibles
Este servicio permite a los comercios consultar las terminales (datafonos) de pago habilitadas, actualmente se soportan terminales Smart Pro únicamente.
La solicitud se realiza mediante una petición GET al endpoint /payments/binded-terminals
.
A continuación, se detalla la estructura de la respuesta.
Endpoint
GET /payments/binded-terminals
Parámetros No se requieren parámetros adicionales en la solicitud GET.
Request
GET /payments/binded-terminals
--header 'Authorization: x-api-key <llave_de_identidad>'
Respuesta La respuesta contiene un objeto payload que incluye la información sobre las terminales de pago disponibles para la integración.
{
"payload": {
"available_terminals": [
{
"terminal_model": "N86",
"terminal_serial": "N860W000000",
"status": "BINDED",
"name": "SPRO0000"
}
]
},
"errors": []
}
6. Creación de pagos mediante API
Para facilitar la creación de pagos a través de nuestra API, hemos diseñado una interfaz intuitiva que permite a los desarrolladores enviar solicitudes POST al endpoint /payments/app-checkout
. A continuación, se detallan los parámetros requeridos y opcionales que pueden incluirse en la solicitud.
Endpoint
POST /payments/app-checkout
Parámetros
Obligatorios
Campo | Tipo | Descripción |
---|---|---|
amount | object | Contiene información detallada de los montos a procesar. Incluye el monto total, los impuestos asociados y la propina correspondiente. |
amount.currency | string | La moneda en la que se realiza la transacción. Ejemplo: COP |
amount.total | number | Cantidad correspondiente al total a procesar en la transacción. Incluye propinas e impuestos asociados. |
amount.taxes | List[Object] | Lista de objetos que contienen todos los impuestos asociados a la transacción en cuestión. Cada objeto incluye el tipo del impuesto, la base y el valor del mismo. |
amount.tip | number | Cantidad correspondiente a la propina asignada a la transacción. |
user_email | string | Correo de la persona que está realizando la venta. Ejemplo: vendedor@comercio.com . |
payment_method | string | Este campo se utiliza para especificar el medio de pago por el cual se va a efectuar la venta. Se debe escoger uno de los obtenidos en la sección Consulta de métodos de pago disponibles . Los posibles valores son: POS → tarjetas de crédito/débito. NEQUI → pago por Nequi. DAVIPLATA → pago por Daviplata. PAY_BY_LINK → pago por link de pago. |
terminal_model | string | En este campo se debe enviar el modelo del terminal que se va a utilizar para procesar el pago. Se debe escoger el modelo de los obtenidos en la sección Consulta de terminales de pago disponibles . Ejemplo: N86 . |
terminal_serial | string | En este campo se debe enviar el serial del terminal que se va a utilizar para procesar el pago. Se debe escoger el serial de los obtenidos en la sección Consulta de terminales de pago disponibles . Ejemplo: N860W000000 . |
reference | string | Referencia para identificar el pago en la respuesta del Webhook. Ejemplo: d9b10690-981d-494d-bcb0-66a1dacab51d . |
Opcionales
Campo | Tipo | Descripción |
---|---|---|
description | string | Una descripción breve de la transacción. Ejemplo: Compra de productos electrónicos . |
payer | object | Un objeto que especifica los detalles del pagador en caso de ser necesarios. Cada uno de los elementos dentro de este objeto son a su vez opcionales. |
payer.email | string | Correo del pagador. Ejemplo: pagador@hotmail.com . |
payer.phone_number | string | Teléfono del pagador. Ejemplo 3100000000 . |
payer.document | object | Un objeto que contiene información del documento de identidad del pagador. |
payer.document.document_type | string | Tipo de documento de identidad. Debe ser uno de los siguientes: [CEDULA, NIT, CEDULA_EXTRANJERIA, PEP, PASAPORTE, NUIP, REGISTRO_CIVIL, DOCUMENTO_EXTRANJERIA, TARJETA_IDENTIDAD, PPT] . Ejemplo: CEDULA . |
payer.document.document_number | string | Número del documento de identidad del pagador. Debe tener una longitud de mínimo 4 y máximo 15 caracteres. Ejemplo: 1010140000 . |
Request
{
"amount": {
"currency": "COP",
"taxes": [
{
"type": "VAT",
"base": 10000,
"value": 1000
}
],
"tip_amount": 0,
"total_amount": 1230000
},
"payment_method": "POS",
"terminal_model": "N86",
"terminal_serial": "N860W000000",
"reference": "d9b10690-981d-494d-bcb0-66a1dacab51d",
"user_email": "vendedor@comercio.com",
"description": "Compra de Prueba",
"payer": {
"email": "pagador@hotmail.com",
"phone_number": "3100000000",
"document": {
"document_type": "CEDULA",
"document_number": "1010140000"
}
}
}
Respuesta
Si la solicitud fue exitosa, se obtendrá un código HTTP 201 junto con la siguiente respuesta. El campo integration_id
en la respuesta es un identificador único de la integración que se creó, por lo cual sirve para obtener soporte en caso de ser necesario.
{
"payload": {
"integration_id": "e1eeb06d-e2c4-461e-8346-f0982b4be1fc"
},
"errors": []
}
Seguimiento de la transacción
Con el Webhook de Bold, puedes recibir actualizaciones sobre el estado del pago iniciado mediante el API y acceder al valor de referencia asociado. Esto te permite seguir el flujo completo del pago, desde su inicio hasta conocer el estado de la transacción y tomar acciones correspondientes dentro de tu sistema en función de estos estados.