contact_id como destino.
Los contactos se crean solos
Cada envío guarda su destino en tu libreta (deduplicado: repetir el mismo destino no crea contactos duplicados, solo lo marca como usado):
¿No quieres guardar un destino puntual? Agrega
"save_contact": false al
body del envío. El auto-guardado jamás afecta el envío: si algo falla, el
envío sale igual.
Importar la agenda del celular
Sube los contactos del teléfono (hasta 1.000 por request; pagina si hay más) y CBPay te dice quién ya tiene cuenta — el match es por número de teléfono y solo contra cuentas del mismo operador:200:
- Los números se normalizan a E.164 solos: acepta
+…,00…y números locales (se les antepone el país de tu cuenta). Los inválidos se saltan. - Re-importar es seguro: los contactos existentes no se duplican.
has_cbpay: truesignifica que ese teléfono corresponde a una cuenta activa del mismo operador — puedes transferirle al instante.
Enviar plata por teléfono
Las transferencias internas aceptanto_phone (además de to_account_id,
to_email y to_contact_id):
Enviar a un contacto
Cualquier envío acepta el contacto directo:- Payouts: usa el beneficiario guardado más reciente del contacto para
ese país (y método si lo envías; si no, se usa el del destino guardado).
Un
beneficiaryexplícito en el body siempre gana. Sin destino guardado para ese corredor:422 no_saved_destination. - Crypto: usa la dirección guardada para esa
chain; unto_addressexplícito gana. - Transfers: usa la cuenta CBPay enlazada del contacto; si el contacto
solo tiene teléfono, se intenta por su número (verificado). Contacto sin
ninguno:
422 contact_not_linked.
Administrar la libreta
200):
POST /v1/contacts/{id}/destinations con type: payout|crypto|cbpay y sus
campos) y borrarlos (DELETE .../destinations/{destination_id}).
Errores
Preguntas frecuentes
¿El destinatario se entera de que lo tengo como contacto?
¿El destinatario se entera de que lo tengo como contacto?
No. La libreta es privada de tu cuenta: importar la agenda o guardar
contactos no notifica a nadie ni comparte tus datos. Solo tú ves tu libreta.
¿Por qué un contacto que sé que tiene CBPay aparece has_cbpay: false?
¿Por qué un contacto que sé que tiene CBPay aparece has_cbpay: false?
El match es por número de teléfono exacto (E.164) contra cuentas del mismo
operador. Si esa persona registró otro número (o ninguno) en su cuenta, no
hay match. En cuanto registre y verifique ese teléfono, un re-import lo
detecta.
¿Puedo transferirle a un contacto con has_cbpay: false?
¿Puedo transferirle a un contacto con has_cbpay: false?
No por transferencia interna (no hay cuenta a la cual abonar). Pero puedes
hacerle un payout fiat a su cuenta bancaria o un envío crypto a su wallet —
y esos destinos también quedan guardados en el contacto.
¿Qué pasa si dos personas de mi org tienen el mismo número?
¿Qué pasa si dos personas de mi org tienen el mismo número?
El envío por teléfono falla explícito con 422 recipient_ambiguous — nunca
adivinamos un destino de dinero. Usa to_account_id o to_email en ese caso.
¿El import me puede servir para saber si un número cualquiera tiene CBPay?
¿El import me puede servir para saber si un número cualquiera tiene CBPay?
El match es solo contra cuentas de tu mismo operador, con un cap de 1.000
contactos por request y bajo el rate limit global de la API. No expone
datos de la cuenta matcheada más allá del hecho de existir (necesario para
poder transferirle).