Guia de verificação da migração
O guia a seguir irá ajudá-lo a migrar do Verify Legacy, que está obsoleto, para Verify. Para isso, você precisa atualizar as URLs dos seus endpoints para que chamem a nova versão e modificar as configurações do seu aplicativo; não é necessário preencher nenhum formulário de pré-registro para começar a usar Verify.
Resumo
A API Vonage Verify é um serviço que permite aos desenvolvedores implementar a autenticação de dois fatores (2FA) para proteger contra fraudes e garantir a autenticidade do usuário. A Vonage oferece duas versões dessa API: a Legacy e a atual Verify. Embora ambas as versões tenham a mesma função principal, há diferenças significativas em seus recursos, funcionalidades e uso.
Principais diferenças
- Flexibilidade e personalização: Verify agora oferece uma criação de fluxos de trabalho mais flexível e opções de personalização aprimoradas, como um sistema de gerenciamento de modelos personalizados com mais recursos em comparação com a versão antiga.
- Suporte ao canal: O “Verify” agora oferece suporte adicional para verificação por meio de vários novos canais, como Silent Auth, RCS, WhatsApp e e-mail, enquanto o “Legacy” se limita a SMS e chamadas de voz.
- Recursos de segurança: O Verify agora inclui recursos de segurança aprimorados e está em conformidade com as normas mais recentes.
- Proteção contra fraudes: Os clientes que migrarem do Verify Legacy para a nova API do Verify terão proteção e acesso a Vonage Fraud Defender Advanced sem custo adicional.
- Tratamento de erros: O “Verify” agora oferece mensagens de erro mais detalhadas e um tratamento aprimorado, além de mecanismos mais avançados de limitação de taxa e de novas tentativas automáticas.
- Projeto e integração de APIs: O Verify oferece suporte tanto a padrões de integração síncronos quanto assíncronos.
Comparação de recursos
| Recurso/Função | Verify (Versão antiga) | Verify |
|---|---|---|
| Verificação básica | SMS, Voz | Autenticação silenciosa, RCS, SMS, voz, e-mail, WhatsApp |
| Tratamento do ID da solicitação | Sistema básico de identificação de solicitações | Rastreamento aprimorado de IDs de solicitações com mais metadados |
| Configuração personalizada do fluxo de trabalho | Limitada | Amplo, incluindo diversas configurações de canais |
| Gerenciamento da validade do PIN | Configurável, mas com limite (60 a 3.600 segundos) | Controle mais detalhado sobre a validade do PIN e os horários dos eventos |
| Conformidade com as normas de segurança | Básico, em conformidade com padrões mais antigos | Avançado, em conformidade com os mais recentes padrões de segurança |
| Tratamento de erros | Mensagens básicas de erro | Mensagens de erro detalhadas com códigos de erro abrangentes |
| Limitação de taxa | Limitação básica de taxa | Mecanismos aprimorados de limitação de taxa |
| Mecanismo de nova tentativa | Retenta básica em caso de falha | Lógica avançada de repetição de tentativas com fluxos de trabalho personalizáveis |
| Análise e Relatórios | Recursos limitados de geração de relatórios | Análises aprimoradas e relatórios detalhados |
| Suporte à localização | Localização básica (idiomas limitados) | Localização aprimorada, com mais idiomas e mensagens personalizadas |
| Documentação e suporte da API | Documentação abrangente, mas um pouco desatualizada | Documentação moderna, detalhada e mais fácil de usar |
| Autenticação | api_key + api_secret parâmetros de consulta e/ou corpo da solicitação |
Autenticação básica (cabeçalho) ou JWT Bearer (recomendado) — consulte Guia de autenticação |
Chamadas de API
Importante: Verify se a v2 é compatível com a autenticação básica e com o JWT Bearer (não api_key / api_secret). Recomenda-se o uso do JWT Bearer. Antes de realizar qualquer chamada à API v2, crie um aplicativo da Vonage no Painel de controle, gerar application ID e private key, e usá-los para assinar JWTs. Consulte o Guia de autenticação.
O modo assíncrono foi introduzido no Verify, permitindo que você receba mensagens e status de chamadas por webhook, recebendo tanto eventos (no caso de whatsapp_interactive) e callbacks de resumo. Você também pode usá-lo de forma síncrona com redirect_url e check_url.
Você deve configurar seus webhooks para os callbacks do Verify na seção “Aplicativo” do Painel do Cliente:

