Using the Partner API to manage Clients and Channels

After your Partner API integration is completed, you can use it to manage Clients and Channels.

API Reference

Get Clients

To see the 360dialog Client Hub accounts associated to your Partner Hub, use the Get Clients endpoint.

GET https://hub.360dialog.io/api/v2/partners/{partner_id}/clients

Returns all Clients associated with a specific Partner account.

Request example

curl --request GET --url https://hub.360dialog.io/api/v2/partners/partner_id/clients --header 'Authorization: ' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

partner_id*

string

Your Partner Hub ID

Query Parameters

NameTypeDescription

filters

string

A JSON object of params and their expected values

limit

string

Objects limit to return in the response

offset

string

Show the results starting from an offset

sort

string

Use minus - symbol for descending sorting

Headers

NameTypeDescription

Content-Type

String

application/json

{
  "count": 0,   >> Means Count of clients available in this Partner Hub
  "filters": {},
  "sort": [
    "string"
  ],
  "limit": 0,
  "offset": 0,
  "total": 0,
  "clients": [
    {
      "id": "string",   >> This Client's ID
      "name": "string",
      "status": "active",   >> This Client's status: if active or not
      "organisation": "string",   >> This Client's company name
      "meta_info": {   >> Information submitted during the creation of the WABA
        "business_vertical": "string",
        "timezone": "string",
        "about": "string",
        "business_description": "string",
        "use_case": "string"
      },
      "contact_info": {   >> This Client's contact information
        "webpage_url": "string",
        "phone": "string",
        "language": "string",
        "country": "string",
        "street_name": "string",
        "city": "string",
        "email": "string",
        "full_name": "string",
        "zip_code": "string"
      },
      "contact_user": {   >> User information registered under this Client Hub
        "phone": "string",
        "email": "string",
        "name": "string"
      },
      "partner_payload": "string",
      "created_at": "string",   >> When was the Client Hub created
      "created_by": {   >> Who created the Client Hub
        "user_id": "string",
        "user_name": "string"
      },
      "modified_at": "string",   >> When was the Client Hub last modified
      "modified_by": {   >> Who last modified this Client Hub
        "user_id": "string",
        "user_name": "string"
      },
      "max_channels": 2   >> Maximum number of channels allowed in this Client Hub (2 is default)
    }
  ]
}

See Filter Options.

Get Client Balance

The WhatsApp Conversations usage is always related to the 360dialog Client Hub (client_id), regardless of the number of channels.

You can retrieve a detailed usage of a channel through the 360dialog Partner API using this endpoint.

GET https://hub.360dialog.io/api/v2/partners/{{partner_id}}/clients/{{client_id}}/info/balance

Returns the usage and balance associated with a specific Client.

Rate limit: 5 requests per 30 seconds.

Request example

curl --request GET --url https://hub.360dialog.io/api/v2/partners/{partner_id}/clients/{client_id}/info/balance --header 'Authorization: ' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

client_id*

string

ID of the client

partner_id*

string

ID of the partner

Query Parameters

NameTypeDescription

end_date

UNIX Timestamp

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

Example: 1672531200

start_date

UNIX Timestamp

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

Example: 1672531200

granularity

string

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.

The balance field is only relevant for clients who are registered with direct payment. When a client is partner-paid, the balance field will return 0.

usage: The array "usage" provides a breakdown of the channel's usage in different categories. These categories may include authentication, marketing, service, utility. Each category within the array includes details such as paid quantity, price, and quantity.

This allows you to analyze the usage patterns and associated costs for different aspects of the channel's messaging services.

