Saltar al contenido principal
Tus saldos crypto viven conectados a la blockchain. Combinaciones soportadas: Cada depósito acredita el saldo de su propio activo (una wallet USDC abona tu saldo USDC; la wallet Bitcoin abona tu saldo BTC). GOLD es el único saldo sin riel on-chain: se mueve solo por transferencias internas y abonos del operador.

Tu cuenta nace con sus wallets

Toda cuenta — persona y empresa — se crea con una wallet de depósito por cada combinación soportada (tron/usdt, eth/usdt, eth/usdc y btc/btc), sin costo y de forma automática: apenas te registras ya tienes tus cuatro direcciones listas para recibir fondos.
La provisión corre en segundo plano al crear la cuenta: si consultas en el mismo segundo del registro puede faltar alguna dirección — reintenta a los pocos segundos.
Las wallets de depósito son puertas de entrada, no billeteras operativas: solo sirven para recibir crypto que se abona a tu saldo virtual. No envían fondos, no se exportan ni se importan (para eso están las wallets segregadas).
Dos productos, dos rutas: las wallets de depósito viven en /v1/crypto/wallets y las segregadas en /v1/segregated-wallets. Toda respuesta de wallet trae el discriminador type (deposit / segregated) para distinguirlas siempre.

¿Puedo crear más wallets de depósito?

No. Toda cuenta — persona y empresa — tiene exactamente una wallet de depósito por combinación red+activo, y nacen todas con la cuenta. POST /v1/crypto/wallets existe solo para reponer un par que falte (caso excepcional): con las cuatro wallets ya provisionadas responde 422 wallet_limit_reached.
Con el par ya provisionado — 422:
  • Las wallets de nacimiento son siempre gratis; el fee wallet_creation solo aplicaría a una reposición manual (con comisión 0, el default, es gratis; si la creación falla, el cargo se reembolsa automáticamente).
  • ¿Necesitas varias wallets con saldo propio (por cliente, por proyecto, por unidad de negocio)? Ese es el producto wallets segregadas: empresas sin límite, personas 1 por combinación red+activo.

Ver mis wallets

Las direcciones Bitcoin son bech32 nativas (bc1q…): cualquier wallet o exchange moderno puede enviarles fondos. Los montos BTC usan 8 decimales ("0.00050000").

Depositar

Envía el activo de la wallet a su dirección, por la red correcta. Cuando el depósito se confirma on-chain, el saldo de ese activo se acredita automáticamente (neto de la comisión de funding si CBPay la configuró) y se emite el webhook crypto_deposit_credited:
Envía solo el activo de la wallet y por su red (USDT a una wallet USDT, USDC a una wallet USDC, BTC a la wallet Bitcoin). Las direcciones son tuyas y estables: puedes reutilizarlas para todos tus depósitos.

Tiempos de confirmación

El abono siempre llega con el webhook y el tx_id para verificarlo en el explorador de la red.

Transferir (retiros on-chain)

Envía USDT, USDC o BTC desde su saldo a cualquier dirección externa (asset opcional: default USDT en tron/eth y BTC en btc; USDC solo por eth):
En Bitcoin el destino puede ser una dirección bech32 (bc1q…), taproot (bc1p…) o legacy (1… / 3…). El fee de red de Bitcoin lo cubre la propia operación — recibes el estado final por webhook como en cualquier otro retiro.
Respuesta 202 — se debita amount + fee y la transacción se transmite:
Cada retiro guarda la dirección como contacto automáticamente — nómbralo con "contact_name" en el body, o desactívalo con "save_contact": false. Para repetir un envío, usa "to_contact_id" en vez de to_address (se usa la dirección guardada del contacto para esa chain).
El estado final llega por el webhook crypto_withdrawal_status_changed: completed (el tx_id es tu comprobante) o failed (se reembolsa el débito completo). También puedes consultar el retiro en cualquier momento:
Para mover saldo a otra cuenta CBPay no uses la blockchain: las transferencias internas son instantáneas y gratis.

Travel Rule (retiros sobre el umbral)

Por regulación internacional (FATF R.16, “Travel Rule”), los retiros on-chain desde 1.000 USD exigen declarar quién recibe los fondos antes de mover el dinero. Bajo el umbral nada cambia. Hay dos caminos:
Si el destino es una wallet del propio titular (no un exchange), declara wallet_type y el nombre del beneficiario:
La respuesta incluye "travel_rule_status": "self_hosted_attested".

Movimientos

Cada depósito acredita el saldo del activo de su wallet (USDT, USDC o BTC); las wallets son puertas de entrada, el saldo por moneda es uno solo.

Errores

Última modificación el 16 de julio de 2026