Listar lotes
Retorna a lista paginada de lotes de notificação do workspace, com filtros por status, método, nome e período.
https://external-api.arbitralis.com.br/api/external/v1/notifications/batchesX-API-KEYSíncrono — a resposta já traz o resultadoRetorna os lotes de notificação do workspace, com paginação e filtros. Use para montar painéis de acompanhamento ou reconciliar o que foi enviado em um período.
statusstringopcionalFiltra por status do lote — por exemplo RASCUNHO, AGUARDANDO_ENVIO, ENVIANDO, ENVIADO, FINALIZADO.
deliveryMethodstringopcionalFiltra por método de envio.
DIGITALEMAIL_ONLYWHATSAPP_ONLYPHYSICALDIGITAL_PHYSICALbatchNamestringopcionalBusca parcial pelo nome do lote.
startDatestringopcionalRetorna lotes criados a partir desta data (ISO 8601).
endDatestringopcionalRetorna lotes criados até esta data (ISO 8601).
pageintegeropcionalpadrão 1Número da página.
pageSizeintegeropcionalpadrão 20Itens por página. Máximo 100.
sortBystringopcionalCampo de ordenação.
createdAtupdatedAtbatchNamesortOrderstringopcionalDireção da ordenação.
ascdescFormato da resposta
Este endpoint usa chaves próprias
A coleção vem em lotes (não items) e a paginação usa limit (não pageSize). Os demais
endpoints de listagem seguem o formato descrito em Paginação.
| Campo | Descrição |
|---|---|
lotes[] | Lotes da página atual |
dashboard | Agregados adicionais quando solicitados; null por padrão |
pagination.total | Total de lotes que atendem ao filtro |
pagination.page | Página atual |
pagination.limit | Itens por página |
pagination.totalPages | Total de páginas |
Campos de cada lote
| Campo | Descrição |
|---|---|
id | Identificador do lote — use nos demais endpoints |
batchName | Nome de exibição |
status | Status atual do lote |
sendMethod | Método de envio no vocabulário interno |
totais | Contagens de itens por situação |
taxaLeitura | Percentual de notificações lidas |
entregues | Quantidade de itens entregues |
pendencias | Itens com pendência de entrega |
aguardandoValidacao | true enquanto o lote está em processamento |
Reconciliação diária
Para uma rotina de reconciliação, filtre por startDate e endDate do dia anterior e ordene por
createdAt ascendente. Guarde o id de cada lote e cruze com os itens em
Listar itens do lote.
Erros
| Código | Causa |
|---|---|
400 | Parâmetros de consulta inválidos |
401 | API key ausente, inválida ou inativa |
429 | Limite de requisições excedido |
curl -X GET "https://external-api.arbitralis.com.br/api/external/v1/notifications/batches?status=ENVIADO&page=1&pageSize=20&sortBy=createdAt&sortOrder=desc" \
-H "X-API-KEY: arb_live_SUA_CHAVE"const params = new URLSearchParams({
deliveryMethod: 'DIGITAL',
startDate: '2026-08-01T00:00:00Z',
endDate: '2026-08-31T23:59:59Z',
page: '1',
pageSize: '50',
sortBy: 'createdAt',
sortOrder: 'desc',
});
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/notifications/batches?${params}`,
{ headers: { 'X-API-KEY': 'arb_live_SUA_CHAVE' } }
);
const { data } = await response.json();
console.log(`${data.pagination.total} lotes encontrados`);import requests
response = requests.get(
"https://external-api.arbitralis.com.br/api/external/v1/notifications/batches",
headers={"X-API-KEY": "arb_live_SUA_CHAVE"},
params={
"status": "ENVIADO",
"page": 1,
"pageSize": 50,
"sortBy": "createdAt",
"sortOrder": "desc",
},
)
data = response.json()["data"]{
"success": true,
"data": {
"lotes": [
{
"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
},
"taxaLeitura": 62,
"entregues": 238,
"pendencias": 5,
"aguardandoValidacao": false,
"dataCriacao": "2026-08-07T14:32:10.000Z",
"dataAtualizacao": "2026-08-07T15:10:44.000Z"
}
],
"dashboard": null,
"pagination": {
"total": 37,
"page": 1,
"limit": 20,
"totalPages": 2
}
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or inactive API key."
}
}