Billing Replayv0.1.1

BILLING EDGE-CASE LAB

Replay the event.
Check the access.

Catch duplicate credits, stale subscription updates, and access that survives cancellation.

Developer preview

Try the synthetic example below.
Use the local CLI to test your app’s actual access decisions.

01Replay workspaceSynthetic demo · no account connection
EXAMPLE IMPLEMENTATION

Activate paid access

A paid subscription should unlock the customer’s account.

EVENT SEQUENCEOBSERVED ACCESS
1
subscription.activeAlice starts a subscription
Not run
EXPECTED RULE

An active subscription grants access to its customer.

02 / YOUR APP, YOUR RULES

Keep the expectations.
Replace the demo adapter.

The CLI sends normalized test events to your adapter and checks the access decision returned by your application. Reports show the expectation and the observed result for each step.

A test adapter is required. These fixtures are not complete Stripe events, and passing this suite is not a security certification.

Download the CLI + examples Node.js 22+ · no runtime dependencies
LOCAL WORKFLOW
# See a seeded failure
node bin/billing-replay.mjs demo --mode vulnerable --html report.html

# Check your staging adapter
node bin/billing-replay.mjs run --suite examples/basic-suite.json --adapter ./your-adapter.mjs --json report.json

Expectations are authored separately from the handler. A failed assertion returns a failing exit code.

03 / SCOPED INTEGRATION PILOT

Test one real
billing flow.

$99USD / one pilot
  • One agreed staging billing flow
  • Three agreed failure scenarios
  • Replayable suite and evidence report

Developer preview. Scope is reviewed before payment. Production changes, a full security audit, and guaranteed bug discovery are not included.

Share a description only. Do not send API keys, customer data, or production credentials. Your request is stored to assess and respond to this pilot; it is not published.

Our page-load counter stores only the date, page and total, without cookies or visitor identifiers. Inquiry details are saved separately when you submit a form.