SIFENDE
Guías

Facturar en Moneda Extranjera

Cómo emitir facturas en dólares (USD) u otras monedas, con tipo de cambio, monedaOperacion y totales en PYG.

SIFEN permite emitir documentos en moneda extranjera (USD, EUR, BRL, ARS, etc.) siempre que se incluya el tipo de cambio del día y el sistema reporte los equivalentes en guaraníes. Esta guía explica cómo configurarla correctamente.

Conceptos clave

Campo APIDescripciónEjemplo
monedaOperacionCódigo ISO de la moneda de operaciónUSD, EUR
tipoCambioTipo de cambio: cantidad de PYG por una unidad de la moneda extranjera7300 (1 USD = 7300 PYG)

El tipo de cambio debe ser el publicado por el Banco Central del Paraguay (BCP) para la fecha de emisión del documento. Usar un tipo de cambio incorrecto puede causar rechazos o problemas fiscales.

Cómo obtener el tipo de cambio

  • BCP (oficial): https://www.bcp.gov.py publica diariamente las cotizaciones
  • Usá la cotización comprador o vendedor según tu política contable (lo más común: vendedor para ventas)
  • Guardá el tipo de cambio usado junto con el DE para auditoría

Ejemplo: factura en USD

{
  "tipoDocumento": "FACTURA_ELECTRONICA",
  "fechaEmision": "2026-04-15T10:30:00",
  "tipoEmision": "NORMAL",
  "numeroEstablecimiento": 1,
  "puntoExpedicion": 1,
  "monedaOperacion": "USD",
  "tipoCambio": 7300,
  "tipoTransaccion": "PRESTACION_SERVICIOS",
  "condicionOperacion": "CONTADO",
  "receptor": {
    "tipoContribuyente": "CONTRIBUYENTE",
    "tipoOperacion": "B2B",
    "numeroDocumento": "80012345",
    "digitoVerificador": "1",
    "nombreRazonSocial": "Comercial Guaraní S.A."
  },
  "condicionPago": {
    "tipo": "CONTADO",
    "tipoPago": "TRANSFERENCIA",
    "monedaPago": "USD",
    "montoPago": 1200
  },
  "items": [
    {
      "codigo": "SRV-001",
      "descripcion": "Licencia de software anual",
      "cantidad": 1,
      "unidadMedida": "UNI",
      "precioUnitario": 1200,
      "afectacionTributaria": "GRAVADO",
      "tasaIVA": 10
    }
  ]
}

En este caso:

  • El precio del ítem (1200) está en USD
  • Sifende calcula automáticamente el equivalente en PYG: 1200 × 7300 = 8.760.000 PYG
  • El KuDE muestra ambos valores: USD (operación) y PYG (referencia)

Cálculo de IVA

El IVA siempre se calcula sobre el monto en moneda de operación (USD en este caso), pero también se reporta su equivalente en PYG:

ConceptoUSDPYG
Subtotal1.090,917.963.636
IVA 10%109,09796.364
Total1.200,008.760.000

Sifende hace estos cálculos automáticamente; solo enviá los precios en moneda extranjera.

Modos de tipo de cambio

GLOBAL (recomendado)

Un solo tipo de cambio para toda la factura. Más simple y común. Enviá monedaOperacion + tipoCambio a nivel de documento:

{
  "monedaOperacion": "USD",
  "tipoCambio": 7300
}

POR_ITEM

Cada ítem tiene su propio tipo de cambio. Usado en operaciones complejas con commodities. El tipoCambio se envía en cada ítem:

{
  "monedaOperacion": "USD",
  "items": [
    {
      "descripcion": "Producto importado",
      "tipoCambio": 7300,
      "precioUnitario": 100
    }
  ]
}

Restricciones SIFEN

RestricciónDetalle
Tipo de cambio entero positivoNo puede ser 0 ni negativo
Coherencia con la fechaUsá el TC del día de emisión, no de hoy
Operaciones B2C en USDPermitidas pero infrecuentes; confirmá con tu contador
Moneda extranjera + receptor INNOMINADOPermitido para FE, no para Notas de Crédito

Ejemplo en TypeScript

async function emitirFacturaUSD(montoUSD: number, ruc: string, razonSocial: string) {
  const tipoCambio = await obtenerCotizacionBCP(); // tu integración con BCP

  const response = await fetch(
    "https://api.sifende.com.py/api/v1/documento-electronico",
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.SIFENDE_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        tipoDocumento: "FACTURA_ELECTRONICA",
        fechaEmision: new Date().toISOString().slice(0, 19),
        tipoEmision: "NORMAL",
        numeroEstablecimiento: 1,
        puntoExpedicion: 1,
        monedaOperacion: "USD",
        tipoCambio,
        tipoTransaccion: "PRESTACION_SERVICIOS",
        condicionOperacion: "CONTADO",
        receptor: {
          tipoContribuyente: "CONTRIBUYENTE",
          tipoOperacion: "B2B",
          numeroDocumento: ruc.split("-")[0],
          digitoVerificador: ruc.split("-")[1],
          nombreRazonSocial: razonSocial,
        },
        condicionPago: { tipo: "CONTADO", tipoPago: "TRANSFERENCIA", monedaPago: "USD", montoPago: montoUSD },
        items: [{
          codigo: "SRV-001",
          descripcion: "Servicio",
          cantidad: 1,
          unidadMedida: "UNI",
          precioUnitario: montoUSD,
          afectacionTributaria: "GRAVADO",
          tasaIVA: 10,
        }],
      }),
    }
  );

  return response.json();
}

Próximos pasos

On this page