Reenviar lote
Reenvia as notificações elegíveis de um lote — todas, apenas as que falharam, ou uma seleção específica.
https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/{batchId}/resendX-API-KEYAssíncrono — o processamento continua depois da respostaReenvia em uma única chamada as notificações elegíveis de um lote. É a forma econômica de tratar falhas em massa: um lote de 500 itens com 30 falhas custa uma requisição, não trinta.
batchIduuidobrigatórioIdentificador do lote.
onlyFailedbooleanopcionalSe true, reenvia apenas os itens com status FALHA_ENVIO.
itemIdsuuid[]opcionalLista de itens específicos a reenviar. Se omitida, reenvia todos os itens elegíveis do lote.
Combinando os filtros
| Body | Efeito |
|---|---|
{} | Reenvia todos os itens elegíveis do lote |
{ "onlyFailed": true } | Reenvia apenas os itens com falha de envio |
{ "itemIds": ["…", "…"] } | Reenvia apenas os itens listados |
Fluxo recomendado para tratar falhas
- Consulte os itens do lote filtrando por falha: Listar itens do lote.
- Se as falhas forem de contato inválido, corrija o cadastro antes de reenviar — reenviar para o mesmo número errado falha de novo.
- Reenvie com
onlyFailed: true. - Reconsulte o lote depois de alguns minutos para confirmar o resultado.
count é o que foi enfileirado
O count da resposta indica quantos itens foram aceitos para reenvio, não quantos foram
entregues. O envio continua de forma assíncrona.
Cuidado com reenvio total
Chamar este endpoint com {} reenvia todos os itens elegíveis — inclusive os que já foram
entregues com sucesso. Isso gera mensagem duplicada para o destinatário e custo de envio. Prefira
sempre onlyFailed: true ou uma lista explícita de itemIds.
Erros
| Código | Causa |
|---|---|
401 | API key ausente, inválida ou inativa |
429 | Limite de requisições excedido |
curl -X POST "https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d/resend" \
-H "Content-Type: application/json" \
-H "X-API-KEY: arb_live_SUA_CHAVE" \
-d '{
"onlyFailed": true
}'const batchId = '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d';
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/${batchId}/resend`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'arb_live_SUA_CHAVE',
},
body: JSON.stringify({ onlyFailed: true }),
}
);
const { data } = await response.json();
console.log(`${data.count} notificações reenviadas`);{
"itemIds": [
"7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
"8d2e3f4a-5b6c-7d8e-9f0a-1b2c3d4e5f6a"
]
}{
"success": true,
"data": {
"count": 27
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or inactive API key."
}
}{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Try again later."
}
}