SmsUpdateProfile¶
PUT sms/providerProfile
Updates a provider profile. Only the fields present in the request are changed, so rotating credentials does not require resending the destination lists.
Disabling a profile removes it from routing immediately. Messages already queued for it keep going: a message pinned to a profile is not silently moved to another sender, because the recipient would see a different sender name for the same conversation.
Access Control¶
Allowed role: admin, within the brand of the caller.
Request¶
PUT https://{broker_domain}/sms/providerProfile
{
"id": 3,
"credentials": {
"accountSid": "AC...",
"authToken": "new-token",
"fromNumber": "+15550001111"
}
}
{
"command": "SmsUpdateProfile",
"extID": "1",
"data": {
"id": 3,
"credentials": {
"accountSid": "AC...",
"authToken": "new-token",
"fromNumber": "+15550001111"
}
}
}
const res = await platform.SmsUpdateProfile({
id: 3,
credentials: {
accountSid: "AC...",
authToken: "new-token",
fromNumber: "+15550001111"
}
});
Request Data¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
int | Yes | Profile id |
name |
string | No | Profile name shown to managers |
description |
string | No | Free-form note |
providerId |
int | No | Provider from the catalogue |
mode |
enum | No | COMMON — one sender for everyone; INDIVIDUAL — the sender comes from the manager link |
status |
enum | No | ENABLED or DISABLED |
credentials |
object | No | Provider credentials; fields are described by the adapter, see SmsGetProviderAdapters |
senderId |
string | No | Default sender name or number for messages of this profile |
deliveryUpdateBy |
enum | No | NONE, REQUEST (module polls the provider), or WEBHOOK (provider posts delivery reports) |
allowedCountries |
array | No | Allowed destinations as ISO codes or dial codes, ["UA","380"]. Empty means every destination |
blockedCountries |
array | No | Blocked destinations, ["US","CA"]. Checked before allowedCountries |
routingPriority |
int | No | Lower value is tried first: 100 for the primary profile, 200 for a backup |
isDefault |
bool | No | Default profile of the brand; setting it clears the flag on the others |
Response Data¶
{
"id": 3,
"name": "Twilio main",
"status": "ENABLED",
"deliveryUpdateBy": "WEBHOOK",
"senderId": "ScaleTrade",
"routingPriority": 100,
"updatedAt": "2026-08-24 14:02:55"
}
Errors¶
| Code | Error | Description |
|---|---|---|
400 |
UPDATE_MODE_NOT_SUPPORTED |
Provider or adapter cannot deliver reports this way |
404 |
NOT_FOUND |
Profile or provider not found in the brand |