Obter um lote
Retorna os detalhes completos de um lote de notificações, incluindo totais e custos.
GET
https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/{batchId}Autenticação
X-API-KEYSíncrono — a resposta já traz o resultadoRetorna os detalhes de um lote específico: status, totais por situação e informações de custo. É o endpoint de polling recomendado para acompanhar o processamento de um lote depois do upload.
Parâmetros de rota
batchIduuidobrigatórioIdentificador do lote.
Acompanhando o processamento
Depois de um upload de planilha, o lote passa pela leitura e validação das linhas antes de ficar pronto para envio. Consulte este endpoint periodicamente até que os totais estabilizem.
Polling com backoff
async function aguardarValidacao(batchId, apiKey, maxTentativas = 20) {
const base = 'https://external-api.arbitralis.com.br/api/external/v1';
for (let tentativa = 0; tentativa < maxTentativas; tentativa += 1) {
const response = await fetch(`${base}/notifications/batches/${batchId}`, {
headers: { 'X-API-KEY': apiKey },
});
const { data } = await response.json();
if (data.status !== 'PROCESSANDO') {
return data;
}
await new Promise((resolve) => setTimeout(resolve, Math.min(2 ** tentativa, 30) * 1000));
}
throw new Error(`Lote ${batchId} ainda em processamento após ${maxTentativas} verificações`);
}Prefira o stream ao polling
Se a sua stack suporta Server-Sent Events, o stream de status entrega as mudanças em tempo real e não consome o seu limite a cada verificação.
Totais
| Campo | Significado |
|---|---|
totalItens | Total de itens no lote |
validos | Itens que passaram na validação |
invalidos | Itens rejeitados — detalhe em Exportar erros em CSV |
enviados | Itens efetivamente despachados |
pendentes | Itens aguardando envio |
Erros
| Código | Causa |
|---|---|
401 | API key ausente, inválida ou inativa |
404 | Lote não encontrado neste workspace |
429 | Limite de requisições excedido |
Requisição
curl -X GET "https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" \
-H "X-API-KEY: arb_live_SUA_CHAVE"const batchId = '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d';
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/${batchId}`,
{ headers: { 'X-API-KEY': 'arb_live_SUA_CHAVE' } }
);
const { data: lote } = await response.json();import requests
batch_id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
response = requests.get(
f"https://external-api.arbitralis.com.br/api/external/v1/notifications/batches/{batch_id}",
headers={"X-API-KEY": "arb_live_SUA_CHAVE"},
)
lote = response.json()["data"]Resposta
{
"success": true,
"data": {
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"batchName": "Cobrança agosto/2026",
"status": "ENVIADO",
"sendMethod": "DIGITAL",
"totais": {
"totalItens": 250,
"validos": 243,
"invalidos": 7,
"enviados": 243,
"pendentes": 0
},
"dataCriacao": "2026-08-07T14:32:10.000Z",
"dataAtualizacao": "2026-08-07T15:10:44.000Z"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Batch not found.",
"errorEventId": "c2e4d7f9-3b55-4ea0-8021-6d4c9f3b2e44"
}
}