É possível encontrar mais documentação sobre webhooks em aqui.
Pontos finais
Todas as chamadas à API do Verify precisam ser atualizadas para usar o novo endpoint:
| Função | Verify (Versão antiga) | Verify |
|---|---|---|
| Enviar solicitação de verificação | POST https://api.nexmo.com/verify/ |
POST https://api.nexmo.com/v2/verify |
| Solicitação de verificação de cheque | POST https://api.nexmo.com/verify/check/:format |
POST https://api.nexmo.com/v2/verify/:request_id |
| Verify Search | https://api.nexmo.com/verify/search/:format |
Não está disponível no momento. Enquanto isso, use os status enviados aos seus webhooks para monitorar solicitações anteriores ou atuais. Consulte Callbacks de resumo e Webhooks. |
| Cancelar solicitação | POST https://api.nexmo.com/verify/control/:format com cmd = cancel |
DELETE https://api.nexmo.com/v2/verify/:request_id |
| Acionar o próximo evento no fluxo de trabalho | POST https://api.nexmo.com/verify/control/:format com cmd = trigger_next_event |
POST https://api.nexmo.com/v2/verify/:request_id/next-workflow |
| Modelos personalizados | POST https://api.nexmo.com/verify/templates |
GET https://api.nexmo.com/v2/verify/templatesPOST https://api.nexmo.com/v2/verify/templatesGET https://api.nexmo.com/v2/verify/templates/:template_idPATCH https://api.nexmo.com/v2/verify/templates/:template_idDELETE https://api.nexmo.com/v2/verify/templates/:template_id |
| PSD2 | POST https://api.nexmo.com/verify/psd2/:format |
Obsoleto |
| Desbloqueio de rede | POST https://api.nexmo.com/verify/network-unblock |
POST https://api.nexmo.com/v2/verify/network-unblock |
Fluxos de trabalho
Verify oferece a flexibilidade de definir seu próprio fluxo de trabalho, ao contrário dos fluxos de trabalho fixos do Legacy. Você pode especificar qualquer combinação de canais de suporte de sua escolha no fluxo de trabalho, até um máximo de três canais.
É possível encontrar mais documentação sobre fluxos de trabalho aqui.
Canais
Agora há novos canais disponíveis no Verify:
- SMS
- Voz (anteriormente TTS na versão antiga)
- Autenticação silenciosa
- RCS
Para obter informações mais detalhadas sobre esses canais, consulte o Especificação da API.
A documentação específica sobre autenticação silenciosa pode ser encontrada aqui.
Callbacks de resumo
As chamadas de retorno são enviadas ao seu webhook com o status do evento, correspondente request_id & canal. Os diagramas de sequência a seguir mostram como isso funciona ao usar um único canal ou vários canais em seu fluxo de trabalho.
Canal único

Vários canais

