SIFENDE
Referencia APIModelos de Datos

Nota de Remisión Electrónica

Contrato NRE implementado y verificado offline; homologación y habilitación pendientes.

tipoDocumento: NOTA_DE_REMISION_ELECTRONICA 🚧 En desarrollo

Validado offline, no habilitado para producción. El schema, backend, panel y KuDE están implementados y probados conjuntamente con SIFEN simulado. Faltan homologación autorizada nacional/importación/exportación, cierre normativo y revisión humana final. No se afirma disponibilidad pública ni aprobación real de SIFEN.

Alcance y estados

La NRE (tipo 7) documenta mercaderías y su traslado físico, no una venta con precios o IVA en cero. Incluye transporte propio/terceros, modalidades terrestre/fluvial/aérea/multimodal, motivos del catálogo (incluido OTRO), asociaciones y datos particulares de mercaderías.

En importación/exportación cubre sólo el tramo paraguayo, como complemento de los documentos aduaneros. No reemplaza manifiestos, despachos, permisos ni autoriza tránsito especial de mercadería no nacionalizada. Los locales de salida/entrega usan geografía paraguaya real; la identidad extranjera del receptor no los convierte en direcciones extranjeras.

La NRE debe obtener aprobación antes de iniciar el traslado y el KuDE debe acompañar la mercadería. Una respuesta 202 Accepted registra PENDIENTE: no es aprobación. ENVIADO, RECHAZADO y resultado incierto tampoco autorizan trasladar. El PDF se descarga sólo en APROBADO o APROBADO_OBSERVACION, sujeto a permisos y retención vigentes.

API y panel

OperaciónContrato existente
Emisión API keyPOST /api/v1/documento-electronico → 202, Location, CDC, tipo 7, numeración y URLs de estado/KuDE
Estado API keyGET /api/v1/documento-electronico/status/{cdc}
PDF API keyGET /api/v1/documento-electronico/{cdc}/kude
CancelaciónPOST /api/v1/documento-electronico/{cdc}/cancelar, con elegibilidad/idempotencia vigentes
CatálogosGET /api/v1/public/enums
Emisión panelPOST /api/v1/contribuyentes/{id}/documentos-electronicos, sesión JWT y permisos del contribuyente, nunca API key en navegador

El panel integra el listado /nota-remision, la pestaña Nota de Remisión de Generar Documento (/generar/documento?tipo=NRE) y el detalle documental: formulario físico, errores junto al campo/resumen, espera, protección contra doble envío y cambios sin guardar. XML y KuDE históricos proceden del XML firmado persistido; no se editan sobrescribiendo transporte. No se ofrece nominación NRE ni evento posterior de transporte/cambio de conductor. Cancelación e inutilización tipo 7 reutilizan el circuito existente.

Idempotency-Key conserva replay para la misma petición y conflicto al reutilizarla con contenido diferente, incluidos todos los datos significativos NRE. Ante respuesta incierta se conservan identidad, XML y metadata de emisión persistidos; no crear otra emisión para forzar un resultado. Limitación pendiente de PR separado: los lotes se agrupan por contribuyente y tipo, sin separar DEV/PROD, y envío/consulta/reintento usan el ambiente actual del contribuyente. Si cambia la configuración tras emitir, no se garantiza el ambiente original de transporte; conservar ambiente_emision no garantiza seleccionar ese endpoint. JSON/tipos/Bean Validation inválidos producen 400 con ProblemDetail y rutas en errores; los conflictos mantienen 409 y las reglas de dominio/configuración/cupo conservan su contrato, sin presentar fallos como aprobación. Validaciones previas y rollback evitan numeración, documentos o trabajos parciales. Se mantiene aislamiento por contribuyente y NRE no aumenta ventas/IVA ni cambia la política vigente de consumo.

Contrato de entrada

El esquema completo está en /v3/api-docs, components.schemas.NotaRemisionElectronicaRequest y sus DTO referenciados. Los enums se envían por nombre exacto, no por descripción ni código XML; vehiculos[].tipoIdentificacion es entero 1/2. Strings con ceros significativos permanecen como texto. Fechas reales YYYY-MM-DD; emisión local Paraguay YYYY-MM-DDTHH:mm:ss sin offset. No se redondean decimales silenciosamente.

Requerido implica ausencia/null inválidos. Opcionales ausentes/null no generan elementos vacíos; strings informados no pueden ser blancos. Las listas conservan orden y rechazan elementos null. Objetos condicionales presentes deben estar completos.

