Confirmar envio do lote
Confirma e despacha um lote de notificações — imediatamente ou em data e hora agendadas.
https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/{batchId}/confirm-sendX-API-KEYAssíncrono — o processamento continua depois da respostaConfirma um lote e dispara o envio das notificações válidas. Este é o passo que efetivamente envia as mensagens — antes dele, o lote é apenas um rascunho validado.
Use o modo now para despachar imediatamente ou schedule para agendar.
batchIduuidobrigatórioIdentificador do lote.
modestringobrigatórionow despacha imediatamente. schedule exige scheduledDate e scheduledTime.
nowschedulescheduledDatestringopcionalData do agendamento no formato YYYY-MM-DD. Obrigatório quando mode é schedule.
scheduledTimestringopcionalHora do agendamento no formato HH:MM, no fuso do servidor. Obrigatório quando mode é schedule.
recommendationAcceptedbooleanopcionalIndica que a recomendação de horário sugerida pela plataforma foi aceita.
Formato de erro diferente neste endpoint
Quando a confirmação é recusada por regra de negócio, este endpoint devolve error como string
e um code no nível raiz — diferente do envelope de erro padrão da API. Trate error como string
ou objeto ao interpretar respostas deste endpoint.
Fluxo completo do lote
1. Criar lote → POST /notifications/batches/json (ou upload de planilha)
2. Revisar validação → GET /notifications/batches/{id}
3. Corrigir inválidos → (opcional) reenviar itens com o mesmo batchCode
4. Confirmar envio → POST /notifications/batches/{id}/confirm-send
5. Acompanhar → GET /notifications/batches/{id}/itemsConfirmar é irreversível
Depois de confirmado no modo now, o disparo não pode ser cancelado pela API. Revise o lote em
Obter um lote e os itens inválidos em
Exportar erros em CSV antes de confirmar.
Agendamento
scheduledDate e scheduledTime são interpretados no fuso do servidor da Arbitralis (horário de Brasília). Um lote agendado permanece nesse estado até o horário marcado — e só então os envios são disparados.
Horários de maior conversão
Para cobrança, envios em dias úteis entre 9h e 11h ou entre 14h e 17h costumam ter melhor taxa de leitura. Evite fins de semana e horários noturnos.
Erros
| Código | Causa |
|---|---|
400 | Lote em estado que não permite envio, com erros de validação, ou body inválido |
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/confirm-send" \
-H "Content-Type: application/json" \
-H "X-API-KEY: arb_live_SUA_CHAVE" \
-d '{
"mode": "now"
}'const batchId = '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d';
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/${batchId}/confirm-send`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'arb_live_SUA_CHAVE',
},
body: JSON.stringify({ mode: 'now' }),
}
);
const body = await response.json();
if (!body.success) {
throw new Error(typeof body.error === 'string' ? body.error : body.error.message);
}{
"mode": "schedule",
"scheduledDate": "2026-08-12",
"scheduledTime": "09:30"
}{
"success": true,
"data": {
"success": true,
"message": "Lote despachado para envio."
}
}{
"success": true,
"data": {
"success": true,
"message": "Lote agendado com sucesso.",
"scheduledAt": "2026-08-12T12:30:00.000Z",
"sendAfter": "2026-08-12T12:30:00.000Z"
}
}{
"success": false,
"error": "Lote possui itens inválidos e não pode ser enviado.",
"code": "bad_request"
}