Simulate a collection
The same, for your collection account rather than a customer’s. Test keys only.
Test keys only. An sk_live_ key is refused with 403 not_test_mode. See test mode.
The same thing for a merchant's collection account, for anyone not using per-customer accounts. Optional account_number picks a specific account of theirs; omitted, it uses their collection account.
{ "outcome": "underpaid", "amount": 5000, "account_number": "9913607261" }An account number belonging to someone else answers 404 not_found, not 403. Telling the two apart would turn this into a way to ask whether a given account number belongs to us.
Send reference to simulate a payment you started with POST payments, which is the clearest option and the only one that works for a checkout with no customer_reference:
{ "outcome": "paid", "reference": "9010164afee121d815" }{
"outcome": "paid",
"credited": true,
"reference": "SIM20260912T7F3A9C1D",
"amount": 25000,
"account_number": "5090280226",
"checkout_reference": "9010164afee121d815",
"message": "Simulated paid of 25,000.00. A collection.success webhook has been queued."
}amount is optional with a reference: the session knows what it asked for, so underpaid and overpaid mean something definite without one. A reference belonging to someone else answers 404 not_found, as an account number does.
Why it needs saying. A checkout with no customer_reference borrows an account for twenty minutes rather than owning one, so there was no account of the merchant's to name. account_number answered 404 not_found and the buttons on the page did nothing at all, silently. That is the configuration most merchants ship, because it is the one that quotes a round amount, and until 12 Sep 2026 it was the only one that could not be tested. Fixed: an account_number that belongs to a checkout of yours now works too.