Skip to content

Known limitations

One VAT rate per event. Every line is invoiced at the single configured rate. An event selling items at different rates fails issuance (visibly) rather than mis-invoicing. A per-rate mapping is not implemented yet.

Partial refunds have no credit note. Both providers can only credit a document's full value. A partial refund issues nothing until refunds reach the full amount; you can issue a full credit note by hand.

Duplicate client records stop issuance (Fact.pt). If a NIF matches several clients in Fact.pt, clean them up in the Backoffice and retry.

Fact.pt client data is overwritten. When a client is created/updated from an order, the order's address replaces the one on file for that NIF.

Switching providers mid-event doesn't re-issue. Old documents stay with the provider that issued them, and can no longer be downloaded through pretix.

No bulk issuance. Issuance by hand is one order at a time, on purpose. For a backlog, loop the task from a shell:

# python -m pretix shell
from django_scopes import scopes_disabled
from pretix.base.models import Order
from pretix_ptinvoicing.tasks import issue_invoice

with scopes_disabled():
    for order in Order.objects.filter(event__slug="my-event", status=Order.STATUS_PAID):
        issue_invoice.apply(kwargs={"order_pk": order.pk, "event_pk": order.event.pk})

Orders already issued successfully are skipped.