Pular para o conteúdo principal

Tratamento de Erros

Todas as responses de erro do DVS compartilham um envelope JSON comum:

{
"error_code": "071-403-document-type-not-allowed",
"message": "Provider does not have access to the requested document_type/country/agreement combination",
"additional_information": {
"document_type": "OPME",
"country_code": "BR",
"agreement_code": "BRADESCO_xxx"
}
}

Formato do error code

071-<HTTP_STATUS>-<sufixo-opcional>

  • 071 é o prefixo do DVS.
  • <HTTP_STATUS> é o status code HTTP (por exemplo, 403, 422).
  • <sufixo-opcional> distingue múltiplas causas para o mesmo status.

Erros comuns

Statuserror_codeCausaAção
401071-401Bearer token ausente ou inválidoRenove o token. Faça retry uma vez.
403071-403Token válido, mas sem a authority necessáriaVerifique o scope ao solicitar o token.
403071-403-document-type-not-allowedProvider não autorizado para essa combinação (doc_type, country, agreement)Use GET /v1/document-types para descobrir o que é permitido. Entre em contato com a OSIGU caso precise de mais acesso.
403071-403-tenant-mismatchTentativa de leitura de um recurso de outro tenantNão faça isso.
409071-409-idempotency-mismatchMesmo Idempotency-Key usado com body diferenteUse uma chave nova.
413071-413-file-too-largeArquivo inline excede 3MB (sync) / 6MB (async)Use a variante de S3 URL ou external URL.
422071-422Body falhou na validaçãoInspecione additional_information. Corrija e reenvie.
422071-422-agreement-requiredValidation request com múltiplas opções de agreementReenvie com agreement_code explícito.
422071-422-ssrf-blockedURL externa aponta para IP privado / host bloqueadoUse uma URL HTTPS pública.
422071-422-unknown-document-typedocument_type não está no catálogoUse GET /v1/document-types para ver os slugs válidos.
429071-429Cota diária excedidaAguarde até meia-noite UTC. additional_information.retry_after_seconds informa o tempo exato de espera.
502071-502-classifier-upstreamEngine de classification upstream falhou após os retries do DVSAguarde e reenvie com Idempotency-Key novo.
502071-502-extraction-failedDocument Processor falhou após retriesIdem — aguarde e reenvie.
504071-504-sync-timeoutClassification sync excedeu o budgetRecurso ainda em processamento. Faça polling em GET /classification-requests/{id} com o id retornado.

Estratégia de retry

Não faça retry de 4xx (exceto 429)

Erros 4xx indicam problema no client. Refazer a request sem alterações produz o mesmo erro. Corrija a request primeiro.

Retry em 5xx com backoff exponencial

Use 3 tentativas: imediato, +30s, +120s. Utilize um Idempotency-Key novo por segurança.

Em 429, respeite retry_after_seconds

O erro inclui additional_information.retry_after_seconds. Não faça retry antes desse intervalo.

Em 504, mude para polling

O recurso ainda está sendo processado. Obtenha o classification_request_id do body do erro e faça polling em GET /classification-requests/{id} a cada poucos segundos.

Falhas de rede

Se a request nunca chegar ao DVS (timeout, connection reset), o DVS pode ou não ter processado. Use Idempotency-Key em toda request para que retries não dupliquem o trabalho.

Consulte Idempotency para o padrão completo.