Cadastro do número da loja
Cadastra um número novo no WhatsApp Business em quatro passos: registrar, pedir o código, verificar e acompanhar.
Assistente de cadastro do número da própria loja. Use quando o telefone ainda não está na Meta: a plataforma adiciona o número à conta WhatsApp Business (WABA), a Meta manda um código por SMS ou ligação, você confirma o código e o número entra no ar.
1. Registrar o número
Cria o número na conta WhatsApp Business e guarda o perfil como rascunho. O número ainda não atende ninguém: fica pending_verification até o passo 3.
/api/v1/admin/whatsapp/store-setup/registerAdminAdiciona o número à WABA e grava o perfil (pendente)
Corpo da requisição
country_codestringpadrão: 55+.phone_numberstringobrigatóriodisplay_namestringobrigatóriodisplay_name_2stringdisplay_name_3stringcategorystringRETAIL, AUTO, GROCERY...).descriptionstringaddressstringemailstringwebsitestringwebsite_2stringusernamestringprofile_picture_urlstringreplace_existingbooleanpadrão: falsetrue autoriza trocar o número ativo por este novo.Exemplo de requisição (1. Registrar o número)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/store-setup/register" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"country_code": "55",
"phone_number": "11 99999-8888",
"display_name": "Loja Exemplo",
"category": "RETAIL",
"description": "Loja de moda com entrega para todo o Brasil.",
"email": "contato@lojaexemplo.com.br",
"website": "https://lojaexemplo.com.br"
}'Resposta (1. Registrar o número)
{
"success": true,
"data": {
"phone_number_id": "109876543210987",
"business_phone": "5511999998888",
"already_existed": false,
"status": "pending_verification"
}
}Campos da resposta
successbooleantrue em caso de sucesso.dataobjectResultado do cadastro.
phone_number_idstringbusiness_phonestringalready_existedbooleantrue quando a Meta já tinha esse número na WABA.statusstringpending_verification até concluir o passo 3.route_pendingbooleantrue: o número já entrega mensagens a outro destino.Erros (1. Registrar o número)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, campo obrigatório ausente, ou erro de validação da Meta (a resposta traz kind). | {"error":"Invalid request body"} |
| 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"} |
| 409 | kind = limit_reached (a loja já tem número ativo), whatsapp_exists (o telefone já tem conta de WhatsApp), phone_deleted, number_in_use ou number_in_use_other_store. | {"error":"...","kind":"limit_reached"} |
| 429 | kind = rate_limited: pediu código demais. retry_after_seconds diz quando tentar de novo. | {"error":"...","kind":"rate_limited","retry_after_seconds":60,"method":"SMS"} |
| 503 | kind = config_missing: a plataforma não tem token ou WABA para cadastrar números. | {"error":"...","kind":"config_missing"} |
2. Pedir o código
Pede à Meta que envie o código de 6 dígitos por SMS ou ligação de voz. Se o SMS não chegar, repita com VOICE.
/api/v1/admin/whatsapp/store-setup/request-codeAdminA Meta envia o código de validação ao número
Corpo da requisição
phone_number_idstringobrigatóriomethodstringpadrão: SMSSMSVOICEExemplo de requisição (2. Pedir o código)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/store-setup/request-code" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "109876543210987",
"method": "SMS"
}'Resposta (2. Pedir o código)
{
"success": true
}Campos da resposta
successbooleantrue quando a Meta aceitou o pedido.Erros (2. Pedir o código)
| Status | Quando | Corpo |
|---|---|---|
| 400 | phone_number_id ausente. | {"error":"phone_number_id is required"} |
| 400 | Corpo que não é JSON, campo obrigatório ausente, ou erro de validação da Meta (a resposta traz kind). | {"error":"Invalid request body"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O phone_number_id não pertence à loja. | {"error":"Número não pertence a esta loja"} |
| 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"} |
| 409 | kind = limit_reached (a loja já tem número ativo), whatsapp_exists (o telefone já tem conta de WhatsApp), phone_deleted, number_in_use ou number_in_use_other_store. | {"error":"...","kind":"limit_reached"} |
| 429 | kind = rate_limited: pediu código demais. retry_after_seconds diz quando tentar de novo. | {"error":"...","kind":"rate_limited","retry_after_seconds":60,"method":"SMS"} |
| 503 | kind = config_missing: a plataforma não tem token ou WABA para cadastrar números. | {"error":"...","kind":"config_missing"} |
3. Confirmar o código
Confere o código recebido, conclui o registro na Cloud API da Meta (com o PIN de duas etapas), reaplica o perfil e registra a rota de mensagens recebidas deste número para a loja. Guarde o two_step_pin.
/api/v1/admin/whatsapp/store-setup/verifyAdminValida o código e coloca o número no ar
Corpo da requisição
phone_number_idstringobrigatóriocodestringobrigatórioExemplo de requisição (3. Confirmar o código)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/store-setup/verify" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "109876543210987",
"code": "123456"
}'Resposta (3. Confirmar o código)
{
"success": true,
"two_step_pin": "482910",
"register_ok": true,
"data": {
"two_step_pin": "482910",
"register_ok": true
}
}Campos da resposta
successbooleantrue em caso de sucesso.two_step_pinstringregister_okbooleantrue quando o registro na Cloud API foi concluído.dataobjectroute_pendingbooleantrue: o número já entrega mensagens a outro destino e não foi sobrescrito.Erros (3. Confirmar o código)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, campo obrigatório ausente, ou erro de validação da Meta (a resposta traz kind). | {"error":"Invalid request body"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Código ausente ou número que não pertence à loja. | {"error":"Número não pertence a esta loja ou código ausente"} |
| 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"} |
| 409 | kind = limit_reached (a loja já tem número ativo), whatsapp_exists (o telefone já tem conta de WhatsApp), phone_deleted, number_in_use ou number_in_use_other_store. | {"error":"...","kind":"limit_reached"} |
| 429 | kind = rate_limited: pediu código demais. retry_after_seconds diz quando tentar de novo. | {"error":"...","kind":"rate_limited","retry_after_seconds":60,"method":"SMS"} |
| 503 | kind = config_missing: a plataforma não tem token ou WABA para cadastrar números. | {"error":"...","kind":"config_missing"} |
4. Acompanhar o status
Lê na Meta o nome verificado e a situação do código. Serve para saber se o passo 3 já terminou e se o nome foi aprovado.
/api/v1/admin/whatsapp/store-setup/statusAdminMostra o status de verificação do número na Meta
Parâmetros de consulta
phone_number_idstringobrigatórioExemplo de requisição (4. Acompanhar o status)
curl "$BASE_URL/api/v1/admin/whatsapp/store-setup/status?phone_number_id=109876543210987" \
-H "Authorization: Bearer $TOKEN"Resposta (4. Acompanhar o status)
{
"success": true,
"data": {
"phone_number_id": "109876543210987",
"verified_name": "Loja Exemplo",
"display_phone_number": "+55 11 99999-8888",
"code_verification_status": "VERIFIED"
}
}Campos da resposta
dataobjectEstado do número.
phone_number_idstringverified_namestringdisplay_phone_numberstringcode_verification_statusstringNOT_VERIFIED ou VERIFIED.Erros (4. Acompanhar o status)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, campo obrigatório ausente, ou erro de validação da Meta (a resposta traz kind). | {"error":"Invalid request body"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O número não pertence à loja. | {"error":"Número não pertence a esta loja"} |
| 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"} |
| 409 | kind = limit_reached (a loja já tem número ativo), whatsapp_exists (o telefone já tem conta de WhatsApp), phone_deleted, number_in_use ou number_in_use_other_store. | {"error":"...","kind":"limit_reached"} |
| 429 | kind = rate_limited: pediu código demais. retry_after_seconds diz quando tentar de novo. | {"error":"...","kind":"rate_limited","retry_after_seconds":60,"method":"SMS"} |
| 503 | kind = config_missing: a plataforma não tem token ou WABA para cadastrar números. | {"error":"...","kind":"config_missing"} |