Campo raízContrato
tipoDocumento, fechaEmisionDiscriminador NRE y fecha/hora requerida; se usa la fecha efectiva única del servicio para validación/XML/persistencia
numeroEstablecimiento, puntoExpedicionEnteros requeridos 1–999 habilitados para el emisor autenticado; timbrado/correlativo/emisor no vienen del body
tipoEmisionNORMAL por defecto; contingencia fuera de alcance
receptorIdentificado, nunca INNOMINADO; ver bloque siguiente
motivoTraslado, responsableEmisionRequeridos, catálogos NRE; independiente de transportista y responsable del flete
descripcionMotivoTraslado5–60 caracteres para OTRO; omitir en otros motivos, descripción oficial derivada
kilometrosRecorridoEntero requerido 1–99999
fechaFacturaFuturaObligatoria en venta sin asociaciones; fecha real, mes/año no posterior al de emisión efectiva. No confundir con fin del traslado; imprime leyenda de factura a emitir
costoFleteOpcional no negativo, hasta 15 enteros/8 decimales; no es total de venta ni base IVA
informacionFiscal, infoEmisorCada uno opcional 1–3000 caracteres. Información fiscal pertinente (frío/peligrosa, etc.) cuando corresponda; no sustituir por información del emisor
cargaGrupo estructurado opcional G050–G058; ver tabla de carga. No sustituye B006
items, transporteRequeridos; mercaderías y recorrido según tablas
documentosAsociados0–99, ausencia/null/[] sin asociación; electrónica o impresa
monedaOperacionOmitida/null/PYG por compatibilidad, sin grupo monetario XML

No enviar condición de operación/pago, cuotas, pagos, descuentos comerciales, cotización, tipo de transacción, obligaciones afectadas, asociación comercial singular ni precios/IVA por ítem. Los campos incompatibles no nulos (incluso cero/lista vacía) se rechazan, no se descartan. FE/NCE/NDE conservan sus contratos; esto no habilita AFE ni tipos 2/3/8.

Receptor

tipoContribuyente, tipoOperacion, numeroDocumento, nombreRazonSocial (4–255), direccion (1–255) y numeroCasa (0–999999, cero explícito sin número) son requeridos. Para contribuyente: tipoContribuyenteReceptor, RUC de 3–8 dígitos y digitoVerificador válido, sin tipo de documento personal. Para no contribuyente: tipoDocumento identificado y número de 1–20 caracteres, sin DV ni tipo de contribuyente receptor. En TRASLADO_ENTRE_LOCALES el RUC receptor coincide con el emisor.

pais usa ISO3 del catálogo (PRY por defecto). No B2F: departamento/ciudad relacionados y codigoDistrito opcional; B2F no inventa geografía paraguaya para el receptor. telefono (6–15), celular (10–20) y email válido son opcionales; la emisión funciona con o sin correo y no exige totales monetarios.

Mercaderías: items[]

1–999 ítems, sin importes comerciales.

CamposContrato
codigo, descripcion, cantidad, unidadMedidaRequeridos: 1–50, 1–2000, positiva hasta 10 enteros/8 decimales y enum oficial
partidaArancelaria, ncmOpcionales: dígitos 4 y 6–8; conservar ceros
codigoDncpGeneral, codigoDncpEspecificoOpcionales 8 y 3–4 dígitos; no exigir par ni contrato monetario B2G
gtin, gtinPaqueteOpcionales positivos de 8/12/13/14 dígitos
paisOrigen, observacionPaís ISO3 opcional y texto opcional 1–500
tolerancia, toleranciaCantidad, toleranciaPorcentajeQuiebra/merma exige ambos valores; cantidad no negativa hasta 10 enteros/4 decimales y porcentaje 0–100 hasta 8 decimales. No reduce cantidad ni es descuento
lote, vencimiento, numeroSerieOpcionales: 1–80, fecha real, 1–10
numeroPedido, numeroSeguimientoOpcionales 1–20 cada uno
numeroRegistroProducto, numeroRegistroEntidadComercial, nombreProductoDatos aplicables sectoriales: 1–20, 1–20, 1–30; no implican homologación sectorial integral

Carga: carga

Grupo opcional independiente de items e informacionFiscal. Ausencia/null omite G1; los campos del grupo son opcionales, salvo la descripción al elegir OTRO.

