Ir al contenido

Developers

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.

Empezar →

Compra de créditos (topup)

Comprá Açaí con Mercado Pago para producción (sandbox no consume créditos).

Roadmap →
MétodoHeaderCuándo usarlo
API Key del tenantX-API-Key: dj_live_… (prod) o dj_test_… (sandbox)Server-to-server (backend)
Bearer OIDCAuthorization: Bearer <access_token>Usuario autenticado contra tu app
Wallet sessionAuthorization: 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).

EntornoPlatformBmonkeyBhawkBseal
Producciónapi.digital-jungle.bjungle.comapi.digital-jungle.bjungle.combhawk.digital-jungle.bjungle.combseal.digital-jungle.bjungle.com
QA / Sandboxapi.qa.bjungle.netapi.qa.bjungle.netbhawk.qa.bjungle.netbseal.qa.bjungle.net

Errores — application/problem+json (RFC 9457)

Sección titulada «Errores — 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"
}
StatusProblem type slug
400validation-error, bad-request
401unauthorized, invalid-api-key
402insufficient-acai
404not-found
409conflict, state-conflict, duplicate-key
422unprocessable-entity, kyc-rejected
429rate-limit-exceeded
503database-unavailable

Cada respuesta incluye headers X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset (epoch seconds). Límites generales:

CapaDefault
Por tenant + IP en /v1/*120 req/min
/v1/wallet/discover30 req/min por API key
/v1/wallet/request-presentation10 req/min por API key
/v1/oidc/authorize60 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 /signup5 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.

LenguajeEstadoPaquete
TypeScriptDisponible@bjungle/digital-jungle-sdk (npm, próximamente público)
GoDisponible internoshared-libs/go-bjungle-* (release semver v0.x para integradores S2S)
PythonRoadmap
Ruby / Java / PHPRoadmap 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.