Partilhe uma identidade verificada com os seus parceiros. Server-to-server.
Verifique um utilizador ou uma empresa uma única vez. Partilhe o resultado com um parceiro, este faz o onboarding da mesma pessoa instantaneamente. Sem um segundo fluxo, sem uma segunda selfie. Funciona para KYC e KYB. Criado para Banking-as-a-Service, grupos multimarca, finanças incorporadas e marketplaces com subplataformas.
O seu utilizador verifica-se uma vez na sua aplicação. O seu parceiro, o seu patrocinador BaaS,
a sua marca irmã, o seu marketplace a jusante, precisa do mesmo registo. Envie-lhes um
token de partilha único. Eles resgatam-no e obtêm a verificação completa.
O utilizador nunca vê um segundo fluxo.
Como funciona
Da sua aplicação para o seu parceiro em quatro passos.
Passo 01
Escolha uma sessão verificada
Escolha qualquer verificação concluída, aprovada, recusada ou em revisão, e peça à Didit um token de partilha. O token expira em uma hora por predefinição; pode estendê-lo de um minuto até um dia inteiro.
Passo 02
Envie o token ao seu parceiro
Entregue o token ao seu parceiro através do seu próprio backend, um webhook, uma fila, uma chamada REST. O token só funciona para o parceiro que nomeou quando o criou. Ninguém mais o pode resgatar.
Passo 03
O seu parceiro importa o registo
O seu parceiro resgata o token e escolhe como fazer o onboarding do utilizador, confie na sua decisão e aprove instantaneamente, ou importe os dados em bruto e deixe a equipa de conformidade deles tomar a decisão.
Passo 04
A sessão completa chega à aplicação deles
A Didit clona todo o registo, documentos, selfie, correspondência facial, AML, dados de registo, UBOs, para o espaço de trabalho do seu parceiro. Com a mesma estrutura de uma nova verificação, com um rasto de auditoria claro até ao original.
Criado para BaaS · finanças incorporadas · grupos multimarca
Uma verificação. Todas as plataformas de parceiros.
Crie um token. Envie-o. Importe-o. Escolha a velocidade de onboarding. Seis componentes cobrem todas as formas de ecossistema de parceiros, a mesma chamada para KYC e KYB.
Escolha uma verificação concluída e peça à Didit um token com âmbito para um parceiro. A duração padrão é de uma hora; pode estendê-la de um minuto até um dia inteiro. O token só funciona para o parceiro que nomeou, ninguém mais o pode resgatar.
Default Time-To-Live (TTL): 3,600 s · bounds 60 s, 86,400 s
Scoped to a single receiving application
Finished sessions only (Approved · Declined · In Review)
02 · Importar a sessão
O seu parceiro acede ao registo completo.
O seu parceiro resgata o token e a Didit clona toda a verificação para o espaço de trabalho deles, nova sessão, mesmos dados, rasto de auditoria completo até ao original. Eles identificam-no com o seu próprio ID de utilizador interno e escolhem o fluxo de trabalho em que aterrará.
Integre instantaneamente ou revalide em conformidade.
Confie na sua decisão e deixe o seu parceiro aprovar o utilizador no momento em que o token chega. Ou entregue-lhes os dados em bruto e deixe a equipa de conformidade deles tomar a decisão. Alterne por parceiro, a mesma chamada, duas velocidades de onboarding.
trueClones the original status, instant onboarding.Approved
falseClones the data, sets status to In Review.In Review
Toggle per partner relationship · default is `false` for new partners
04 · KYC + KYB · ambos os modos
Partilhe os dados de uma pessoa ou de uma empresa inteira.
A mesma chamada funciona para ambos os tipos. Partilhe uma pessoa verificada e o seu parceiro obtém o documento, a selfie, a correspondência e todos os resultados AML. Partilhe uma empresa verificada e eles obtêm o registo, todos os Beneficiários Efetivos, todos os KYC de diretores, todos os documentos, todas as verificações.
Token carries `session_kind` · Didit picks the matching clone path
05 · Adequação ao ecossistema de parceiros
Criado para empresas onde uma verificação serve para muitos.
Patrocinadores de Banking-as-a-Service. Grupos multimarca, neobanco mais corretor, on-ramp mais exchange. Finanças incorporadas através de bancos parceiros. Marketplaces com subplataformas regionais. Revendedores de marca branca. Redes de credores. Onde quer que um utilizador, ou uma empresa, seja integrado uma vez e sirva muitos.
Embedded finance / SaaSVertical SaaS + partner bank
Marketplaces with sub-platformsRegional or vertical splits
White-label resellersReseller + downstream tenant
B2B KYB consortiaSame legal entity across many partners
06 · Conformidade por design
Qualidade de auditoria por defeito.
A Didit só cria tokens para verificações concluídas, nenhum fluxo semi-capturado vaza entre parceiros. O mesmo token nunca pode ser importado duas vezes. Ambas as partes assinam um acordo de partilha de dados GDPR; a Didit fornece a parte técnica.
Cole o bloco abaixo no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. O agente configura o Didit, estrutura ambos os lados da transferência e implementa.
didit-integration-prompt.md
# Didit B2B Reusable KYC — partner-to-partner KYC sharing
You are integrating Didit's B2B Reusable Know Your Customer (KYC) into <my_stack>. The recipe is server-to-server: one Didit application (Service X) mints a short-lived JSON Web Token (JWT) share token for a finished session; a partner Didit application (Service Y) imports the token and Didit clones the full verified session into Service Y. Works for both KYC and Know Your Business (KYB) sessions.
Built for Banking-as-a-Service (BaaS) sponsor banks, multi-brand financial groups, embedded finance through partner banks, marketplaces with regional or vertical sub-platforms, on-ramp + exchange ecosystems, white-label resellers, and B2B KYB consortia where the same legal entity onboards once and serves many. Every URL, header, and enum value below is canonical — do not paraphrase or "improve" them.
## 1. Provision both applications
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
- Create TWO applications in your Didit organisation. One acts as Service X (mints share tokens), the other as Service Y (imports them). In production these will usually live in different organisations — one per partner.
- Each application has its own `x-api-key`. Service X uses its own key to mint; Service Y uses its own key to import.
## 2. Service X — mint a share token
Service X picks a finished session it owns and posts to the share endpoint:
POST https://verification.didit.me/v3/session/{sessionId}/share/
Headers:
x-api-key: <Service X api key>
Content-Type: application/json
Body:
{
"for_application_id": "<partner-application-uuid>",
"ttl_in_seconds": 3600
}
Bounds on `ttl_in_seconds`: min 60, max 86400, default 3600.
Requirements:
- The session must be in a FINISHED status: "Approved", "Declined", or "In Review".
- The API key must hold the `write:sessions` privilege.
- `for_application_id` must be a real Didit application uuid — usually the partner's app.
Response: 201 Created with the JWT in the `share_token` field plus `for_application_id` and `session_kind` ("user" or "business" — Didit detects this from the source session and embeds it in the token):
{
"share_token": "eyJhbGciOiJIUzI1NiJ9...",
"for_application_id": "partner-app-uuid",
"session_kind": "user"
}
## 3. Transmit the token to Service Y
Service X transmits the `share_token` to Service Y over a pre-arranged backend channel — REST, message queue, signed webhook, anything you control. The token is scoped to Service Y's application and useless to any other application.
## 4. Service Y — import the shared session
Service Y posts the token to the import endpoint:
POST https://verification.didit.me/v3/session/import-shared/
Headers:
x-api-key: <Service Y api key>
Content-Type: application/json
Body:
{
"share_token": "<jwt from step 2>",
"workflow_id": "<Service Y's own workflow id>",
"vendor_data": "<Service Y's internal user id>",
"trust_review": true
}
`trust_review`:
- `true` → the imported session preserves the original status ("Approved" / "Declined" / "In Review"). Service Y onboards the user instantly. Use when Service Y fully trusts Service X's decision (sister brand, regulated partner with a signed data-sharing agreement).
- `false` → the imported session lands in "In Review" so Service Y's compliance team makes its own call. Safe default for new partner relationships.
Response: 201 Created with a brand-new session in Service Y's application:
{
"session_id": "<new uuid>",
"session_number": <int>,
"session_kind": "user" | "business",
"status": "Approved" | "In Review" | "Declined",
"shared_from_session": "<original session uuid in Service X>",
"vendor_data": "<Service Y's internal user id>",
"id_verifications": [...],
"liveness_checks": [...],
"face_matches": [...],
"aml_screenings": [...],
"database_validations": [...],
"proof_of_address": [...],
"phone_verifications": [...],
"email_verifications": [...]
}
For a `session_kind: "business"` token Didit clones the KYB shape instead. KYB session statuses are UPPER_SNAKE_CASE (not Title Case like KYC):
{
"session_id": "<new uuid>",
"session_kind": "business",
"status": "APPROVED",
"shared_from_session": "<original business session uuid>",
"vendor_data": "<Service Y's internal business id>",
"registry_checks": [...],
"key_people_checks": [...],
"document_verifications": [...],
"aml_screenings": [...],
"questionnaires": [...]
}
A new User or Business entity is auto-created in Service Y if one with the supplied `vendor_data` doesn't already exist.
## 5. Idempotency, expiration, errors
| Status | Reason |
|--------|--------|
| 401 | Share token invalid or past `exp` — request a new one. |
| 403 | Token not intended for your application, OR session already imported into your app. |
| 404 | Original session no longer exists. |
| 404 | `workflow_id` not found in your application. |
The duplicate-import check is enforced against the (share_token, partner application) pair.
## 6. Webhooks (optional, only when Service Y wants async updates)
Service Y can register a webhook destination once via:
POST https://verification.didit.me/v3/webhook/destinations/
Body: url, subscribed_events: ["status.updated"]
Every webhook delivery carries an `X-Signature-V2` header you MUST verify before trusting the payload. HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature.
Algorithm:
1. sortKeys(payload) recursively
2. shortenFloats (truncate trailing zeros after the decimal point)
3. JSON.stringify the result
4. HMAC-SHA256 with the secret_shared_key
5. Hex-encode, compare to the X-Signature-V2 header.
## 7. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Status casing matches exactly: "Approved", "Declined", "In Review", "Not Finished" (Title Case With Spaces — KYC convention).
- session_kind is lowercase: "user" or "business".
- The share API is BUSINESS-to-BUSINESS sharing. Service X and Service Y are responsible for the data-sharing legal basis under General Data Protection Regulation (GDPR), UK GDPR, and any cross-border transfer rules. Didit ships the technical capability; you ship the data-sharing agreement.
## 8. Pricing reference (public)
- Service X already paid for the original verification (full KYC bundle is $0.30 or KYB session starts at $2.00; see didit.me/pricing).
- Service Y pays nothing on the import side — `POST /v3/session/import-shared/` is included with every plan.
- 500 free verifications every month on every account (applies to fresh captures, not imports).
## 9. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Create two sandbox applications: one as Service X (issuer), the other as Service Y (importer). Use Service X's API key to mint a token for a finished sandbox session, hand the token off, use Service Y's API key to import.
- Switch to live: flip each application's environment toggle in console.
When in doubt:
- https://docs.didit.me/sessions-api/share-session/overview
- https://docs.didit.me/sessions-api/share-session/share
- https://docs.didit.me/sessions-api/share-session/import
- https://docs.didit.me/core-technology/reusable-kyc/share-kyc-via-api
Conformidade desde a conceção
Abra um novo país com um clique. Nós fazemos o trabalho difícil.
Abrimos as subsidiárias locais, garantimos as licenças, realizamos os testes de penetração, obtemos as certificações e alinhamos com cada nova regulamentação. Para lançar verificações num novo país, basta ativar um botão. Mais de 220 países ativos, auditados e testados trimestralmente, o único fornecedor de identidade que um governo de um estado-membro da UE formalmente considerou mais seguro do que a verificação presencial.
Defina a validade do token de um minuto a um dia inteiro.
KYC + KYB
Partilhe uma pessoa ou uma empresa inteira, a mesma chamada, ambos os formatos.
$0.00
O seu parceiro não paga nada para importar a verificação que partilha.
0
Verificações gratuitas todos os meses em todas as contas.
Três níveis, uma tabela de preços
Comece grátis. Pague por utilização. Expanda para Enterprise.
500 verificações gratuitas todos os meses, para sempre. Pague à medida que usa para produção. Contratos personalizados, residência de dados e SLAs (Acordos de Nível de Serviço) no Enterprise.
Grátis
Grátis
$0 / mês. Não é necessário cartão de crédito.
Pacote KYC gratuito (Verificação de ID + Prova de Vida Passiva + Correspondência Facial + Análise de Dispositivo e IP), 500 / mês, todos os meses
Comece grátis → pague apenas quando uma verificação for executada → desbloqueie o Enterprise para um contrato personalizado, SLA ou residência de dados.
POST /v3/session/import-shared/returns201 Createdwithabrand-newsessioninyourapplication,freshsession_idandsession_number,fullpayloadclonedfromthesource.