Descripción general del proceso
- Tu servidor crea el pago mediante la API de Confío
- Confío devuelve los datos del pago y una URL lista para compartir
- Compartes la URL con el comprador (o la abres en tu app)
- El comprador completa el pago en Confío
- Recibes webhooks sobre intentos y cambios de estado
Requisitos previos
- Un token de acceso válido a la API de Confío
Debes contactarnos para generar el token. Una vez generado, te recomendamos almacenarlo en un lugar seguro y no compartirlo
- IID de la tienda (
{store}) correlationIdde tu sistema para conciliar el pago con tu orden interna- Datos mínimos del pago:
amountCents,currencyCode,title, y datos del comprador
Obtener la tienda antes de crear el pago
Antes de crear el pago, obtén el identificador de la tienda ejecutando el endpoint de listado de tiendas.{store} al invocar la creación de pagos.
Crear el pago (endpoint)
Parámetros opcionales importantes
redirectUri
redirectUri es opcional. Úsalo si quieres enviar al comprador de vuelta a tu sitio o app cuando finaliza el intento de pago.
Si envías redirectUri, Confío redirige al comprador a esa URL y agrega estos query parameters:
Si no envías
redirectUri, el comprador permanece en la pantalla de confirmación de Confío.
Ejemplo: "redirectUri": "https://tu-tienda.com/orden-confirmada"
Respuesta 200 (ejemplo)
Compartir y usar la URL de pago
- Muestra o envía la
urldevuelta para que el comprador complete el pago - Puedes integrarla en tu app (deep-link / WebView) o compartirla por WhatsApp/Email
Pruebas en ambiente de desarrollo
Para probar en desarrollo, te recomendamos probar con PSE o tarjeta.Probar con PSE
En el caso de probar con PSE:- Selecciona tipo y número de documento (pueden ser valores falsos)
- En el banco escoge la opción de Banco Unión Colombiano
- Da clic en Pay y posteriormente el evento de pago exitoso llegará al webhook
Probar con tarjeta
En el caso de probar con tarjeta, utiliza los siguientes datos de prueba:Webhooks a escuchar
paymentAttempt.statusChanged: cambios de intentos (aprobado, rechazado)payment.statusChanged: cambios del estado principal (AWAITING_PAYMENT, FUNDED, …)
Authorization: Bearer y el X-Confio-Event.
Errores comunes
- 400 Datos inválidos o falta algún campo requerido
- 401 Falta o es inválido el Bearer token
- 404 Tienda no encontrada o sin permisos
- 429 Demasiadas solicitudes
- 5xx Error interno o timeout
Mejores prácticas
- Usa
correlationIdpara mapear el pago con tu orden interna. - Valida y sanitiza todos los datos antes de llamar a la API.
- Registra
name,urly estados recibidos por webhooks.
Recursos adicionales
Idempotencia con Idempotency-Key
Incluye el header Idempotency-Key para que la creación de un pago sea idempotente. La clave identifica una operación lógica de creación y permite que Confío distinga una repetición de la misma operación de una solicitud para crear un pago nuevo.
- Genera una clave nueva y aleatoria para cada operación lógica de creación de pago; UUID v4 es una buena opción.
- Guarda la clave junto con tu orden interna antes de llamar a Confío.
- Si envías de nuevo la misma operación, usa la misma clave y el mismo cuerpo de solicitud.
- Reutilizar la misma clave con la misma solicitud devuelve el pago existente, en vez de crear otro pago.
- Reutilizar la misma clave con una solicitud diferente responde con conflicto (
409). - Confío recuerda las claves por 30 días.