CampoContrato
unidadMedidaVolumen, unidadMedidaPesoNombres del catálogo unidadMedida; XML deriva códigos y abreviaturas oficiales G051/G052 y G054/G055
volumenTotal, pesoTotalStrings, no números JSON: enteros positivos de 1–20 dígitos, sin ceros iniciales, signo, exponentes ni decimales. Ejemplo: "99999999999999999999"
caracteristicaCatálogo caracteristicaCarga: MERCADERIA_CON_CADENA_DE_FRIO, CARGA_PELIGROSA, OTRO
descripcionCaracteristicaSólo para OTRO, requerida de 1–50 caracteres, no blancos ni saltos de línea. En los otros tipos se deriva la descripción oficial

G057/G058 describen estructuradamente la carga; no reemplazan ni generan automáticamente B006. El operador informa además en informacionFiscal la situación real y las instrucciones fiscales aplicables (NT007/RG41). Una remisión ordinaria no recibe leyendas ficticias. Ambos contenidos se conservan en XML, detalle y KuDE.

El formulario y sus borradores conservan los 20 dígitos sin convertirlos a number; el contenido histórico devuelve strings. La huella v3 incluye los seis campos de carga; los replays v1/v2 siguen disponibles sin carga, pero no admiten agregarla a una solicitud anterior. No se modifica ningún XML histórico ni se habilita producción con esta ampliación.

Transporte

Campos de transporteContrato
tipoTransporte, modalidad, responsableFleteRequeridos: propio/tercero, terrestre/fluvial/aéreo/multimodal y responsable del catálogo
fechaInicioTraslado, fechaFinTrasladoFechas requeridas, fin igual/posterior al inicio, inicio posterior a entrada en producción SIFEN
incoterm, numeroManifiesto, paisDestinoOpcionales aplicables: catálogo Incoterm, 1–15 caracteres y país ISO3 real
numeroDespachoImportacionObligatorio en IMPORTACION, exactamente 16 caracteres
salida, entregasUn local requerido y 1–99 entregas
vehiculos1–4 vehículos
transportistaRequerido en toda NRE

Cada local (salida/entregas[]) tiene direccion (1–255), numeroCasa (0–999999), departamento y ciudad relacionados requeridos; codigoDistrito opcional. Admite complementoDireccion1, complementoDireccion2 (1–255 cada uno) y telefono (6–15). Los códigos/descripciones se resuelven contra geografía real, no ciudades homónimas de otro departamento.

Cada vehículo requiere tipoVehiculo (4–10), marca (1–10), tipoIdentificacion (1/2). Tipo 1 exige numeroIdentificacion (1–20); tipo 2 exige matricula (6–7). Puede informar ambos identificadores reales válidos. datosAdicionales es opcional (1–20); numeroVuelo exige 6 caracteres en aéreo y está prohibido fuera de esa modalidad.

Transportista y conductor son obligatorios en toda NRE: propio/tercero, todas las modalidades y listas de 1–4 vehículos con identificadores 1/2 en cualquier orden. NT010 §1.5 elimina la antigua excepción terrestre; ausencia y null se rechazan. El mismo contrato completo se exige al consultar contenido y generar KuDE: un XML NRE sin transportista se considera incompleto.

transportista requiere naturaleza, nombreRazonSocial (4–60), domicilioFiscal (1–150), numeroDocumentoConductor (1–20), nombreConductor (4–60), direccionConductor (1–255). Contribuyente usa ruc (3–8 dígitos) y digitoVerificador válido; no contribuyente usa tipoDocumento de identidad del transportista y numeroDocumento (1–20), sin mezclar variantes. nacionalidad es país opcional. Cuando interviene agente/intermediario: nombreAgente (4–60), rucAgente (3–8), digitoVerificadorAgente válido y direccionAgente (1–255), completos.

Asociaciones: documentosAsociados[]

tipoDocumento requerido, sólo ELECTRONICO/IMPRESO. H001a/2414 limita las asociaciones a facturas. Electrónico exige cdc válido de 44 dígitos con prefijo 01 y no admite campos impresos. rucFusionado (3–8 dígitos sin DV) sólo electrónico cuando corresponda; el formato/correspondencia local no prueba fusión registral, timbrado ni correspondencia real de receptor asociado/nominado.

Impreso exige strings numéricos numeroTimbrado (8), establecimiento (3), puntoExpedicion (3), numeroDocumento (7), tipoDocumentoImpreso=FACTURA (único valor del catálogo NRE; NT010 §1.6 elimina retención) y fechaEmision real; no admite CDC ni RUC fusionado. Preservar ceros y orden de asociaciones; no confundir documento de venta con servicio del flete.

