invoiceninja / invoiceninja

A source-available invoice, quote, project and time-tracking app built with Laravel
https://invoiceninja.com
Other
8.11k stars 2.26k forks source link

Integrate option for CFDI compliance with invoices #9932

Open jacobburrell opened 3 weeks ago

jacobburrell commented 3 weeks ago

What version of Invoice Ninja are you running? ie v4.5 / v5 v5

What environment are you running? Docker

Have you searched existing issues/requests? Yes, this issue slightly mentions it in a roundabout way but doesn't directly request CFDI compliance.

Screenshots image

Additional context Secretary of ecommerce definition

The Digital Tax Receipt by Internet (CFDI) is an electronic invoice that describes a good or service purchased, the transaction date, the cost, and the corresponding taxes related to the payment of that transaction.

The CFDI validates operations carried out by individuals and legal entities before the SAT (Mexican Tax Administration Service), making it an essential element when starting a business.

The explanation is generally correct but can be improved for clarity and precision. Here's an enhanced version:

The CFDI is more than just a specific invoice format; it involves a direct registration process with the Mexican tax authority (SAT). For each invoice issued, you must digitally sign it using your private key, linking it to the SAT in real time. This step generates a unique digital certificate for that specific invoice, confirming its validity with the tax authority.

Additionally, when invoicing a client, especially for tax-deductible expenses, their information must be entered exactly as it is registered with the SAT. This includes precise spelling, capitalization, and formatting, ensuring that the invoice can be properly recognized by the tax system. Any discrepancies can prevent the invoice from being accepted for tax purposes.

jacobburrell commented 3 weeks ago

There are several APIs available that can handle the complexity of generating and managing CFDIs, but, as far as I know, all of these services are paid. For example, factura.com offers an API for handling this process.

Ideally, we would have an API provided directly by the SAT (Mexican Tax Administration Service) to avoid relying on third parties. Unfortunately, such an API doesn't seem to exist. Instead, we're required to work with certified providers (PACs – Proveedores Autorizados de Certificación) authorized by the SAT to issue and validate CFDIs. The problem is that many of these PACs are perceived as corrupt or unreliable, forcing us to go through intermediaries that don't always inspire confidence.

If Invoice Ninja could integrate support for one of these APIs or, even better, work towards a more direct connection with the SAT (should that ever become possible), it would be extremely valuable to users in Mexico dealing with CFDIs.

turbo124 commented 3 weeks ago

@jacobburrell

There are a couple of issues with this one.

  1. Mexico unfortunately does not use UBL as a standard interface, instead opting for its own proprietary format.
  2. Verification with a PAC adds additional overhead
  3. Submission into SAT appears to be an opaque process

We are working with third party providers for some specific regions. I would imagine that in time support for Mexico will become available using one of these, but I do not think a direct Invoice Ninja => SAT integration would be available anytime soon.

I'll update here when we can support Mexico