API de verificações reaproveitadas

Permita que um solicitante que já concluiu uma verificação da Certivant em outro lugar a reaproveite com você. Crie um link de consentimento, receba um token de compartilhamento de uso único e resgate-o em uma nova verificação aprovada.

Solicitantes que já concluíram uma verificação aprovada — de pessoa física ou de empresa (KYB) — com outra organização da Certivant podem compartilhá-la com a sua. Você cria um link, o solicitante comprova que a verificação é dele e dá o consentimento, e você resgata um token de compartilhamento de uso único em uma nova verificação já aprovada da sua organização. Os dados e os arquivos dos documentos são copiados para os seus próprios registros e armazenamento.

Os endpoints ficam em /api/v1/kyc/reuse e usam uma chave de API (Authorization: Bearer ck_live_…). Você precisa do recurso de plano Verificações reaproveitadas e de Aceitar verificações reaproveitadas (pessoas físicas) e/ou Aceitar verificações empresariais reaproveitadas (empresas) ativados em Configurações → KYC; os dois são ativados, limitados por idade e precificados separadamente. Consulte Autenticação.

Uma chave restrita a formulários específicos não pode usar estes endpoints (403 form_not_allowed) — uma verificação reaproveitada não é criada por meio de um formulário. Use uma chave sem restrição ou ofereça o reaproveitamento no seu formulário público (veja abaixo).

Fluxo

sequenceDiagram
  participant You as Your system
  participant C as Certivant
  participant A as Applicant
  You->>C: POST /reuse/invitations
  C-->>You: inviteUrl
  You->>A: send inviteUrl
  A->>C: verification ID + emailed code
  A->>C: consent ("Share my verified identity with you")
  C-->>A: redirect to redirectUrl?certivant_share=krs_…
  A->>You: lands on your page with the token
  You->>C: POST /reuse/redeem { shareToken }
  C-->>You: new approved verification

Criar um convite

POST /api/v1/kyc/reuse/invitations — escopo kyc:write.

CampoTipoObservações
externalRefstring, opcionalSua referência; copiada para a nova verificação.
redirectUrlURL, opcionalPara onde o solicitante volta após consentir. O token de compartilhamento é acrescentado como ?certivant_share=….
shareTtlMinutesinteiro, opcionalValidade do token de compartilhamento: padrão 30, máximo 1440 (24 h).
inviteTtlMinutesinteiro, opcionalValidade do próprio link: padrão 60, de 5 minutos a 7 dias.
typeINDIVIDUAL | BUSINESS, opcionalO que é compartilhado; padrão INDIVIDUAL. O solicitante só pode compartilhar uma verificação deste tipo (source_not_individual / source_not_business caso contrário). BUSINESS exige Aceitar verificações empresariais reaproveitadas.
{
  "id": "clx…",
  "inviteUrl": "https://app.certivant.com/reuse/kri_…",
  "inviteExpiresAt": "2026-10-24T13:00:00.000Z",
  "shareTtlMinutes": 30
}

Acompanhar um convite

GET /api/v1/kyc/reuse/invitations/:id — escopo kyc:read. A resposta também traz type (INDIVIDUAL ou BUSINESS). status é invited, code_sent, verified, consented (um token está aguardando), redeemed, expired ou revoked. Quando resgatado, requestId é a nova verificação. O token de compartilhamento nunca é retornado aqui; ele chega até você pelo redirecionamento do solicitante.

Resgatar um token de compartilhamento

POST /api/v1/kyc/reuse/redeem — escopo kyc:write.

{ "shareToken": "krs_…" }
{
  "requestId": "clx…",
  "applicantId": "clx…",
  "status": "APPROVED",
  "type": "INDIVIDUAL",
  "externalRef": "crm-7",
  "reused": true,
  "verifiedAt": "2026-09-30T15:12:00.000Z",
  "sourceAgeDays": 24,
  "documentsCopied": 2,
  "chargedCents": 0
}

