Conceitos

Clientes HTTP

A API usa HTTPS e JSON. Os exemplos usam clientes HTTP da linguagem, sem depender de um pacote de SDK da aut2fa.

Nesta página

Escolha o cliente do servidor

AmbienteCliente usado
Node.js 22 ou superiorfetch nativo.
Python 3urllib.request da biblioteca padrão.
PHPExtensão cURL e json_encode.
Terminalcurl.
curl https://api.aut2fa.com/v1/send \
  -H "Authorization: Bearer $AUT2FA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+5531999999999","locale":"pt-BR"}'

Para executar o JavaScript no Node.js, salve o exemplo em enviar.mjs e rode node enviar.mjs. A extensão .mjs permite o await no nível principal. Os comandos cURL usam Bash, com AUT2FA_API_KEY no ambiente.

Guarde a chave gerada e os bytes do corpo antes da chamada. Execute a geração novamente só para um novo pedido de código. Uma retentativa reutiliza os valores guardados; trocar a linguagem do exemplo não garante os mesmos bytes de JSON.

Configure um timeout adequado ao seu fluxo. Uma falha de rede não indica que a API deixou de criar o envio; retente usando idempotência.

Fluxo de autenticação no servidor

  1. Receba o telefone e valide a sessão que pediu a operação.
  2. Crie o envio e guarde ID, prazo, chave de idempotência e corpo nessa sessão.
  3. Receba o código como string e recupere o ID guardado no servidor.
  4. Chame a verificação e conclua a operação somente com valid: true.
  5. Encerre a sessão de desafio depois do sucesso.

Trate HTTP e resultado separadamente

JavaScript
async function verifySend(sendId, code) {
  const response = await fetch(
    "https://api.aut2fa.com/v1/send/" + encodeURIComponent(sendId) + "/verify",
    {
      method: "POST",
      headers: {
        Authorization: "Bearer " + process.env.AUT2FA_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ code }),
      signal: AbortSignal.timeout(15000),
    },
  );
  const result = await response.json();
  if (!response.ok) {
    throw new Error(result.code ?? "http_error");
  }
  return result;
}

// Recupere o sendId da sessão do servidor antes desta chamada.
// Autorize a operação apenas quando result.valid === true.

Uma verificação incorreta retorna HTTP 200 e valid: false. Para erros HTTP, leia o campo code do envelope application/problem+json.

Em Python, urllib.request.urlopen lança urllib.error.HTTPError para erros HTTP; leia o corpo desse erro para obter code. Em PHP, verifique o status retornado por CURLINFO_HTTP_CODE.

Abrir painel da aut2fa

Buscar na documentação

Digite uma palavra para procurar nos guias e na API.

Use as setas para percorrer os resultados. Enter abre a página. Esc fecha a busca.