Any other platform
Shopify, GSMHub, WHMCS, something bespoke — if it can make an HTTPS request and receive one, it can take payments through GSMOnePay.
Nothing is missing though: this is the very same REST API the WebX and GSMTheme plugins call internally. It is simply wired by hand. Budget around 40 lines of server code.
The whole flow
- Your server signs and POSTs to
/api/v2/checkout/sessions. - You redirect the customer to the
checkout_urlyou get back. - We POST a signed webhook to your server once the payment confirms.
- You verify the signature, check the amount, and credit the order.
Creating the session
$timestamp = (string) time();
$signature = hash_hmac(
'sha256',
$timestamp . '.' . $merchantId . '.' . $email . '.' . $amount,
$secret
);
// POST to /api/v2/checkout/sessions with
// X-Checkout-Timestamp: $timestamp
// X-Checkout-Signature: $signature
Complete working PHP and Python — including the amount-formatting rule that trips people up — is in the integration guide.
Verify the signature with a constant-time comparison, confirm the paid amount matches what you charged, and make crediting idempotent so a retried delivery cannot pay out twice.
Try a real checkout
This opens a genuine GSMOnePay checkout session — signed server-side, exactly like the one your integration would create. Nothing here is simulated.
This is a live payment page for 1 USDT. Look around freely — QR code, amount, countdown, copy buttons. Only complete the transfer if you actually want to: it is real cryptocurrency and it goes to the GSMOnePay platform wallet.