Common Issues

Start with the document's store view, numeric entity ID, selected format, mode and exact status. Most problems fall into one of four places: source data, generation, storage or downstream delivery.

No document was generated

  1. Open the invoice or credit memo and read its E-Invoice Information section.
  2. Confirm Enable E-Invoicing in the document's store view.
  3. For credit memos, also confirm Enable Credit Memo E-Invoicing.
  4. Check the generation mode and the known trigger limitation below.
  5. Try one manual generation action.

If manual generation works, the formatter and source data are probably usable; continue with queue/cron diagnostics. If it fails, work from the stored error instead of changing several settings at once.

Trigger does not behave as selected

The invoice-create observer does not check the invoice Generation Trigger. It can process at invoice creation even when On Invoice Payment or Manual Only is selected.

Use generation mode Disabled - Manual Only as the reliable way to suppress automatic invoice generation until the module is corrected. The credit-memo observer does respect Manual Only.

Status stays pending

Message Queue mode

Confirm the correct consumer is supervised and running:

php bin/magento queue:consumers:list
php bin/magento queue:consumers:start mageb2b.einvoice.generate
php bin/magento queue:consumers:start mageb2b.einvoice.generate.creditmemo

The first consumer handles invoices; the second handles credit memos. Also inspect your configured queue backend for backlog or failed messages.

Cron mode

Confirm Magento cron is running and inspect cron_schedule for the matching job:

Job Schedule
einvoice_generate_hourly minute 00 hourly
einvoice_creditmemo_generate_hourly minute 15 hourly
einvoice_generate_daily 02:00 daily
einvoice_creditmemo_generate_daily 03:00 daily
einvoice_retry_failed 04:30 daily

Running this once can help diagnose scheduling:

php bin/magento cron:run --group=default

It does not replace the production system cron.

Status is error

Open the document and copy the exact error message. Then check:

  • store-view seller/company data;
  • billing address, company and VAT ID on the order;
  • selected format, profile or XRechnung version;
  • payment terms and payment means code;
  • storage path and write access;
  • Magento's normal PDF generation for hybrid formats.

Correct the cause before retrying. The automatic retry job cannot repair missing or wrong business data.

Factur-X is selected but rejected

Confirm that Enable E-Invoicing is enabled and that Default B2B Format is Factur-X in the invoice's store view. The formatter reads that setting. Do not create a hidden database setting as a workaround.

XML exists but hybrid PDF does not

ZUGFeRD and Factur-X depend on Magento's PDF renderer before the XML is embedded.

  1. Generate the normal Magento invoice or credit-memo PDF.
  2. Confirm horstoeko/zugferd is installed.
  3. Review logs for Hybrid PDF preparation failed or an embed error.
  4. Check the stored PDF path and actual file.
  5. Verify memory, disk space and media-directory access.

XRechnung, EN 16931 and PEPPOL BIS are XML-only; the absence of an e-invoice PDF is expected.

Files are missing

Check Storage Strategy first.

  • Permanent writes XML and, for hybrid formats, PDF below the configured media path.
  • On demand intentionally leaves no permanent files and regenerates when an action asks for the document.

Do not apply blanket chmod -R or chown -R commands copied from a guide. Compare the media directory with the ownership and deployment permissions used by the rest of your Magento installation.

Filename is not what the admin hint suggests

The file managers replace entity/increment ID, format, type, date and datetime tokens. They do not replace the {order_increment_id} token shown in the admin hint. Use the variables listed in the Configuration Guide.

Amount verification cannot find the file

einvoice:verify-amounts --invoice-id and --creditmemo-id look in hard-coded entity-ID paths that do not match the default configurable filenames. Pass the actual CII XML path instead:

php bin/magento einvoice:verify-amounts --file=pub/media/einvoice/<actual-file>.xml

The reader is not a PEPPOL UBL validator.

XRechnung is rejected by a portal

The internal validator intentionally does not require a Leitweg-ID for its B2B use case. A public-sector receiver can require that value and additional national rules.

Confirm the selected XRechnung version, seller contact, buyer/routing reference and the portal's current rule set. The extension generates XML but does not perform portal submission.

PEPPOL provider rejects the document

Check the complete exchange contract:

  • seller endpoint ID and scheme;
  • buyer endpoint and scheme;
  • actual participant registration;
  • BuyerReference rather than its invoice-number fallback;
  • CustomizationID and ProfileID;
  • provider business-rule or Schematron report.

Magento's generated status means the UBL file was created. It is not a network delivery status.

Email has no attachment

Confirm that attachments are enabled for the correct flow and store view. Then check the strategy:

  • automatic: PDF for hybrid, XML for XML-only;
  • PDF only: nothing for an XML-only format;
  • both: only content that actually exists is attached.

With queued or scheduled generation, the transactional email may be sent before the document exists. Align email timing with generation or use an integration that sends after success.

Customer cannot download a PDF

The storefront link requires invoice ownership and an available hybrid PDF. It does not offer an e-invoice PDF for XRechnung, EN 16931 or PEPPOL BIS.

Useful support bundle

Provide:

  • installed package and Magento compatibility details;
  • store view and selected format/profile;
  • numeric invoice or credit-memo entity ID;
  • mode, trigger and current status;
  • exact sanitized error;
  • relevant system.log/exception.log lines;
  • validator output without customer or bank data.