# CBPay: Spanish API Reference API Reference

> CBPay developer documentation - fiat payouts and collections across Latin America, internal transfers, on-chain USDT and KYC.

## API Reference

- [Cambio de estado de disputa](https://docs.cbpayapp.com/api-reference/cambio-de-estado-de-disputa.md): Transición firmada de cuenta/organización para un caso de disputa.
- [Payin acreditado](https://docs.cbpayapp.com/api-reference/payin-acreditado.md): Se recibió un cobro fiat y se acreditó a la cuenta. Para links de cobro universal (`kind: checkout`) el payload trae además `settled_via` (ej. `qr`, `crypto:tron:usdt`, `cbpay`), `settlement_asset` y `asset_amount`; los pagos crypto agregan `crypto_amount` y los pagos desde la app CBPay agregan `tra…
- [Anuncio de organización](https://docs.cbpayapp.com/api-reference/anuncio-de-organización.md): Un administrador nombrado de la organización aprobó un anuncio localizado de texto plano para esta cuenta. El evento está acotado a la cuenta y nunca se transmite a otra.
- [Una suscripción cambió de estado active paused past due tras el dunning o canceled](https://docs.cbpayapp.com/api-reference/una-suscripción-cambió-de-estado-active-paused-past_due-tras-el-dunning-o-canceled.md)
- [Un pagador guardó una tarjeta en el checkout hosted consentimiento explícito sobre una semilla 3 d secure aprobada](https://docs.cbpayapp.com/api-reference/un-pagador-guardó-una-tarjeta-en-el-checkout-hosted-consentimiento-explícito-sobre-una-semilla-3-d-secure-aprobada.md)
- [Una tarjeta guardada fue revocada por ti vía delete v1stored cards ](https://docs.cbpayapp.com/api-reference/una-tarjeta-guardada-fue-revocada-por-ti-vía-delete-v1stored-cards-.md)
- [Payin expirado](https://docs.cbpayapp.com/api-reference/payin-expirado.md): Un cobro activo (QR o checkout hosteado) llegó a estado final sin recibir el pago: el payin pasa de `pending` a `expired` (o `failed`). No se mueve dinero; crea un payin nuevo para reintentar el cobro.
- [Cobro devuelto](https://docs.cbpayapp.com/api-reference/cobro-devuelto.md): Una devolución de un cobro con tarjeta alcanzó su estado final, o el emisor impuso un contracargo. `status: completed` significa que la plata volvió al tarjetahabiente y el débito quedó liquidado en tu saldo; `status: failed` significa que el procesador la rechazó y el débito se revirtió completo. U…
- [Acreditación de cobro programada](https://docs.cbpayapp.com/api-reference/acreditación-de-cobro-programada.md): Un cobro pagado con tarjeta — un payin directo con tarjeta o un cobro checkout/POS pagado con tarjeta — quedó pagado y su SALDO se programó para un `settle_at` futuro porque tu organización configuró una demora de settlement (`settlement_hours`) en el servicio `payin_card`. Se emite exactamente una…
- [Estado de payout cambiado](https://docs.cbpayapp.com/api-reference/estado-de-payout-cambiado.md): Un payout alcanzó un nuevo estado (processing, completed o failed).
- [Transferencia recibida](https://docs.cbpayapp.com/api-reference/transferencia-recibida.md): La cuenta recibió una transferencia interna.
- [Cambio de estado de una revisión transaccional](https://docs.cbpayapp.com/api-reference/cambio-de-estado-de-una-revisión-transaccional.md): Una operación de la cuenta cambió su estado de revisión (`in_review` cuando el firewall transaccional la retiene, `info_requested`, `released`, `rejected`). El payload es deliberadamente neutro: solo estado y resumen de la operación — jamás incluye motivos internos de revisión ni notas de cumplimien…
- [Depósito crypto acreditado](https://docs.cbpayapp.com/api-reference/depósito-crypto-acreditado.md): Un depósito on-chain fue confirmado y acreditado (neto de la comisión de fondeo) al saldo del activo de la wallet (`USDT` o `USDC`).
- [Depósito crypto retenido por revisión de compliance](https://docs.cbpayapp.com/api-reference/depósito-crypto-retenido-por-revisión-de-compliance.md): Un depósito on-chain entrante NO se acreditó porque la dirección remitente presenta riesgo severo (sanciones / fondos ilícitos directos). El equipo de compliance del operador revisa el hold y lo libera (acredita) o lo rechaza.
- [Depósito crypto acreditado con alerta de riesgo](https://docs.cbpayapp.com/api-reference/depósito-crypto-acreditado-con-alerta-de-riesgo.md): Un depósito entrante se acreditó normal, pero la dirección remitente presenta riesgo alto. Informativo — no requiere acción sobre los fondos.
- [Estado de retiro crypto cambiado](https://docs.cbpayapp.com/api-reference/estado-de-retiro-crypto-cambiado.md): Un retiro on-chain alcanzó un nuevo estado.
- [Cambió la verificación del perfil bancario](https://docs.cbpayapp.com/api-reference/cambió-la-verificación-del-perfil-bancario.md): Se emite cuando cambia el estado de verificación del perfil bancario (submitted, under_review, approved, rejected) — tanto del perfil propio de la cuenta (`customer_kind: self`) como de los terceros que registraste (`customer_kind: third_party`, con `third_party_id` igual al de GET /v1/banking/third…
- [Cambió el estado de un pago bancario](https://docs.cbpayapp.com/api-reference/cambió-el-estado-de-un-pago-bancario.md): Se emite cuando un pago bancario alcanza un nuevo estado (processing, completed, failed).
- [Eur virtual iban inbound](https://docs.cbpayapp.com/api-reference/eur-virtual-iban-inbound.md): Emitted when an inbound banking event addressed to a virtual IBAN is normalized for the owning account. The payload carries the IBAN, amount, currency, reference, payment rail and provider event identifier.
- [Transacción de tarjeta](https://docs.cbpayapp.com/api-reference/transacción-de-tarjeta.md): Se dispara en cada cambio del ciclo de vida de una transacción de tarjeta: authorized (hold en tiempo real), reversed (fondos devueltos) y ajustes de liquidación. Mismos headers de firma que toda entrega.
- [Estado de tarjeta cambiado](https://docs.cbpayapp.com/api-reference/estado-de-tarjeta-cambiado.md): Se dispara cuando una tarjeta cambia de estado (active, frozen, cancelled), incluidos los congelamientos automáticos cuando la mensualidad no se puede cobrar.
- [Cambió el estado de una verificación kyc](https://docs.cbpayapp.com/api-reference/cambió-el-estado-de-una-verificación-kyc.md): Se emite en cada cambio del ciclo de una submission KYC (submitted, in_review, changes_requested, more_info_required, escalated, approved, approved_partial, rejected). Tu propio onboarding llega con self_onboarding: true. decision_source indica si la decisión la tomó el motor automático (auto) o un…
- [Cambió el estado de una verificación kyb](https://docs.cbpayapp.com/api-reference/cambió-el-estado-de-una-verificación-kyb.md): Se emite en cada cambio del ciclo de una submission KYB, incluidas las señales AML/riesgo/reporte de la revisión. decision_source indica si la decisión la tomó el motor automático (auto) o un revisor humano (admin); está presente en las decisiones finales.
- [Link kyc completado](https://docs.cbpayapp.com/api-reference/link-kyc-completado.md): Se emite cuando tu cliente completa un link KYC hosteado; nace la submission.
- [Link kyb completado](https://docs.cbpayapp.com/api-reference/link-kyb-completado.md): Se emite cuando tu cliente completa un link KYB hosteado; nace la submission.
- [Terminó el ocr de un documento kyc](https://docs.cbpayapp.com/api-reference/terminó-el-ocr-de-un-documento-kyc.md): Se emite cuando termina la validación OCR de un documento subido por API.
- [Terminó el ocr de un documento kyb](https://docs.cbpayapp.com/api-reference/terminó-el-ocr-de-un-documento-kyb.md): Se emite cuando termina la validación OCR de un documento KYB.
- [Prueba de vida completada](https://docs.cbpayapp.com/api-reference/prueba-de-vida-completada.md): Se emite cuando la prueba de vida en video se completa desde un liveness link.
- [Novedades del aml screening](https://docs.cbpayapp.com/api-reference/novedades-del-aml-screening.md): Se emite cuando el screening AML termina, un caso cambia, el riesgo cambia o una transacción monitoreada es revisada.
- [Depósito recibido en wallet segregada](https://docs.cbpayapp.com/api-reference/depósito-recibido-en-wallet-segregada.md): Se confirmó un depósito on-chain en una wallet segregada. **No** toca el ledger (el saldo vive on-chain en la wallet).
- [Cambió el estado de un envío de wallet segregada](https://docs.cbpayapp.com/api-reference/cambió-el-estado-de-un-envío-de-wallet-segregada.md): Un envío desde una wallet segregada alcanzó un nuevo estado (processing, completed o failed).
- [Se exportó la llave de una wallet segregada](https://docs.cbpayapp.com/api-reference/se-exportó-la-llave-de-una-wallet-segregada.md): Alerta de seguridad: se exportó la llave privada de una wallet segregada (custodia compartida). El payload nunca incluye la llave.
- [Movimiento externo en una wallet segregada](https://docs.cbpayapp.com/api-reference/movimiento-externo-en-una-wallet-segregada.md): El sync de actividad detectó un movimiento on-chain de una wallet segregada que no pasó por la plataforma (esperable en custodia del cliente, p. ej. tras importar o exportar la llave). El registro de actividad de la wallet queda completo igual.
- [Sospecha de llave comprometida alarma crítica](https://docs.cbpayapp.com/api-reference/sospecha-de-llave-comprometida-alarma-crítica.md): CRÍTICO: salió plata de una wallet segregada con custodia de la plataforma sin pasar por la plataforma. Por diseño es imposible salvo que la llave privada se haya filtrado. Trata la llave como comprometida, mueve los fondos restantes a una wallet nueva y contacta soporte de inmediato.
- [Cambió la disponibilidad de un corredor](https://docs.cbpayapp.com/api-reference/cambió-la-disponibilidad-de-un-corredor.md): Un corredor de pago cambió de disponibilidad (`operational` / `degraded` / `down`) — se dispara en caídas Y en recuperaciones. Evento broadcast: no está ligado a una operación tuya, así que no trae `account_id`. Consúmelo de forma idempotente (dedupe por delivery id). Ver la guía de estado del servi…
- [Ajuste de saldo aplicado](https://docs.cbpayapp.com/api-reference/ajuste-de-saldo-aplicado.md): Un ajuste administrativo acreditó o debitó el saldo. Se emite solo cuando el asiento entró de verdad: un ajuste a la espera de un segundo aprobador, o el replay de una clave de idempotencia ya usada, no emite.
- [Estado de la cuenta cambiado](https://docs.cbpayapp.com/api-reference/estado-de-la-cuenta-cambiado.md): El estado administrativo de la cuenta cambió (`active`, `blocked`, `closed`). Reenviar el mismo estado no emite.
- [Evento de seguridad de la cuenta](https://docs.cbpayapp.com/api-reference/evento-de-seguridad-de-la-cuenta.md): Un hecho de seguridad de la cuenta (inicio de sesión, cambio de contraseña, factor agregado o quitado, sesión revocada). Las entregas con alcance de cuenta redactan `ip` y `user_agent`; las vistas administrativas de alcance organizacional conservan el `user_agent` forense y los campos de IP resuelto…
- [Informe de fraude e identidad listo](https://docs.cbpayapp.com/api-reference/informe-de-fraude-e-identidad-listo.md): Un informe de fraude e identidad Qscore terminó de generarse para la cuenta. El evento está acotado a la cuenta, va firmado como los demás webhooks y nunca incluye el PDF ni las señales detalladas. Responde 2xx para confirmar.
- [Informe crediticio qscore listo](https://docs.cbpayapp.com/api-reference/informe-crediticio-qscore-listo.md): Un informe crediticio Qscore comprado con `POST /v1/qscore/reports` terminó de generarse con éxito. El payload lleva la identidad del informe, el score/banda resultante y el `verify_code` público (compartible con el sujeto como prueba de autenticidad en `GET /verify/qscore/{code}`). Si la generación…
- [Cambió el score qscore](https://docs.cbpayapp.com/api-reference/cambió-el-score-qscore.md): Un informe Qscore recién generado produjo un score distinto al último conocido del sujeto (p. ej. en una re-consulta de monitoreo o una compra nueva). Se emite solo cuando el score efectivamente cambia; el payload lleva el par score/banda anterior y nuevo para que decidas si actuar. Suscríbete a est…
- [Alerta de monitoreo qscore](https://docs.cbpayapp.com/api-reference/alerta-de-monitoreo-qscore.md): Un sujeto que la cuenta monitorea vía `PUT /v1/qscore/subjects/{docID}/monitoring` cambió desde la última revisión. `triggers` lista qué disparó la alerta: `score_drop_below` (el score cruzó hacia abajo el umbral `monitor_since_score` de la suscripción: anterior >= umbral, nuevo < umbral), `new_reco…
- [Lote de scoring qscore completado](https://docs.cbpayapp.com/api-reference/lote-de-scoring-qscore-completado.md): Un lote de scoring creado con `POST /v1/qscore/batches` terminó de procesar todos sus ítems. Esta es la única señal de finalización del lote: los informes individuales **no** emiten su propio webhook `risk_report_ready` (y tampoco se envía un email por ítem). `status` es `completed` cuando todos los…
- [Consent qscore otorgado por el titular](https://docs.cbpayapp.com/api-reference/consent-qscore-otorgado-por-el-titular.md): Un link de consentimiento creado con `POST /v1/qscore/consents` fue otorgado: el titular abrio la pagina publica, conecto su banco via open finance y autorizo la solicitud (su documento verificado calzo con el documento del sujeto). El consent ahora desbloquea la data bancaria positiva del sujeto en…
- [Consent qscore revocado](https://docs.cbpayapp.com/api-reference/consent-qscore-revocado.md): Un link de consentimiento fue revocado, ya sea porque el titular rechazo la solicitud en la pagina publica o porque tu cuenta llamo `POST /v1/qscore/consents/{id}/revoke`. Un consent revocado deja de alimentar data bancaria positiva a los informes Qscore nuevos.
- [Prueba de firma de wallet creada](https://docs.cbpayapp.com/api-reference/prueba-de-firma-de-wallet-creada.md): Se creo una prueba de firma con una wallet segregada (`POST /v1/segregated-wallets/{walletID}/signatures`). La wallet firmo un mensaje con el estandar nativo de la red (EIP-191 para ETH/EVM, TIP-191 para TRON) dentro del sobre anti-phishing CBPay Signature Proof. La prueba se verifica publicamente e…
- [Wallet externa vinculada](https://docs.cbpayapp.com/api-reference/wallet-externa-vinculada.md): Se vinculo una wallet externa (`custody=client`) a la cuenta resolviendo un desafio nonce (`POST /v1/wallet-links/challenges` + `POST /v1/wallet-links/verify`). La wallet sigue bajo custodia del cliente; el vinculo solo prueba la titularidad de la direccion.

## OpenAPI Specs

- [openapi.es](/mcp-pack/openapi.es.yaml)
- [openapi.es](/openapi.es.yaml)
- [openapi.zh](/mcp-pack/openapi.zh.yaml)
- [openapi.zh](/openapi.zh.yaml)
