Confirmar lote
Confirma um lote de negociações pendente e dispara a execução dos agentes.
https://external-api.arbitralis.com.br/api/external/v1/extrajudicial/negotiations/batches/{id}/confirmX-API-KEYAssíncrono — o processamento continua depois da respostaConfirma um lote em status PENDING — tipicamente vindo de um upload de planilha — e dispara a execução dos agentes nos itens válidos.
É o passo que efetivamente inicia as conversas. Antes dele, o lote é apenas uma lista validada.
iduuidobrigatórioIdentificador do lote.
startModestringobrigatórioNOW inicia todos os itens válidos imediatamente. SCHEDULED exige scheduledFor.
NOWSCHEDULEDscheduledForstringopcionalData e hora de início em ISO 8601. Obrigatório quando startMode é SCHEDULED.
Pré-condições
| Condição | Exigência |
|---|---|
| Status do lote | Deve ser PENDING. Qualquer outro status retorna 400 |
| Itens elegíveis | Ao menos um item em PENDING ou VALIDATED. Sem isso, retorna 400 |
Só lotes PENDING podem ser confirmados
Um lote já confirmado está em PROCESSING ou além, e tentar confirmá-lo de novo devolve 400.
Isso protege contra disparo duplicado em caso de retry — mas significa que o retry precisa tratar
esse 400 como sucesso idempotente, não como falha.
Fluxo recomendado
- Envie a planilha.
- Aguarde a validação: consulte Obter um lote até o status sair de
VALIDATING. - Revise os itens com problema em Listar itens do lote com
?status=ERROR. - Confirme com
startMode: "NOW"ou agende. - Acompanhe o progresso pelos totais em Obter um lote.
Confirmar dispara conversas reais
Com startMode: "NOW", os agentes começam a enviar mensagens de WhatsApp imediatamente para todos
os itens válidos. Revise o lote antes — não há como cancelar depois do disparo.
Erros
| Código | Causa |
|---|---|
400 | Status diferente de PENDING, sem itens válidos, ou body inválido |
401 | API key ausente, inválida ou inativa |
404 | Lote não encontrado neste workspace |
429 | Limite de requisições excedido |
curl -X POST "https://external-api.arbitralis.com.br/api/external/v1/extrajudicial/negotiations/batches/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d/confirm" \
-H "Content-Type: application/json" \
-H "X-API-KEY: arb_live_SUA_CHAVE" \
-d '{
"startMode": "NOW"
}'const batchId = '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d';
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/extrajudicial/negotiations/batches/${batchId}/confirm`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'arb_live_SUA_CHAVE',
},
body: JSON.stringify({ startMode: 'NOW' }),
}
);
const { data } = await response.json();{
"startMode": "SCHEDULED",
"scheduledFor": "2026-08-12T13:00:00Z"
}{
"success": true,
"data": {
"batchId": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"status": "PROCESSING"
}
}{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "Batch cannot be confirmed in status 'PROCESSING'.",
"errorEventId": "b1f3c6d8-2a44-4d9e-9f10-7c5b8e2a1d33"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Batch not found.",
"errorEventId": "c2e4d7f9-3b55-4ea0-8021-6d4c9f3b2e44"
}
}