Overview

This page describes our Partner API.

The 360dialog Partner API follows REST principles. It uses predictable, resource-oriented URLs, accepts form-encoded request bodies, returns JSON-formatted responses, and relies on standard HTTP methods, authentication mechanisms, and response status codes.

The 360dialog Partner API enables the programmatic management of WhatsApp Business Accounts and phone numbers. It enables Partners to automate workflows and build a seamless onboarding and management experience for their clients.

To get started, you will need:

  • Partner ID

  • Partner Hub login credentials

Partner ID

The Partner ID is a unique identifier used for most Partner API requests. You can find your Partner ID by logging into the 360dialog Partner Hub in your browser and navigating to the Partner Integration section.

Login Credentials

When a Partner account is created, you will receive an email invitation to activate the account and set a password. These credentials, your email address and password, are used to authenticate in the Partner Hub and to generate a Bearer token for Partner API requests.

Base URL

The default base URL for the 360dialog Partner API is https://hub.360dialog.io/api/v2

Authentication

The Partner API supports two authentication methods:

  • API Key Recommended

  • Bearer Token

API Key authentication allows secure access to the Partner API without requiring user credentials. Each request must include a valid API key in the request headers.

How to Obtain an API Key

  • Navigate to the API Keys section in the Partner Dashboard

  • Generate an API key. Store the key securely, as it grants access to the Partner API. It will only be displayed once

Using the API key

Include the API Key in the request header:

Example Request

Best Practices for API Authentication

  • API Keys Usage: Use API Keys for service-to-service communication.

  • API Keys Rotation: Rotate keys periodically to maintain security.

  • Secure Storage: Always store API keys and credentials securely. Avoid exposing them publicly or hardcoding them in client-side code - use environment variables instead

  • Error Handling: Handle authentication errors gracefully. Common errors include:

    • 401 Unauthorized: Invalid or missing authentication credentials.

    • 403 Forbidden: Valid credentials, but insufficient permissions.

Bearer Token Authentication (Deprecated)

During the transition period, Bearer Token authentication will still be supported. To obtain a Bearer Token, provide your username (email) and password.

Request OAuth token for any Partner API request

POST https://hub.360dialog.io/api/v2/token

Request example

Request Body

Name
Type
Description

username*

string

password*

string

Example: 123StrongPass4Me!

After the token is received, use this access token in the authorization header:

Bearer Tokens and Partner API Key (via X-API-KEY header) are authentication methods specifically designed to use with the Partner API. It cannot be used in combination with the Messaging API.

For the Messaging API, the supported authentication method is through the use of D360-API Keys - Adding D360-API-KEY in the header with your Client's unique API Key as a value will grant access to Messaging API. See how to retrieve an API key here.

Partner Webhook URL

A Webhook URL is required to receive notifications for certain events relating to a Partner Account and connected Client Accounts. You can set a Partner URL in the Partner Hub UI or via API endpoint.

Filtering

Filters can be applied to Partner API endpoints by specifying parameters in the request URL, allowing results to be narrowed down.

Filtering Examples

Get a specific channel.

Get a client by contact email

Filtering options

Sorting

Examples:

  • ascending: https://hub.360dialog.io/api/v2/partners/partner-id/clients?sort=id

  • descending: https://hub.360dialog.io/api/v2/partners/partner-id/clients?sort=-id

Sorting options

Filtering Examples

Filter channels by channel property.

How to use sort?

Example:

  • ascending: https://hub.360dialog.io/api/v2/partners/partner-id/channels?sort=id

  • descending: https://hub.360dialog.io/api/v2/partners/partner-id/channels?sort=-id

Channel Statuses

The hub_status property indicates the channel status.

hub_status
description

draft

Channel exists in the 360dialog Hub but is not synced with Meta

live

Channel is live

pending_deletion

Channel is pending deletion

unregistered

Channel is unregistered from the WhatsApp API

done OBO WABAs Only

Channel exists in the 360dialog Hub but not on Meta

pending OBO WABAs Only

Channel exists in the 360dialog Hub but is not synced with Meta

Granularity Filtering

You can use the granularity parameter to retrieve metrics about the conversations associated with the WhatsApp Business Account (WABA).

Specifically, you can get the number of messages sent and delivered as well as conversation and cost information for a given period. This parameter works together with the /balance endpoint in the Partner API. See below how to parse your request.

Query Syntax: GET/info/balance?<FILTERING_PARAMETER>

Example

https://hub.360dialog.io/api/v2/partners/{partner_id}/clients/{client_id}/info/balance?start_date=1664582400&end_date=1667260799&granularity=day

Query String Parameters

Placeholder
Description
Example Value

<FILTERING_PARAMATERS>

Required.

Metric filtering parameter. Append additional filtering parameters using dots.

For possible values, see:

Filtering Parameters

start_date=1664582400&end_date=1667260799&granularity=day

When calling the GET request, you can attach the following{filtering-parameters}to retrieve the cost and conversation information for a specific WABA.

Filtering Parameters

Name
Description

start_date

type: UNIX Timestamp

Required. The start date in UNIX Timestamp (UTC). Returned data will be equal to or newer than the specified date.

Example: 1672531200

end_date

type: UNIX Timestamp

Required.

The end date in UNIX Timestamp (UTC). Returned data will be equal to or older than the specified date.

Example: 1672531200

granularity

type: String

Required.

The granularity by which you would like to retrieve the analytics. Supported Options:

  • DAY

  • MONTH

Defaults with MONTH if no value is provided in the request.

app_id type: array

Available only for Get Client Balance endpoint.

An array of app_ids for which you would like to retrieve usage. If not provided, all app ids in the WABA are included.

Usage data is approximate and may differ from what’s shown on invoices due to small variations in data processing.

With granularity parameters, you can filter and break down your results. See the code sample below for examples.

A successful response returns the usage object with the data you have requested.

Last updated

Was this helpful?