{
        "balance": 50.00,  >> Total balance for this Client Hub. Returns 0 if the Client is Partner-paid.
        "currency": "eur", >> Currency: EUR
        "last_renewal": {  >> Information about the last renewal
          "date": "2023-08-01T00:00:00Z,
          "amount": 20.00
        },
        "bi_price_for_currency_and_client_country": 0.2,
        "ui_price_for_currency_and_client_country": 0.02,
        "estimated_template_cost": 0.03, >> Estimated cost per conversation
        "granularity": "day", >> The granularity by which you retrieved the analytics
        "usage": [    >> Usage details
          {
            "authentication_paid_quantity": 0,
            "authentication_price": 0.0,
            "authentication_quantity": 0,
            "marketing_paid_quantity": 0,
            "marketing_price": 0.0,
            "marketing_quantity": 0,
            "service_paid_quantity": 0,
            "service_price": 0.0,
            "service_quantity": 0,
            "utility_paid_quantity": 0,
            "utility_price": 0.0,
            "utility_quantity": 0,
            "business_initiated_paid_quantity": 5,
            "business_initiated_price": 1.0,
            "business_initiated_quantity": 5,
            "free_entry_point": 0,
            "free_quantity": 0,
            "free_tier": 0,
            "paid_quantity": 5,
            "period_date": "2023-08-10T00:00:00Z",
            "quantity": 5,
            "total_price": 1.0,
            "user_initiated_paid_quantity": 0,
            "user_initiated_price": 0.00,
            "user_initiated_quantity": 0
          },
          {
            "authentication_paid_quantity": 0,
            "authentication_price": 0.0,
            "authentication_quantity": 0,
            "marketing_paid_quantity": 0,
            "marketing_price": 0.0,
            "marketing_quantity": 0,
            "service_paid_quantity": 0,
            "service_price": 0.0,
            "service_quantity": 0,
            "utility_paid_quantity": 0,
            "utility_price": 0.0,
            "utility_quantity": 0,
            "business_initiated_paid_quantity": 0,
            "business_initiated_price": 0,
            "business_initiated_quantity": 0,
            "free_entry_point": 0,
            "free_quantity": 0,
            "free_tier": 0,
            "paid_quantity": 5,
            "period_date": "2023-08-11T00:00:00Z",
            "quantity": 5,
            "total_price": 0.05,
            "user_initiated_paid_quantity": 5,
            "user_initiated_price": 0.05,
            "user_initiated_quantity": 5
          }
        ]
      }

See Filter Options.

Get All Channels

You can retrieve detailed accounts statuses through the 360dialog Partner API. This can happen with the get partner's channels endpoint.

GET https://hub.360dialog.io/api/v2/partners/{{partner_id}}/channels

Returns all channels associated with a specific Partner ID. You can get a channel's Hosting platform type from this request.

Request example

curl --request GET --url https://hub.360dialog.io/api/v2/partners/partner_id/channels --header 'Authorization: ' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

partner_id*

string

Your Partner Hub ID

Query Parameters

NameTypeDescription

filters

string

A JSON object of params and their expected values. See Filter Options.

limit

string

Objects limit to return in the response

offset

string

Show the results starting from an offset

sort

string

Use minus - symbol for descending sorting

{
    "count": 1,
    "filters": "string",
    "limit": 1000,
    "offset": 0,
    "partner_channels": [ //List of channels associated with your Partner Hub
        {
            "account_mode": "live", //Indicates if the account is ready to be used
            "billing_started_at": "2000-01-01T10:00:00Z", //When billing started for this channel
            "cancelled_at": null, //When was the channel cancelled
            "client": { //Client information associated to this channel
                "contact_info": {
                    "country": "string", 
                    "email": "string",
                    "street_name": "string"
                },
                "id": "string",
                "name": "string",
                "partner_payload": null //Partner metadata if existent
            },
            "client_id": "string", //Client Hub ID that owns this channel
            "created_at": "2024-01-10T09:59:19Z",
            "current_limit": "TIER_0.25K",//Current Messaging Limit of this channel
            "current_quality_rating": "High", //Current Quality Rating of this channel
            "has_inbox": false, //Deprecated. Do not consider
            "hub_status": "live", //Status of the account. Options are "live", "sandbox", "pending_deletion", "draft" and "unregistered" 
            "id": "string", //Specific Channel ID
            "integration": {
                "app_id": "138219",
                "enabled": true,
                "hosting_platform_type": "meta_cloud_api",//Type of hosting platform (meta_cloud_api or 360_hosting
                "state": "running"
            },
            "is_migrated": false,
            "is_oba": false, 
            "settings": {
                "data_localization_region": "DE", //Default data localization for this channel - "null" can be considered as US, Cloud API default hosting location
                "tier": "regular"
            },
            "setup_info": {
                "phone_name": "string", //Display Name registered in this channel
                "phone_number": "string" //Phone number registered in this channel
            },
            "status": "ready",>> 
            "terminated_at": null, //When was the channel terminated
            "version": 2,
            "waba_account": {
                "external_id": "string",
                "fb_account_status": "string", //Status of the Meta Business Manager verification
                "fb_business_id": "string",
                "id": "string",
                "namespace": "string",
                "on_behalf_of_business_info": {
                    "id": "string",
                    "name": "string",
                    "status": "approved",
                    "type": "string"
                }
            }
        }
    ],
    "sort": [
        "id"
    ],
    "total": 0
}

