Alterar Canais da Sub-Conta
Define quais canais uma sub-conta pode usar, e quantos de cada.
PUT /api/webhooks/agency/:agency_key/sub-accounts/:ref/channels
POST /api/webhooks/agency/:agency_key/sub-accounts/:ref/channelsAs duas formas sao identicas. O atalho POST existe para ferramentas que nao conseguem enviar PUT com corpo.
Autenticacao
Requer token Bearer com o escopo sub_account.channels. Veja API de Entrada da Agencia.
Parametros de Caminho
| Parametro | Tipo | Descricao |
|---|---|---|
ref | string | UUID da sub-conta, ou ext:<external_ref> |
Corpo da Requisicao
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
channels | object | Sim | O estado final desejado de todos os canais |
Objeto channels
| Campo | Tipo | Descricao |
|---|---|---|
linkedin | number | Contas de LinkedIn permitidas (0–100) |
whatsapp | number | Numeros de WhatsApp permitidos (0–100) |
instagram | number | Contas de Instagram permitidas (0–100) |
email_marketing | number | Dominios de envio permitidos (0–100) |
O objeto e declarativo
channels e o estado final, nao um delta. Um canal omitido vai a zero e e desabilitado. Para aumentar o LinkedIn mantendo o WhatsApp, envie os dois.
Modulos que nao sao canais — CRM, campanhas, academy — nunca sao alterados por esta chamada.
Aumentar o total de canais cobraveis cobra da sua agencia na hora, pro-rata ate o fim do ciclo atual, no cartao cadastrado. Se a cobranca for recusada, nada e aplicado e a chamada devolve 402 SEAT_CHARGE_FAILED. Reduzir a quantidade nao gera credito.
Resposta
{
"ok": true,
"event_id": "7c1e9a44-3f7b-4d1b-8f2e-6c5a1b0d9e83",
"data": {
"id": "a1b2c3d4-5678-4e9f-a0b1-c2d3e4f5a6b7",
"channels": {
"linkedin": 3,
"whatsapp": 1,
"instagram": 0,
"email_marketing": 0
},
"delta_channels": 1,
"seat_charge": {
"ok": true,
"paid": true,
"chargedCents": 2450,
"addedChannels": 1
}
}
}delta_channels e a variacao de canais cobraveis. seat_charge e null quando nada foi cobrado.
Exemplo
cURL
curl --request PUT \
--url "https://api.getraze.co/api/webhooks/agency/AGENCY_KEY/sub-accounts/ext:cliente-42/channels" \
--header "Authorization: Bearer SEU_TOKEN" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $(uuidgen)" \
--data '{
"channels": { "linkedin": 3, "whatsapp": 1 }
}'JavaScript
const response = await fetch(
`https://api.getraze.co/api/webhooks/agency/${agencyKey}/sub-accounts/ext:cliente-42/channels`,
{
method: 'PUT',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({
channels: { linkedin: 3, whatsapp: 1 }
})
}
);
const data = await response.json();Python
import requests, uuid
response = requests.put(
f'https://api.getraze.co/api/webhooks/agency/{agency_key}/sub-accounts/ext:cliente-42/channels',
headers={
'Authorization': f'Bearer {token}',
'Idempotency-Key': str(uuid.uuid4())
},
json={'channels': {'linkedin': 3, 'whatsapp': 1}}
)
data = response.json()Erros
| Status | Codigo | Descricao |
|---|---|---|
| 400 | MISSING_FIELDS | channels esta ausente |
| 400 | INVALID_CHANNELS | Canal desconhecido, ou valor fora de 0–100 |
| 401 | UNAUTHORIZED | Token ausente, desconhecido ou revogado |
| 402 | SEAT_CHARGE_FAILED | A cobranca pro-rata foi recusada; nenhuma alteracao foi aplicada |
| 403 | INVALID_SCOPE | O token nao tem sub_account.channels |
| 403 | SUB_ACCOUNT_FORBIDDEN | A sub-conta pertence a outra agencia |
| 404 | SUB_ACCOUNT_NOT_FOUND | Nenhuma sub-conta viva para essa referencia |
| 409 | TRIAL_CHANNEL_LOCKED | Durante o trial gratuito apenas o WhatsApp esta disponivel |