Três chamadas: obter o token, descobrir os IDs e enviar.
Antes de começar
Estes itens são feitos na interface por um administrador da empresa:
- Uma aplicação criada, com o
client_ide oclient_secretguardados. - Um template ativo no canal que você vai usar.
- Para e-mail: um domínio verificado e um remetente.
Ambientes
Faça a integração e os testes em homologação. Em produção todo envio é real e cobrado.
| Ambiente | URL base ($NOTIFICA_URL) |
|---|---|
| Homologação | https://notifica.hom.bry.com.br/api/v1 |
| Produção | https://notifica.bry.com.br/api/v1 |
export NOTIFICA_URL="https://notifica.hom.bry.com.br/api/v1"
1. Obter o token
curl -X POST "$NOTIFICA_URL/auth/token" \
-H "Content-Type: application/json" \
-d '{"client_id": "SEU_CLIENT_ID", "client_secret": "SEU_CLIENT_SECRET"}'
{
"access_token": "eyJhbGciOi...",
"refresh_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 300
}
Guarde o token e reutilize até perto de expires_in. Não peça um token por envio: a rota de token aceita 10 pedidos por minuto.
2. Descobrir os IDs
curl "$NOTIFICA_URL/templates?channel=email&status=active" \
-H "Authorization: Bearer $TOKEN"
curl "$NOTIFICA_URL/senders" \
-H "Authorization: Bearer $TOKEN"
Anote o id do template e o id do remetente. Eles mudam pouco: seu sistema pode guardá-los em configuração.
3. Enviar
curl -X POST "$NOTIFICA_URL/notifications" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: contrato-2024-118-aviso-1" \
-d '{
"name": "Aviso de vencimento",
"contacts": [
{ "name": "Maria Souza", "email": "[email protected]",
"variables": { "contrato": "2024-118" } }
],
"channels": [
{ "channel": "email", "template_id": 7, "sender_id": 3 }
]
}'
{
"batch_id": "01J9Z3K7Q8...",
"total": 1,
"charged": 1,
"rejected": 0,
"status": "processing"
}
| Campo | Significado |
|---|---|
batch_id | Identificador do lote. Guarde para localizar o envio na interface. |
total | Contatos recebidos: os informados em contacts mais os membros dos grupos. |
charged | Mensagens cobradas, contadas por canal e destino. Um contato num envio por e-mail conta 2. |
rejected | Contatos repetidos (mesmo telefone e mesmo e-mail) que ficaram fora do lote. |
status | No aceite é sempre processing. |
Por isso total - rejected nem sempre é igual a charged.
202 quer dizer aceito, não entregue
A entrega acontece em seguida, de forma assíncrona. Acompanhe o envio pela interface usando o
batch_id.
Repetindo um envio
Sempre envie
Idempotency-Key. Se a requisição falhar no meio (timeout, 500), repita com a mesma chave: em até 24 horas, a API devolve a resposta original em vez de criar e cobrar outro lote.

