Skip to main content
Las comisiones las configura CBPay por servicio, país y activo. Si no hay nada configurado para una combinación, la comisión es 0.

Cómo se cobran los payouts y payins

El pricing FX está en tu tipo de cambio: las tasas que ves en GET /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).
Lo que recibe el beneficiario (payout) o lo que se te abona (payin) depende de las tasas de tu cuenta para ese país. Cotizado = cobrado, siempre.

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.
Un payin con el settlement aún pendiente no se puede devolver: la devolución debita tu saldo y esa plata aún no se libera, así que el request se rechaza con 422 settlement_pending. Espera al settle_at o pide a un org-admin que libere el saldo primero — después la devolución funciona como siempre.
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 saldo BANK_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 cubrir monto + fee en la moneda de la operación o el request se rechaza con 402 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_operation en USDT. Un riel configurado con 0% + 0 fijo es explícitamente gratis — no cae al fallback.
Cuando aplica un fee de riel, la respuesta del despacho expone 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 con fixed_amount: "0.30":
El beneficiario recibe el monto local completo que indicaste; a ti se te debita el equivalente a tu tasa más el fijo. Payin equivalente a 100 USDT con fixed_amount: "0.30":
El pagador paga el monto local exacto que indicaste; a ti se te abona el equivalente a tu payin_rate menos el fijo.
Última modificación el 10 de agosto de 2026