Volumedocs

Test mode

Everything a live payment does, with simulated money. Pay test checkouts from the page or from code, short and over included.

A vk_test_… key works in test mode from the moment you sign up. Test mode runs every step a live payment does (the checkout, the statuses, the webhooks and your balance) with a simulated custodian in place of real money. No coin moves and no payer is emailed.

Test and live are separate: a test invoice, checkout, webhook endpoint or balance does not exist in live mode. Your test webhook endpoint receives only test events, signed with its own secret.

Paying a test checkout

Open the checkout's url and choose where to pay from and a coin, as a payer would. A test checkout shows a Test mode panel under the address:

ButtonWhat arrives
Send the exact amountWhat is still due. Once nothing is due, the whole amount again, as a payer who pays twice.
Send too littleA tenth less than is due: the checkout becomes underpaid.
Send too muchA tenth more: the checkout is overpaid, and both invoice.paid and invoice.overpaid are sent.

The payment is seen at once and accepted about ten seconds later, so you see the Payment on its way screen and then the receipt. A Lightning checkout offers Pay the invoice only, since a Lightning invoice is paid exactly or not at all.

From code, the same thing is POST /v1/test_helpers/checkout_sessions/{id}/pay with { "outcome": "exact" }, "short" or "over". It works once the payer has chosen a coin; before that it is 409 no_payment_method.

What to try before going live

  • Paid. Send the exact amount. Your endpoint gets checkout.payment_detected, payment.confirmed and invoice.paid.
  • Short, then topped up. Send too little, then the exact amount: invoice.underpaid first, then invoice.paid.
  • Over. Send too much: invoice.paid and invoice.overpaid.
  • Paid twice. Send the exact amount twice. The second is an overpayment.
  • Expired. Open a checkout, pick a coin, and wait 30 minutes: invoice.expired.
  • Your endpoint down. Answer 500 for a while, then 200. Volume retries, and the dashboard's Developers page shows each attempt.
  • A forged event. POST a body to your endpoint with a made-up signature. Your handler must refuse it.

What test mode does not do

  • It does not touch a real chain or a real exchange. Addresses on a test checkout are not for real coins: never send any to them.
  • It does not email payers.
  • It does not pay anything out to a bank account. Test payouts are simulated too.

On this page