Chaves de Flow
Gera o par de chaves RSA que a Meta usa para criptografar os dados dos Flows de um número.
Cada número que usa Flows com troca de dados precisa de um par de chaves RSA: a Meta criptografa com a chave pública o que o cliente digita, e a plataforma decifra com a privada. Esta rota gera um par novo para um número e devolve a chave pública, que você cadastra na Meta. A chave privada fica guardada, cifrada, e nunca é devolvida.
/api/v1/admin/whatsapp/flow-keys/registerAdminGera um par de chaves de Flow para um número
Corpo da requisição
phone_number_idstringobrigatórioId do número na Meta (texto numérico, não é o telefone). Obrigatório.
vendor_iduuidSeller dono do número. Omitido, a chave é da loja.
Exemplo de requisição (Gerar chaves)
bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/flow-keys/register" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "109876543210987"
}'Resposta (Gerar chaves)
200Chave gerada
json
{
"id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
"phone_number_id": "109876543210987",
"public_key": "-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\\n-----END PUBLIC KEY-----\\n",
"key_size": 2048,
"status": "A",
"created_at": "2026-10-11T22:30:00.000000Z",
"rotated_from_id": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
}Campos da resposta
iduuidIdentificador da chave nova.
phone_number_idstringO número.
public_keystringChave pública em PEM, para cadastrar na Meta.
key_sizeintegerTamanho da chave em bits. Hoje 2048.
statusstringAA (ativa). A chave anterior do número passa a R (em rotação).created_atstringCriação (RFC 3339, UTC).
rotated_from_iduuidId da chave que foi substituída. Ausente se o número não tinha chave ativa.
Erros (Gerar chaves)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON ou phone_number_id vazio. | {"error":"phone_number_id is required"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | Falha ao gerar ou guardar o par. | {"error":"failed to generate key pair: ..."} |