# Partner API Sandbox

## 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.

{% hint style="info" %}
Partners can access the Partner Sandbox **without** requiring a paid plan. The Partner Sandbox is **included** with **all Partner Plans**.
{% endhint %}

<figure><img src="/files/QTEy9ry8cxEGLlqZZISk" alt=""><figcaption></figcaption></figure>

## Getting Started

The **Partner Sandbox** page has four guided steps on the left and a [**Webhook Events**](#webhook-events) panel on the right.

<div align="left" data-full-width="true"><figure><img src="/files/P7M1cIbBvvWhVuKnQ4tk" alt=""><figcaption></figcaption></figure></div>

{% stepper %}
{% step %}

### 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.

{% hint style="info" %}
Once the 360Dialog sandbox number receives a message sent from WhatsApp, all remaining steps will unlock automatically.
{% endhint %}

<figure><img src="/files/B94JjvQFp3q2poXYwo6X" alt=""><figcaption></figcaption></figure>

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.

<div align="left"><figure><img src="/files/h9mqalNwdoaZXXBq6ukT" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### 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:

```
https://waba-sandbox.360dialog.io/v1/messages
```

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

<div align="left"><figure><img src="/files/jriZJrvYnEcdrcgfJkjN" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### 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.

<div align="left"><figure><img src="/files/TM6Hs6eOfFEQtTM4UEed" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Send a Marketing Message

Send a template message via the MM API endpoint, designed for high-throughput marketing campaigns.

{% hint style="warning" %}
This step uses the [MM API endpoint](/partner/messaging/marketing-messages.md), designed for high-throughput marketing campaigns.
{% endhint %}

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.

<div align="left"><figure><img src="/files/qXom5h0ipyfIXHpRIYMa" alt=""><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

## 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.
* 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.

<div align="left" data-full-width="true"><figure><img src="/files/X5xUa8V8bTjTI9IHhs1h" alt=""><figcaption></figcaption></figure></div>

<div align="left" data-full-width="true"><figure><img src="/files/AXS3MVjHKASfvvtqiNJg" alt=""><figcaption></figcaption></figure></div>

## Feedback

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.360dialog.com/partner/onboarding/partner-api-sandbox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
