SIFENDE
Guías

Inutilizar Numeración

Cómo inutilizar rangos de números de documento no utilizados para cumplir con la normativa de la SET.

SIFEN exige que la numeración de documentos sea secuencial y sin huecos. Cuando se generan brechas (por errores de sistema, pruebas, fallos de emisión), debés inutilizar formalmente esos números para mantener la integridad del timbrado.

Cuándo inutilizar

Inutilizá una numeración cuando:

  • Tenés un hueco en la secuencia de un timbrado activo
  • Un proceso falló al generar el XML y consumió el número
  • Emitiste documentos en un ambiente de pruebas que reservaron números reales
  • Cambiaste de timbrado y querés cerrar el rango anterior

La inutilización es irreversible. Los números marcados como inutilizados quedan registrados en SIFEN para siempre y no podrán reutilizarse.

Cómo inutilizar un rango

Identificá el rango que querés inutilizar: desde qué número hasta qué número, dentro de un mismo establecimiento y punto de expedición.

Enviá el evento de inutilización con el rango y motivo:

curl -X POST "https://api.sifende.com.py/api/v1/documento-electronico/inutilizar" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "numeroTimbrado": 12345678,
    "establecimiento": 1,
    "puntoExpedicion": 1,
    "numeroInicio": "0000105",
    "numeroFin": "0000107",
    "tipoDocumento": 1,
    "motivo": "Documentos no emitidos por falla del sistema"
  }'
CampoTipoReq.Restricción
numeroTimbradointegerSíNúmero de timbrado SET
establecimientointegerSíNúmero del establecimiento (ej: 1)
puntoExpedicionintegerSíNúmero del punto de expedición (ej: 1)
numeroIniciostringSí1-7 caracteres
numeroFinstringSí1-7 caracteres
tipoDocumentoshortSíCódigo SIFEN iTiDe (1=FE, 5=NCE, 6=NDE)
motivostringSí5-500 caracteres
seriestringNoMáximo 2 caracteres

SIFEN procesa el evento y registra los números como inutilizados.

Continuá facturando normalmente. El siguiente DE usará el próximo número disponible (108 en el ejemplo).

Ejemplo en TypeScript

async function inutilizarNumeracion(rango: {
  numeroTimbrado: number;
  establecimiento: number;
  puntoExpedicion: number;
  numeroInicio: string;
  numeroFin: string;
  motivo: string;
}, idempotencyKey: string) {
  const response = await fetch(
    "https://api.sifende.com.py/api/v1/documento-electronico/inutilizar",
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.SIFENDE_API_KEY}`,
        "Content-Type": "application/json",
        "Idempotency-Key": idempotencyKey,
      },
      body: JSON.stringify({
        tipoDocumento: 1, // 1 = FACTURA_ELECTRONICA (iTiDe)
        ...rango,
      }),
    }
  );

  if (!response.ok) {
    const error = await response.json();
    throw new Error(`Inutilización fallida: ${error.detail}`);
  }
}

const idempotencyKey = await obtenerOCrearClaveDeInutilizacion(solicitudId);

await inutilizarNumeracion({
  numeroTimbrado: 12345678,
  establecimiento: 1,
  puntoExpedicion: 1,
  numeroInicio: "0000105",
  numeroFin: "0000107",
  motivo: "Documentos no emitidos por falla del sistema",
}, idempotencyKey);

Buenas prácticas

  • Inutilizá pronto. No dejes huecos abiertos por más de unos días, dificulta auditorías.
  • Mantené los rangos chicos. Inutilizar 3 números es manejable; inutilizar 500 levanta sospechas.
  • Documentá el motivo internamente. El campo motivo queda en SIFEN, pero también guardá un registro propio.
  • Verificá antes de inutilizar. Confirmá que los números efectivamente no se emitieron. Si ya hay un DE con ese número, la inutilización fallará.

Restricciones

RestricciónDetalle
Solo números no emitidosNo podés inutilizar un número ya usado en un DE existente
Mismo establecimiento + puntoEl rango debe estar dentro del mismo establecimiento y puntoExpedicion
Timbrado activoEl timbrado al que pertenecen los números debe seguir vigente

Errores comunes

ErrorCausaSolución
400 evento-inutilizacion-errordesde mayor que hastaVerificá el orden del rango
400 validation-errorTipo de documento inválidoUsá uno de los enums permitidos
409 evento-inutilizacion-errorAlgún número del rango ya tiene DEAjustá el rango excluyendo los números usados

Recuperar una respuesta perdida

El procedimiento de recuperación está en Idempotencia y Reintentos Seguros. En inutilización, 0600 confirma el resultado; 4066 deja el evento INDETERMINADA y exige detener los envíos.

Próximos pasos

On this page