Integrá KYC en 15 minutos
Tu primer flow KYC end-to-end: documento + selfie + SARLAFT, con cédula CO de prueba.
Empezar →Este es el portal para developers que se integran con el ecosistema Digital Jungle. Acá tenés todo lo que necesitás para implementar identidad, riesgo SARLAFT y firma electrónica en tu app sin contacto previo con bjungle — registrate, recibí tu API key sandbox y empezá a integrar.
Integrá KYC en 15 minutos
Tu primer flow KYC end-to-end: documento + selfie + SARLAFT, con cédula CO de prueba.
Empezar →Habilitá SARLAFT
Cruce contra OFAC/ONU/PEP y motor de reglas con dry-run y workbench de casos.
Empezar →Firma electrónica
Subí una plantilla PDF, solicitá una firma asíncrona y verificá con aws kms verify.
Compra de créditos (topup)
Comprá Açaí con Mercado Pago para producción (sandbox no consume créditos).
Roadmap →Platform
Control plane: tenants, API keys, webhooks, signup.
Abrir Scalar →Bmonkey
Identidad, KYC, OIDC, wallet SSI, passkeys WebAuthn.
Abrir Scalar →Bhawk
Motor SARLAFT, reglas, dry-run, screenings y casos.
Abrir Scalar →Bseal
Firma PDF KMS (Track 1) y circuitos multi-firmante (Track 2).
Abrir Scalar →| Método | Header | Cuándo usarlo |
|---|---|---|
| API Key del tenant | X-API-Key: dj_live_… (prod) o dj_test_… (sandbox) | Server-to-server (backend) |
| Bearer OIDC | Authorization: Bearer <access_token> | Usuario autenticado contra tu app |
| Wallet session | Authorization: Bearer <wallet_session_jwt> | Endpoints /v1/wallet/me/* desde la PWA |
| Sign token (público) | URL path en /v1/sign/{token}/* o /v1/embed/sessions/{token}/* | Firmante anónimo o widget embed |
| Consent token (público) | URL path en /consent/{token}/* | Usuario aprobando reuso de wallet |
Las API keys se almacenan como sha256 — el plaintext se muestra una sola vez al crear el tenant.
Si la perdés, hay que rotarla (POST /tenants/{id}/rotate-api-key).
| Entorno | Platform | Bmonkey | Bhawk | Bseal |
|---|---|---|---|---|
| Producción | api.digital-jungle.bjungle.com | api.digital-jungle.bjungle.com | bhawk.digital-jungle.bjungle.com | bseal.digital-jungle.bjungle.com |
| QA / Sandbox | api.qa.bjungle.net | api.qa.bjungle.net | bhawk.qa.bjungle.net | bseal.qa.bjungle.net |
application/problem+json (RFC 9457){ "type": "https://digital-jungle.bjungle.com/problems/insufficient-acai", "title": "Insufficient Açaí balance", "status": 402, "detail": "Operation 'kyc' requires 80 Açaí, balance 12.", "instance": "/v1/kyc/verify"}| Status | Problem type slug |
|---|---|
400 | validation-error, bad-request |
401 | unauthorized, invalid-api-key |
402 | insufficient-acai |
404 | not-found |
409 | conflict, state-conflict, duplicate-key |
422 | unprocessable-entity, kyc-rejected |
429 | rate-limit-exceeded |
503 | database-unavailable |
Cada respuesta incluye headers X-RateLimit-Limit, X-RateLimit-Remaining y
X-RateLimit-Reset (epoch seconds). Límites generales:
| Capa | Default |
|---|---|
Por tenant + IP en /v1/* | 120 req/min |
/v1/wallet/discover | 30 req/min por API key |
/v1/wallet/request-presentation | 10 req/min por API key |
/v1/oidc/authorize | 60 req/min por IP |
/v1/wallet/recovery/* | 5 req/min por IP |
Status list /v1/wallet/status-list/* | 60 req/min por IP |
Embed /v1/embed/sessions/{token}/* | 60 req/min por token |
Signup /signup | 5 req / 15 min por IP |
Endpoints list usan ?cursor= + ?limit= (máximo 100). La respuesta
incluye next_cursor (null cuando no hay más páginas).
Endpoints que crean recursos cobrables (KYC, screenings, signatures) aceptan
Idempotency-Key: <uuid>. La key se persiste 24h; un retry con la misma key
devuelve la respuesta original sin volver a debitar Açaí.
Todos los eventos viajan con header X-Bjungle-Signature: sha256=<hex> —
HMAC-SHA256 del body crudo con el webhook_secret del tenant.
Siempre verificá antes de procesar. Ejemplos en cada quickstart.
| Lenguaje | Estado | Paquete |
|---|---|---|
| TypeScript | Disponible | @bjungle/digital-jungle-sdk (npm, próximamente público) |
| Go | Disponible interno | shared-libs/go-bjungle-* (release semver v0.x para integradores S2S) |
| Python | Roadmap | — |
| Ruby / Java / PHP | Roadmap Wave 6+ | — |
Mientras tanto cualquier cliente HTTP funciona — los OpenAPI 3.1 specs están en
/api/<app>.v1.yaml y se pueden generar clientes con openapi-generator-cli.