Contas e números

URL base da API
https://crm.vdgestaobranding.com/api/v1

A documentação fica em developers.vdgestaobranding.com, mas todas as chamadas vão para crm.vdgestaobranding.com/api/v1.

GET/accounts
accounts:read

BMs, WABAs e números

Árvore BM → WABA → número com qualidade, limite, uso nas últimas 24h, registro e verificação.

curl -X GET "https://crm.vdgestaobranding.com/api/v1/accounts" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "data": [
    {
      "id": "b1…",
      "business_id": "4511…",
      "name": "Minha empresa",
      "verification_status": "verified",
      "wabas": [
        {
          "waba_id": "1095419929937194",
          "name": "Atendimento",
          "phone_numbers": [
            {
              "id": "a0b1…",
              "phone_number_id": "1340490742483622",
              "display_phone_number": "+55 55 92482-1431",
              "verified_name": "Suporte Comercial",
              "quality_rating": "GREEN",
              "messaging_limit_tier": "TIER_1K",
              "status": "CONNECTED",
              "registration": {
                "registered": true,
                "requires_registration": false,
                "coexistence": false
              },
              "verification": {
                "code_verification_status": "VERIFIED"
              },
              "usage_24h": {
                "unique_contacts_24h": 120,
                "max_daily_7d": 380
              }
            }
          ]
        }
      ]
    }
  ]
}
GET/phone-numbers/{id}
accounts:read

Detalhes do número

curl -X GET "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "a0b1…",
  "phone_number_id": "1340490742483622",
  "display_phone_number": "+55 55 92482-1431",
  "verified_name": "Suporte Comercial",
  "quality_rating": "GREEN",
  "messaging_limit_tier": "TIER_1K",
  "status": "CONNECTED",
  "registration": {
    "registered": true,
    "requires_registration": false,
    "coexistence": false
  },
  "verification": {
    "code_verification_status": "VERIFIED"
  },
  "usage_24h": {
    "unique_contacts_24h": 120,
    "max_daily_7d": 380
  }
}
POST/phone-numbers/{id}/sync
accounts:write

Sincronizar com a Meta

curl -X POST "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}/sync" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "synced": true,
  "phone": {
    "id": "a0b1…",
    "phone_number_id": "1340490742483622",
    "display_phone_number": "+55 55 92482-1431",
    "verified_name": "Suporte Comercial",
    "quality_rating": "GREEN",
    "messaging_limit_tier": "TIER_1K",
    "status": "CONNECTED",
    "registration": {
      "registered": true,
      "requires_registration": false,
      "coexistence": false
    },
    "verification": {
      "code_verification_status": "VERIFIED"
    },
    "usage_24h": {
      "unique_contacts_24h": 120,
      "max_daily_7d": 380
    }
  }
}
GET/phone-numbers/{id}/profile
accounts:read

Obter foto e nome do perfil

curl -X GET "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}/profile" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "profile_picture_url": "https://…",
  "verified_name": "Suporte Comercial",
  "name_status": "APPROVED"
}
POST/phone-numbers/{id}/profile/photo
accounts:write

Atualizar foto do perfil

JPG ou PNG (até 5 MB, mínimo 192×192). Envie file_url (https) ou media_id de POST /media.

curl -X POST "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}/profile/photo" \
  -H "Authorization: Bearer $VDCRM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "file_url": "https://exemplo.com/logo.jpg"
}'
Resposta 200
{
  "updated": true,
  "profile_picture_url": "https://…"
}
GET/phone-numbers/{id}/display-name
accounts:read

Ler o nome

curl -X GET "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}/display-name" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "verified_name": "Suporte Comercial",
  "name_status": "APPROVED",
  "request": null,
  "notice": "A troca de nome é analisada pela Meta…"
}
POST/phone-numbers/{id}/display-name
accounts:write

Solicitar troca de nome

A Meta analisa o novo nome (normalmente de 1 a 3 dias). O nome atual continua até a aprovação.

curl -X POST "https://crm.vdgestaobranding.com/api/v1/phone-numbers/{id}/display-name" \
  -H "Authorization: Bearer $VDCRM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Loja Exemplo"
}'
Resposta 202
{
  "requested": true,
  "status": "PENDING_REVIEW",
  "notice": "A troca de nome é analisada pela Meta…"
}
POST/connect-sessions
accounts:write
Idempotency-Key

Criar link de conexão

Gera um link de uso único (30 min) para o cliente abrir o Embedded Signup da Meta numa página do VD CRM. Ao concluir, é enviado phone_number.connected; em caso de erro, connect_session.failed com a etapa. Com chave de teste, a página simula a conexão. mode: "new" (número novo, padrão) ou "coexistence" (conectar um número que já está no app WhatsApp Business; sem PIN/registro, até 6 meses de histórico, o app continua funcionando). Passo a passo para o cliente no modo coexistence: (1) na janela da Meta, digite no campo de telefone o número que está no app WhatsApp Business; (2) no app chegará uma mensagem da conta oficial do Facebook Business: toque em "Conectar" → "Conectar-se à Plataforma do WhatsApp Business" → confirme o compartilhamento do histórico; (3) copie o código de verificação e cole na janela da Meta; (4) conclua a janela; (5) mantenha o app aberto durante a sincronização. Se a janela avisar que o número será removido do app, pare e fale com o suporte.

curl -X POST "https://crm.vdgestaobranding.com/api/v1/connect-sessions" \
  -H "Authorization: Bearer $VDCRM_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "redirect_url": "https://meu-sistema.com/conectado",
  "mode": "coexistence"
}'
Resposta 201
{
  "session_id": "cs1…",
  "status": "pending",
  "url": "https://crm.vdgestaobranding.com/conectar/…",
  "expires_at": "2026-11-03T15:30:00Z"
}
GET/connect-sessions/{id}
accounts:read

Status da conexão

status: pending | processing | completed | failed | expired.

curl -X GET "https://crm.vdgestaobranding.com/api/v1/connect-sessions/{id}" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "session_id": "cs1…",
  "status": "completed",
  "step": "done",
  "waba_id": "1095…",
  "phone_number_id": "1340…"
}