SIFENDE
Referencia APIAPI de Sesión

Lotes

Endpoints de sesión para consulta de lotes y transmisiones SIFEN del contribuyente.

Esta API utiliza autenticación Keycloak. Ver Autenticación para obtener un token JWT.

Sifende agrupa los documentos electrónicos en lotes antes de transmitirlos a SIFEN. Cada lote pasa por una serie de estados hasta que SIFEN devuelve el resultado de procesamiento. Estos endpoints permiten consultar lotes, reintentar los fallidos y revisar el historial de transmisiones.

Endpoints

MétodoPathQueryDescripción
GET/api/v1/contribuyentes/:id/lotespage, sizeLista paginada de lotes
GET/api/v1/contribuyentes/:id/lotes/:loteIdDetalle de un lote
POST/api/v1/contribuyentes/:id/lotes/:loteId/reintentarRe-encola un lote fallido
GET/api/v1/contribuyentes/:id/lotes/:loteId/transmisionesHistorial de transmisiones SIFEN

Estados de un lote

PREPARADO → INTENTANDO → ENVIADO → PROCESADO
                ↓             ↓
              ERROR        FALLIDO
EstadoDescripción
PREPARADOLote armado, listo para envío
INTENTANDOEl scheduler está intentando transmitirlo
ENVIADORecibido por SIFEN, esperando resultado
PROCESADOResultado aplicado a los DEs (APROBADO/RECHAZADO)
ERRORError técnico permanente
FALLIDOReintentable: podés re-encolarlo (reintentable=true)

LoteDTO

CampoTipoDescripción
loteIdlongID interno
contribuyenteIdlongContribuyente emisor
numeroLotelongNúmero de lote enviado a SIFEN
iTiDeshortTipo de DE: 1=FE, 5=NCE, 6=NDE
tipoDocumentoLabelstringLabel legible (FACTURA_ELECTRONICA, etc.)
cantidadDocumentosintDEs incluidos en el lote
estadostringVer estados arriba
codigoRespuestastring?Código SIFEN (0360, 0363, …)
mensajeRespuestastring?Mensaje devuelto por SIFEN
fechaCreaciondatetimeAlta del lote
fechaEnviodatetime?Cuando se transmitió
fechaProcesamientoCompletodatetime?Cuando se aplicó el resultado final
reintentablebooleantrue si estado=FALLIDO
intentosConsultaintNúmero de consultas a SIFEN realizadas
intentosEnviointNúmero de envíos intentados

GET /api/v1/contribuyentes/:id/lotes

Lista paginada (server-side) de lotes. Default: page=0&size=10.

curl "https://api.sifende.com.py/api/v1/contribuyentes/12/lotes?page=0&size=20" \
  -H "Authorization: Bearer $KEYCLOAK_JWT"

Respuesta 200 OK:

{
  "status": "success",
  "payload": {
    "content": [
      {
        "loteId": 4521,
        "contribuyenteId": 12,
        "numeroLote": 9876543,
        "iTiDe": 1,
        "tipoDocumentoLabel": "FACTURA_ELECTRONICA",
        "cantidadDocumentos": 8,
        "estado": "PROCESADO",
        "codigoRespuesta": "0360",
        "mensajeRespuesta": "Lote procesado correctamente",
        "fechaCreacion": "2026-04-15T10:30:00",
        "fechaEnvio": "2026-04-15T10:30:12",
        "fechaProcesamientoCompleto": "2026-04-15T10:31:45",
        "reintentable": false,
        "intentosConsulta": 2,
        "intentosEnvio": 1
      }
    ],
    "page": 0,
    "size": 20,
    "totalElements": 87,
    "totalPages": 5
  }
}

POST /api/v1/contribuyentes/:id/lotes/:loteId/reintentar

Re-encola un lote FALLIDO para que el scheduler vuelva a intentar transmitirlo. Sólo funciona si el campo reintentable es true.

curl -X POST https://api.sifende.com.py/api/v1/contribuyentes/12/lotes/4521/reintentar \
  -H "Authorization: Bearer $KEYCLOAK_JWT"

Respuesta 200 OK. Ver la guía Reintentar rechazados para la estrategia recomendada.

GET /api/v1/contribuyentes/:id/lotes/:loteId/transmisiones

Historial completo de transmisiones SIFEN para un lote. Útil para depurar problemas de comunicación.

TransmisionSifenDTO

CampoTipoDescripción
transmisionSifenIdlongID interno
loteIdlongLote asociado
tipoTransmisionstringENVIO, CONSULTA, etc.
numeroIntentointNúmero de intento
estadoProcesamientostringResultado del intento
fechaEnviodatetimeCuándo se envió
fechaRespuestadatetime?Cuándo respondió SIFEN

Los códigos SIFEN más relevantes en codigoRespuesta: 0360 (procesado OK → PROCESADO), 0361 (lote no encontrado, reintentar consulta), 0362 (aún procesando), 0363 (errores de validación → ERROR) y 0364 (rechazado).

On this page