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. Si se omite, se usa la fecha y hora en que Sifende recibe la solicitud |
tipoEmision | enum | Sí | NORMAL (por defecto) o 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 |
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 | Sí | Obligatorio para CONTADO y CREDITO; tipo debe coincidir con condicionOperacion. Ver Condición de Pago |
documentoAsociado | object | No | Para anticipos o documentos de referencia. Ver Documento Asociado |
Las facturas a crédito admiten dos modalidades excluyentes: PLAZO, con un texto libre o { cantidad, unidad }, y CUOTA, con cantidad y detalle de cada cuota. Sólo se aceptan en monedaOperacion: "PYG".
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.
Compras públicas B2G
El receptor debe cumplir las reglas B2G. Los siguientes campos son opcionales y exclusivos de una FE 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 B2G pueden incluir codigoDncpGeneral (string de 8 dígitos) y codigoDncpEspecifico (string de 3 a 4 dígitos). Ver Ítem. En otra operación, estos códigos o los campos de contratación reciben 422 b2g-contract-data-invalid. Un formato de campo inválido recibe 400.
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": "7",
"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: "PYG" y montoEntregaInicial dentro de condicionPago; el monto no puede superar el total fiscal de los ítems.
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.