- Tu propia verificación (onboarding) — obligatoria: hasta aprobarla, tu cuenta solo puede fondear (payins, depósitos crypto, recibir transferencias) y consultar. Persona ⇒ KYC; empresa ⇒ KYB.
- Verificación de tus clientes (solo cuentas empresa) — generas links hosteados o envías los datos por API para verificar a tus propios clientes finales, con una comisión fija por verificación.
Tu propia verificación (onboarding)
Al registrarte, tu cuenta nace sin verificar (kyc_status: none) y solo
puede fondear y leer. Cualquier acción de dinero saliente (payouts,
transferencias, retiros, banking, tarjetas) responde
403 verification_required hasta que apruebes.
1
Pide tu link de verificación
201 (si ya tienes un link vigente, se devuelve el mismo con
200):kind sale de tu tipo de cuenta: persona ⇒ kyc, empresa ⇒ kyb. El
onboarding no tiene costo para ti.2
Completa el wizard
Abre la
url: el wizard hosteado te guía por el formulario, la subida de
documentos (identidad, comprobante de domicilio; societarios para
empresas) y — en KYC — la prueba de vida en video frente a la cámara.3
Espera la revisión
Consulta tu estado cuando quieras:Cuando compliance aprueba, tu
kyc_status pasa a approved
automáticamente y todos los servicios se desbloquean (recibirás el
webhook kyc_verification_status_changed con self_onboarding: true).La aprobación además rellena el perfil de tu cuenta con la identidad
verificada: display_name (persona = nombre + apellido; empresa = razón
social), tax_id y country se toman de la verificación y desde ese
momento quedan inmutables vía PATCH /v1/me (409 identity_locked) —
la identidad verificada es la fuente de verdad.Mientras esperas la aprobación puedes fondear con normalidad: payins en
todos los métodos, depósitos crypto y transferencias entrantes funcionan
desde el día uno. Si tu verificación es rechazada (
kyc_status: rejected),
contacta a tu operador — puede pedirte reintentar con un link nuevo.Verificar a tus clientes (solo cuentas empresa)
Una cuenta empresa verificada puede verificar a sus propios clientes finales. Cada verificación creada cobra la comisión fija configurada (kyc_verification / kyb_verification; 0 = gratis), que se reembolsa
automáticamente si la creación falla. Las cuentas persona reciben
403 company_account_required.
Opción A — Links hosteados (recomendada)
Tu cliente completa TODO en el wizard de marca blanca: formulario, documentos y prueba de vida. Tú solo generas el link y esperas el webhook.external_customer_id(obligatorio): TU referencia del cliente verificado — la recibes de vuelta en cada webhook y consulta. Los valoresselfo terminados en:selfestán reservados para el onboarding de la cuenta y se rechazan con400 invalid_payload.idempotency_key(obligatoria): un retry con la misma clave devuelve el link original y nunca cobra dos veces.country(solo KYB):us,cl,ve,br,mx,co,pe,bo,py,arogeneric(congeneric_countryISO alpha-2, ej."ES"). El KYC individual no lleva país.expires_in_days(opcional, 1–30): sin enviarlo, el link no vence.
201:
Opción B — Datos por API
Si ya tienes los datos del cliente en tu sistema, créale la verificación directo (sin wizard). La submission entra al mismo queue de revisión:- Países en ISO alpha-3 (
CHL,USA,VEN…); fechasYYYY-MM-DD;id_type:passport | id_card | drivers_license. - KYB: body
{ external_customer_id, country?, business: {…}, ubos?, directors?, signers?, bank_info?, metadata? }enPOST /v1/kyb/submissions. - No se exige prueba de vida al crear: la submission KYC queda con
liveness_pending: truey la cierras con un liveness link. - Re-enviar con el mismo
external_customer_idmientras la submission siga abierta (pending_review,changes_requested,more_info_required) actualiza la misma submission y no cobra de nuevo.
201:
pending_documents,
rejection_reason, changes_requested_comments; en KYC además
liveness_pending y documents_received; en KYB aml_decision.
Documentos por API
Los documentos son opcionales al crear (si faltan, compliance los pedirá conmore_info_required). Flujo de 3 pasos:
1
Presign
identity, proofOfResidence; KYB: legalPresence,
ownershipStructure, controlStructure, companyDetails. Tipos:
application/pdf, image/png, image/jpeg; máximo 15 MB; la URL vence en
15 minutos.2
Upload
PUT del binario directo a upload_url con el mismo Content-Type.3
Confirm
kyc_document_validated / kyb_document_validated y se consulta
con GET:outcome: MATCH (coincide), REVIEW (revisión manual), NO_MATCH.Prueba de vida (liveness link)
Las submissions KYC creadas por datos nacen conliveness_pending: true
(la prueba de vida es un flujo de cámara en browser). Genera un link
mínimo hosteado para que tu cliente la complete:
- No cobra (el servicio se cobró al crear la submission). Si ya hay un
link vigente, el POST devuelve el mismo; si la prueba ya fue superada,
400 liveness_already_completed. GET .../liveness_linkdevuelve el último link y el estado del check ({ "liveness": { "status", "outcome", "passed" } }).- Al pasar (outcome
PASSoREVIEW): la submission limpialiveness_pendingy llega el webhookkyc_liveness_completed.
Una sola verificación para todo (identidad reutilizable)
La verificación aprobada de un cliente es su identidad única dentro de CBPay: no vuelves a tipear sus datos ni a subir sus documentos en ningún otro producto.- Banking para terceros:
POST /v1/banking/third-partiesexige elverification_idde una verificación aprobada del tercero. El tipo (INDIVIDUAL/COMPANY) sale del kind (KYC ⇒ persona, KYB ⇒ empresa), los datos (nombre, email, dirección) se completan solos desde el perfil verificado, y los documentos ya validados se re-entregan automáticamente al proveedor bancario (documents_synceden la respuesta). Detalle en Banking. - Tarjetas para personas designadas:
POST /v1/cardscon uncardholderde persona exigecardholder.verification_idde un KYC aprobado de esa persona. Identidad y documentos del titular salen de la verificación; solo agregas los campos propios del emisor (occupation,salary_usd). Detalle en Tarjetas. - Tu propia cuenta: tu onboarding aprobado también se reutiliza — al crear tu banking customer o tu primera tarjeta, los datos y documentos faltantes se completan desde tu verificación.
Informe de compliance (solo KYB)
Para cada verificación KYB puedes descargar el informe de compliance firmado (PDF, evidencia para tus propios auditores):Webhooks
Payload de ejemplo (
kyc_verification_status_changed):
"self_onboarding": true en vez de
external_customer_id. Suscríbete igual que al resto de eventos (ver
Webhooks).
Costos (configurados por tu operador, pueden ser 0)
El cargo sale de tu saldo de settlement predeterminado, se reembolsa si la
creación falla, y tu propio onboarding nunca cobra. Re-envíos de una
submission abierta y liveness links no cobran de nuevo.
Errores
Preguntas frecuentes
¿Por qué no puedo hacer payouts recién registrado?
¿Por qué no puedo hacer payouts recién registrado?
Toda cuenta debe aprobar su verificación de identidad antes de mover dinero
hacia afuera (es un requisito regulatorio). Mientras tanto puedes fondear
(payins, depósitos crypto, recibir transferencias) y explorar la API. Pide
tu link con
POST /v1/me/verification/link y complétalo — la aprobación
desbloquea todo automáticamente.¿Qué diferencia hay entre links hosteados y datos por API?
¿Qué diferencia hay entre links hosteados y datos por API?
Con links, tu cliente completa todo en el wizard (formulario + documentos +
prueba de vida) y tú no manejas datos sensibles. Con datos por API tú envías
los campos y subes documentos vía presign — útil si ya tienes tu propio
formulario — pero la prueba de vida igual requiere un liveness link (es un
flujo de cámara, no se puede hacer server-to-server).
¿Cuándo se cobra la comisión y cuándo no?
¿Cuándo se cobra la comisión y cuándo no?
Se cobra al CREAR un link o una submission de terceros (modo live). No
cobran: tu propio onboarding, los re-envíos de una submission abierta (mismo
external_customer_id), los liveness links, las consultas y los documentos.
Si la creación falla, la comisión se reembolsa sola.
¿Por qué mi cuenta persona no puede crear links?
¿Por qué mi cuenta persona no puede crear links?
La verificación de terceros es una herramienta B2B para integradores
(cuentas empresa). Una cuenta persona solo necesita su propio onboarding,
que es gratis y va por /v1/me/verification.
Compliance pidió más documentos, ¿cómo los mando?
Compliance pidió más documentos, ¿cómo los mando?
Recibirás
more_info_required con pending_documents en el detalle de la
submission. Sube cada documento con el flujo presign → upload → confirm de
esta página; al confirmarse, la submission vuelve a la cola de revisión.¿Esto reemplaza al AML screening?
¿Esto reemplaza al AML screening?
No: son productos complementarios. La verificación comprueba la identidad
con evidencia (documentos, video); el AML screening
contrasta la identidad contra listas de sanciones/PEP/prensa adversa y
puede vigilarla de forma continua.
¿Puedo reusar la verificación de un cliente en otros productos?
¿Puedo reusar la verificación de un cliente en otros productos?
Sí — ese es el diseño: una verificación aprobada sirve como identidad única.
Pasa su
submission_id como verification_id al dar de alta un usuario
banking de tercero o al emitir una tarjeta para una persona designada: los
datos y documentos se completan solos. Ver
identidad reutilizable.