Click2CallAddBlacklistPhone¶
POST click2call/blacklist
Adds a number to the do-not-call list of the brand. Once listed, no manager can dial it: the check runs in Click2CallStartCall before the provider is contacted, so a blocked number costs neither a call nor a cent.
source is what makes the list auditable later: a regulator complaint and a customer
asking not to be called look the same in a list of numbers, but they are very different when
someone asks why a number is blocked.
Access Control¶
Allowed roles: admin, leader, manager. The entry belongs to the brand of the caller.
Request¶
POST https://{broker_domain}/click2call/blacklist
{
"phone": "+380 95 000 00 00",
"source": "CUSTOMER_REQUEST",
"reason": "Customer asked not to be contacted"
}
{
"command": "Click2CallAddBlacklistPhone",
"extID": "1",
"data": {
"phone": "+380 95 000 00 00",
"source": "CUSTOMER_REQUEST",
"reason": "Customer asked not to be contacted"
}
}
const res = await platform.Click2CallAddBlacklistPhone({
phone: "+380 95 000 00 00",
source: "CUSTOMER_REQUEST",
reason: "Customer asked not to be contacted"
});
Request Data¶
| Field | Type | Required | Description |
|---|---|---|---|
phone |
string | Yes | Number in any human format; stored as digits only |
source |
enum | No | Where the block came from: MANUAL, IMPORT, REGULATOR, CUSTOMER_REQUEST, SYSTEM. Default MANUAL |
reason |
string | No | Free-form explanation, up to 512 characters |
expiresAt |
string | No | YYYY-MM-DD HH:mm:ss. Empty means the block never expires |
Behavior¶
- The number is stored as digits without separators, exactly as it is normalized at dial time — otherwise
+38 095 …and38095…would be two different entries and only one of them would block. - Country and dial code are resolved from the number, so the list can be reported on by destination.
- Blacklisting an already listed number updates the existing entry instead of creating a second one.
expiresAtexists for temporary blocks — "do not call for a month" is a real request, and a permanent entry would quietly lose a lead forever.
Response Data¶
The entry is returned flat. created: false means an existing entry was updated, restored: true that a previously removed entry came back.
{
"id": 31,
"brand": "default",
"phone": "380950000000",
"countryCode": "380",
"countryIso": "UA",
"source": "CUSTOMER_REQUEST",
"reason": "Customer asked not to be contacted",
"expiresAt": null,
"createdAt": "2026-08-24 13:44:02",
"created": true,
"restored": false
}
Errors¶
| Code | Error | Description |
|---|---|---|
400 |
VALIDATION_ERROR |
Number is too short to be a phone number |
500 |
INTERNAL_ERROR |
Storage error |