Skip to main content
A checkout generates a dynamic virtual account — a bank account number minted on the fly for one specific payment, on SafeHaven’s network. It’s tied to an exact amount, expires after a set window, and is what powers the checkout widgets and the checkout_url//pay/{reference} payment page. This is different from a persistent virtual account: a dynamic account exists for a single transaction only, while a persistent account is reused by the same customer indefinitely.

Initialize

Start a checkout session

Verify

Poll a checkout’s payment status

Sandbox Simulate

Test the full flow without real money

The flow

  1. Your backend (or a client-side widget using a public key) calls Initialize, gets back a checkout_url and a dedicated account number.
  2. The customer pays into that account, or is redirected to checkout_url.
  3. Payracle sends a webhook the instant the transfer lands.
  4. You can also Verify the checkout by reference to poll its status directly — useful for the checkout page itself, less useful as your source of truth (trust the webhook for that).