Códigos de resposta
Além de alterar seus endpoints, suas Applications também precisam ser atualizadas para reconhecer os códigos de resposta recebidos ao usar o Verify:
| Código HTTP | Definição |
|---|---|
Criação de uma solicitação: POST /v2/verify |
|
| 202 | O pedido foi aceito. Entrega em andamento. |
| 409 | Há uma solicitação em andamento para esse número. |
| 422 | Ocorreu um erro ao processar a solicitação. |
Validação de uma solicitação: POST /v2/verify/{request_id} |
|
| 200 | Sucesso! O código correto foi fornecido. |
| 400 | Foi inserido um código incorreto. |
| 404 | Não foi possível encontrar a solicitação. |
| 409 | A ação atual não oferece suporte à verificação de pinos. |
| 410 | O código incorreto foi fornecido várias vezes. |
| 422 | Não foi possível validar a solicitação. |
Cancelamento de solicitação
| Verify (Versão antiga) | Verify |
|---|---|
| Verify controle pode ser usado para cancelar uma solicitação de verificação em andamento. Não é possível cancelar nos primeiros 30 segundos após a solicitação. | Envie um pedido de cancelamento - se a solicitação de verificação estiver ativa, ela interrompe o fluxo de trabalho. |
Modelos
| Verify (Versão antiga) | Verify |
|---|---|
| Os clientes podem usar um modelo personalizado para enviar mensagens de verificação (documentação) | Verify oferece suporte tanto a modelos predefinidos quanto a modelos personalizados. Gerencie os modelos usando o Guia de gerenciamento de modelos. |
Conformidade com a PSD2
| Verify (Versão antiga) | Verify |
|---|---|
| Está em conformidade com a PSD2? | Obsoleto |
Solicitação de verificação de pesquisa
| Verify (Versão antiga) | Verify |
|---|---|
| Uso Verify Search para verificar o status de solicitações de verificação anteriores ou atuais. | Use os status enviados aos seus webhooks para monitorar solicitações anteriores ou atuais. Consulte Callbacks de resumo e Webhooks. |
Gestão de fraudes
Observe que os bloqueios de rede são aplicados apenas aos canais de SMS e voz na API Verify.
| Verify (Versão antiga) | Verify |
|---|---|
| Os blocos acionados por regras de velocidade são respondidos com Erro 7 | Os blocos acionados por regras de velocidade são exibidos com o status blocked e a razão Fraudulent traffic detected for your account on network [23415]. na função de retorno de chamada de resumo |
| Os desbloqueios de rede podem ser emitidos por meio do API de desbloqueio de rede. | Utiliza a mesma API para desbloqueios. |
| Mais informações: Sistema Antifraude Antigo | Mais documentação: Sistema Antifraude |
Verify diagramas de sequência
Verify o fluxo

Verify solicitação com callbacks de resumo

Diagrama de sequência de autenticação silenciosa

