Factura Electrónica
Schema completo de la solicitud para emitir una Factura Electrónica (FE) con Sifende.
tipoDocumento: FACTURA_ELECTRONICA ✅ Disponible
La solicitud de FE contiene todos los campos obligatorios para emitir una Factura Electrónica conforme a SIFEN. Se envía al endpoint polimórfico POST /api/v1/documento-electronico.
Campos comunes (base)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
tipoDocumento | enum | Sí | Debe ser FACTURA_ELECTRONICA |
fechaEmision | datetime | No | ISO 8601 sin zona — YYYY-MM-DDTHH:mm:ss, hora de Paraguay. Si se omite, se usa la fecha y hora en que Sifende recibe la solicitud. Admite hasta 720 horas antes y 120 horas después de la hora actual de Paraguay; fuera de ese rango recibe 400 en errores.fechaEmision |
tipoEmision | enum | No | Sólo NORMAL, valor por defecto. SIFEN todavía no habilita la emisión en contingencia |
numeroEstablecimiento | integer | Sí | 1–999; obligatorio, sin valor por defecto |
puntoExpedicion | integer | Sí | 1–999; obligatorio, sin valor por defecto |
monedaOperacion | enum | No | Por defecto PYG. Acepta USD, EUR, etc. |
tipoCambio | number | Condicional | Tipo de cambio global. Obligatorio para moneda extranjera en modalidad GLOBAL; no se informa en PYG ni en POR_ITEM |
descuentoGlobalPorcentaje | number | No | Porcentaje global mayor que 0 y menor o igual a 100, aplicado al precio unitario de cada ítem |
obligacionesAfectadas | string[] | No | Hasta 11 códigos de obligaciones tributarias, sin valores nulos ni repetidos; ver abajo |
infoEmisor | string | No | Texto libre adicional del emisor, de 1 a 3000 caracteres en una sola línea |
receptor | object | Sí | Ver Receptor |
items | array | Sí | Al menos 1 ítem — ver Ítem |
Obligaciones afectadas
obligacionesAfectadas admite los códigos "113", "143", "211", "311", "321", "700", "701", "702", "703", "715" y "716", como strings. Por ejemplo: "obligacionesAfectadas": ["211", "700"]. Se admite en FE, NCE y NDE. En NRE debe omitirse: incluso una lista vacía recibe 400 validation-error.
Campos específicos de FE
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
tipoTransaccion | enum | Sí | VENTA_MERCADERIA, PRESTACION_SERVICIOS, MIXTO, VENTA_ACTIVO_FIJO, VENTA_DIVISAS, ANTICIPO, VENTA_CREDITO_FISCAL — ver tipoTransaccion para la lista completa |
condicionOperacion | enum | Sí | CONTADO o CREDITO |
condicionPago | object | Una de dos formas | Forma simple: un medio de contado o un crédito. Ver Condición de Pago |
pagos | array | Una de dos formas | Forma completa: medios de pago de contado o entrega inicial de un crédito |
credito | object | En CREDITO sin condicionPago | Condiciones del crédito en la forma completa |
tipoImpuesto | enum | No | Impuesto afectado: IVA (por defecto), RENTA, NINGUNO o IVA_RENTA. Con RENTA o NINGUNO los ítems no pueden ser GRAVADO ni GRAVADO_PARCIAL (400 en items[i].afectacionTributaria) |
indicadorPresencia | enum | No | Presencia del comprador; por defecto OPERACION_PRESENCIAL |
descripcionPresencia | string | Con OTRO | De 10 a 30 caracteres; obligatoria y exclusiva de indicadorPresencia = OTRO |
fechaFuturaRemision | date | No | YYYY-MM-DD, cuando la mercadería se traslada después con una nota de remisión |
documentosAsociados | array | No | Hasta 99 notas de remisión o facturas de anticipo. Ver Documentos asociados |
condicionAnticipo | enum | Con anticipo | ANTICIPO_GLOBAL o ANTICIPO_POR_ITEM |
anticipoGlobalPorcentaje | number | Con ANTICIPO_GLOBAL | Porcentaje del precio unitario de cada ítem que se cubre con el anticipo |
comision | number | No | Comisión de la operación con IVA 10% incluido, mayor que 0. Se suma al total general y su IVA al total de IVA. En moneda extranjera requiere tipoCambio global |
informacionFiscal | string | No | Información de interés del Fisco, de 1 a 3000 caracteres en una sola línea |
informacionAdicional | string | No | Texto para el receptor, de 1 a 5000 caracteres. Se imprime en el KuDE y no se envía a SIFEN |
datosComerciales | object | No | Órdenes, asiento, ciclo, vencimientos, contrato y saldo anterior. Ver Datos comerciales |
energia | array | No | Hasta 9 mediciones de energía eléctrica |
seguro | object | No | Aseguradora y pólizas |
supermercado | object | No | Cajero, efectivo, vuelto y donación |
transporte | object | No | Traslado de la mercadería. Ver Transporte y carga |
carga | object | No | Volumen, peso y característica de la carga |
condicionPago y pagos/credito son formas excluyentes. Las facturas a crédito admiten dos modalidades: PLAZO, con un texto libre o { cantidad, unidad }, y CUOTA, con el calendario completo de cuotas, que debe sumar el saldo financiado. El crédito admite cualquier moneda de operación.
Para una operación en moneda extranjera al contado, elegí una sola modalidad: tipoCambio en la factura (GLOBAL) o tipoCambio en todos los ítems (POR_ITEM). Consultá Facturar en Moneda Extranjera para ver solicitudes completas.
Para descuentos, informá solamente las decisiones comerciales: descuentoParticular como importe por unidad dentro del ítem y descuentoGlobalPorcentaje una vez en el documento. Sifende deriva los porcentajes e importes técnicos del XML, los subtotales, el IVA y el total neto. En PYG los importes globales derivados se redondean a entero con half-up; en otras monedas conservan hasta 8 decimales.
Si la operación lleva una comisión aparte de los ítems, informala en comision con el IVA incluido. Sifende la suma al total general, calcula su IVA al 10% y lo agrega al total de IVA. Los pagos de contado deben cubrir el total general con la comisión incluida. Se admite en FE, NCE y NDE. No se admite un total aparte de operación más comisión: el total general ya la incluye.
Compras públicas
Los datos de contratación DNCP son opcionales en cualquier tipo de operación: B2B, B2C, B2G o B2F. Cuando el receptor es un organismo público, además debe cumplir las reglas B2G.
| Campo | Tipo | Descripción |
|---|---|---|
comprasPublicas | object | Datos de contratación; si se informa, todos sus campos son obligatorios |
codigoContratacionDncp | string | Código de contratación DNCP, de 1 a 30 caracteres, no vacío ni compuesto sólo por espacios |
Campos de comprasPublicas
| Campo | Tipo | Regla |
|---|---|---|
modalidad | string | Exactamente 2 caracteres sin espacios |
entidad | string | Exactamente 5 dígitos; valor mayor que cero |
anho | string | Exactamente 2 dígitos; valor mayor que cero |
secuencia | string | Exactamente 7 dígitos; valor mayor que cero |
fechaEmisionCodigo | string | Fecha YYYY-MM-DD, anterior a la fecha efectiva de emisión de la FE |
Enviá los códigos como strings con sus ceros iniciales. La API no acepta números JSON ni completa los ceros. Ejemplo del bloque, para una FE cuya fecha efectiva sea posterior al 10 de enero de 2026:
{
"comprasPublicas": {
"modalidad": "CD",
"entidad": "00123",
"anho": "26",
"secuencia": "0000456",
"fechaEmisionCodigo": "2026-01-10"
}
}Los ítems pueden incluir codigoDncpGeneral (string de 8 dígitos) y codigoDncpEspecifico (string de 3 a 4 dígitos), también en cualquier operación. Ver Ítem. Un formato de campo inválido recibe 400. Si fechaEmisionCodigo no es anterior a la fecha de emisión de la factura, la respuesta es 422 public-procurement-data-invalid.
Documentos asociados y anticipos
documentosAsociados lista, en orden, los documentos que respaldan la factura. Una factura sólo se asocia a una nota de remisión o a una factura de anticipo, electrónica o impresa. El campo singular documentoAsociado es de las notas de crédito y débito: en una factura recibe 400 validation-error, también si hay un solo documento.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
tipoDocumento | enum | Sí | ELECTRONICO o IMPRESO |
cdc | string | Sí en ELECTRONICO | CDC de 44 dígitos de la nota de remisión o la factura de anticipo |
numeroTimbrado | string | Sí en IMPRESO | 8 dígitos |
establecimiento | string | Sí en IMPRESO | 3 dígitos |
puntoExpedicion | string | Sí en IMPRESO | 3 dígitos |
numeroDocumento | string | Sí en IMPRESO | 7 dígitos |
tipoDocumentoImpreso | enum | Sí en IMPRESO | FACTURA o NOTA_DE_REMISION |
fechaEmision | date | Sí en IMPRESO | Fecha del documento impreso |
numeroComprobanteRetencion | string | No | 15 caracteres; sólo con un pago RETENCION |
numeroResolucionCreditoFiscal | string | En VENTA_CREDITO_FISCAL | 15 caracteres; obligatorio en cada documento asociado de esa transacción y exclusivo de ella |
Una venta de crédito fiscal (tipoTransaccion: "VENTA_CREDITO_FISCAL") informa al menos un documento asociado, y cada uno lleva su numeroResolucionCreditoFiscal.
numeroComprobanteRetencion es opcional aunque haya un pago RETENCION. El Manual Técnico lo marca opcional en la tabla del campo y obligatorio en la regla 2412; SIFEN hoy no aplica esa regla. El comprobante viaja dentro de un documento asociado admitido (nota de remisión o factura de anticipo): no se informa sin una asociación.
Un documento electrónico asociado emitido con Sifende se valida antes de firmar la factura. La respuesta es 400 validation-error, con el error en errores["documentosAsociados[i]"], cuando:
| Situación | Mensaje |
|---|---|
| Es de otro emisor | El documento asociado debe ser del mismo emisor (H004g) |
| Está pendiente o fue rechazado | El documento asociado todavía no está aprobado |
| Está cancelado | El documento asociado está cancelado (H004b) |
| Es una factura que no es de anticipo | Una factura asociada debe ser una factura de anticipo (H004e) |
| Es una factura de anticipo en otra moneda | La factura de anticipo debe tener la misma moneda de la operación (H004f) |
| Tiene otro receptor | El documento asociado debe tener el mismo receptor que la factura (H004h/H004i) |
Sólo se admiten documentos APROBADO o APROBADO_OBSERVACION: si todavía está pendiente, esperá su aprobación antes de emitir la factura.
Para aplicar un anticipo ya facturado, asociá la factura de anticipo y declará cuánto se aplica en esta factura:
ANTICIPO_GLOBAL:anticipoGlobalPorcentajese aplica al precio unitario de todos los ítems.ANTICIPO_POR_ITEM: cada ítem que aplica anticipo informaanticipoParticular, el importe por unidad.
Con una sola factura de anticipo electrónica asociada, todos los ítems la referencian en el XML sin que informes cdcAnticipo, también los que no aplican anticipo. Con varias, cada ítem indica la suya con cdcAnticipo, aplique o no anticipo; un ítem sin cdcAnticipo recibe 400 en items[i].cdcAnticipo. Una factura de anticipo asociada debe aplicarse en al menos un ítem: asociarla sin condicionAnticipo ni importe de anticipo recibe 400 en condicionAnticipo.
El anticipo reduce el total de cada ítem. El emisor controla cuánto de cada anticipo queda por aplicar.
{
"documentosAsociados": [
{ "tipoDocumento": "ELECTRONICO", "cdc": "01800123451001001000000122026042710000000006" }
],
"condicionAnticipo": "ANTICIPO_GLOBAL",
"anticipoGlobalPorcentaje": 30
}Datos comerciales
| Campo | Tipo | Descripción |
|---|---|---|
ordenCompra | string | Hasta 15 caracteres |
ordenVenta | string | Hasta 15 caracteres |
asientoContable | string | Hasta 10 caracteres |
ciclo | string | Hasta 15 caracteres; se informa junto con fechaInicioCiclo y fechaFinCiclo |
fechaInicioCiclo | date | Inicio del ciclo facturado |
fechaFinCiclo | date | Fin del ciclo; no puede ser anterior al inicio |
vencimientosPago | date[] | Hasta 3 fechas de vencimiento, no anteriores a la emisión |
numeroContrato | string | Hasta 30 caracteres |
saldoAnterior | number | Saldo anterior, mayor o igual a cero |
Datos sectoriales
energia: cada medición informanumeroMedidor,codigoActividad,codigoCategoria,lecturaAnterior,lecturaActualyconsumo. La lectura actual no puede ser menor que la anterior, y el consumo es la diferencia entre ambas.seguro:codigoEmpresaypolizas. Cada póliza informacodigo,numero,vigenciayunidadVigencia, y opcionalmentefechaInicioVigenciayfechaFinVigencia(YYYY-MM-DDTHH:mm:ss, por ejemplo2026-01-01T00:00:00; el fin no puede ser anterior al inicio) ycodigoItem, que debe ser el código de un ítem de la factura.supermercado:nombreCajero,efectivo,vuelto,donacionydescripcionDonacion. El vuelto y la donación no pueden superar el efectivo recibido.
Transporte y carga
transporte es opcional en una factura y usa los mismos campos que el transporte de la nota de remisión: modalidad y responsableFlete son obligatorios; tipoTransporte, fechas del traslado, incoterm, numeroManifiesto, numeroDespachoImportacion, paisDestino, salida, entregas, vehiculos y transportista se informan cuando corresponden. Si informás el transportista, su domicilio fiscal y la dirección del conductor son obligatorios.
carga informa volumenTotal y pesoTotal como enteros positivos en string, con sus unidades, y una caracteristica. Con caracteristica: "OTRO" se describe la carga en descripcionCaracteristica.
Ejemplo completo — FE B2C contado
{
"tipoDocumento": "FACTURA_ELECTRONICA",
"fechaEmision": "2026-04-15T10:30:00",
"tipoEmision": "NORMAL",
"numeroEstablecimiento": 1,
"puntoExpedicion": 1,
"monedaOperacion": "PYG",
"tipoTransaccion": "VENTA_MERCADERIA",
"condicionOperacion": "CONTADO",
"receptor": {
"tipoContribuyente": "NO_CONTRIBUYENTE",
"tipoOperacion": "B2C",
"tipoDocumento": "CEDULA_PARAGUAYA",
"numeroDocumento": "1234567",
"nombreRazonSocial": "Juan Pérez"
},
"condicionPago": {
"tipo": "CONTADO",
"tipoPago": "EFECTIVO",
"monedaPago": "PYG",
"montoPago": 110000
},
"items": [
{
"codigo": "PROD-001",
"descripcion": "Resma de papel A4 75g",
"cantidad": 10,
"unidadMedida": "UNI",
"precioUnitario": 11000,
"afectacionTributaria": "GRAVADO",
"tasaIVA": 10
}
]
}Ejemplos completos — FE a crédito
{
"tipoDocumento": "FACTURA_ELECTRONICA",
"fechaEmision": "2026-09-18T10:30:00",
"tipoEmision": "NORMAL",
"numeroEstablecimiento": 1,
"puntoExpedicion": 1,
"tipoTransaccion": "VENTA_MERCADERIA",
"monedaOperacion": "PYG",
"receptor": {
"tipoContribuyente": "CONTRIBUYENTE",
"tipoOperacion": "B2B",
"tipoContribuyenteReceptor": "PERSONA_JURIDICA",
"numeroDocumento": "80012345",
"digitoVerificador": "0",
"nombreRazonSocial": "Comercial San Roque S.A."
},
"condicionOperacion": "CREDITO",
"condicionPago": {
"tipo": "CREDITO",
"condicionCredito": "PLAZO",
"plazoCredito": "30 días",
"montoEntregaInicial": 0
},
"items": [
{
"codigo": "PROD-001",
"descripcion": "Resma de papel A4 75g",
"cantidad": 10,
"unidadMedida": "UNI",
"precioUnitario": 12000,
"afectacionTributaria": "GRAVADO",
"tasaIVA": 10
}
]
}Para agregar una entrega inicial positiva, incluí tipoPago, monedaPago y montoEntregaInicial dentro de condicionPago, o informala en pagos. Se expresa en la moneda de la operación y debe ser menor que el total.
Los errores del contrato de crédito devuelven 400 validation-error antes de reservar el número del documento. Una solicitud rechazada por estas validaciones no consume secuencia ni crea el documento electrónico.
Respuesta
202 Accepted con los datos del documento creado en estado PENDIENTE:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"cdc": "01800123451001001000000122026042710000000006",
"estado": "PENDIENTE",
"ambiente": "DEV",
"tipoDocumento": "FACTURA_ELECTRONICA",
"iTiDe": 1,
"numeroDocumento": 1,
"numeroFormateado": "001-001-0000001",
"fechaCreacion": "2026-04-27T10:30:00",
"qrUrl": "https://ekuatia.set.gov.py/consultas-test/qr?...",
"statusUrl": "https://api.sifende.com.py/api/v1/documento-electronico/status/01800123451001001000000122026042710000000006",
"kudeUrl": "https://api.sifende.com.py/api/v1/documento-electronico/01800123451001001000000122026042710000000006/kude"
}Ver el detalle completo de la respuesta en Emitir Documento Electrónico.