Read from the invoice, not from a second place
Gravity PDF’s invoice template already carries an invoice number, a due date and a VAT rate. The plugin reads those and drops its own fields from the screen — so there is no second copy to keep in sync, and nothing to get out of step.
The invoice number honours gfpdf_invoice_number
A counter add-on that renumbers the printed invoice renumbers the XML with it.
The payment means follows the gateway
An order paid through PayPal or Stripe is reported as an online payment service, a card as a bank card, an entry with no gateway falls back to the code you choose. Extendable through one filter.
Correct arithmetic, checked five ways
Line totals, allowances, charges, the VAT breakdown and the grand total are verified against the identities EN 16931 defines — including the awkward one where an untaxed shipping fee needs a second, zero-rated VAT category of its own.
Enter the seller once
Company name, address, VAT identifier, tax number, bank and contact details live on the shared (e)invoice Settings page, not in every feed. The other add-ons of the family read the same values.
Mandatory fields are marked mandatory — and only those
The screen follows EN 16931’s cardinality: a seller name and a country code are required, a street is not, and a field whose value the plugin already knows is never demanded from you. The country list comes from Gravity Forms itself, so the two can never disagree about what „DE“ means.