Skip to content

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