Skip to main content
Este guia cobre dois workflows de operador que terminam em um artefato baixável ou resolvido. Com jobs de exportação você põe um relatório na fila, consulta até ele ter sucesso e baixa o arquivo. Com disputas você abre uma disputa contra uma exceção, anexa evidências e depois a encerra como ganha ou perdida. Os dois têm escopo de tenant vindo do JWT.

Jobs de exportação


As exportações são assíncronas. Você cria um job com escopo em um contexto, consulta o status dele pelo ID e baixa o arquivo quando ele chega em SUCCEEDED. Os status são QUEUED, RUNNING, SUCCEEDED, FAILED, EXPIRED e CANCELED.

Criar um job de exportação

Faça POST na coleção de jobs de exportação do contexto. Responde 202 Accepted com o ID do job e uma URL de consulta.
  • reportType: um entre MATCHED, UNMATCHED, VARIANCE, EXCEPTIONS (os aliases MATCHES e UNMATCHED_TRANSACTIONS normalizam para esses valores).
  • format: CSV, JSON ou XML (normalizado para maiúsculas).
  • dateFrom / dateTo: YYYY-MM-DD opcional. dateFrom tem como padrão 30 dias antes de dateTo, e dateTo tem como padrão amanhã (UTC).
  • sourceId: filtro de fonte opcional.
Os jobs de exportação assíncronos não aceitam SUMMARY nem PDF. Uma requisição com qualquer um dos dois retorna 400. A janela de datas também tem um intervalo máximo. Uma requisição fora do intervalo retorna um erro em vez de uma janela cortada em silêncio.

Consultar o status do job

Leia a rota de job de nível raiz (a statusUrl da criação).
error aparece apenas quando status é FAILED. downloadUrl aparece apenas quando o job chegou a SUCCEEDED e o arquivo ainda está disponível. Você pode listar os jobs de um contexto com GET /v1/contexts/{contextId}/export-jobs, listar todos os jobs com GET /v1/export-jobs e cancelar um job na fila ou em execução com POST /v1/export-jobs/{jobId}/cancel.

Baixar o arquivo

Retorna uma URL pré-assinada, o nome original do arquivo, um checksum SHA-256 e o tempo de vida restante da URL em segundos.
Os arquivos de exportação são apagados depois de expiresAt (padrão de 7 dias). Quando um job fica EXPIRED, o arquivo não pode mais ser baixado. Rode a exportação de novo para gerá-lo outra vez.

Disputas


Você abre uma disputa contra uma exceção específica quando precisa contestar uma divergência de conciliação. O ciclo de vida dela começa em DRAFTOPEN. A partir de OPEN, uma disputa pode ir para PENDING_EVIDENCE (e voltar para OPEN) ou encerrar direto como WON / LOST. Apenas WON é terminal. Você pode reabrir uma disputa LOST para OPEN.

Abrir uma disputa

Faça POST na coleção de disputas da exceção.
category é um entre BANK_FEE_ERROR, UNRECOGNIZED_CHARGE, DUPLICATE_TRANSACTION ou OTHER. O campo openedBy registra o principal que abriu.

Enviar evidência por URL

Anexe uma referência a um arquivo de evidência já hospedado mais um comentário que o descreve.

Fazer upload de um arquivo de evidência

Envie os bytes brutos do arquivo direto para o object storage com escopo de tenant. O comentário viaja como parâmetro de query e o arquivo como corpo da requisição. Responde 201 Created com a disputa atualizada. Os content types permitidos são application/pdf, image/png, image/jpeg e text/csv. O corpo tem limite de 10 MiB.
O array evidence da disputa lista cada item de evidência guardado:
O endpoint de upload falha fechado com 503 quando você não configura o object storage. Ele rejeita corpos grandes demais com 413 e content types fora da allowlist com 415. O tenant sempre vem do JWT e a disputa vem do caminho, nunca do corpo.

Encerrar uma disputa

Registre o resultado. won define o estado como WON (terminal) ou LOST (reabrível), com uma nota resolution obrigatória.
Você pode listar disputas com GET /v1/disputes e buscar uma com GET /v1/disputes/{disputeId}. O endpoint de lista filtra por state, category e intervalo de datas, e oferece suporte a ordenação e paginação por cursor.

Códigos de resposta