Checkout page
We host the checkout page. Creating a payment gives you a checkout_url shaped like
https://takemypay.net/c/<token>; send the customer there by redirect or by
link, whichever suits you.
What the customer sees
The available payment methods, the amount and your order description. The customer picks the method, not you: which methods are offered is configured gateway-side and can change without touching your integration.
- SBP — an NSPK QR code scanned in a banking app.
- Mir and international Visa/Mastercard — a card form, with 3-D Secure where the bank asks for it.
- Crypto — an address for a USDT transfer on TRC20.
When it is over the customer lands on return_url or fail_url if you
supplied them. That redirect is not proof of payment. Proof is the
webhook: a customer can close the tab before the redirect and the
payment will still go through.
How long a payment lives
30 minutes from creation, or 60 minutes for crypto counted from the moment that method is
picked. The current value always sits in expires_at. After it passes the payment
becomes expired and cannot be paid — create a new one.
The test-mode simulator
While the account is not activated, the checkout page shows a simulator with "succeed" and "decline" buttons instead of real methods. The same outcome can be driven by a request, which is how you exercise the integration in automated tests with nobody at a browser:
curl -X POST https://takemypay.net/api/v1/checkout/PUBLIC_TOKEN/test/complete \
-H "Content-Type: application/json" \
-d '{"outcome": "succeeded"}' outcome accepts succeeded or declined. Both fire a real
webhook, so the whole chain can be verified end to end — including signature checking on your
side.
The request errors if the payment is not a test one, is no longer pending, or has
expired.
Polling state
The checkout page polls the payment while the customer is on it:
curl https://takemypay.net/api/v1/checkout/PUBLIC_TOKEN/status
This address needs no authentication and works off the public token from
checkout_url. It is not meant for server-side reconciliation — use
GET /api/v1/payments/{id} with your key for that.
The rest of the checkout addresses
A few more addresses live under /api/v1/checkout/{token} — fetching
payment info, starting payment with the chosen method (/initiate), refreshing
(/refresh), submitting card data (/card/submit) and the 3-D Secure form
(/card/3ds-form). Our checkout page calls them; your integration does not need
them, and we do not guarantee their shape between releases.
Of the whole checkout, the stable contract for you ischeckout_urland/test/complete. The rest serves the page.