Skip to main content

Endpoints para baixar falhas

Alias legacy CSV entidades: GET /entities/automatic/bulk/imports/{jobId}/failures.csv.
  • …/failures.csv → arquivo CSV para download (Content-Type: text/csv)
  • …/failures → JSON (Content-Type: application/json)

Modelo de três camadas

Cada falha por linha inclui code (máquina) e message (humano). Jobs legacy podem ter só error em texto livre; a API normaliza na leitura.

Três resultados possíveis por linha (entidades)

Duplicado por taxId

Bulk manual (default): duplicateTaxIdPolicy: skip_existing.
  • Mesmo taxId + mesmo type já existe → skipped_existing, código SKIPPED_DUPLICATE_TAX_ID
  • Não aparece em failures.csv
  • Contador: skippedExisting no histórico unificado
Bulk automático: entidade principal já existia → skipped_existing
  • refresh: false: SKIPPED_ENTITY_ALREADY_EXISTS — sem re-enriquecimento
  • refresh: true: SKIPPED_ENTITY_ALREADY_EXISTS_REFRESHED — criação omitida, re-enriquecimento executado
Quando é falha (failed):

Códigos de falha por linha (failures[] / failures.csv)

Códigos de skip (skips[] — só entidades, não é falha)

Matriz de risco / regras de negócio: a execução de regras ocorre depois de criar a linha. Resultados de regras não aparecem em failures.csv / JSON failures[] e não revertem a linha. Use alertas, score de risco e timelines de auditoria.

Códigos de job completo (jobFailure)

Matriz de cenários (FAQ cliente)

Cenários reproduzíveis (testes)

User events: CSV válido + mapping; uma linha com campo obrigatório vazio → GET …/user-event-jobs/{jobId}/failures. Entidades (manual): criar entidade com external_id=X, importar outra linha com mesmo external_idDUPLICATE_EXTERNAL_ID. Transações (job-level): validateExistingEntity=true + originExternalId=DOES_NOT_EXIST → job failed, jobFailure.code=INVALID_ENTITY_REFERENCES. Transações (row-level): batchErrorHandling=continue_collect_errors + linhas válidas misturadas com violações de constraint → entradas no endpoint de falhas.

Limites

  • Máx. 500 falhas por linha persistidas por job batch de transações (CSV + JSON podem truncar; JSON expõe truncated + failuresTotal).
Relatório completo por email (entidades): todas as linhas (created, skipped_existing, failed) com coluna code. Ver também: Importações em lote — overview.