See Filter Options.

Get Numbers/Channels you have permission to manage

You can check which channels/numbers under a Client's account you have permission to manage (generate API Key) by calling this endpoint.

GET https://hub.360dialog.io/api/v2/partners/{partner_id}/clients/{client_id}/shared_client_numbers

Returns all numbers/channels that you have permission to manage.

When you have permission to manage a number, you can create new API Keys for it. See how you can request permission of new and existing clients here.

Request Example: curl --request GET --url https://hub.360dialog.io/api/v2/partners/partner_id/clients/client_id/shared_client_numbers --header 'Accept: application/json' --header 'Authorization: Bearer 123'

Path Parameters

NameTypeDescription

partner_id*

string

Your Partner ID

client_id*

string

Your Client ID

[
    {
        "account_mode": string,
        "billing_started_at": string,
        "cancelled_at": string,
        "client_id": string,
        "created_at": string,
        "current_limit": string,
        "current_quality_rating": string,
        "current_quality_update_event": string,
        "hub_status": string,
        "id": string,
        "is_migrated": string,
        "is_oba": string,
        "settings": {},
        "setup_info": {
            "phone_name": string,
            "phone_number": string
        },
        "status": string,
        "terminated_at": string,
        "version": 2
    }
]

See Filter Options.

Generate API key for specific channel

POST https://hub.360dialog.io/api/v2/partners/{partner_id}/channels/{channel_id}/api_keys

Request example

curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/channels/channel_id/api_keys --header 'Authorization: ' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

channel_id*

String

ID of the Channel you want to create the API key for

partner_id

String

Your Partner ID

{
  "id": "string",
  "address": "string",
  "api_key": "string",   >> API key which was generated
  "app_id": "string"
}

See Partner Permissions.

Edit maximum number of Channels

The maximum number of channels allowed per 360dialog Client Hub is 10. You can increase or decrease this number with the Max Channel endpoint.

PATCH https://hub.360dialog.io/api/v2/partners/{{partner_id}}/clients/{{client_id}}

Edits the max number of channels that a specific client can have.

The maximum number of channels permitted per Client is 10 by default. This can be increased or decreased by calling this endpoint and setting the max_channels property in the payload.

Request example

curl --request PATCH --url https://hub.360dialog.io/api/v2/partners/partner_id/clients/client_id --header 'Authorization: ' --header 'Content-Type: application/json' --data '{ "partner_payload": "", "max_channels": 42 }'

Path Parameters

NameTypeDescription

client_id*

string

Client ID

partner_id*

string

Partner ID

Request Body

NameTypeDescription

partner_payload*

string

Can be requested with the Get list of clients associated to your Partner Hub endpoint

max_channels

integer

How many channels do you want this Client Hub to be able to create

{
  "id": "string",
  "name": "string",
  "status": "active",
  "organisation": "string",
  "meta_info": {
    "business_vertical": "string",
    "timezone": "string",
    "about": "string",
    "business_description": "string",
    "use_case": "string"
  },
  "contact_info": {
    "webpage_url": "string",
    "phone": "string",
    "language": "string",
    "country": "string",
    "street_name": "string",
    "city": "string",
    "email": "string",
    "full_name": "string",
    "zip_code": "string"
  },
  "contact_user": {
    "phone": "string",
    "email": "string",
    "name": "string"
  },
  "partner_payload": "string",
  "created_at": "string",
  "created_by": {
    "user_id": "string",
    "user_name": "string"
  },
  "modified_at": "string",
  "modified_by": {
    "user_id": "string",
    "user_name": "string"
  },
  "max_channels": 0
}

Cancel Subscription for a specific Number/Channel

Besides the button "Cancel payment on behalf of the client" in the Partner Hub, you can use the endpoint below to set cancellation request on a channel.

