SIFENDE
Referencia API

Errores de la API

Cómo interpretar los errores, resolverlos y decidir si corresponde reintentar.

Los errores de operación usan Problem Details: type identifica el problema, status indica el código HTTP y detail explica el caso. Usá type para decidir qué hacer; title y detail son mensajes para personas.

Formato de respuesta

{
  "type": "https://sifende.com.py/docs/solucion-problemas/validation-error",
  "title": "Error de validación",
  "status": 400,
  "detail": "La solicitud contiene 2 error(es) de validación",
  "errores": {
    "receptor.tipoContribuyenteReceptor": "Tipo de contribuyente receptor es obligatorio para un contribuyente",
    "receptor.digitoVerificador": "Dígito verificador es obligatorio y debe contener un dígito"
  },
  "traceId": "8f1c2b3a4d5e6f70"
}
CampoUso
typeURL que identifica el problema
titleResumen del problema
statusCódigo HTTP
detailExplicación de este caso
instanceReferencia a la solicitud, cuando aparece
traceIdIdentificador para soporte, cuando aparece; también puede estar en X-Trace-Id

Las extensiones dependen del error. Por ejemplo, la validación puede incluir errores; una enumeración inválida incluye campo, valorRecibido y valoresAceptados. No supongas que todas las respuestas tienen los mismos campos adicionales.

Autenticación y permisos

Una API key inválida o vencida devuelve 401 con un JSON como este:

{ "error": "Invalid or expired API key" }

Los errores de autenticación y permisos 401/403 pueden no usar Problem Details. Revisá las credenciales y el ambiente antes de repetir la solicitud. En NRE, el KuDE requiere que el documento esté APROBADO o APROBADO_OBSERVACION.

Tipos de error de Sifende

HTTPtype (último segmento)Significado
400 / 409evento-cancelacion-errorNo se pudo cancelar el documento
400 / 409evento-inutilizacion-errorNo se pudo inutilizar el rango
400 / 409 / 503evento-nominacion-errorNo se pudo completar la nominación
400invalid-enum-valueValor de enumeración inválido
400invalid-formatFormato de campo inválido
400validation-errorDatos de la solicitud inválidos
403document-archivedDocumento archivado
403document-quota-exceededCupo mensual de documentos agotado
403emission-suspendedEmisión suspendida por falta de pago
403plan-operation-not-allowedEl plan no permite esta operación
404certificate-not-foundCertificado o CSC sin configurar
404contribuyente-not-foundContribuyente no encontrado
404documento-electronico-not-foundDocumento electrónico no encontrado
404evento-not-foundEvento no encontrado
404resource-not-foundRuta no encontrada
404ruc-not-foundDocumento no encontrado en el padrón
405method-not-allowedMétodo HTTP no permitido
409idempotency-in-progressLa operación sigue en proceso
409idempotency-key-expiredLa respuesta de la clave expiró
409idempotency-outcome-unknownResultado de la operación indeterminado
409subscription-staleLa suscripción cambió
415unsupported-media-typeTipo de contenido no admitido
422configuracion-incompletaConfiguración del contribuyente incompleta
422documento-electronico-generation-errorEl documento no cumple una regla fiscal
422idempotency-key-reusedClave utilizada para otro tipo de operación
422public-procurement-data-invalidDatos de contratación pública inválidos
422public-recipient-requires-b2gEl receptor público requiere B2G
422sandbox-operation-not-supportedEl ambiente SANDBOX no admite esta operación
422timbrado-no-vigenteTimbrado aún no vigente
429rate-limit-exceededLímite de consultas alcanzado
500internal-errorError al procesar la solicitud
500kude-generation-errorNo se pudo obtener el KuDE
501kude-not-supportedEl tipo de documento no admite KuDE
502padron-no-disponiblePadrón no disponible
503idempotency-upstream-unknownSIFEN no confirmó el resultado
503kude-unavailableKuDE no disponible

Reintentos

  • Ante datos inválidos, corregí la causa antes de volver a enviar.
  • Ante idempotency-in-progress o idempotency-upstream-unknown, esperá Retry-After y repetí la misma solicitud con la misma clave.
  • Ante idempotency-outcome-unknown o idempotency-key-expired, detené los envíos y verificá el resultado original.
  • Un 500 en un POST puede tener efectos. Revisá resultadoIndeterminado y accion; no generes otra clave para recuperar la misma operación.
  • Un rechazo de SIFEN se consulta como estado: "RECHAZADO" y mensajeRechazo. No equivale a un error HTTP de validación.

Seguí la guía de idempotencia y consultá los rechazos de SIFEN.

Documento archivado

document-archived indica que terminó el período de acceso del plan. Su type es https://api.sifende.com.py/problems/document-archived. No reemitas el documento para resolver el acceso.

Obtener el KuDE

Una respuesta 202 indica que el PDF se está preparando: seguí Location y respetá Retry-After. Consultar no acelera la preparación. Un 500 o 503 al descargar no cambia el estado fiscal del documento ni exige emitirlo de nuevo. Ver Descargar KuDE.

On this page