Skip to main content
Los payins QR permiten crear un cobro que el cliente completa con su app bancaria. Usa una clave de idempotencia cuando el cliente pueda reintentar después de un timeout o una respuesta de red ambigua.

Crear un payin QR

Envía method: "qr" a POST /v1/payins. La clave es opcional y puede viajar en el body JSON o en el header Idempotency-Key.
Respuesta 201:
Muestra el contenido QR o el qr_image_url que devuelve la API. Cuando el cliente paga, la cuenta se acredita automáticamente. Consulta el estado actual con GET /v1/payins/{payinID}.

Reintentos idempotentes

idempotency_key es opcional para payins QR. Envíala en el body JSON o en el header Idempotency-Key. Si envías ambas, se usa el valor del body. La plataforma aplica internamente un namespace por cuenta; el integrador manda la clave tal cual. La identidad de la solicitud incluye país, moneda, método y monto numérico. El canal QR no forma parte de la identidad del replay: la misma clave reproduce el mismo cobro independientemente del canal. Por ejemplo, "100" y "100.00" son equivalentes. description es texto de presentación y no forma parte de la identidad del replay. La primera solicitud crea un solo cobro. Un reintento con la misma clave y un payload equivalente devuelve el objeto original con idempotency_hit: true; no crea otro cobro:
La forma con header es equivalente:
Si reutilizas la misma clave con otro país, moneda, método o monto, la API responde 409 idempotency_conflict:
Un cobro expirado o pagado se reproduce tal cual. La respuesta conserva el objeto original; usa GET /v1/payins/{payinID} para consultar su estado vivo. El core y la plataforma responden 400 invalid_idempotency_key cuando la clave del integrador supera 256 caracteres o contiene retornos de carro/saltos de línea. La plataforma también rechaza con el mismo código si su namespace de cuenta del lado servidor hace que la clave resultante supere 256 caracteres. Ese namespace es invisible para el integrador: envía la clave sin modificar.

Errores

Preguntas frecuentes

Sí. La descripción es texto de presentación y no forma parte de la identidad del replay.
Reintenta con la misma clave y consulta el payin_id devuelto con GET /v1/payins/{payinID}. No crees una clave nueva para la misma operación.
Última modificación el 3 de octubre de 2026