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

Magento 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.

COMPATIBILIDAD
Magento
2.4+2.3+Open SourceCommerce
PHP
7.48.18.28.3
Arquitectura
ObserverDIComposer
  • Observer event sales_order_invoice_pay nativo
  • Inyección de dependencias Magento
  • Compatible con módulos personalizados
  • Integración sin dependencias externas
Cómo funciona

Integración en 3 pasos automáticos

1. Pago confirmado en Magento

El cliente realiza el pago. Magento registra el pedido y lo marca como pagado.

2. Tu observer enganchado al evento

Tu observer PHP (registrado al evento sales_order_invoice_pay) recoge los datos y llama a la API de InvoCash para crear la factura.

3. Factura VeriFactu generada

InvoCash genera la factura, la valida con la AEAT y la envía por email al cliente con el PDF adjunto.

Antes de empezar

Requisitos previos

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

Cobro confirmado
Observer Magento
API InvoCash
Factura en Invocash

Un distribuidor industrial con catálogo de 10.000 productos en Magento 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.