Once requested, we will stop the subscription charges and allow the client to pay us directly if they wish to. Your client will receive an automated email notification informing about your action. The cancellation rules explained in the Cancellation document will still apply.

POST https://hub.360dialog.io/api/v2/partners/{{partner_id}}/clients/{{client_id}}/channels/{{channel_id}}/control/cancellation_request

Cancels the subscription for a channel

Example Request curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/clients/client_id/channels/channel_id/control/cancellation_request --header 'Accept: application/json' --header 'Authorization: ' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

channel_id*

string

client_id*

String

parter_id*

String

{
  "id": "string",
  "client_id": "string",
  "account_mode": "string",
  "billing_started_at": "string",
  "terminated_at": "string",
  "status": "string",
  "has_inbox": true,
  "is_oba": true,
  "current_limit": "string",
  "current_quality_rating": "string",
  "client": {
    "id": "string",
    "name": "string",
    "contact_info": {
      "webpage_url": "string",
      "phone": "string",
      "language": "string",
      "country": "string",
      "street_name": "string",
      "city": "string",
      "email": "string",
      "full_name": "string",
      "zip_code": "string"
    }
  },
  "setup_info": {
    "phone_number": "string",
    "phone_name": "string",
    "was_in_use": true,
    "ivr": true,
    "verification_method": "string",
    "certificate": "string",
    "new_name_status": "string",
    "default_language": "string",
    "has_integration_layer": true,
    "error": "string",
    "configuration_type": "string",
    "region": "string",
    "shards_number": 0
  },
  "waba_account": {
    "id": "string",
    "fb_account_status": "string",
    "on_behalf_of_business_info": {
      "id": "string",
      "name": "string",
      "status": "string",
      "type": "string"
    }
  },
  "integration": {
    "enabled": true
  },
  "hub_status": "string"
}

Partner Payment: Allow Clients to Add Phone Numbers

This endpoint helps Partners with Partner Payment settings to gain control over the process of their clients adding or porting numbers through the Client Hub, ensuring that all numbers that their clients add are attached to their own software/product and billing system.

The default value is ON. Once turned OFF, clients won't be able to see the "Add Number" button in the 360dialog Client Hub. You can either toggle it in the 360dialog Hub or patch the configuration in the Partner API endpoint.

Keep in mind that this tool's functionality is limited to managing number additions exclusively within the Client Hub and does not extend to the Integrated Onboarding process, nor provide advanced security features to ensure protection against fraudulent activities.

PATCH https://hub.360dialog.io/api/v2/partners/{partner_id}

If you have Partner Payment settings, you can control if a client can add new phone numbers to their account with this request.

Example request curl --request PATCH --url https://hub.360dialog.io/api/v2/partners/partner_id --header 'Accept: application/json' --header 'Authorization: ' --header 'Content-Type: application/json' --data '{ "webhook_url": "string", "partner_redirect_url": "string", "allow_client_to_add_phone_no": true }'

Path Parameters

NameTypeDescription

partner-id*

String

Request Body

NameTypeDescription

allow_client_to_add_phone_no*

boleean

default: true

partner_redirect_url*

string

webhook_url*

string

{
  "webhook_url": "string",
  "partner_redirect_url": "string",
  "brand_name": null,
  "id": "string",
  "logo_url": null,
  "onboarding_deeplink_add_params": true,
  "payment_plan": {},
  "payment_required": true
}

Cloud API Local Storage

With such settings enabled, Cloud API uses a localized storage in the specified country for persisting message content, instead of using its default storage based in the US. Alternatively, by disabling Local Storage, Cloud API reverts to its default storage based in the US.

If you wish to change the local storage of a WABA, you can use the Partner API. Note that you will need to receive a pin code in the phone number to confirm the change.

Enable Local Storage

POST /https://hub.360dialog.io/api/v2 /partners/{partner_id}/clients/{client_id}/channels/{channel_id}/control/enable_local_storage

Request Example: curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/clients/client_id/channels/channel_id/control/enable_local_storage --header 'Accept: application/json' --header 'Authorization: Bearer 123' --header 'Content-Type: application/json' --data '{ "data_localization_region": "DE" }'

Path Parameters

NameTypeDescription

channel_id*

String

The ID of the channel. Example: exampleCH

