- Your Brand Name and Logo as the sender.
- The Green Verification Badge (if approved by Meta).
- Direct Meta Billing (no markup on Meta’s conversation charges).
Prerequisites
Before starting this tutorial, ensure you have:- A Meta Business Manager account.
- A Meta Developer account.
- Access to the OTP Edge Dashboard.
Step 1: Create a Meta App
- Go to the Meta for Developers portal and click My Apps.
- Click Create App.
- Select Other > Next > Business > Next.
- Name your app (e.g.,
MyCompany WhatsApp) and connect it to your Business Portfolio. - Once created, scroll down and add the WhatsApp product to your app.
Step 2: Configure WhatsApp API
Inside your Meta App dashboard, navigate to WhatsApp > API Setup. You will see a temporary access token and a Phone Number ID. While this works for testing, you need to generate a System User Permanent Token for production.Generate a Permanent Token
- Go to your Business Settings > Users > System Users.
- Add a new System User with an
Employeerole. - Click Add Assets and assign your new App with
Full Control. - Click Generate New Token, select your app, and check the
whatsapp_business_messagingandwhatsapp_business_managementpermissions. - Copy this Token immediately.
Step 3: Link to OTP Edge
Now, head back to your OTP Edge Dashboard.- Go to the Integrations tab.
- Click Connect Custom WABA.
- You will be prompted for three values:
- Phone Number ID: Found in your Meta App > WhatsApp > API Setup.
- WhatsApp Business Account ID (WABA ID): Found right below the Phone Number ID.
- Permanent Token: The token you generated in Step 2.
Step 4: Configure the Webhook
To ensure OTP Edge can track message delivery statuses (Sent, Delivered, Read, Failed), you must point Meta’s webhook to our servers.- In the OTP Edge Dashboard (under Integrations), copy your unique Webhook URL and Verify Token.
- Go back to your Meta App > WhatsApp > Configuration.
- Click Edit under the Webhook section.
- Paste the URL and Verify Token from OTP Edge and click Verify and Save.
- Finally, click Manage on the Webhook fields and subscribe to the
messagesfield.