Para atualizar uma integração existente, comece pelo checklist de mudanças na
integração de ativação.
activation_status: "disabled". A organização
carrega requirements: a lista de tarefas da ativação, que explica o que
aconteceu, qual campo foi apontado e qual é o caminho de correção. Este guia
mostra como consumir esse objeto de ponta a ponta.
Como o fluxo funciona
- A plataforma cria a organização conectada (
POST /v1/organizations) e escolhe como coletar o cadastro: umaactivation_sessionhospedada ou o formulário próprio descrito em Ativação por API. - O vendedor preenche dados, documentos e conta para saques no canal escolhido.
Ao concluir, a plataforma recebe
organization.updated— isso significa “cadastro recebido”, não “aprovado”. - O envio coloca a organização em
activation_status: "in_review"(em análise), comrequirements.pending_verificationlistando o que está sendo verificado. A análise é assíncrona e o resultado chega pororganization.updated:- Aprovado →
activation_status: "active"erequirementstodo vazio. - Reprovado →
activation_status: "disabled",requirements.errorscom pelo menos um item erequirements.missingcom o que é corrigível.
- Aprovado →
- Quando
requirements.disabled_reasonvemnull, a plataforma corrige os campos apontados emmissinge inicia uma nova tentativa na mesma organização (mesmoorg_*). No hospedado, cria outra activation session; pela API, atualiza os campos e chama/submitnovamente. A Chargefy substitui o perfil financeiro reprovado internamente — produtos, customers e histórico não se movem.
disabled não é um beco sem saída. Na maioria dos casos a reprovação é
corrigível pelo próprio vendedor: nome divergente do CPF, documento ilegível,
selfie ruim. requirements diz exatamente qual é o caso — e disabled_reason
só vem preenchido quando não há caminho de correção.O objeto requirements
O campo organization.requirements está sempre presente e tem sempre o
mesmo formato:
Cada
activation_status preenche um lado do objeto:
Regras de leitura:
requirementsnunca é omitido. Quando não há pendência, todos os campos vêm vazios (nullou[]).activation_status: "disabled"garante pelo menos um item emerrors.- Os caminhos pontuados usam
representative.*em organizações CNPJ (o representante legal) eindividual.*em organizações CPF;company.*só existe para CNPJ. - Se você receber um
codeque sua integração não conhece, exibamessageeresolution— eles sempre vêm completos — e decida o fluxo pormissingedisabled_reason, nunca pelo texto. - Os itens de
errorssão ordenados porcodee deduplicados; múltiplos sinais da mesma natureza colapsam em um item só.
Tabela de códigos
Orequirement de cada erro aponta o campo que falhou. Os valores abaixo usam
o prefixo representative (CNPJ); em organizações CPF, o prefixo é
individual.
Em
identity_name_mismatch, além do documento de verificação, missing
também aponta representative.first_name e representative.last_name — o
nome declarado precisa ser corrigido junto.
verification_failed é o código genérico: aparece quando a análise não
detalhou um motivo específico. Nesse caso disabled_reason decide o caminho —
quando vem "rejected.other", não abra nova tentativa automaticamente.O que fazer em cada caso
disabled_reason: null — corrija e reenvie
- Mostre ao vendedor o que precisa ser corrigido: a
resolutionde cada erro, ou uma tradução sua a partir docode. Os caminhos emmissingdizem exatamente o que recoletar. - Inicie outra tentativa na mesma organização, usando o mesmo canal da sua integração.
Fluxo hospedado
Crie uma nova activation session:url retornada. O fluxo hospedado reabre com os
dados e arquivos ainda válidos da tentativa anterior preenchidos — o vendedor
corrige apenas o que aparece em requirements.missing e reenvia. O item
reprovado não é reutilizado. Por exemplo, em identity_document_mismatch o
documento volta vazio, enquanto a selfie atual permanece visível e pode ser
mantida ou substituída pelo vendedor.
Fluxo por API
Atualize somente os caminhos derequirements.missing com POST /v1/organizations/{id}. Omitir um arquivo
preserva o atual; enviar outro file_* o substitui. Quando missing ficar
vazio, chame POST /v1/organizations/{id}/submit novamente.
- Acompanhe o próximo
organization.updated: a transição esperada édisabled → in_review(comerrorslimpo epending_verificationpreenchido) e depoisin_review → activeou uma nova reprovação.
disabled_reason preenchido — encaminhe ao suporte
Não há caminho de reenvio pela plataforma:
Oriente o vendedor a falar com o suporte (ou abra o chamado em nome dele).
Repetir a ativação com os mesmos dados não muda o resultado — não crie
novas sessões em loop.
Variações de payload
(a) Aprovação
(b) Reprovação com pendência específica
O caso mais comum: um dado informado diverge do registro oficial. Ocode
identifica o problema, requirement aponta o campo e a resolution diz
exatamente o que corrigir — o vendedor resolve sozinho.
(c) Reprovação com múltiplas pendências
Documento e selfie reprovados na mesma análise. Cada pendência vira um item deerrors; missing consolida os campos apontados. Resolva todas antes de
reenviar. Os demais campos da organização seguem o formato completo de (b):
(d) Reprovação sem caminho de reenvio
Quando a análise não aprova o perfil e não há correção possível pelo vendedor,disabled_reason vem "rejected.other" e missing fica vazio:
(e) Motivo refinado, status inalterado
A análise pode detalhar o motivo depois da reprovação inicial. Chega um novoorganization.updated em que só requirements muda — o objeto anterior
completo vem no diff:
(f) Nova tentativa enviada após reprovação
Quando o vendedor reenvia a ativação, o status volta parain_review e as
reprovações são limpas — pending_verification assume, e o requirements
anterior aparece uma última vez no diff:
(g) Envio falhou antes da análise
Se o cadastro foi aceito pela API, mas a tentativa falhou antes de entrar na análise, chega umorganization.updated levando a organização de volta para
not_submitted. O erro e o campo a corrigir ficam em requirements; não é
necessário fazer polling para descobrir essa volta.
missing e, no fluxo por API, chame /submit novamente.
No fluxo hospedado, abra outra activation session para a mesma organização.
(h) Consulta direta
O mesmo estado está sempre disponível emGET /v1/organizations/{id}, em qualquer
contexto de autenticação:
Limites e erros ao abrir nova tentativa
POST /v1/activation-sessions valida a elegibilidade da nova tentativa e pode
responder:
Boas práticas
- Automatize por
code,missingedisabled_reason, nunca pelo texto demessage— os textos podem ser refinados sem aviso; os códigos e caminhos são estáveis. - Mostre
resolutionao vendedor (ou uma tradução sua a partir docode). É a diferença entre “cadastro reprovado, procure o suporte” e “o nome informado não confere com o CPF — corrija e reenvie”. - Não crie sessões em loop. Reenvie apenas depois que o vendedor corrigiu
algo. Reprovações repetidas com os mesmos dados terminam em
activation_not_retryable. - Não invente motivo. Se
codevier desconhecido para a sua integração, exiba os textos como estão e sigamissing/disabled_reason. - A reprovação vale para o perfil financeiro, não para a organização:
mantenha o mesmo
org_*, produtos, customers e histórico. Veja reenviar KYC de uma organização.

