Subscription billing platform testing
FintechAssuranceLabs engineers test subscription billing and revenue management platforms, the category of products like Chargebee, Recurly, and Stripe Billing. Billing platform testing covers proration on plan changes, dunning and card retry schedules, usage metering, tax calculation on invoices and credit notes, cancellation and renewal notices, and the handoff of invoice data to revenue recognition.
What breaks in subscription billing and what it costs
A billing platform earns a percentage of the revenue its clients bill, so a billing defect changes the client's invoices and the platform's fee in the same run.
- Second plan change credited from the period start. A customer upgrades on day 10 and downgrades on day 20, and the downgrade credits unused time on the upgraded plan from day 1. Every account that changes plan twice is under-billed, and the platform's percentage falls with the billed amount. When the error runs the other way and overcharges a US consumer paying by ACH debit, 12 CFR 1005.10(d) requires written notice of a varying preauthorized transfer at least 10 days before it, unless the consumer chose notice only outside an agreed range.
- Proration credit note reversed against recognised revenue. A plan change closes one subscription with a credit note and opens another, and the revenue export books the credit against revenue already recognised instead of the deferred balance for the unused period. IFRS 15 paragraph 21 accounts for a modification that is not a separate contract as a termination plus a new contract carrying the unrecognised consideration forward, or as a cumulative catch-up. Current revenue is understated, deferred revenue is overstated, and billing no longer reconciles to the client's general ledger at close.
- Retry on a decline that must not be retried. The dunning schedule retries every failed renewal on days 1, 3, 5, and 7, whatever the response code. Visa rules (announced 3 September 2020, effective 17 April 2021) do not permit a merchant to reattempt a Category 1 decline and allow up to 15 reattempts in 30 days for Category 2. A Category 1 decline needs a new payment method, which blind retries never request, so the renewal revenue behind the platform's percentage stays uncollected.
- Reverse charge on an unchecked VAT number. The tax step drops VAT and prints "Reverse charge" for any VAT number typed at checkout. Article 18(1)(a) of Implementing Regulation (EU) No 282/2011 lets a supplier treat a customer as a taxable person after confirming the validity of the number and the associated name and address. For a consumer, Article 58 of the VAT Directive places electronically supplied services in the consumer's Member State unless the Article 59c EUR 10,000 threshold applies, and the client pays VAT it never invoiced out of the revenue the platform's fee was calculated on.
- Cancellation that stops the plan but not the charge. The customer cancels in the portal, and a renewal job reading a stale replica, or a retry of an earlier failed invoice, charges the card the next day. 15 U.S.C. 8403 requires simple mechanisms to stop recurring charges for online negative option sales, and section 8404 treats a violation as a violation of an FTC rule. The client refunds the charge, or a dispute under Visa condition 13.2, Cancelled Recurring Transaction (Visa, 20 June 2019), reverses it.
Licence flag and the evidence buyers, auditors, and card networks ask for
Subscription billing carries licence flag "no": the platform triggers charges through the client's processor or bank, so evidence requests come from enterprise buyers and their auditors, and the rules below govern the client flows the platform runs. Sources checked on 2026-09-16.
Enterprise buyers and card networks
Billing output feeds the client's financial statements, so buyers ask for a SOC 1 report on controls relevant to internal control over financial reporting, a SOC 2 report, and a security questionnaire. For merchants offering free trials or introductory offers, the Visa policy of 20 June 2019 requires express consent at enrollment, online cancellation, and a reminder with a cancellation link at least seven days before a recurring charge when a trial ends or the price or billing period changes. Evidence we produce:
- invoice, credit note, and revenue schedule reconciliation per contract and period
- proration and tax reference values with the rounding rule per invoice line
- PCI scope evidence that card numbers stay in the processor vault and only tokens reach billing data
United States
The FTC amended its Negative Option Rule in October 2024, and the Eighth Circuit vacated the amended Rule on 8 July 2025 in Custom Communications, Inc. v. FTC. On 11 March 2026 the FTC issued an advance notice of proposed rulemaking asking whether amendments are needed, the latest step on the FTC rule page. Status verified on 2026-09-16: no amended rule is in force, 16 CFR Part 425 covers prenotification plans only, and online subscriptions fall under the ROSCA disclosure, consent, and cancellation requirements.
California Business and Professions Code section 17602, as amended by AB 2863 for contracts entered into, amended, or extended from 1 July 2025, requires:
- express affirmative consent, with verification kept for three years or one year after termination, whichever is longer
- a notice at least 3 days and at most 21 days before a free trial or promotional price lasting more than 31 days ends
- a notice at least 15 days and at most 45 days before a term of one year or longer renews
- online termination at will, with a "click to cancel" link shown alongside any retention offer
- a fee change notice no less than 7 days and no more than 30 days before the change
Evidence we produce: notice date tests per rule, consent record retention checks, and cancellation tests during open dunning cycles.
European Union
EBA Q&A 2018_4131 (published 1 March 2019) states that payments under a standing agreement, where the customer mandated the merchant and no payer action triggers each payment, can be considered payee-initiated and outside SCA. Article 14(1) of Delegated Regulation (EU) 2018/389 requires SCA when a payer creates, amends, or first initiates a series of recurring transactions with the same amount and payee; our PSD2 SCA page covers the rest. Article 24b(d) of Implementing Regulation 282/2011 presumes a consumer's location from two items of non-contradictory evidence, such as billing address, IP address, and bank location, or from one item of evidence provided by a party other than the supplier or customer, such as the payment provider's bank location, for suppliers under the EUR 100,000 threshold. Article 226(11a) of the VAT Directive requires the mention "Reverse charge" where the customer pays the VAT. Evidence we produce: merchant-initiated transaction flag tests and location evidence per invoice.
Proration, dunning, tax, and revenue handoff test scenarios
These scenarios feed the plan change and proration scenario suite, dunning and retry schedule test report, and revenue recognition output reconciliation from subscription billing testing:
- Upgrade, downgrade, and upgrade again in one period with day-based and second-based proration, and compare each line with a reference model, as the prorated billing guide describes.
- Change seats across months of 28, 30, and 31 days, and change a plan at 23:59 in the customer's time zone while the platform runs on UTC.
- Send usage events late, twice, and out of order, close the period, and match each rated line to the deduplicated events.
- Decline renewals with Category 1 and Category 2 codes, and check that the dunning schedule stops after Category 1 and stays within the Category 2 limit.
- Charge an EU renewal, a proration charge, and a retry as merchant-initiated transactions, and run a customer-present plan change through SCA.
- Bill consumers whose address, IP address, and bank country conflict, and businesses with valid and invalid VAT numbers, and check tax on each invoice and credit note.
- Cancel through the portal, a retention offer screen, and a cancellation email during dunning, and verify that no charge follows.
- Schedule a 45-day trial, an annual term, and a price change for a California consumer, and check each notice date against section 17602.
- Export invoices, credit notes, and plan changes, and reconcile deferred revenue per contract with the general ledger through ERP and accounting integration testing.
Integrations and protocols to cover
- Payment processor APIs: card tokens, stored credential and merchant-initiated transaction fields, network transaction IDs, decline codes, and account updater events.
- Bank debits: Nacha ACH debit entries with return codes, and SEPA Direct Debit collections in ISO 20022 pain.008 with R-transactions.
- Webhooks: invoice, payment, subscription, and dunning events with signatures, ordering, and replay.
- Usage ingestion: metering APIs, event streams, and batch files with idempotency keys.
- Tax: tax engine APIs, the EU VIES VAT number check, and address validation.
- Revenue recognition and ERP: journal exports, revenue schedule APIs, and general ledger connectors.
- Notifications and CPQ: email and SMS notice providers, and quote-to-subscription sync for contracted prices.
Related
Standards
Services
Guides
Sample deliverable
Sample, synthetic data
| Case ID | Calculation and rule | Inputs | Reference value | System value | Result |
|---|---|---|---|---|---|
| CALC-01 | Mid-cycle plan upgrade proration; plan terms prorate the old and new plan prices by whole days remaining in the billing period | Old plan 30.00 per 30-day period; new plan 90.00 per 30-day period; upgrade effective at 00:00 on day 11, leaving 20 days | 40.00 | 40.00 | Pass: the system charges 60.00 for the new plan and credits 20.00 for the old plan, matching the reference |
| CALC-02 | APR on a closed-end loan with an origination fee; actuarial method under 12 CFR 1026, appendix J; the APR shall be considered accurate if it is not more than 1/8 of 1 percentage point above or below the reference under 12 CFR 1026.22(a)(2) | Principal 10,000.00; origination fee 300.00 withheld from proceeds; note rate 9.00%; 36 monthly payments of 318.00; amount financed 9,700.00 under 12 CFR 1026.18(b)(3) | 11.09% | 9.00% | Fail: the system solves the APR against the 10,000.00 principal instead of the 9,700.00 amount financed, 2.09 percentage points below the reference; critical; blocks release |
| CALC-03 | APR on a closed-end loan with an origination fee; actuarial method under 12 CFR 1026, appendix J; the APR shall be considered accurate if it is not more than 1/8 of 1 percentage point above or below the reference under 12 CFR 1026.22(a)(2) | Principal 5,000.00; origination fee 100.00 withheld from proceeds; note rate 12.00%; 24 monthly payments of 235.37; amount financed 4,900.00 | 14.05% | 14.00% | Pass: the system APR is 0.05 percentage points below the reference, inside the 1/8 of 1 percentage point tolerance |
| CALC-04 | Federal income tax withholding on a supplemental wage payment at the flat rate; IRS Publication 15 (2026), section 7: if income tax was withheld from regular wages in the current or immediately preceding calendar year, the employer can withhold a flat 22% on supplemental wages identified separately | Bonus 5,000.00 paid separately from regular wages; income tax withheld from regular wages in 2026; supplemental wages before the payment 20,000.00; employer elects the flat rate | 1,100.00 | 1,100.00 | Pass: the system withholds 22% of 5,000.00, matching the reference |
| CALC-05 | Federal income tax withholding on a supplemental wage payment that crosses 1,000,000.00 in the calendar year; IRS Publication 15 (2026), section 7: the excess over 1 million is subject to withholding at 37%, without regard to the employee's Form W-4 | Bonus 50,000.00 paid separately from regular wages; supplemental wages paid in 2026 before the payment 980,000.00; employer elects the flat rate for the amount up to 1 million | 15,500.00 | 11,000.00 | Fail: the system applies 22% to all 50,000.00 instead of 22% to 20,000.00 and 37% to 30,000.00, so 4,500.00 is under-withheld; critical; blocks release |
| CALC-06 | Stock option vesting with a one-year cliff; grant agreement vests 25% at the first anniversary, then 1/48 of the grant monthly on the commencement day, or on the last day of a month without that day | Grant of 48,000 options; vesting commencement 2025-01-31; cliff date 2026-01-31; vested balance requested as of 2026-02-28 | 13,000 options | 12,000 options | Fail: the system skips the February vesting event because February has no 31st day, so 1,000 vested options cannot be exercised; high; blocks release |
| CALC-07 | Per diem allowance for meals and incidental expenses under the high-low method; IRS Notice 2025-54, section 5, paragraph 1: 86.00 per day for a high-cost locality; Rev. Proc. 2019-48, section 6.04(1): the payor may allocate three-fourths of the rate to each partial day of travel | Travel to Boston/Cambridge, a high-cost locality from October 1 to September 30 under Notice 2025-54, section 5, paragraph 2; departure 2026-08-10; return 2026-08-12; lodging reimbursed on receipts; payor policy uses the three-fourths method | 215.00 | 258.00 | Fail: the system pays 86.00 for the departure and return days instead of 64.50 each, so the allowance is 43.00 above the reference; high; blocks release |
| CALC-08 | Taxable interest on a return rounded to whole dollars; Form 1040 instructions (tax year 2025): if you have to add two or more amounts to figure the amount on a line, include cents when adding and round off only the total | Three interest statements of 120.40, 80.40, and 45.40 for line 2b; return set to whole-dollar rounding | 246 | 245 | Fail: the system rounds each statement before adding, so line 2b is 1 below the reference; medium; release allowed with the defect scheduled for the next release |
Amounts use XTS, the ISO 4217 code reserved for testing, with rule thresholds stated in US dollars applied at one XTS per dollar. Loans, employees, grants, trips, and returns are generated test records, and every reference value was computed outside the system under test.
Questions
What is dunning?
What is prorated billing?
What is proration?
Scope testing for your billing platform
Send your pricing models, payment processors, tax setup, and revenue recognition exports, and we return a test scope with the evidence enterprise buyers and their auditors read.
Scope your testing