For the complete documentation index, see llms.txt. This page is also available as Markdown.

Partner API Sandbox

This page describes how partner API sandbox can be used to send testing messages to a phone number on WhatsApp.

Overview

The Partner Sandbox allows partners to quickly connect a personal WhatsApp number and test the 360Dialog messaging APIs - including text messages, interactive messages, template messages, and webhook events - without needing a full WABA setup.

Accessing the Sandbox

After logging into the 360Dialog Partner Hub, select Sandbox from the navigation panel. This option is available alongside WhatsApp Accounts, Billing Options, Users, and other menu items.

Partners can access the Partner Sandbox without requiring a paid plan. The Partner Sandbox is included with all Partner Plans.

Getting Started

The Partner Sandbox page has four guided steps on the left and a Webhook Events panel on the right.

Sandbox Usage Limit

Each sandbox test account can send a maximum of 200 messages. Once the limit is reached, further requests fail with HTTP 429. Every request that reaches the messaging API counts towards the limit, even if the message itself is rejected.

1

Register A Test Number

Enter a personal WhatsApp phone number you currently have access to, then click Get Code.

Before sending test messages to this phone number, a message needs to be sent on WhatsApp from the phone number to the 360Dialog sandbox number. For this, a QR code will appear along with a Send Connection Code button. Next:

  • Scan the QR code to open WhatsApp directly on a mobile device.

  • Or click the button to open WhatsApp Web or WhatsApp Desktop with a pre-filled connection message.

Both options send a pre-filled message to the 360Dialog sandbox number.

Once the 360Dialog sandbox number receives a message sent from WhatsApp, all remaining steps will unlock automatically.

Connection Message Behavior

Depending on the WhatsApp configuration of the sending device, WhatsApp may deliver the connection message without the phone number. The connection code alone is sufficient in that case, so registration completes and the status badge still changes to Connected. The test number shown in the Hub is always the number entered in the form.

Once the connection is established, the status badge changes from Pending to Connected.

  • The connected test number with a Change Number option.

  • The generated API key with a Copy button.

2

Send a Basic Text Message

Send a simple text message from the sandbox number to the connected number.

This section includes a message preview showing how the message will appear in WhatsApp, a configurable text field (defaulting to "Hello World! 👋"), a Send Message button, and the equivalent cURL command for the API call.

The cURL example uses the sandbox endpoint:

The generated API key is included in the D360-API-KEY header.

Business-Scoped User ID (BSUID) Compatibility

The messaging API also accepts a recipient field instead of to for test accounts that are identified by a business-scoped user ID (BSUID) rather than a phone number.

3

Send an Interactive Message

Test sending a pre-approved message with interactive buttons. The message preview shows a greeting message with two button options - for example, "Speak with an agent" and "Get Pricing Information."

Both a Send Message button and the corresponding cURL command are provided. This step uses the interactive_template_sandbox template.

4

Send a Marketing Message

Send a template message via the MM API endpoint, designed for high-throughput marketing campaigns. In the sandbox, all messages, including marketing templates, go through the same endpoint https://waba-sandbox.360dialog.io/v1/messages . In production, marketing campaigns use the dedicated high-throughput MM API endpoint.

The message preview shows a marketing template with a header image, body text, and a "Shop Now" CTA button. The template used is marketing_message. The cURL command targets the same sandbox endpoint.

Webhook Events

The right-hand panel displays webhook events in real time. It includes:

  • A Webhook URL field (initially set to N/A) with an Edit button to configure the own webhook endpoint. The URL must use HTTPS (a plain http:// URL is rejected). Optional custom headers can be stored alongside the URL and are then sent with every webhook delivery.

  • A refresh button to manually reload events.

Events are displayed in a table with three columns:

Column
Description

Direction

IN (inbound to the number) or OUT (outbound from sandbox)

Type

Event type, e.g. message.sent, message.delivered, message.read

Date

Timestamp of the event

New events are highlighted with a blue outline. Clicking any event row displays its full JSON payload in the Event Payload section.

Webhooks and Business-Scoped User IDs (BSUID)

If WhatsApp does not share the phone number of the connected device, events identify the contact by its business-scoped user ID (BSUID) instead.

The Business-Scoped User ID is an opaque, per-business identifier that WhatsApp assigns to a user for one specific business when their phone number is not shared.

In the event payload, the BSUID appears as:

  • from_user_id on inbound messages

  • recipient_user_id on status events

  • user_id inside contacts

These events are still listed in the panel and delivered to your configured webhook URL.

FAQ

Why is my registration status stuck in "Pending"?

If you sent the connection message but the status did not update, verify if WhatsApp delivered the connection message. Starting with sandbox release version 0.3.0, if WhatsApp withholds the phone number, the connection code alone is sufficient to complete registration and update the badge to Connected.

What is a Business-Scoped User ID (BSUID)?

It is an identifier that WhatsApp assigns to a user for a specific business. WhatsApp sends it instead of the phone number when the user's phone number is not shared with the business.

Feedback

The Have feedback? section present at the bottom of the page is for suggesting additional features or tests in the sandbox.

Last updated

Was this helpful?