Test what happens
after your app says success.
Choose a customer flow. Get practical failure cases and the results your app should deliver.
Payments and access
6 test cases to adapt to your app
The result you’re testing
The customer can use the feature they paid for, on the right account.
- Payment confirmed
- Access saved
- Paid feature works
Verify the payment on the server, link it to the customer, then check authorisation for the promised feature. A checkout redirect alone proves none of these.
Payment succeeds, access does not.
Complete a test payment. Make the entitlement write fail, then try the paid feature.
Expected resultThe feature denies access, and that denial can be linked to the verified payment. Retry the grant safely; do not show access as delivered.
The payment belongs to a different account.
Start checkout as one account, then sign in as another before returning.
Expected resultAccess belongs only to the account linked to the payment. The return page cannot grant the current browser account somebody else’s purchase.
The payment event arrives twice.
Replay the same verified test webhook after it has already been processed.
Expected resultProcessing is idempotent: one grant, no duplicated credits or welcome actions, and no accidental second charge.
The customer closes checkout after paying.
Complete a test payment but prevent the browser from loading the success page.
Expected resultServer-side fulfilment still grants the right access. A missing browser return is not evidence that the payment or customer task failed.
The payment has not settled yet.
Use a pending or delayed test payment method, then check access before and after confirmation.
Expected resultAccess follows your stated payment policy. Pending is shown honestly, and absence of a confirmation event is not classified as a proven failure.
Access is saved, but the app still shows Free.
Grant access while the customer has an old session open. Refresh and request the paid feature.
Expected resultThe UI and server authorisation reflect committed access. Detect a stale upgrade screen separately from a real server denial.
Run these in a test environment. This generator has not inspected or tested your app. Missing telemetry alone is not proof of failure.
Read the related troubleshooting guideKeep checking after you deploy.
These tests help before release. Braith monitors configured customer tasks in production and flags failures backed by evidence.
Connect first. Pay only when you explicitly activate a paid plan.