Factura Electrónica
Guía completa para emitir una Factura Electrónica con datos del receptor B2C o B2B, ítems, condición de pago y ejemplos de request completo.
Esta guía cubre la emisión de una Factura Electrónica (FE) paso a paso, desde el armado del request hasta el seguimiento del estado en SIFEN.
Antes de empezar
Verificá que tenés los tres elementos imprescindibles configurados:
- Timbrado activo y vigente, cargado en el panel de Sifende para tu contribuyente.
- Certificado digital subido:
.p12válido y en vigencia. - API key generada desde el panel y disponible como variable de entorno.
Si te falta alguno, volvé a Inicio Rápido: Requisitos previos.
Paso 1: Armá el request
La FE usa el endpoint polimórfico POST /api/v1/documento-electronico con tipoDocumento: "FACTURA_ELECTRONICA". Los datos del emisor los completa Sifende automáticamente desde el contribuyente y el timbrado configurados. Vos solo pasás los datos del receptor, los ítems y la condición de pago.
Ejemplo de FE B2C innominada (consumo final hasta Gs. 7.000.000) con un solo ítem gravado al 10%. El caso innominado se arma con tipoContribuyente: "NO_CONTRIBUYENTE" + tipoDocumento: "INNOMINADO", y con los valores literales "0" en numeroDocumento y "Sin Nombre" en nombreRazonSocial:
{
"tipoDocumento": "FACTURA_ELECTRONICA",
"fechaEmision": "2026-04-27T10:30:00",
"tipoEmision": "NORMAL",
"numeroEstablecimiento": 1,
"puntoExpedicion": 1,
"tipoTransaccion": "VENTA_MERCADERIA",
"monedaOperacion": "PYG",
"receptor": {
"tipoContribuyente": "NO_CONTRIBUYENTE",
"tipoOperacion": "B2C",
"tipoDocumento": "INNOMINADO",
"numeroDocumento": "0",
"nombreRazonSocial": "Sin Nombre"
},
"condicionOperacion": "CONTADO",
"condicionPago": {
"tipo": "CONTADO",
"tipoPago": "EFECTIVO",
"monedaPago": "PYG",
"montoPago": 150000
},
"items": [
{
"codigo": "PROD-A4-75",
"descripcion": "Resma de papel A4 75g",
"cantidad": 10,
"unidadMedida": "UNI",
"precioUnitario": 15000,
"afectacionTributaria": "GRAVADO",
"tasaIVA": 10
}
]
}Los montos en guaraníes son enteros sin decimales. 15000 representa Gs. 15.000. Ver Convenciones.
Paso 2: Enviá la solicitud
No generes una clave dentro de cada intento: otra clave representa una emisión nueva y puede reservar otro correlativo. Para recuperar una respuesta perdida, reutilizá la clave y el body persistidos.
Paso 3: Guardá la respuesta
La respuesta exitosa es 202 Accepted con un body que incluye los identificadores del DE creado:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"cdc": "01800123451001001000000122026042710000000006",
"estado": "PENDIENTE",
"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"
}estado: "PENDIENTE" es lo esperado. SIFEN procesa el documento de forma asíncrona: el CDC ya es válido, pero la aprobación llega en segundos a minutos. Pasá al Paso 4 para verificar.
Guardá id, cdc, numeroFormateado y la Idempotency-Key asociados a tu venta.
- Consultar el estado de procesamiento en SIFEN (usá
statusUrlo elcdc). - Descargar el KuDE (PDF) cuando esté aprobado (usá
kudeUrl). - Cancelar el documento si fuera necesario.
Paso 4: Esperá el resultado de SIFEN
SIFEN procesa los documentos de forma asíncrona. Apenas recibís el CDC, el estado interno es PENDIENTE o EN_LOTE. El procesamiento tarda habitualmente entre 15 y 60 segundos, pero puede superar los 2 minutos en el ambiente de QA. Implementá polling con timeout de al menos 5 minutos.
Los detalles de la estrategia de polling están en Consultar Estado de un Documento.
Errores frecuentes en este flujo
| Status | Tipo | Causa más común | Cómo resolverlo |
|---|---|---|---|
| 400 | validation-error | Falta un campo obligatorio o un valor está mal formateado | Revisá errores en la respuesta |
| 400 | invalid-enum-value | Valor de enum no reconocido (ej: "INVOICE" en tipoDocumento) | Revisá valoresAceptados en la respuesta |
| 401 | (texto plano) | API key inválida o revocada | Rotá la credencial desde el panel, en Configuración → API Keys |
| 404 | timbrado-not-found | No hay timbrado configurado para este contribuyente | Cargá el timbrado en el panel |
| 503 | idempotency-unavailable / idempotency-fingerprint-unsupported | El contrato idempotente no está disponible | No se creó el documento ni se consumió el correlativo. Conservá la clave y reintentá más tarde |
Para recuperar un timeout o interpretar errores de idempotencia, ver Idempotencia y Reintentos Seguros.
Para el listado completo, ver Manejar Errores y Rechazos SIFEN.
Próximos pasos
- ¿Estás facturando a una empresa con RUC? → Receptor B2B y B2C.
- ¿Necesitás anular o ajustar una FE aprobada? → Nota de Crédito.
- ¿Querés entregar el comprobante al cliente? → Descargar KuDE.