Link Search Menu Expand Document

Impuestos

MĂșltiples impuestos

Supongamos que se quieren añadir varios impuestos a una misma línea de producto. En este caso se deberå hacer uso de la API avanzada de productos de Facturae-PHP a través de la clase FacturaeItem:

// Vamos a añadir un producto utilizando la API avanzada
// que tenga IVA al 10% e IRPF al 15%
$fac->addItem(new FacturaeItem([
  "name" => "Una lĂ­nea con varios impuestos",
  "description" => "Esta lĂ­nea es solo para probar Facturae-PHP",
  "quantity" => 1, // Esto es opcional, es el valor por defecto si se omite
  "unitPrice" => 43.64,
  "taxes" => [
    Facturae::TAX_IVA  => 10,
    Facturae::TAX_IRPF => 15
  ]
]));

Esta API también permite indicar el importe unitario del producto sin incluir impuestos (base imponible), ya que por defecto Facturae-PHP asume lo contrario:

// Vamos a añadir 3 bombillas LED con un coste de 6,50 € ...
// ... pero con los impuestos NO INCLUÍDOS en el precio unitario
$fac->addItem(new FacturaeItem([
  "name" => "Bombilla LED",
  "quantity" => 3,
  "unitPriceWithoutTax" => 6.5, // NOTA: no confundir con unitPrice
  "taxes" => [Facturae::TAX_IVA => 21]
]));

Debe tenerse en cuenta que, por defecto, Facturae-PHP interprenta al IRPF como un impuesto retenido (aquellos que se restan a la base imponible) y al resto de impuestos como repercutidos (se suman a la base imponible).

Si necesitas crear una factura “especial” es posible sobreescribir el comportamiento por defecto a travĂ©s de la propiedad isWithheld:

// Para rizar un poco el rizo vamos a añadir una línea con IVA (repercutido)
// al 21% y también con impuestos especiales retenidos al 4%
$fac->addItem(new FacturaeItem([
  "name" => "Llevo impuestos retenidos",
  "quantity" => 1,
  "unitPrice" => 10,
  "taxes" => [
    Facturae::TAX_IVA => 21,
    Facturae::TAX_IE  => ["rate"=>4, "isWithheld"=>true]
  ]
]));

IVA con recargo de equivalencia

Para añadir un recargo de equivalencia al IVA (“equivalence surcharge” en inglĂ©s) se debe especificar el porcentaje de recargo dentro de la propiedad surcharge:

$fac->addItem(new FacturaeItem([
  "name" => "Llevo IVA con recargo de equivalencia",
  "quantity" => 1,
  "unitPrice" => 10,
  "taxes" => [
    Facturae::TAX_IVA  => ["rate"=>21, "surcharge"=>5.2],
    Facturae::TAX_IRPF => 19
  ]
]));