Autofactura Electrónica
Campos y ejemplo de la solicitud para emitir una Autofactura Electrónica (AFE) por compras a personas locales no contribuyentes.
tipoDocumento: AUTOFACTURA_ELECTRONICA ✅ Disponible
La Autofactura Electrónica (AFE) documenta una compra a una persona no contribuyente. El contribuyente que la emite es el comprador; los datos de quien vende se envían en vendedor.
La solicitud se envía a POST /api/v1/documento-electronico.
Restricciones
- Admite vendedores locales con cédula paraguaya y constancia de no ser contribuyente. No admite microproductores ni vendedores del exterior.
- La operación debe ser en guaraníes (
PYG) y al contado (CONTADO). - No envíes
receptor: se completa con los datos del contribuyente asociado a la API key. - Los ítems llevan el precio final por unidad, sin campos de IVA ni descuentos separados.
- No admite cuotas ni campos de crédito.
- No admite
PAGO_BANCARIOcomo medio de pago. - No está disponible en la modalidad packs.
Antes de emitir, Sifende consulta el padrón del vendedor. Admite personas sin RUC o con estado cancelado (CAN) o cancelado definitivo (CDE). Si la consulta no está disponible, devuelve 502 padron-no-disponible: intentá nuevamente más tarde. Esto no sustituye la evaluación de si corresponde usar una autofactura para la compra.
Campos de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
tipoDocumento | enum | Sí | AUTOFACTURA_ELECTRONICA |
fechaEmision | datetime | No | Fecha y hora de Paraguay: YYYY-MM-DDTHH:mm:ss. Si se omite, se usa la fecha y hora en que Sifende recibe la solicitud |
numeroEstablecimiento, puntoExpedicion | integer | Sí | 1–999, habilitados para el contribuyente |
tipoEmision | enum | No | NORMAL por defecto |
tipoTransaccion | enum | Sí | Nombre exacto del catálogo de enumeraciones |
monedaOperacion | enum | No | PYG por defecto. No admite otra moneda ni tipoCambio de la operación |
condicionOperacion | enum | No | CONTADO por defecto |
vendedor | object | Sí | Identificación y domicilio del vendedor; ver campos debajo |
lugarOperacion | object | Sí | Dirección donde se realiza la compra; usa los mismos campos que vendedor.domicilio |
constancia | object | Sí | Enviá tipo: CONSTANCIA_NO_CONTRIBUYENTE |
items | array | Sí | Entre 1 y 999 ítems; ver campos debajo |
condicionPago | object | Sí | tipo: CONTADO, tipoPago, monedaPago y montoPago. Ver Condición de Pago |
emailEntrega | string | No | Correo para recibir el documento, hasta 80 caracteres |
infoEmisor | string | No | Información adicional del emisor, de 1 a 3000 caracteres en una sola línea |
obligacionesAfectadas | array | No | Hasta 11 códigos de obligaciones tributarias del catálogo, enviados como strings |
Enviá únicamente los campos admitidos para AFE. Los campos desconocidos se rechazan con 400 invalid-format; no se descartan. Omití los campos incompatibles, como descuentoGlobalPorcentaje, tipoCambio en el documento, receptor, cuotas y datos de crédito.
Vendedor
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
naturaleza | enum | Sí | NO_CONTRIBUYENTE |
tipoDocumento | enum | Sí | CEDULA_PARAGUAYA |
numeroDocumento | string | Sí | Número de cédula: solo dígitos, de 5 a 12, conservando los ceros iniciales |
nombre | string | Sí | Nombre completo, de 4 a 60 caracteres |
numeroCasa | integer | Sí | 0–999999. Usá 0 si no tiene número |
domicilio | object | Sí | Dirección y códigos geográficos |
Domicilio y lugar de la operación
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
direccion | string | Sí | Hasta 255 caracteres |
departamento | string | Sí | Código SIFEN de 1 o 2 dígitos |
codigoDistrito | integer | No | Código SIFEN del distrito, entre 1 y 9999 |
ciudad | string | Sí | Código SIFEN de hasta 5 dígitos |
Consultá el catálogo de geografía y enviá los códigos SIFEN, no los nombres ni los IDs. Podés omitir el distrito si el departamento y la ciudad identifican la ubicación sin ambigüedad.
Si la ciudad no pertenece al departamento o distrito indicado, la API devuelve 400: corregí los códigos. Si el código de ciudad es ambiguo, informá codigoDistrito para identificar la ubicación.
Ítems y pago
| Campo del ítem | Tipo | Requerido | Descripción |
|---|---|---|---|
codigo | string | Sí | Hasta 50 caracteres |
descripcion | string | Sí | Hasta 2000 caracteres |
cantidad | number | Sí | Mayor que cero, hasta 10 dígitos enteros y 8 decimales |
unidadMedida | enum | Sí | Nombre del catálogo, por ejemplo UNI o kg |
precioUnitario | number | Sí | Precio final por unidad, mayor que cero, hasta 15 dígitos enteros y 8 decimales |
Sifende calcula los totales y redondea el total general al múltiplo inferior de 50 guaraníes. Los totales de ítem y operación admiten hasta 15 dígitos enteros y 8 decimales. El pago debe coincidir con el total general.
La API admite pagos en otra moneda con tipoCambio dentro de condicionPago; la operación sigue siendo en PYG. El resultado de montoPago × tipoCambio, redondeado a guaraníes enteros (la mitad hacia arriba), debe coincidir exactamente con el total general. Por ejemplo, para un total de 10.000 Gs., un pago de 2 USD con cotización de 5.000 Gs. cumple esa condición.
Para cheques, informá numeroCheque de 8 dígitos y bancoCheque de 1 a 20 caracteres.
Ejemplo
{
"tipoDocumento": "AUTOFACTURA_ELECTRONICA",
"fechaEmision": "2026-09-30T10:00:00",
"numeroEstablecimiento": 1,
"puntoExpedicion": 1,
"tipoTransaccion": "COMPRA_PRODUCTOS",
"vendedor": {
"naturaleza": "NO_CONTRIBUYENTE",
"tipoDocumento": "CEDULA_PARAGUAYA",
"numeroDocumento": "1234567",
"nombre": "Persona Vendedora",
"numeroCasa": 0,
"domicilio": {
"direccion": "Calle principal",
"departamento": "1",
"ciudad": "1"
}
},
"lugarOperacion": {
"direccion": "Calle principal",
"departamento": "1",
"ciudad": "1"
},
"constancia": {
"tipo": "CONSTANCIA_NO_CONTRIBUYENTE"
},
"condicionPago": {
"tipo": "CONTADO",
"tipoPago": "EFECTIVO",
"monedaPago": "PYG",
"montoPago": 10000
},
"items": [
{
"codigo": "BIEN-1",
"descripcion": "Bien usado",
"cantidad": 2,
"unidadMedida": "UNI",
"precioUnitario": 5000
}
],
"tipoEmision": "NORMAL",
"condicionOperacion": "CONTADO"
}Consultar el resultado
La respuesta 202 Accepted incluye el CDC y el estado PENDIENTE. Consultá el estado para confirmar la aprobación de SIFEN antes de usar el documento como comprobante.
Usá Idempotency-Key para reintentar la misma solicitud sin duplicar la emisión. Una clave ya registrada devuelve la emisión original aunque cambie el contenido; generá una clave por documento. Ver Idempotencia.