USG-27Recommended EU law
Decide when prepaid credits carry VAT
For each credit product, record whether VAT is due when the credits are sold or when they are spent. Keep the reason and your accountant's sign-off. Charge and report VAT at that point only.
Region
European Union (EU). The duty comes from the law there. The rule applies only when the project serves people there, and its Applies when also holds.
How to do it
EU VAT law treats a voucher by what is known at sale. Credits that buy one service at one VAT rate in a known country are close to a single-purpose voucher. VAT is then due at sale. Credits spendable on goods or services at different rates, or in several countries, are multi-purpose, and VAT is due when they are spent. Some tax offices treat SaaS credits as a plain advance payment, which is also taxed when paid. The voucher rules are in Sell gift cards as vouchers with the right VAT and expiry. Store the VAT point on the credit product, and let the invoice code read it. Credits that expire unspent still leave VAT and accounting questions, so ask your accountant how to book them.
Examples
JavaScript example
export function vatLinesFor(event, product) {
if (product.vatPoint === 'sale' && event.kind === 'credit-purchase') return [vatLine(event.amountMinor, product)]
if (product.vatPoint === 'spend' && event.kind === 'credit-use') return [vatLine(event.amountMinor, product)]
return []
}
Python example
def vat_lines_for(event, product):
taxed_kind = {"sale": "credit-purchase", "spend": "credit-use"}[product.vat_point]
return [vat_line(event.amount_minor, product)] if event.kind == taxed_kind else []
How to check
Every credit product in the catalogue has a VAT point of "sale" or "spend" and a sign-off date. A test buys and spends credits of each kind, and VAT appears on the invoice at the recorded point only.
Sources
Related rules
- PAY-75 Sell gift cards as vouchers with the right VAT and expiry in Payments and billing
- PRC-20 Recognise unused credits as breakage by a written method in Pricing, plans and entitlements
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/usage-billing/credits-and-prepaid-balances/credit-vat-point">Agent Wranglers usage-based billing playbook</a>. In code you write, add a comment next to it with the same link.