Magento

Integra InvoCash con Magento

Genera facturas VeriFactu automáticamente en Magento 2 con un módulo personalizado y el observer sales_order_invoice_pay.

Magento

Facturación VeriFactu automática en Magento 2

Magento 2 ofrece un sistema de eventos y observers que permite interceptar cualquier momento del ciclo de vida de un pedido. La integración con InvoCash usa el evento sales_order_invoice_pay para generar automáticamente la factura VeriFactu en el momento del cobro.

Al ser un módulo Magento nativo, la integración es robusta y actualizable, beneficiándose del sistema de inyección de dependencias de Magento 2.

Magento 2.4módulo nativo compatible con las últimas versiones
Observerfactura generada al evento sales_order_invoice_pay
100%cumplimiento VeriFactu y Ley Antifraude
Cómo funciona

Integración en 3 pasos automáticos

1. Factura de Magento pagada

Magento crea una invoice interna al cobrar el pedido y dispara el evento sales_order_invoice_pay con todos los datos.

2. El observer llama a InvoCash

Tu observer PHP recoge los datos de la invoice de Magento y llama a la API REST de InvoCash para crear la factura VeriFactu.

3. Factura VeriFactu generada

InvoCash genera la factura, la valida con la AEAT y opcionalmente envía el PDF al email del cliente automáticamente.

Código

Código de integración

1

Registro del observer en events.xml

<!-- app/code/Vendor/InvoCash/etc/events.xml -->
<config>
  <event name="sales_order_invoice_pay">
    <observer
      name="invocash_crear_factura"
      instance="Vendor\InvoCash\Observer\CrearFactura"
    />
  </event>
</config>
2

Observer PHP con llamada a la API

namespace Vendor\InvoCash\Observer;

use Magento\Framework\Event\ObserverInterface;

class CrearFactura implements ObserverInterface
{
    public function execute(\Magento\Framework\Event\Observer $observer): void
    {
        $invoice = $observer->getEvent()->getInvoice();
        $order   = $invoice->getOrder();
        $lines   = [];

        foreach ($invoice->getAllItems() as $item) {
            if (!$item->getQty()) continue;
            $taxBase   = (float) $item->getRowTotalInclTax() - (float) $item->getTaxAmount();
            $taxAmount = (float) $item->getTaxAmount();
            $taxPctge  = $taxBase > 0 ? round($taxAmount / $taxBase * 100) : 21;

            $lines[] = [
                'description'             => $item->getName(),
                'quantity'                => (int) $item->getQty(),
                'unit_price'              => $taxBase / $item->getQty(),
                'tax_base'                => $taxBase,
                'tax_pctge'               => $taxPctge,
                'tax_amount'              => $taxAmount,
                'tax_withholding_pctge'   => 0,
                'tax_withholding_amount'  => 0,
                'tax_type'                => 'IVA',
                'clave_regimen'           => '01',
                'qualification_operation' => 'S1',
                'exempt_operation'        => null,
                'total'                   => $taxBase,
            ];
        }

        $ch = curl_init('https://{su-tenant}.invo.cash/api/invoices');
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST           => true,
            CURLOPT_HTTPHEADER     => [
                'Content-Type: application/json',
                'X-API-Key: {tu_api_key}',
            ],
            CURLOPT_POSTFIELDS => json_encode([
                'verifactu_issuer_territory' => 'MAINLAND',
                'simplified'                 => false,
                'lines'                      => $lines,
                'total'                      => (float) $invoice->getGrandTotal(),
            ]),
        ]);
        curl_exec($ch);
        curl_close($ch);
    }
}

VeriFactu incluido automáticamente: todas las facturas creadas mediante la API de InvoCash se procesan con el sistema VeriFactu de la AEAT. Cumplimiento de la Ley Antifraude y el RD 1007/2023 sin ningún desarrollo adicional por tu parte.

Caso de uso

Tienda B2B en Magento con facturación legal automática

Un distribuidor industrial con catálogo de 10.000 productos en Magento 2 procesaba manualmente 50-80 facturas diarias. Tras integrar InvoCash mediante módulo observer, cada cobro genera automáticamente su factura VeriFactu — reduciendo el tiempo administrativo de facturación en un 90%.

Contacto

¿Necesitas ayuda con la integración?

Nuestro equipo técnico te acompaña en todo el proceso. Sin compromiso.