Skip to main content
Esta guía explica cómo crear un pago en Confío desde tu backend, compartir el enlace de pago con el comprador y recibir notificaciones en tiempo real sobre el estado del pago.

Descripción general del proceso

  1. Tu servidor crea el pago mediante la API de Confío
  2. Confío devuelve los datos del pago y una URL lista para compartir
  3. Compartes la URL con el comprador (o la abres en tu app)
  4. El comprador completa el pago en Confío
  5. 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})
  • correlationId de 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.
Ejemplo de respuesta (parcial):
Usa el valor de “name” (o su identificador) como {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"
Usa los query parameters del redirect solo para mostrar feedback en tu interfaz. No actualices el estado de tu orden solo porque recibiste el redirect: para persistir estado, usa los webhooks de Confío o consulta el pago con GET /v1/stores/{store}/payments/{payment}.

Respuesta 200 (ejemplo)

Compartir y usar la URL de pago

  • Muestra o envía la url devuelta 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, …)
Consulta la guía de Webhooks para validar el header 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

  1. Usa correlationId para mapear el pago con tu orden interna.
  2. Valida y sanitiza todos los datos antes de llamar a la API.
  3. Registra name, url y 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.
correlationId es tu referencia de negocio para conciliación. No lo uses como mecanismo de idempotencia; para creación idempotente usa el header Idempotency-Key.