Un payin es un cobro fiat: tu cliente paga en moneda local y tu cuenta
recibe el abono en USDT automáticamente, convertido a tu tasa de payin
(payin_rate en GET /v1/rates) menos la comisión fija de payin si tu
cuenta la tiene configurada.Sea cual sea la modalidad, todos los caminos terminan igual — abono
automático + webhook:
delivery indica cómo se confirma el pago del lado de CBPay (notificación
del banco, sondeo o ambos) — no cambia nada en tu integración: tú siempre
recibes el webhook payin_credited.Corredores y modalidades de cobro:
País
Moneda
Modalidades
Chile
CLP
Página de pago hosted (fintoc), transferencia anunciada
Perú
PEN
Transferencia anunciada
México
MXN
Cuenta CLABE dedicada, transferencia anunciada
Venezuela
VES
Cobro activo c2p y debito_inmediato (pull)
Bolivia
BOB / USD
QR de cobro
Paraguay
PYG
Transferencia anunciada
Brasil
BRL
QR PIX dinámico
La disponibilidad puede variar; el catálogo (GET /v1/payins/methods) es
siempre la fuente de verdad. En todos los casos el abono llega igual: se
convierte a USDT a tu payin_rate del momento y se acredita neto de la
comisión fija de payin.
Cada país tiene su propia modalidad de cobro. El request y la respuesta
real de cada una:
Chile
Perú
México
Venezuela
Bolivia
Paraguay
Brasil
Página de pago hosted (fintoc) — recomendado: recibes una
payment_url; el pagador la abre y transfiere desde cualquier banco o
billetera chilena (Banco Estado, Santander, Mach, Tenpo, Mercado
Pago…). El pago se detecta y valida automáticamente — sin referencias
manuales.
{ "payin_id": "7a2b…", "status": "pending", "reference": "7a2b…", "payment_url": "https://pay.fintoc.com/plink_K2zwNNSxPyx8w3GZ", "expires_at": "2026-07-08T18:48:25Z", "note": "share the payment_url with the payer; the deposit is credited automatically once the transfer is detected"}
Comparte la payment_url con el pagador (link, redirección o WebView).
Cuando el pago se confirma, tu cuenta se acredita en USDT y recibes el
webhook payin_credited. El monto CLP debe ser entero (el peso chileno no
usa decimales) y la sesión de pago vence en 24 horas por defecto. Un retry
con la misma idempotency_key devuelve el mismo payin y la misma URL —
nunca abre una segunda sesión de pago.Transferencia anunciada (alternativa manual): anuncias el depósito
entrante y compartes la referencia con quien transfiere.
{ "payin_id": "4f81…", "status": "pending", "reference": "CBJ6T3W9M2K5", "note": "include the reference in the transfer description so the deposit is credited automatically"}
Cuando la transferencia llega, se matchea por la referencia en la glosa (o
por monto+moneda como respaldo) y tu cuenta se acredita automáticamente.
Transferencia anunciada, igual que Chile pero en soles:
{ "payin_id": "6d20…", "status": "pending", "reference": "CBK7M2Q9X4T3", "note": "include the reference in the transfer description so the deposit is credited automatically"}
La reference es un código corto de 12 caracteres alfanuméricos (cabe
en cualquier concepto bancario) y debe viajar en la descripción de la
transferencia para el match automático; como respaldo también se matchea
por monto+moneda.
Cuenta CLABE dedicada (recomendado): creas una CLABE fija vinculada a
tu cuenta — todo SPEI que llegue a ella se acredita automáticamente, sin
referencias:
instrument es la CLABE que compartes con tus pagadores. La creación es
gratis; cada depósito paga la comisión de payin normal. Lista tus cuentas
con GET /v1/payins/deposit-accounts.También puedes usar la transferencia anunciada puntual
(POST /v1/payins con method: "bank_transfer", country: "MX").
Cobro activo (pull): cobras directamente al pagador con su
autorización. El resultado es síncrono — si el cobro se aprueba, el
abono se acredita en la misma llamada.Para debito_inmediato, primero solicita el OTP (gratis):
El cobro activo ejecuta un débito real contra el pagador, así que
idempotency_key es obligatoria (body o header Idempotency-Key): un
reintento con la misma clave devuelve el resultado original con
idempotency_hit y nunca vuelve a cobrar.
Muestra el QR a tu cliente — qr_image_url es una URL pública de CDN lista
para un <img> (prefiérela por sobre el base64 qr_image); cuando paga, tu
cuenta se acredita automáticamente. También funciona en USD
(currency: "USD").
Transferencia anunciada en guaraníes: anuncias el depósito, tu pagador
transfiere (SIPAP interbancaria o transferencia interna del banco receptor)
con la referencia en el concepto, y el abono se detecta automáticamente.
{ "payin_id": "8f41…", "status": "pending", "reference": "CBW4N8R2T6P9", "note": "include the reference in the transfer description so the deposit is credited automatically"}
Los guaraníes no usan decimales: anuncia el monto entero exacto que
transferirá tu pagador (ej. "596000"). La reference es un código corto
de 12 caracteres alfanuméricos — diseñado para el concepto SIPAP, que
acepta máximo 20 caracteres sin caracteres especiales — y ponerla en
el concepto asegura el match automático; como respaldo también se matchea
por monto+moneda.
QR PIX dinámico: el mismo endpoint genera un QR PIX con el monto
embebido.
En la respuesta, charge.qr_payload es el código “copia e cola” de
PIX, para que el pagador pueda pegarlo en su app bancaria si no escanea la
imagen (charge.qr_image base64 o charge.qr_image_url, la URL pública de
CDN). El QR expira según expires_in (default 1
hora); el pago se acredita automáticamente al confirmarse en el rail
(conciliación continua — consulta puntual con GET /v1/payins/{charge_id}).
En Brasil el cobro es únicamente por QR PIX dinámico (un QR = un pago, con
monto exacto embebido). La transferencia anunciada llegará más adelante.
fx_rate es tu payin_rate del momento del abono — la conversión se hace
exactamente a esa tasa: usdt_gross = 700.00 / 6.91.El objeto payin queda con el detalle completo:
Depósito recibido sin match automático (lo asigna el administrador)
expired
El cargo venció sin pago
failed
El cobro falló
Los depósitos que llegan por transferencia directa sin referencia clara
quedan unassigned hasta que el equipo de CBPay los asigna a una cuenta.
Al asignarse, se acreditan con la tasa y comisiones de la cuenta destino.