Cómo se cobran los payouts y payins
El pricing FX está en tu tipo de cambio: las tasas que ves enGET /v1/rates son tus tasas, y son exactamente las que se usan al
ejecutar — sin porcentajes aparte. Cada país trae las dos puntas:
rate— la tasa de tus payouts (dispersiones). Si dispersas el equivalente a 100 USDT, se debitan 100 USDT + el fijo (si tu cuenta lo tiene configurado).payin_rate— la tasa de tus payins (cobros/depósitos fiat). El abono es el monto local convertido a esa tasa, menos el fijo (si tu cuenta lo tiene configurado).
Servicios con comisión fija u porcentual
Para los servicios con
%, la fórmula es
fee = ceil(monto × percent / 100) + fixed_amount (redondeo hacia arriba al
micro-USDT).
Los cargos fijos standalone (compliance, verificación KYC/KYB, creación de
wallets y banking) se reembolsan automáticamente si la operación falla
aguas arriba (
compliance_refund / verification_fee_refund /
wallet_creation_refund / wallet_service_refund / banking_fee_refund).Settlement de payins con tarjeta
Los cobros con tarjeta pueden llevar una demora de acreditación (settlement_hours, entero en horas; 0 = sin demora — el default). Con
demora configurada, un cobro confirmado confirma el payin de inmediato:
el estado pasa a credited, el webhook payin_credited se emite al
momento y un link de checkout pagado con tarjeta cierra como pagado. Lo
que espera es el saldo: cae en tu ledger cuando corre el settlement —
al llegar settle_at (un worker liquida los payins vencidos cada minuto)
o antes si un org-admin lo libera manualmente desde el panel.
Mientras el saldo está pendiente, la respuesta del payin (creación,
consulta y listado) lleva settle_at (RFC 3339) y
settlement_pending: true; cuando el saldo cae, lleva settled_at en su
lugar. Al confirmarse el pago también se emite el webhook
payin_settlement_scheduled exactamente una vez (idempotente) con
status: "credited", los montos programados y settle_at, así tu
integración distingue “pagado, saldo programado” de “pagado, saldo ya
disponible”.
settle_at = created_at + settlement_hours — la demora corre desde la
creación del payin (≈ cuando el procesador confirma el cobro). Un payin
cuyo plazo ya venció al aprobarse o asignarse se liquida de inmediato (sin
settlement_pending). La auto-conversión (cuando está configurada) corre
cuando el saldo se liquida, no antes.
La demora la configura CBPay en el fee
payin_card de tu cuenta. Tus
señales de confirmación no cambian — payin_settlement_scheduled y
payin_credited llegan al momento del pago; solo la disponibilidad del
saldo espera al settle_at.Comisiones banking por riel
Las operaciones banking llevan comisiones transaccionales en la moneda de la operación (el saldoBANK_USD / BANK_EUR que la operación
mueve):
- Depósitos (
banking_deposit): se cobran al acreditar el depósito entrante, con tope en el monto (min(fee, monto)) — un depósito chico jamás deja el saldo en negativo. - Transferencias (
banking_transfer_ach,banking_transfer_swift,banking_transfer_wire,banking_transfer_sepa): se cobran al despachar; tu saldo disponible debe cubrirmonto + feeen la moneda de la operación o el request se rechaza con402 insufficient_funds. Si la transferencia es rechazada en forma definitiva después, el fee se reembolsa. - Fallback: un riel sin configuración propia (ni en tu cuenta ni por
defecto) usa el fee fijo legacy
banking_operationen USDT. Un riel configurado con0%+0fijo es explícitamente gratis — no cae al fallback.
banking_fee y banking_fee_asset (el monto cobrado y su moneda
BANK_*), así cada cobro es atribuible a su riel.
Transferencias internas: siempre gratis
Las transferencias entre cuentas CBPay (POST /v1/transfers) no tienen
comisión, sin importar la combinación: persona↔persona, persona↔empresa o
empresa↔empresa. El dinero se mueve dentro del ecosistema.
Tu tipo de cambio
GET /v1/rates devuelve el tipo de cambio propio de tu cuenta en cada
país — las mismas tasas con las que se ejecutan tus operaciones, sin
sorpresas: rate para payouts y payin_rate para payins
(monto_local / tasa = USDT).
Consulta tus condiciones
GET /v1/rates devuelve, junto a tus tasas, la configuración de comisiones
vigente para tu cuenta:
asset_prices es el precio USD de referencia de cada saldo virtual
(para valorizarlos en pantalla) — no implica conversión ni spread. La
respuesta incluye además un bloque settlement con el precio efectivo
por asset si pagas operaciones desde un saldo distinto de USDT
(modelo de dinero):
ese precio ya incluye el margen de conversión, así que lo que ves es lo
que se aplica.
La comisión cobrada queda siempre explícita en la respuesta de cada
operación (campo fee) y en el ledger.
Ejemplo completo
Payout equivalente a 100 USDT confixed_amount: "0.30":
fixed_amount: "0.30":
payin_rate menos el fijo.