curl --request POST \
--url https://api.id.zapsign.com.br/v1/validations/sim-swap \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "+5511999998888",
"consent": true
}
'{
"object": "validation",
"id": "val_0E3XNW9EDJZ571YX1HCFZQFV2D",
"type": "sim_swap",
"status": "completed",
"result": "no_recent_swap",
"reason_code": null,
"external_id": "pedido_12345",
"created_at": "2026-08-07T14:10:00Z",
"resolved_at": "2026-08-07T14:10:01Z",
"validation_url": null,
"expires_at": null,
"attempts_remaining": null,
"details": null
}Criar validação de troca de chip
Detecta troca recente de chip (SIM swap) no número informado. É síncrona: a resposta já traz o resultado, com status igual a completed.
curl --request POST \
--url https://api.id.zapsign.com.br/v1/validations/sim-swap \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "+5511999998888",
"consent": true
}
'{
"object": "validation",
"id": "val_0E3XNW9EDJZ571YX1HCFZQFV2D",
"type": "sim_swap",
"status": "completed",
"result": "no_recent_swap",
"reason_code": null,
"external_id": "pedido_12345",
"created_at": "2026-08-07T14:10:00Z",
"resolved_at": "2026-08-07T14:10:01Z",
"validation_url": null,
"expires_at": null,
"attempts_remaining": null,
"details": null
}Authorizations
Sua chave de API no cabeçalho Authorization: Bearer sk_.... Crie e revogue chaves no painel ou pelos endpoints de Chaves de API.
Headers
Torna a operação segura para retentativa. Reenviar a mesma chave repete a resposta original em vez de executar a operação de novo.
1 - 256^[A-Za-z0-9_-]{1,256}$Body
Dados para criar uma validação de troca de chip.
Telefone celular brasileiro do titular, em formato E.164.
"+5511999998888"
Confirma que o titular consentiu com a consulta. Precisa ser true.
Janela, em horas, para considerar uma troca de chip como recente.
1 <= x <= 240024
Sua referência de correlação. Volta em todas as respostas desta validação.
1 - 256^[A-Za-z0-9_-]{1,256}$"pedido_12345"
Response
Validação concluída.
Resultado de uma validação.
Sempre validation.
validation Identificador único da validação.
"val_0NQW3MVYJYQ453E95V3V1T76AV"
Tipo da validação.
| Valor | O que é |
|---|---|
cpf_phone_match | Vínculo entre CPF e telefone |
sim_swap | Troca de chip |
liveness_document_match | Prova de vida + documento |
phone_ownership | Posse do telefone, por código no WhatsApp |
liveness_cpf_match | Prova de vida + CPF |
telco_financial_capacity | Capacidade financeira via operadora |
Os quatro primeiros têm endpoint de criação. Os outros dois podem aparecer em consultas e listagens de contas que os usam por outros canais.
liveness_document_match, liveness_cpf_match, cpf_phone_match, sim_swap, telco_financial_capacity, phone_ownership Estado atual.
| Valor | O que é |
|---|---|
pending | Criada, aguardando o titular concluir o fluxo hospedado ou devolver o código |
completed | Resolvida; veja result |
failed | Não foi possível concluir |
expired | O prazo venceu sem conclusão |
pending, completed, failed, expired Resultado de negócio. É null enquanto status for pending.
| Valor | Aparece em |
|---|---|
match / no_match | cpf_phone_match |
recent_swap / no_recent_swap | sim_swap |
passed / not_passed | liveness_document_match, liveness_cpf_match, phone_ownership |
high_capacity / moderate_capacity / low_capacity | telco_financial_capacity |
unknown | Qualquer tipo, quando a fonte não deu uma resposta conclusiva. O motivo vem em reason_code. |
passed, not_passed, match, no_match, recent_swap, no_recent_swap, high_capacity, moderate_capacity, low_capacity, unknown Por que o resultado foi o que foi. É null quando o resultado não precisa de explicação. Acompanha unknown na maioria dos casos, e também not_passed quando a validação foi recusada por um motivo específico.
| Valor | O que é |
|---|---|
liveness_failed | Prova de vida não confirmada |
face_mismatch | O rosto não corresponde ao documento |
spoof_detected | Suspeita de fraude na captura |
document_tampered | Indícios de adulteração no documento |
document_invalid | Documento inválido ou não aceito |
document_unreadable | O documento não pôde ser lido |
cpf_reference_not_found | CPF não encontrado na base de referência |
data_unavailable | Dados indisponíveis na fonte consultada |
phone_not_covered | Telefone sem cobertura para a consulta |
invalid_code | O código enviado não confere, e as tentativas acabaram |
liveness_failed, face_mismatch, spoof_detected, document_tampered, document_invalid, document_unreadable, cpf_reference_not_found, data_unavailable, phone_not_covered, invalid_code A referência de correlação que você enviou na criação.
Data de criação em ISO-8601.
Data de resolução em ISO-8601. É null enquanto não resolvida.
URL para onde redirecionar o titular. Preenchida nas validações hospedadas; null nas síncronas.
Quando a validação vence, em ISO-8601. Preenchida nas validações hospedadas e nas que enviam um código; null nas síncronas.
Quantas chamadas de verificação ainda serão aceitas. Preenchida nos tipos que enviam um código para a pessoa devolver (hoje só phone_ownership) e null nos demais.
Vale 0 assim que a validação é resolvida, em qualquer desfecho, porque nenhuma outra tentativa será aceita.
Dados extraídos, agrupados pela chave do type. Hoje só liveness_document_match produz detalhes, e só com status igual a completed. Nos demais casos é null.
Show child attributes
Show child attributes
Was this page helpful?