Regras:

  • Um token é de uso único, expira após a sua validade e funciona somente para a organização que criou o link. Qualquer outro chamador recebe 404 invalid_token.
  • A chamada cria uma verificação já aprovada, com cópias dos dados do solicitante, dos campos extraídos dos documentos e dos arquivos dos documentos (no seu local de armazenamento). Se a sua organização não mantém documentos após uma decisão, nenhum arquivo é copiado.
  • Para um compartilhamento empresarial (type: "BUSINESS" na resposta), a nova verificação é uma solicitação BUSINESS que também traz o registro da empresa e o resultado da consulta ao registro, os diretores e beneficiários finais (sem os vínculos com as verificações UBO de origem), a identidade verificada do representante e a correspondência dele com os diretores, além do documento de autorização, se existir. Leia-a com os endpoints KYB habituais (GET /v1/kyc/requests/:id/kyb).
  • A nova verificação registra a chave de API que a resgatou. Se essa chave for restrita a fluxos de trabalho, somente esses fluxos são executados para ela (veja Restrição de fluxo de trabalho).
  • Seus webhooks habituais são disparados: um evento kyc.request.approved com data.reason: "reused_verification".
  • Uma cópia que falhe devolve o token (até ele expirar) e não deixa nada para trás.

Erros

Statuserror.codeSignificado
402plan_feature_requiredSeu plano não inclui Verificações reaproveitadas.
402credit_neededHá um preço de reaproveitamento definido e a carteira não cobre o valor.
403reuse_not_enabledA chave de aceitação desse tipo (pessoa física / empresa) está desativada.
404invalid_tokenToken desconhecido, ou pertence a outra organização.
409token_already_usedJá resgatado.
410token_expiredA validade do token expirou.
422reuse_refusederror.reason: source_not_approved, source_not_individual, source_not_business, source_expired, source_too_old, source_sharing_disabled, same_tenant ou residency_mismatch.
502copy_failedTente novamente enquanto o token estiver válido.

Residência de dados

Ambas as organizações devem ter a mesma região de armazenamento, a mesma região de banco de dados e a mesma residência de processamento de IA (uma região não definida só corresponde a outra também não definida). Caso contrário, o compartilhamento é recusado com residency_mismatch — nada é copiado através de uma fronteira de região.

Em um formulário público

Quando a sua organização aceita verificações reaproveitadas de um tipo, um formulário KYC público (pessoa física) ou formulário KYB (empresa) oferece "Já verificado com a Certivant?" no início. O solicitante comprova a titularidade (código enviado por e-mail) e dá o consentimento exatamente como acima; o formulário é preenchido previamente com a verificação compartilhada (ele revisa e pode corrigir tudo; nenhum documento é solicitado), e o envio é registrado na nova verificação reaproveitada, já aprovada. Formulários combinados de KYC + KYB, links de convite (?kyc=) e formulários que não são de verificação não oferecem essa opção.

Os endpoints do próprio formulário (públicos, sem chave de API) são, para referência quando você incorpora um formulário por conta própria:

ChamadaFinalidade
GET /api/kyc/public/forms/:slug/reuse/options{ available, kind } — se a opção é oferecida.
POST /api/kyc/public/forms/:slug/reuse/startAbre um convite para este formulário → { token, kind }; a comprovação e o consentimento então usam /api/kyc/public/reuse/:token/….
POST /api/kyc/public/forms/:slug/reuse/prefill{ shareToken } → { kind, prefill, verified } sem resgatar.
POST /api/kyc/public/forms/:slug/reuse/submit{ shareToken, data } → resgata o compartilhamento e registra o envio ({ success, reused, submissionId, kycRequestId, kybRequestId }).

Um formulário protegido por chave secreta deve enviá-la no cabeçalho X-Form-Key em cada chamada. Um compartilhamento criado para um formulário só pode ser resgatado pelo envio desse formulário — não por POST /reuse/redeem (404 invalid_token) — e a nova verificação é atribuída ao formulário.

Faturamento

Gratuito por padrão. Um preço de Verificação reaproveitada (pessoas físicas) e um preço de Verificação empresarial reaproveitada (empresas) em Preços de faturamento (ou em um valor específico por cliente) são cobrados da organização receptora uma vez por compartilhamento resgatado; a chamada é idempotente por compartilhamento.

Auditoria

O registro de auditoria da organização receptora registra reuse.invitation_created, reuse.consent_received e reuse.redeemed. A organização de origem registra reuse.consent_recorded e reuse.shared. A identidade da organização de origem nunca é exposta a você.