KuDE y evidencia

El KuDE físico conserva receptor, motivo, km, fechas, mercaderías, locales, vehículos, conductor, datos internacionales, asociaciones e información fiscal del XML firmado. Incluye CDC/QR, constancia y paginación sin totales de venta/IVA ficticios. La revisión técnica offline cubre multipágina; queda pendiente la revisión humana frente a gráfica 13 y el recorrido por teclado del panel.

T57 (base 94a96cef, dossier de repositorio tasks/evidencias/nota-remision-offline.md) registró 3127 pruebas backend/XSD aprobadas, 13 skips históricos externos/manuales y cero fallos; 635 Angular aprobadas. Seis ejemplos por ambos canales tienen XML/PDF cotejados con SIFEN simulado. Esto no prueba aprobación SIFEN ni navegador conectado a backend vivo. Cierre normativo y resultados reales siguen pendientes en T58; la entrega pública conjunta depende de revisión final, no de esta actualización documental.

Validar prefijo y DV no prueba existencia, aprobación ni correspondencia registral del documento.

Ejemplos sintéticos reproducibles offline

Los tres JSON siguientes coinciden con los ejemplos del esquema OpenAPI. Son fixtures sintéticas de fecha fija, no instrucciones de envío actual. Receptor extranjero y país destino son conceptos distintos; el nacional representa consignación dentro de Paraguay, no traslado entre locales del mismo emisor. Todos incluyen transportista y conductor, también importación/exportación. Ajustar fecha/configuración/identidades reales sólo con autorización específica antes de homologar.

Nacional: consignación

{
  "tipoDocumento": "NOTA_DE_REMISION_ELECTRONICA",
  "fechaEmision": "2026-09-09T10:00:00",
  "numeroEstablecimiento": 1,
  "puntoExpedicion": 1,
  "tipoEmision": "NORMAL",
  "receptor": {
    "tipoContribuyente": "NO_CONTRIBUYENTE",
    "tipoOperacion": "B2F",
    "tipoDocumento": "PASAPORTE",
    "numeroDocumento": "000123",
    "nombreRazonSocial": "Receptor sintético",
    "pais": "ARG",
    "direccion": "Domicilio de prueba",
    "numeroCasa": 0
  },
  "responsableEmision": "EMISOR_FACTURA",
  "kilometrosRecorrido": 1,
  "transporte": {
    "transportista": {
      "naturaleza": "NO_CONTRIBUYENTE",
      "nombreRazonSocial": "Transportista sintético",
      "tipoDocumento": "PASAPORTE",
      "numeroDocumento": "000123",
      "domicilioFiscal": "Domicilio sintético",
      "numeroDocumentoConductor": "000456",
      "nombreConductor": "Conductor sintético",
      "direccionConductor": "Dirección sintética"
    },
    "tipoTransporte": "PROPIO",
    "modalidad": "TERRESTRE",
    "responsableFlete": "TRANSPORTE_PROPIO",
    "fechaInicioTraslado": "2026-09-09",
    "fechaFinTraslado": "2026-09-09",
    "salida": {
      "direccion": "Salida",
      "numeroCasa": 0,
      "departamento": "CENTRAL",
      "ciudad": "SAN LORENZO"
    },
    "entregas": [
      {
        "direccion": "Entrega",
        "numeroCasa": 0,
        "departamento": "CENTRAL",
        "ciudad": "SAN LORENZO"
      }
    ],
    "vehiculos": [
      {
        "tipoVehiculo": "CAMION",
        "marca": "MARCA",
        "tipoIdentificacion": 1,
        "numeroIdentificacion": "001"
      }
    ]
  },
  "items": [
    {
      "codigo": "001",
      "descripcion": "Mercadería",
      "cantidad": 1,
      "unidadMedida": "UNI"
    }
  ],
  "motivoTraslado": "TRASLADO_POR_CONSIGNACION"
}

Importación: tramo local

