POST /v1/de/emitir
Crea un nuevo Documento Electrónico (factura, autofactura, nota de crédito, nota de débito o nota de remisión) y lo encola para envío a SIFEN.
El campo tipo_de del body determina el tipo de documento:
Headers
Query params
Body
Campos principales (siempre)
Campos específicos por tipo
tipo_transaccion — valores
Objeto receptor
Receptor no domiciliado (empresa extranjera): si el receptor no tiene
ruc y codigo_pais es distinto de "PRY", numero_documento es obligatorio — no se acepta "0"/innominado. Usá tipo_documento: 2 (Pasaporte) o tipo_documento: 9 (Otro) según corresponda. Sin esto, la emisión falla con VALIDACION_RECEPTOR_EXTRANJERO_SIN_IDENTIFICADOR (ver Errores frecuentes).
Objeto item
Campos principales
Los campos derivados (
subtotal, base_gravada_iva, liquidacion_iva) son calculados por e-Miti usando las fórmulas SIFEN — no los enviés.
Campos opcionales de identificación y catálogo
Todosnull por defecto. Enviá solo los que correspondan para tu operación.
Objeto rastreo_mercaderia
Todos los campos son opcionales. Completá solo los que tu operación requiera (lote para alimentos, importador para agroquímicos, etc.).
Objeto pago_credito
Requerido cuando condicion_venta: 2.
Objeto forma_pago
Cada elemento del array formas_pago describe un medio de pago de una operación al contado (condicion_venta: 1). Podés informar varios medios (multi-pago): en ese caso monto es obligatorio en cada uno y la suma debe coincidir con el total del DE. Si formas_pago se omite, la operación se registra como efectivo por el total.
Códigos de
tipo_pago:
Objeto tarjeta
Requerido cuando tipo_pago es 3 (crédito), 4 (débito) u 8 (empresarial).
Objeto cheque
Requerido cuando tipo_pago: 2.
Objeto autofactura
Requerido cuando tipo_de: 4. Describe al vendedor no-contribuyente.
Objeto doc_asociado
Requerido cuando tipo_de: 5 (Nota de Crédito) o tipo_de: 6 (Nota de Débito).
Objeto obra
Requerido cuando tipo_transaccion: 14 (Gasto de obra). Al menos una obra.
Objeto items_remision
Requerido cuando tipo_de: 7. Ítems trasladados — sin precio ni IVA, a diferencia del objeto item.
Acepta además los mismos campos opcionales de identificación y catálogo comercial que el objeto
item (codigo_interno, partida_arancelaria, ncm, dncp_general/dncp_especifico, gtin, gtin_paquete, pais_origen/descripcion_pais_origen, info_item, relevancia_mercaderia y campos derivados, cdc_anticipo, rastreo_mercaderia) — con las mismas reglas de dependencia entre campos.
Objeto remision
Requerido cuando tipo_de: 7. Datos generales del traslado (motivo, responsable, kilómetros).
remision.motivo — valores
remision.responsable — valores
Objeto transporte
Requerido cuando tipo_de: 7. Además de los campos propios, local_salida, al menos un elemento en locales_entrega, al menos un elemento en vehiculos y transportista son obligatorios para toda Nota de Remisión (SIFEN los declara opcionales en el XSD pero los rechaza igual si faltan — e-Miti valida esto antes de enviar).
Objeto local_salida / locales_entrega
Mismo shape para el local de salida (local_salida, un objeto) y los locales de entrega (locales_entrega, un array).
Objeto vehiculos
Cada elemento del array transporte.vehiculos (0 a 4 vehículos).
Objeto transportista
Datos del transportista y del chofer (el bloque de chofer es siempre obligatorio).
Para Nota de Remisión, el
receptor también necesita domicilio completo: direccion siempre, y si el receptor está domiciliado en Paraguay (tiene ruc o codigo_pais: "PRY"), además codigo_departamento, codigo_ciudad y descripcion_ciudad. Ver el error NR_RECEPTOR_DOMICILIO_FALTANTE más abajo.motivo_nc — valores
El catálogo de motivos es único y vale tanto para Nota de Crédito (tipo_de: 5) como para Nota de Débito (tipo_de: 6) — cualquier valor 1–8 es válido en ambos tipos.
Sobre-acreditación (solo NC)
Para Nota de Crédito, el total de la NC (sumado a otras NC aprobadas sobre el mismodoc_asociado.cdc) no puede superar el total del documento referenciado — devuelve 422 NC_SOBRE_ACREDITACION si se excede. Este límite no aplica a Nota de Débito: un débito es un cargo adicional y puede superar el total del documento referenciado.
Respuesta
Modo asíncrono (wait=false, default)
El DE se encola para envío a SIFEN. Recibís 200 inmediatamente con estado: "P" (pendiente). Hacé polling con GET /v1/de?cdc=... hasta que pase a A o R.
El
kude_url está disponible apenas emitís, en estado P, para que puedas imprimir el comprobante en el acto (por ejemplo, en la caja de un comercio). Cuando SIFEN aprueba el documento, e-Miti actualiza la representación a su versión definitiva; podés obtener siempre la más reciente con GET /v1/de/{cdc}/kude. El kude_url también aparece en la respuesta del modo sincrónico.Modo sincrónico (wait=true)
La API hace polling hasta recibir respuesta de SIFEN o agotar el timeout.
Aprobado (200):
200 con pending: true):
pending: true, el DE sigue siendo procesado por el worker. Hacé polling por GET /v1/de?cdc=....
Rechazado (422 SIFEN_RECHAZO) — mismo shape de error estándar con extra.codigo_sifen y extra.cdc.
Ejemplo: ítem con campos opcionales
El siguiente fragmento muestra un ítem con los campos opcionales más frecuentes. Incluí solo los que apliquen a tu operación — todos sonnull por defecto.
cdc_anticipo (44 dígitos) con el CDC del DE de anticipo previo.
Para mercadería con tolerancia de quiebra, usá relevancia_mercaderia: 1 junto con cantidad_quiebra_merma y porcentaje_quiebra_merma.
Moneda extranjera
Podés emitir en moneda extranjera enviandomoneda con el código ISO 4217 y tipo_cambio con la cotización respecto al guaraní. Las monedas habilitadas son:
El
tipo_cambio es un valor único que aplica a todo el documento (condición global): no se declara un cambio distinto por ítem. Debe ser mayor a 0 y admite hasta 4 decimales. El valor lo declarás vos — e-Miti no lo completa ni lo valida contra una fuente oficial.
Los importes de los ítems y totales viajan con 2 decimales cuando la moneda es distinta de PYG. e-Miti calcula además el total general convertido a guaraníes (total × tipo_cambio) que exige SIFEN.
VALIDACION_MONEDA_NO_HABILITADA (ver Errores frecuentes).
Modo de envío
Cada punto de expedición tiene un modo de envío configurado que determina cómo se procesa el comprobante. Podés dejar que la emisión use esa configuración (omitiendomodo_envio) o forzar un modo puntual en el request.
Si omitís
modo_envio, se usa el modo configurado en el punto de expedición (por defecto, diferido). El modo elegido no cambia la validez del comprobante — solo cuándo obtenés la respuesta final.
Idempotencia
Si enviásid_interno, reintentar el mismo request con el mismo valor devuelve el DE ya creado (sin duplicar) y un 200. El estado puede ser distinto del P original si el worker ya procesó el documento.