USDT, USDC, BTC,
GOLD) y siempre entre saldos de la misma moneda: el asset que envías
es el asset que recibe el destino, sin conversión.
Funcionan entre cualquier combinación de cuentas:
Crear una transferencia
El destino se identifica porto_account_id, to_email, to_phone
(teléfono verificado) o to_contact_id (un
contacto de tu libreta):
asset es opcional y por defecto USDT; acepta USDT, USDC, BTC o
GOLD y el destino recibe en esa misma moneda.
Respuesta 201 — la transferencia es síncrona e inmediata:
idempotency_key — 200 con la transferencia
original:
transfer_received y ambos ven
el movimiento en su historial (transfer_out / transfer_in).
Cada transferencia guarda al destinatario como contacto
automáticamente (envía
"save_contact": false para no guardarlo). Por
seguridad, to_phone solo resuelve cuentas con el teléfono verificado
por OTP; si más de una cuenta comparte el número responde
422 recipient_ambiguous.Consultar transferencias
Lista las transferencias de tu cuenta (enviadas y recibidas), con paginación y filtros de fecha:direction (sent o received) desde tu perspectiva.
Reglas
- Solo entre cuentas CBPay activas; las cuentas internas del sistema no pueden recibir.
- Siempre misma moneda en origen y destino: no hay conversión entre
saldos (
USDT→USDT,GOLD→GOLD, …). - No puedes transferirte a ti mismo (
400 self_transfer). - Requiere
idempotency_key(body o headerIdempotency-Key); el replay devuelve200conidempotency_hit: true. amountacepta hasta los decimales de la moneda: 6 paraUSDT/USDC/GOLD, 8 paraBTC.