curl --request POST \
--url https://api.id.zapsign.com.br/v1/validations/cpf-phone-match \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cpf": "12345678909",
"phone": "+5511999998888",
"consent": true
}
'{
"object": "validation",
"id": "val_0NQW3MVYJYQ453E95V3V1T76AV",
"type": "cpf_phone_match",
"status": "completed",
"result": "match",
"reason_code": null,
"external_id": "pedido_12345",
"created_at": "2026-08-07T14:03:11Z",
"resolved_at": "2026-08-07T14:03:12Z",
"validation_url": null,
"expires_at": null,
"attempts_remaining": null,
"details": null
}Criar validação de vínculo entre CPF e telefone
Verifica se o telefone pertence ao titular do CPF. É 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/cpf-phone-match \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cpf": "12345678909",
"phone": "+5511999998888",
"consent": true
}
'{
"object": "validation",
"id": "val_0NQW3MVYJYQ453E95V3V1T76AV",
"type": "cpf_phone_match",
"status": "completed",
"result": "match",
"reason_code": null,
"external_id": "pedido_12345",
"created_at": "2026-08-07T14:03:11Z",
"resolved_at": "2026-08-07T14:03:12Z",
"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 vínculo entre CPF e telefone.
CPF do titular, só dígitos.
"12345678909"
Telefone celular brasileiro do titular, em formato E.164.
"+5511999998888"
Confirma que o titular consentiu com a consulta. Precisa ser true.
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?