client_id*

String

The ID of the client.

Example: exampleCL

partner_id*

String

The ID of the partner.

Example: examplePA

Request Body

NameTypeDescription

data_localization_region*

string

Australia, value: AU

Indonesia, value: ID

South Africa, value: ZA

India, value: IN

Canada, value: CA

Japan, value: JP

Singapore, value: SG

South Korea, value: KR

Germany, value: DE

Switzerland, value: CH

United Kingdom, value: GB

Brazil, value: BR Bahrain, value: BH

{
  "meta": {
    "success": true,
    "http_code": 200,
    "developer_message": "Local storage setting successfully adjusted."
  }
}

Disable Local Storage

POST https://hub.360dialog.io/api/v2 /partners/{partner_id}/clients/{client_id}/channels/{channel_id}/control/disable_local_storage

Request Example: curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/clients/client_id/channels/channel_id/control/disable_local_storage --header 'Accept: application/json' --header 'Authorization: Bearer 123' --header 'Content-Type: application/json'

Path Parameters

NameTypeDescription

channel_id*

String

The ID of the channel. Example: exampleCH

client_id*

String

The ID of the client.

Example: exampleCL

partner_id*

String

The ID of the partner.

Example: examplePA

{
  "meta": {
    "success": true,
    "http_code": 200,
    "developer_message": "Local storage setting successfully adjusted."
  }
}

If you need any assistance, please reach out to our Support Team with the specific location, and we will configure this feature for you. Once enabled, you can see the configured local storage from the Partner Hub.

Set Default Data Localization Region Settings

Use this endpoint to set default data localization region to numbers associated to your Partner Account.

PATCH https://hub.360dialog.io/api/v2 /partners/{partner_id}/settings/default_data_localization_region

Request Example curl --request PATCH --url https://hub.360dialog.io/api/v2/partners/partner_id/settings/default_data_localization_region --header 'Accept: application/json' --header 'Authorization: Bearer 123' --header 'Content-Type: application/json' --data '{ "default_data_localization_region": "string" }'

Path Parameters

NameTypeDescription

partner_id*

string

Request Body

NameTypeDescription

default_data_localization_region*

String

Allowed values: AU, ID, IN, JP, SG, KR, DE, CH, GB, BR, BH, ZA, CA

See Architecture and Security.

{
  "meta": {
    "developer_message": "Default data localization region updated successfully.",
    "http_code": 200,
    "success": true
  },
  "data": {
    "default_data_localization_region": "DE"
  }
}

You can also configure this setting using the Partner Hub.

Once this region is configured, it will be used as default for all Cloud API numbers registered with your Partner Account.

Filter Options

You can apply filters on Partner API endpoints by specifying parameters in the request URL to narrow down the results returned by the API. Here's a example guide on how to use filters.

Get a specific Channel ID: GET https://hub.360dialog.io/api/v2/partners/{{partner_id}}/channels?filters={"id": "{{channel_id}}"}

How to use filter?

Example: GET https://hub.360dialog.io/api/v2/partners/partner-id/clients?filters={"contact_info":"abc@xyz.com"}

- id
- name
- status
- meta_info.business_vertical
- meta_info.timezone
- meta_info.about
- meta_info.business_description
- meta_info.use_case
- contact_info.webpage_url
- contact_info.email
- contact_info.phone
- contact_info.language
- contact_info.country
- contact_info.street_name
- contact_info.city
- contact_info.zip_code
- contact_user.phone
- contact_user.email
- contact_user.name

How to use sort?

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

- id
- name
- status
- meta_info.business_vertical
- meta_info.timezone
- meta_info.about
- meta_info.business_description
- meta_info.use_case
- contact_info.webpage_url
- contact_info.email
- contact_info.phone
- contact_info.language
- contact_info.country
- contact_info.street_name
- contact_info.city
- contact_info.zip_code
- contact_user.phone
- contact_user.email
- contact_user.name
- created_at
- modified_at

How to use filter?

Example: https://hub.360dialog.io/api/v2/partners/partner-id/channels?filters={"setup_info.verification_method":"sms"}

