> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cbpayapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trust Center y sala NDA

> Solicita y descarga documentos de cumplimiento restringidos desde el Trust Center público de CBPay

export const EnvUrls = ({lang = "en"}) => {
  const T = {
    en: {
      test: "Test",
      live: "Live",
      hint: "Same API on both environments — build against test first, then go live by swapping the base URL and the key.",
      guide: "Environments and testing",
      href: "/en/environment-testing"
    },
    es: {
      test: "Test",
      live: "Live",
      hint: "La misma API en ambos ambientes — construye primero contra test y pasa a live cambiando la URL base y la key.",
      guide: "Entorno y pruebas",
      href: "/es/environment-testing"
    },
    zh: {
      test: "Test",
      live: "Live",
      hint: "两个环境的 API 完全一致——先在 test 环境构建，再通过切换基础 URL 和密钥上线。",
      guide: "环境与测试",
      href: "/zh/environment-testing"
    }
  };
  const t = T[lang] || T.en;
  const row = (label, url, keyPattern, badgeCls) => <div className="flex flex-wrap items-center gap-2 px-3 py-2">
      <span className={"rounded px-1.5 py-0.5 text-xs font-semibold uppercase tracking-wide " + badgeCls}>
        {label}
      </span>
      <code className="text-xs">{url}</code>
      <span className="text-xs text-gray-400 dark:text-zinc-500">·</span>
      <code className="text-xs">{keyPattern}</code>
    </div>;
  return <div className="my-4 rounded-xl border border-gray-200 dark:border-zinc-700 divide-y divide-gray-200 dark:divide-zinc-700 text-sm not-prose">
      {row(t.test, "https://cryptobank.qbank.cl/platform", "pk_test_...", "bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300")}
      {row(t.live, "https://api.qbank.cl/platform", "pk_...", "bg-emerald-100 text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-300")}
      <p className="px-3 py-2 text-xs text-gray-500 dark:text-zinc-400 m-0">
        {t.hint} <a href={t.href}>{t.guide} →</a>
      </p>
    </div>;
};

<EnvUrls lang="es" />

El Trust Center público en [cbpayapp.com/trust](https://www.cbpayapp.com/trust) lista registros públicos y explica cómo pedir acceso a la sala N2 restringida. Los documentos son evidencia de cumplimiento agnóstica de proveedores; los bytes se entregan solo después de firmar el NDA. No se necesita una cuenta CBPay.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
sequenceDiagram
  participant I as Integrador
  participant T as Trust Center
  participant E as Correo del contacto
  I->>T: POST /v1/trust/nda-requests
  T-->>E: Enlace personal de firma
  E->>T: GET/POST /v1/trust/nda/sign/{token}
  T-->>E: Token de descarga por cinco años
  E->>T: GET /v1/trust/nda-docs/{id}/download
```

## Flujo

<Steps>
  <Step title="Solicita acceso">
    Envía empresa, contacto y propósito. La misma empresa y correo mientras está pendiente son idempotentes.

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl -X POST https://api.qbank.cl/platform/v1/trust/nda-requests \
      -H 'Content-Type: application/json' \
      -d '{"company_name":"Acme Payments Ltd","contact_name":"Jordan Lee","contact_email":"compliance@acme.example","country":"US","purpose":"Evaluar controles de cumplimiento","locale":"es"}'
    ```

    Respuesta (`202`, o `200` con `idempotency_hit: true` al repetir):

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {"request_id":"4e7b1f3e-8b20-4ef8-9cc5-1bcb6d9b2a01","status":"pending_signature","expires_at":"2026-11-18T20:00:00Z","email_sent":true}
    ```
  </Step>

  <Step title="Lista los metadatos">
    Los metadatos son públicos; los bytes no.

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl https://api.qbank.cl/platform/v1/trust/nda-docs
    ```

    Respuesta (`200`):

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {"documents":[{"id":"us-aml-program","title_es":"Programa AML EE.UU. (Grupo CB LLC, ene 2026)","pages":39,"sha256":"7d1df3be9f4a8b4bf88dce93a3b939f8a737f123cb60b8074442ca035cd6e940"}]}
    ```
  </Step>

  <Step title="Revisa y firma desde el correo">
    Abre el enlace personal. No requiere sesión CBPay. Envía identidad del firmante, registro, domicilio y `accept: true`; el token crudo de descarga aparece una sola vez.

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl -X POST https://api.qbank.cl/platform/v1/trust/nda/sign/<SIGN_TOKEN> \
      -H 'Content-Type: application/json' \
      -d '{"signer_name":"Jordan Lee","signer_title":"Chief Compliance Officer","company_reg":"US-123456","company_address":"1 Main Street, Boston MA","accept":true}'
    ```

    Respuesta (`200`):

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {"request_id":"4e7b1f3e-8b20-4ef8-9cc5-1bcb6d9b2a01","status":"signed","download_token":"<32-hex-token>","download_url":"https://www.cbpayapp.com/es/confianza/nda?request=...&token=...","expires_at":"2031-10-18T20:00:00Z"}
    ```
  </Step>

  <Step title="Consulta y descarga">
    Usa el token Bearer de descarga. Cada PDF incluye `X-Checksum-Sha256` y `Cache-Control: no-store`; toda entrega queda auditada.

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl https://api.qbank.cl/platform/v1/trust/nda-requests/<REQUEST_ID>/status -H 'Authorization: Bearer <DOWNLOAD_TOKEN>'
    curl -L -o documento-trust.pdf https://api.qbank.cl/platform/v1/trust/nda-docs/us-aml-program/download -H 'Authorization: Bearer <DOWNLOAD_TOKEN>'
    ```

    Respuesta de estado (`200`):

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {"request_id":"4e7b1f3e-8b20-4ef8-9cc5-1bcb6d9b2a01","status":"signed","signed_at":"2026-10-19T20:00:00Z","expires_at":"2031-10-18T20:00:00Z","documents":["us-aml-program"]}
    ```
  </Step>
</Steps>

## Estados y errores

| Estado | Significado | Acción |
| - | - | - |
| `pending_signature` | El enlace vence en 30 días. | Revisa y firma, o solicita de nuevo tras vencer. |
| `signed` | Descargas habilitadas por cinco años. | Usa el token Bearer. |
| `expired` | Venció la firma o la descarga. | Envía una nueva solicitud. |
| `revoked` | Compliance quitó el acceso de inmediato. | Contacta compliance o solicita de nuevo. |

Revisa el [catálogo de errores](/es/errors).

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Necesito una cuenta CBPay?">No. El contacto usa los tokens personales recibidos por correo.</Accordion>
  <Accordion title="¿Puedo repetir la solicitud?">Sí. Mientras esté pendiente devuelve la solicitud existente y no crea otro sobre.</Accordion>
  <Accordion title="¿Qué significa email_sent?">`true` indica que el servicio de correo aceptó el envío; `false` indica que la solicitud existe pero la entrega falló. Nunca registres ni expongas tokens crudos.</Accordion>
  <Accordion title="¿Cuánto duran las descargas?">Cinco años desde la firma, salvo revocación anticipada de compliance.</Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.