WABA Integration

End-to-end WhatsApp Business Account integration: token validation, discovery, and subscription.

Overview

This covers end-to-end WABA integration using Meta Graph API. Dualhook automates most of these steps, but this is the underlying model.

Required Inputs

Integration Flow

  1. Validate token and permissions.
  2. Discover WABA and phone number IDs.
  3. Subscribe app and configure Webhook Override.
  4. Send a test message.
  5. Verify webhook delivery and statuses.

Validate Access Token

curl -X GET "https://graph.facebook.com/<GRAPH_VERSION>/debug_token?input_token=<ACCESS_TOKEN>&access_token=<APP_ID>|<APP_SECRET>"
{
  "data": {
    "app_id": "123456789012345",
    "type": "USER",
    "is_valid": true,
    "expires_at": 0,
    "scopes": [
      "whatsapp_business_management",
      "whatsapp_business_messaging"
    ]
  }
}

List WABAs for a Business

curl -X GET "https://graph.facebook.com/<GRAPH_VERSION>/<BUSINESS_ID>/owned_whatsapp_business_accounts?fields=id,name" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
{
  "data": [
    { "id": "102290129340398", "name": "Acme Primary WABA" }
  ]
}

List Phone Numbers

curl -X GET "https://graph.facebook.com/<GRAPH_VERSION>/<WABA_ID>/phone_numbers?fields=id,display_phone_number,verified_name,name_status,quality_rating" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
{
  "data": [
    {
      "id": "123456789012345",
      "display_phone_number": "15550001234",
      "verified_name": "Acme Inc",
      "name_status": "APPROVED",
      "quality_rating": "GREEN"
    }
  ]
}

Subscribe and Configure Override

curl -X POST "https://graph.facebook.com/<GRAPH_VERSION>/<WABA_ID>/subscribed_apps" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "override_callback_uri":"https://api.yourcompany.com/webhooks/whatsapp",
    "verify_token":"your-verify-token",
    "subscribed_fields":["messages","history","smb_message_echoes"]
  }'
{
  "success": true
}

Validation Checklist

  • Token is valid and has required scopes.
  • Correct WABA_ID and PHONE_NUMBER_ID are selected.
  • subscribed_apps returns success.
  • Incoming message webhooks arrive at your endpoint.
  • Outbound status updates are received for test sends.

Dualhook sets and maintains webhook override configuration automatically. Message traffic remains Meta → your endpoint directly.

Related

  • WhatsApp Business AccountsWhat a WABA is, how it relates to phone numbers, and how ownership works.
  • Webhook OverrideHow Dualhook uses Meta's Webhook Override to route message webhooks directly to your server.
  • Quick StartSet up Dualhook and connect your first WhatsApp Business Account in minutes.
Browse more docsGet started with Dualhook