Verify a análise dos parâmetros de carga útil entre a V1 e a V2
Autenticação (Verify v2): Verifique se a v2 utiliza a autenticação JWT Bearer. Gere um JWT usando seu ID de aplicativo e sua chave privada da Vonage e envie-o no Authorization cabeçalho (leia mais no Guia de autenticação). api_key e api_secret não estão incluídos na carga útil da solicitação v2.
Enviar solicitação de verificação
| Parâmetro | Verify (Versão antiga) | Verify (V2) | Notas |
|---|---|---|---|
| Chave da API | api_key |
N/A | |
| Segredo da API | api_secret |
N/A | |
| Número de telefone | number |
to |
|
| Marca | brand |
Incluído em workflow.channels.template |
|
| ID do remetente | sender_id |
from |
Aplicável a channel = SMS & Email na V2 |
| Comprimento do código | code_length |
code_length |
|
| Idioma | lg |
locale |
|
| Validade do PIN | pin_expiry |
channel_timeout |
|
| Próximo evento: Aguarde | next_event_wait |
N/A | |
| Identificador do fluxo de trabalho | workflow_id |
Fluxo de trabalho personalizado em workflow.channels |
Configuração flexível dos canais no fluxo de trabalho |
| Código personalizado | pin_code |
code |
|
| Modelo | N/A | template_id |
Gerenciamento de modelos documentação para a V2 |
| N/A | workflow.channels.email |
||
| N/A | workflow.channels.whatsapp |
||
| Autenticação silenciosa | N/A | workflow.channels.silent_auth |
|
| ID da entidade | N/A | entity_id |
Aplicável a channel = SMS na V2 |
| ID do conteúdo | N/A | content_id |
Aplicável a channel = SMS na V2 |
| Identificador do aplicativo | N/A | app_hash |
Aplicável a channel = SMS na V2 |
Solicitação de verificação de cheque
| Parâmetro | Verify (Versão antiga) | Verify (V2) |
|---|---|---|
| Chave da API | api_key |
N/A |
| Segredo da API | api_secret |
N/A |
| ID da solicitação | request_id |
request_id |
| Código | code |
code |
Solicitação de verificação de pesquisa
| Parâmetro | Verify (Versão antiga) | Verify (V2) |
|---|---|---|
| Chave da API | api_key |
N/A |
| Segredo da API | api_secret |
N/A |
| ID da solicitação | request_id |
N/A |
Cancelar solicitação de verificação
| Parâmetro | Verify (Versão antiga) | Verify (V2) | Notas |
|---|---|---|---|
| Chave da API | api_key |
N/A | |
| Segredo da API | api_secret |
N/A | |
| ID da solicitação | request_id |
request_id |
|
| Comando | cmd=cancel |
N/A | A V2 utiliza um endpoint dedicado para cancelamento. |
Iniciar o próximo processo de verificação
| Parâmetro | Verify (Versão antiga) | Verify (V2) | Notas |
|---|---|---|---|
| Chave da API | api_key |
N/A | |
| Segredo da API | api_secret |
N/A | |
| ID da solicitação | request_id |
request_id |
|
| Comando | cmd=trigger_next_event |
N/A | O V2 utiliza um endpoint dedicado para acionar a próxima ação. |
Modelos personalizados
| Parâmetro | Verify (Versão antiga) | Verify (V2) |
|---|---|---|
| Chave da API | api_key |
N/A |
| Segredo da API | api_secret |
N/A |
| Canal | action_type |
channel |
| Idioma | lg |
locale |
| Texto do modelo | template |
text |
| Tipo de texto para SMS | type |
N/A |
| URL do arquivo de mídia | digit_n |
N/A |
| Início da mensagem | welcome_message |
N/A |
| Fim da mensagem | bye_message |
N/A |
| Tíquete do Zendesk | contact_email |
N/A |
| Nome do modelo | N/A | name |
| Indicador de modelo padrão | N/A | is_default |
| Referência de modelos | N/A | template_id |
Conformidade com a PSD2
| Parâmetro | Verify (Versão antiga) | Verify (V2) |
|---|---|---|
| Chave da API | api_key |
N/A |
| Segredo da API | api_secret |
N/A |
| Número de telefone | number |
N/A |
| Código do país | country |
N/A |
| Nome do destinatário | payee |
N/A |
| Valor do pagamento | amount |
N/A |
| Comprimento do código | code_length |
N/A |
| Idioma | lg |
N/A |
| Vencimento do PIN | pin_expiry |
N/A |
| Próximo evento: Aguarde | next_event_wait |
N/A |
| Identificador do fluxo de trabalho | workflow_id |
N/A |
Mapeamento do fluxo de trabalho entre o Verify V1 e o Verify V2
Fluxo de trabalho 1 (padrão)
Padrão: SMS → TTS → TTS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 1
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "sms", "to": "15555551234"},
{"channel": "voice", "to": "15555551234"},
{"channel": "voice", "to": "15555551234"}
]
}
Fluxo de trabalho 2
Padrão: SMS → SMS → TTS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 2
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "sms", "to": "15555551234"},
{"channel": "sms", "to": "15555551234"},
{"channel": "voice", "to": "15555551234"}
]
}
Fluxo de trabalho 3
Padrão: TTS → TTS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 3
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "voice", "to": "15555551234"},
{"channel": "voice", "to": "15555551234"}
]
}
Fluxo de trabalho 4
Padrão: SMS → SMS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 4
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "sms", "to": "15555551234"},
{"channel": "sms", "to": "15555551234"}
]
}
Fluxo de trabalho 5
Padrão: SMS → TTS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 5
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "sms", "to": "15555551234"},
{"channel": "voice", "to": "15555551234"}
]
}
Fluxo de trabalho 6
Padrão: SMS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 6
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "sms", "to": "15555551234"}
]
}
Fluxo de trabalho 7
Padrão: TTS
Verify V1
{
"api_key": "your_key",
"api_secret": "your_secret",
"number": "15555551234",
"brand": "YourBrand",
"workflow_id": 7
}
Verify V2
{
"brand": "YourBrand",
"workflow": [
{"channel": "voice", "to": "15555551234"}
]
}