SIFENDE
Referencia API

Errores de la API

Cómo interpretar los errores Problem Details de la API de Sifende, resolverlos según su type y decidir cuándo corresponde reintentar la solicitud.

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
400idempotency-not-supportedEl endpoint no admite Idempotency-Key
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
404webhook-not-foundWebhook no encontrado
404resource-not-foundRuta no encontrada
404ruc-not-foundDocumento no encontrado en el padrón
405method-not-allowedMétodo HTTP no permitido
409document-number-in-useEl número de documento ya está en uso
409document-number-voidedEl número de documento fue inutilizado
409documento-xml-not-availableEl documento todavía no tiene XML firmado
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
422document-number-requires-voidingEl número de un rechazado requiere inutilización
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-mismatchEl timbrado informado no coincide con el cargado
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

Usamos cookies necesarias para que el sitio funcione. Con tu permiso, también usamos herramientas de analítica para entender cómo se usa el sitio y para medir nuestras campañas publicitarias. Política de privacidad