A customer account (end-customer account, child account) is required to connect messengers, send and receive messages, interact with the CRM and other Wazzup tools.
To manage end‑customer accounts, use Basic authentication with your Wazzup affiliate account credentials in the request header: Authorization: Basic base64(email:password)
White Label Partner Method: use this to independently create an end-customer account. You will then receive the end-customer's account_id, which is required to obtain user access tokens.
POST /v2/accounts| Parameter. Required are marked with * | Type | Description |
name* |
string |
Account name. Minimum 3 characters |
lang* |
string |
Account language: en, es, pt |
currency* |
string |
Account currency: EUR, USD, KZT |
country* |
string |
Account country: US, EU, KZ |
timezone* |
number |
Account timezone. Minimum -12, maximum 14. For example, for Riga timezone specify 2 |
Request example:
curl -L 'https://tech.wazzup24.com/v2/accounts' \
-H 'Authorization: Basic base64(email:password)' \
-H 'Content-Type: application/json' \
-d '{
"name": "Demo Client",
"lang": "en",
"currency": "EUR",
"country": "EU",
"timezone": 2
}'
Response example:
{
"data": {
"account": {
"account_id": 12345678,
"name": "Demo Client"
}
},
"meta": {
"timestamp": 1763026882
}
}
Result: an end-customer account has been created. Save its account_id. Next, obtain client tokens to add channels, send messages, and use other API methods on behalf of the end customer.
This method returns the channels and payment information for the specified end-customer account.
GET /v2/accounts/{account_id}Path parametersaccount_id — end-customer account ID. Must be an 8-digit numeric string.
Query parameters
Use the expand parameter with the following values:
billing, determines who was last billed for the service: the partner or the end-customer;channels, returns the account's channels information;subscriptions, returns the account's subscription details.Request example
curl -L 'https://tech.wazzup24.com/v2/accounts/12345678?expand=billing,channels,subscriptions' \ -H 'Authorization: Basic base64(email:password)'
{
"data": {
"id": 12345678,
"registered_at": "01.01.2022",
"assigned_at": "01.01.2022",
"billing": {
"last_payment": "client"
},
"channels": [
{
"id": "5a3a14e-2ea3-4fdd-953e-caf12609fb",
"name": "79528462093",
"transport": "tgapi",
"subscription_id": "16fdb3-998d-4948-888c-672233e6be"
}
],
"subscriptions": {
"id": "16fdb3-998d-4948-888c-6729c2e6be",
"expired_at": "01.01.2022",
"has_auto_renewal": true,
"tariff": "max"
}
},
"meta": {
"timestamp": 1762372398
}
}
response │ ├── data * │ ├── id * │ ├── registered_at * │ ├── assigned_at * │ ├── billing │ │ └── last_payment * │ │ │ ├── channels[] │ │ ├── id * │ │ ├── name * │ │ ├── transport * │ │ └── subscription_id * │ │ │ └── subscriptions │ ├── id * │ ├── expired_at * │ ├── has_auto_renewal * │ └── tariff * │ └── meta * └── timestamp *
| Response parameter. Required are marked with * |
Type | Description |
data* |
object data |
End-customer account data |
meta* |
object meta |
Response metadata |
| Parameter. Required are marked with * |
Type | Description |
id* |
number |
Account ID |
registered_at* |
string |
Registration date |
assigned_at* |
string |
Date the end customer was assigned to the partner |
billing |
object billing |
Billing information |
channels |
array(object) channels |
List of end-customer account channels |
subscriptions |
object subscriptions |
List of end-customer account subscriptions |
| Parameter. Required are marked with * |
Type | Description |
last_payment* |
string |
Who made the last payment: client, partner |
| Parameter. Required are marked with * |
Type | Description |
id* |
string |
Channel ID |
name* |
string |
Channel name |
transport* |
string |
Channel transport type: instagram, telegram for Telegram Bot, tgapi for Telegram, vk, wapi for WABA, whatsapp, viber, max, avito |
subscription_id* |
string |
Subscription ID |
| Parameter. Required are marked with * |
Type | Description |
id* |
string |
Subscription ID |
expired_at* |
string |
Subscription expiration date |
has_auto_renewal* |
boolean |
Auto-renewal enabled |
tariff* |
string |
Subscription tariff: start, inbox, pro, max, waba, free |
| Parameter. Required are marked with * |
Type | Description |
timestamp* |
number |
Response date |
Result: Information about the account_id you created earlier.
GET /v2/accountsQuery parameters
Use the expand parameter with the following values:
billing, determines who was last billed for the service: the partner or the end-customer;channels, returns the account's channels information;subscriptions, returns the account's subscription details.limit — the maximum number of records to return. Default: 50offset — pagination offset. Default: 0
Request example without additional query parameters:
curl -L 'https://tech.wazzup24.com/v2/accounts' \ -H 'Authorization: Basic base64(email:password)'
Response example:
{
"data": [
{
"id": 12345678,
"registered_at": "2025-11-06T09:32:09.760Z",
"assigned_at": "2025-11-06T09:32:09.760Z"
},
{
"id": 11111111,
"registered_at": "2025-11-06T09:35:12.765Z",
"assigned_at": "2025-11-06T09:35:12.765Z"
},
{
"id": 22222222,
"registered_at": "2025-11-12T10:08:25.814Z",
"assigned_at": "2025-11-12T10:08:25.814Z"
}
],
"meta": {
"timestamp": 1763031150
}
}
Result: The response array will contain a list of end-customer accounts associated with your partner account.
PATCH /v2/accounts/{account_id}Path parametersaccount_id — Account ID.
Request parameters
Currently, this method only allows updating the timezone. Therefore, only pass the timezone parameter with the new value.
If you include other parameters, the corresponding account information will not be updated, and no error will be returned in the response.
Request example:
curl -L -X PATCH 'https://tech.wazzup24.com/v2/accounts/12345678' \
-H 'Authorization: Basic base64(email:password)' \
-H 'Content-Type: application/json' \
-d '{
"timezone": 2
}'
Response example:
{
"data": {
"account_id": 12345678,
"timezone": 2,
"currency": "EUR",
"email": "[email protected]",
"lang": "en",
"name": "Demo Client LTD",
"type": "CHILD_POSTPAY"
},
"meta": {
"timestamp": 1762372398
}
}
Result: The account timezone has been updated.
| HTTP | Error | When it occurs | How to resolve |
| 400 | BAD_REQUEST |
Invalid field values: language, currency, timezone, or others | Verify the values and their format |
| 401 | UNAUTHORIZED |
Authorization Error | Verify that the correct token is provided in the Authorization header |
| 403 | FORBIDDEN |
The partner does not own the specified account_id |
Verify the account_id — it must belong to your partner account |
| 404 | NOT_FOUND |
Account not found | Verify the account_id |
| 422 | VALIDATION_FAILED |
Missing required fields or constraint violations | Correct the request |
After authorization: