# Get Started as a Partner

Welcome to the 360dialog Partner Program! This tutorial will guide you through the essential steps to get started, from creating your Partner Account to sending and receiving your first WhatsApp message.

## Prerequisites

Before you begin, ensure you have the following:

* A registration as [Meta Tech Provider](https://docs.360dialog.com/partner/get-started/tech-provider-program).
* A registered company with relevant details.
* A valid payment method (credit/debit card).
* Access to your company’s logo and name for branding purposes.
* A publicly accessible server to handle webhook events (you can use free providers for testing purposes)
* Basic understanding of REST APIs and webhooks.

## Step 1: Create a Partner Hub Account

{% stepper %}
{% step %}

### Account Creation

To begin the onboarding process, create a [360Dialog](https://start.360dialog.com/connect) account.

The guided setup helps to verify requirements and identify the optimal solution for the business.
{% endstep %}

{% step %}

### 2. Provide Company Details

Enter the organization’s information, including the legal name, registered address, and contact details. Ensure these details remain accurate throughout the business lifecycle to prevent invoicing discrepancies.

More details, see [Billing](https://www.google.com/search?q=./billing.md)
{% endstep %}

{% step %}

### 3. Select a Billing Model

Select the model that best fits the business requirements:

* <mark style="color:$primary;">**Partner-Paid:**</mark> The Partner manages all client billing and receives consolidated 360Dialog invoices.
* <mark style="color:$primary;">**Direct-Paid:**</mark> Clients are billed individually and directly by 360Dialog.

More details, see Billing Models
{% endstep %}

{% step %}

### Choose a Partner Plan

{% hint style="info" %}
The Partner Plan is billable immediately upon Partner Hub activation.
{% endhint %}

More details, see Partner Plans
{% endstep %}

{% step %}

### Add a Payment Method

Credit Card is the only payment method accepted. This card will remain the default for future 360Dialog billing.&#x20;

Manage credit cards, see Billing
{% endstep %}
{% endstepper %}

## Step 2: Set Up Number Onboarding

Enable a seamless onboarding experience for your clients.

### 1. Choose one of the three options to onboard new clients

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FWo2kcVX04cPGW5hzNOfY%2Fimage.png?alt=media&#x26;token=b1b7823d-4eef-445f-a6ae-2184c58ca5fa" alt=""><figcaption></figcaption></figure>

### 2. Direct Link Setup

Non-code solution. Share the link with the clients so they can start the onboarding.&#x20;

* Set up a webhook URL to receive the notification when a number is onboarded
* Set up a redirect URL to redirect users to your platform after onboarding
* Customize the Branding

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FhoRfwE0YNiz3FtFcib8a%2Fimage.png?alt=media&#x26;token=81e9bb93-ab87-4684-8be5-df1b442c75da" alt=""><figcaption></figcaption></figure>

For testing purposes, you can use a free online webhook testing tools to receive webhook events (like <https://webhook.site/> or <https://webhook-test.com/>)

### 3. Connect Button Setup

Low-code solution. Use our button to seamlessly embed number inboarding into your platform.

* Set up a webhook URL to receive the notification when a number is onboarded
* Set up a redirect URL to redirect users to your platform after onboarding
* Customize the Branding

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FtXB2BwhjrQJePkol7tWp%2Fimage.png?alt=media&#x26;token=9ecb1508-878e-469c-a25e-79063b824c51" alt=""><figcaption></figcaption></figure>

It is possible to define the plan as well. More options can be explored [here](https://integrated-onboarding-demo.vercel.app/).&#x20;

### 4. Self-hosted Embedded Signup

High-code solution. Fully customizable onboarding.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FQ3ak9fk0AEwoZPIYwf9B%2Fimage.png?alt=media&#x26;token=1e3037ab-cb68-4317-b5c3-8196ac16e2c8" alt=""><figcaption></figcaption></figure>

For implementing this flow, please refer to our [documentation](https://docs.360dialog.com/partner/integrations-and-api-development/integration-best-practices/integrated-onboarding/host-your-own-embedded-signup).

## Step 3: Register Your First WhatsApp API Number

### Use the IO Button or Direct Link

Clients can register their WhatsApp Business number using the methods set up in the previous step. Use the Direct Link to easily register your first number or the Button if you have already implemented it in your platform.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FLg0CBvvRke7Eb1luqeRh%2Fimage.png?alt=media&#x26;token=b881ba56-7291-404e-b9cb-a9aa3907bd45" alt=""><figcaption><p>Partner HUB step to register a number. A client account will be created under your partner user, so you will have access to all the client resources also.</p></figcaption></figure>

> [Step by step guide](https://docs.360dialog.com/docs/waba-management/embedded-signup/using-a-new-phone-number#account-creation-process) for the add number flow.

Once the first number is added, you will be able to see it in your [partner account.](https://hub.360dialog.com)

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FSpep4q6bSdpsJHAAvGKx%2Fnew_number_phub.png?alt=media&#x26;token=c710ef5f-6b05-438a-8638-3c64b52bf156" alt=""><figcaption></figcaption></figure>

You will receive notifications in your [Partner Webhook URL](#id-2.-add-partner-webhook-url) for every new registered number.

{% tabs %}
{% tab title="Channel Created" %}
This event is submitted when a new number is created in our system.

{% code title="Channel created event - webhook payload" overflow="wrap" %}

```json
{
  "id": "string",
  "event": "channel_created",
  "data": {
    "id": "string",
    "setup_info": {
      "phone_number": "string",
      "phone_name": "string"
    },
    ...
    },
    "waba_account": {...},
    "integration": {...}
  }
}
```

{% endcode %}

More details about the webhook event [here](https://docs.360dialog.com/partner/integrations-and-api-development/webhook-events-and-setup/webhook-events-partner-and-messaging-api#channel-created)
{% endtab %}

{% tab title="Channel Running" %}
This event is submitted when a new number is correctly setup and ready to start messaging.

{% code title="Channel running event - webhook payload" overflow="wrap" %}

```json
{
  "id": "string",
  "event": "channel_running",
  "data": {
    "id": "string",
    "setup_info": {
      "phone_number": "string",
      "phone_name": "string"
    },
    ...
    },
    "waba_account": {...},
    "integration": {...}
  }
}
```

{% endcode %}

More details about the webhook event [here](https://docs.360dialog.com/partner/integrations-and-api-development/webhook-events-and-setup/webhook-events-partner-and-messaging-api#channel-running)
{% endtab %}

{% tab title="Other events" %}
Find all the channel events you can receive here:

[webhook-events-partner-and-messaging-api](https://docs.360dialog.com/partner/onboarding/webhook-events-and-setup/webhook-events-partner-and-messaging-api "mention")
{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Channels are billed on a pro-rata basis upon activation and on the 1st of each month thereafter.**\
If a channel is inactive, please ensure the subscription is cancelled to avoid unwanted charges.
{% endhint %}

## Step 4: Send and Receive Your First Message

{% hint style="success" %}
Congratulations, if you are here means you have already registered your first number! :tada:

:speech\_balloon: You are five minutes away from starting to message through WhatsApp API.
{% endhint %}

### 1. Generate Number API Key

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FKoQPYIvFb6pqM8PJ8zrI%2Fgenerate_api_key_number_3.gif?alt=media&#x26;token=b1816378-49b7-4008-8bab-39632efb6185" alt=""><figcaption></figcaption></figure>

* Navigate to the Partner Hub.
* Select the registered number and generate an API key. Securely save the Number API Key beacuse we will not display it anymore. If you lose it, you will need to generate a new one.

More info about [number API Keys](https://docs.360dialog.com/partner/waba-management/managing-waba-accounts/partner-permission-to-generate-api-key)

### 2. Set Number Webhook

Configure the Number webhook to receive incoming messages and outgoing message statuses.

Use this [API endpoint](https://app.gitbook.com/s/-M4sMxKjL6eJRvZn6jeG-887967055/messaging-api/api-reference/webhooks#post-v1-configs-webhook) to set the webhook URL for the specific number.

Remember, you can use an online webhook test service for testing purposes.

More info about [messaging webhook URL](https://docs.360dialog.com/partner/messaging/sending-and-receiving-messages/receiving-messages-via-webhook#set-webhook-url-for-phone-number).

### 3. Receive a Message

Use a [wa.me](https://wa.me/) link to send a message to the registered number and start a connversation.

```url
https://wa.me/YOUR_NUMBER_WITH_COUNTRY_CODE

-- Example for Spanish Number (+34) 68098673512
https://wa.me/3468098673512
```

Monitor the number webhook for incoming message events.

<details>

<summary>Example of Incoming Message Payload</summary>

{% code title="Text Message" overflow="wrap" %}

```
{
  "object": "whatsapp_business_account",
  "entry": [{
      "id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
      "changes": [{
          "value": {
              "messaging_product": "whatsapp",
              "metadata": {
                  "display_phone_number": PHONE_NUMBER,
                  "phone_number_id": PHONE_NUMBER_ID
              },
              "contacts": [{
                  "profile": {
                    "name": "NAME"
                  },
                  "wa_id": PHONE_NUMBER
                }],
              "messages": [{
                  "from": PHONE_NUMBER,
                  "id": "wamid.ID",
                  "timestamp": TIMESTAMP,
                  "text": {
                    "body": "MESSAGE_BODY"
                  },
                  "type": "text"
                }]
          },
          "field": "messages"
        }]
  }]
}
```

{% endcode %}

Find payload examples for [other type of messages here](https://docs.360dialog.com/partner/integrations-and-api-development/webhook-events-and-setup/webhook-events-partner-and-messaging-api#messaging-webhook-associated-with-messaging-api).

</details>

### 4. Send a Message:

Now that the conversation has started, you can easily send a message using our Messaging API to answer the incoming message.

Please use this [endpoint.](https://app.gitbook.com/s/-M4sMxKjL6eJRvZn6jeG-887967055/messaging-api/api-reference/messages#post-messages)&#x20;

For each message you send, you could receive up to 3 webhook events into your Number Webhook URL (for `delivered`, `read` and `sent` statuses). [More info here](https://docs.360dialog.com/partner/integrations-and-api-development/webhook-events-and-setup/webhook-events-partner-and-messaging-api#messaging-webhook-associated-with-messaging-api)

## :rocket: Amazing, you are ready to start scaling WhatsApp API for your customers.

Your next step will be to Register your company as a Tech Provider.

[tech-provider-program](https://docs.360dialog.com/partner/get-started/tech-provider-program "mention")

## Summary

By following this tutorial, you’ve:

* Created a Partner Account with 360dialog.
* Set up Integrated Onboarding for your clients.
* Registered your first WhatsApp Business number.
* Sent and received your first message using the 360dialog API.

For more detailed information, you can navigate through our [360dialog Partner Documentation](https://docs.360dialog.com/partner/) or reach our to our support team.

:rocket: Have a successfull dialog!

***

## FAQ

<details>

<summary>How to find my 360dialog Partner ID</summary>

The Partner ID is an unique ID that will be used for most API actions.

The easiest way to find your Partner ID is to log into the 360dialog Partner Hub on your browser and go to the "Partner Integration" section.

<figure><img src="https://docs.360dialog.com/~gitbook/image?url=https%3A%2F%2F2248475362-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FuyAl2S0lSHJaNDXJHo7A%252Fuploads%252FtUZLqXGIwy5xcV7NZ5uJ%252Fimage-20250410-165832%2520%281%29.png%3Falt%3Dmedia%26token%3D99ed51c6-6da8-42f7-9569-45908778651b&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=b0066709&#x26;sv=2" alt=""><figcaption><p>Find your Partner ID</p></figcaption></figure>

To understand more about the Partner ID and credentials, see the [Architecture and Security documentation](https://docs.360dialog.com/partner/integrations-and-api-development/integration-best-practices/architecture-and-security).

</details>