{
  "tipoDocumento": "NOTA_DE_REMISION_ELECTRONICA",
  "fechaEmision": "2026-09-09T10:00:00",
  "numeroEstablecimiento": 1,
  "puntoExpedicion": 1,
  "tipoEmision": "NORMAL",
  "receptor": {
    "tipoContribuyente": "NO_CONTRIBUYENTE",
    "tipoOperacion": "B2F",
    "tipoDocumento": "PASAPORTE",
    "numeroDocumento": "000123",
    "nombreRazonSocial": "Receptor sintético",
    "pais": "ARG",
    "direccion": "Domicilio de prueba",
    "numeroCasa": 0
  },
  "responsableEmision": "EMISOR_FACTURA",
  "kilometrosRecorrido": 1,
  "transporte": {
    "transportista": {
      "naturaleza": "NO_CONTRIBUYENTE",
      "nombreRazonSocial": "Transportista sintético",
      "tipoDocumento": "PASAPORTE",
      "numeroDocumento": "000123",
      "domicilioFiscal": "Domicilio sintético",
      "numeroDocumentoConductor": "000456",
      "nombreConductor": "Conductor sintético",
      "direccionConductor": "Dirección sintética"
    },
    "tipoTransporte": "PROPIO",
    "modalidad": "TERRESTRE",
    "responsableFlete": "TRANSPORTE_PROPIO",
    "fechaInicioTraslado": "2026-09-09",
    "fechaFinTraslado": "2026-09-09",
    "salida": {
      "direccion": "Salida",
      "numeroCasa": 0,
      "departamento": "CENTRAL",
      "ciudad": "SAN LORENZO"
    },
    "entregas": [
      {
        "direccion": "Entrega",
        "numeroCasa": 0,
        "departamento": "CENTRAL",
        "ciudad": "SAN LORENZO"
      }
    ],
    "vehiculos": [
      {
        "tipoVehiculo": "CAMION",
        "marca": "MARCA",
        "tipoIdentificacion": 1,
        "numeroIdentificacion": "001"
      }
    ],
    "incoterm": "FOB",
    "paisDestino": "BRA",
    "numeroManifiesto": "000000000000001",
    "numeroDespachoImportacion": "0000000000000001"
  },
  "items": [
    {
      "codigo": "001",
      "descripcion": "Mercadería",
      "cantidad": 1,
      "unidadMedida": "UNI"
    }
  ],
  "motivoTraslado": "IMPORTACION"
}

Exportación: tramo local

{
  "tipoDocumento": "NOTA_DE_REMISION_ELECTRONICA",
  "fechaEmision": "2026-09-09T10:00:00",
  "numeroEstablecimiento": 1,
  "puntoExpedicion": 1,
  "tipoEmision": "NORMAL",
  "receptor": {
    "tipoContribuyente": "NO_CONTRIBUYENTE",
    "tipoOperacion": "B2F",
    "tipoDocumento": "PASAPORTE",
    "numeroDocumento": "000123",
    "nombreRazonSocial": "Receptor sintético",
    "pais": "ARG",
    "direccion": "Domicilio de prueba",
    "numeroCasa": 0
  },
  "responsableEmision": "EMISOR_FACTURA",
  "kilometrosRecorrido": 1,
  "transporte": {
    "transportista": {
      "naturaleza": "NO_CONTRIBUYENTE",
      "nombreRazonSocial": "Transportista sintético",
      "tipoDocumento": "PASAPORTE",
      "numeroDocumento": "000123",
      "domicilioFiscal": "Domicilio sintético",
      "numeroDocumentoConductor": "000456",
      "nombreConductor": "Conductor sintético",
      "direccionConductor": "Dirección sintética"
    },
    "tipoTransporte": "PROPIO",
    "modalidad": "TERRESTRE",
    "responsableFlete": "TRANSPORTE_PROPIO",
    "fechaInicioTraslado": "2026-09-09",
    "fechaFinTraslado": "2026-09-09",
    "salida": {
      "direccion": "Salida",
      "numeroCasa": 0,
      "departamento": "CENTRAL",
      "ciudad": "SAN LORENZO"
    },
    "entregas": [
      {
        "direccion": "Entrega",
        "numeroCasa": 0,
        "departamento": "CENTRAL",
        "ciudad": "SAN LORENZO"
      }
    ],
    "vehiculos": [
      {
        "tipoVehiculo": "CAMION",
        "marca": "MARCA",
        "tipoIdentificacion": 1,
        "numeroIdentificacion": "001"
      }
    ],
    "incoterm": "FOB",
    "paisDestino": "BRA",
    "numeroManifiesto": "000000000000001"
  },
  "items": [
    {
      "codigo": "001",
      "descripcion": "Mercadería",
      "cantidad": 1,
      "unidadMedida": "UNI"
    }
  ],
  "motivoTraslado": "EXPORTACION"
}

On this page