- q (this can be used to search in multiple fields at the same time)
- meta_status
- id
- type
- status
- client_id
- version
- is_migrated
- account_mode
- terminated_at
- profile_info.about_text
- profile_info.business_vertical
- profile_info.business_description
- use_case_description
- profile_info.country
- profile_info.street_name
- profile_info.city
- profile_info.contact_email
- profile_info.zip_code
- profile_info.webpage_url
- setup_info.phone_number (you can also use "q" to search in this field)
- setup_info.phone_name (you can also use "q" to search in this field)
- setup_info.was_in_use
- setup_info.ivr
- setup_info.verification_method
- setup_info.default_language
- created_at
- modified_at
- project.id
- project.name
- project.license_model
- project.inbox
- project.api_user_email
- project.status
- project.created_at
- project.modified_at
- client.id
- client.name (you can also use "q" to search in this field)
- client.organisation
- client.status
- client.partner_payload (you can also use "q" to search in this field)
- client.meta_info.business_vertical
- client.meta_info.timezone
- client.meta_info.about
- client.meta_info.business_description
- client.meta_info.use_case
- client.contact_info.webpage_url
- client.contact_info.phone
- client.contact_info.language
- client.contact_info.country
- client.contact_info.street_name
- client.contact_info.city
- client.contact_info.email
- client.contact_info.zip_code
- client.contact_user.phone
- client.contact_user.email
- client.contact_user.name
- client.created_at
- client.modified_at
- integration.id
- integration.app_id
- integration.type
- integration.stack_id
- integration.state
- integration.parameters.default_language
- integration.parameters.verification_method
- integration.parameters.app_name
- integration.parameters.organisation
- integration.parameters.api_user_email
- integration.created_at
- integration.modified_at
- waba_account.id
- waba_account.name
- waba_account.namespace
- waba_account.status
- waba_account.external_id
- waba_account.fb_business_id (you can also use "q" to search in this field)
- waba_account.on_behalf_of_business_info.id
- waba_account.on_behalf_of_business_info.name
- waba_account.on_behalf_of_business_info.status
- waba_account.on_behalf_of_business_info.type
- waba_account.created_at
- waba_account.modified_at
- channel_settings.ctwa_enabled
- channel_settings.settings.tier

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

- id
- type
- status
- profile_info.about_text
- profile_info.business_vertical
- profile_info.business_description
- profile_info.use_case_description
- profile_info.country
- profile_info.street_name
- profile_info.city
- profile_info.contact_email
- profile_info.zip_code
- profile_info.webpage_url
- setup_info.phone_number
- setup_info.phone_name
- setup_info.was_in_use
- setup_info.ivr
- setup_info.verification_method
- setup_info.default_language
- created_at
- modified_at
- project.id
- project.name
- project.license_model
- project.inbox
- project.api_user_email
- project.status
- project.created_at
- project.modified_at,
- client.id
- client.name
- client.organisation
- client.status
- client.partner_payload
- client.meta_info.business_vertical
- client.meta_info.timezone
- client.meta_info.about
- client.meta_info.business_description
- client.meta_info.use_case,client.contact_info.webpage_url
- client.contact_info.phone,
- client.contact_info.language
- client.contact_info.country
- client.contact_info.street_name
- client.contact_info.city
- client.contact_info.email
- client.contact_info.zip_code
- client.contact_user.phone
- client.contact_user.email
- client.contact_user.name
- client.created_at
- client.modified_at,
- integration.id
- integration.app_id
- integration.type
- integration.stack_id
- integration.state
- integration.parameters.default_language
- integration.parameters.verification_method
- integration.parameters.app_name
- integration.parameters.organisation
- integration.parameters.api_user_email
- integration.created_at
- integration.modified_at
- waba_account.id
- waba_account.name
- waba_account.namespace
- waba_account.status
- waba_account.external_id
- waba_account.fb_business_id
- waba_account.on_behalf_of_business_info.id
- waba_account.on_behalf_of_business_info.name
- waba_account.on_behalf_of_business_info.status
- waba_account.on_behalf_of_business_info.type
- waba_account.created_at
- waba_account.modified_at
- channel_settings.ctwa_enabled

Channel Statuses

The hub_status property indicates the channel status.

hub_statusdescription

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

PlaceholderDescriptionExample 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

NameDescription

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.

GET info/balance?start_date=1691629200&end_date=1691758799&granularity=day

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

Last updated