docs · 01

Payment Guide & Integration Manual

Обновлено · 2026-05-21

This document is written for two audiences. End users who land on a payment page and want to understand how to complete a purchase safely. Merchants and developers who want to embed the gateway into their store. Each section is labelled accordingly.

For end users

1. What is happening on this page

You have been redirected to a secure checkout hosted by MeowSolutions Payments on behalf of a merchant. The page shows the merchant's name, the invoice number, the amount and a countdown — you have 60 minutes to complete the payment, after which the invoice expires automatically.

2. Choosing a payment method

  • Bank card (Visa / Mastercard / MIR). Enter your card number, expiry date, CVC and the cardholder name. Your bank may ask you to confirm the payment with a 3-D Secure code from your banking app.
  • SBP (Faster Payments). Open your bank's mobile app, scan the displayed QR code or confirm the payment within 30 seconds.
  • PayPal. You will be redirected to PayPal to log in and confirm.
  • Cryptocurrency. See the section below for a step-by-step walkthrough.

3. Paying with cryptocurrency

Open your wallet, paste the address shown on the checkout page, enter the exact amount in the indicated network and broadcast the transaction. Sending in the wrong network — for example, sending USDT TRC-20 to a BEP-20 address — will result in the funds being unrecoverable. The address shown is dedicated to your invoice and cannot be reused.

3.1 Sending from Binance

  1. Open the Binance app, go to Wallets → Spot and tap Withdraw.
  2. Select the asset shown on the checkout page (USDT / BTC / ETH).
  3. Choose the exact network indicated on the checkout (BEP-20, TRC-20, BTC, ERC-20). The network selector is the most common source of mistakes.
  4. Paste the address from the checkout, enter the exact amount shown, confirm the SMS / authenticator code and broadcast.

3.2 Sending from Trust Wallet

  1. Open Trust Wallet and tap the asset (e.g. Bitcoin or USDT).
  2. Tap Send. If the asset is USDT, make sure the chain selector at the top matches the network shown on the checkout (Tron for TRC-20, BNB Smart Chain for BEP-20).
  3. Scan the QR code on the checkout page or paste the address.
  4. Enter the exact amount shown including the network fee and confirm.

3.3 Sending from Exodus

  1. Open Exodus, click on the asset, click Send.
  2. For USDT — first open Settings → Assets and enable both Tether USD (Tron) and / or Tether USD (BSC).
  3. Paste the address shown on the checkout, enter the amount, set the network fee to the recommended value and click Send.

4. Common mistakes

  • Sending an asset in the wrong network — the funds reach a different address space and become unrecoverable.
  • Sending more or less than the displayed amount — under-payment will not credit the invoice automatically; over-payment leaves an over-credit balance that must be claimed via support.
  • Reusing an address from a previous invoice — each invoice generates a unique address.
  • Closing the page before broadcasting — the invoice is still alive for 60 minutes; you can reopen the link and complete the payment.

5. After payment

Card / SBP / PayPal payments are confirmed within seconds. Crypto payments are confirmed when the transaction reaches the required number of confirmations (1 for Bitcoin, 12 for Ethereum / ERC-20, 15 for BEP-20, 19 for TRC-20). Once confirmed, the merchant receives a signed webhook notification and your purchase is credited automatically.

6. Need help?

If anything goes wrong, write to commerce@meowsolutions.limited with the invoice number from the checkout page and, for crypto, the transaction hash. We answer within one business day.


For merchants & developers

7. Architecture

The gateway exposes a small REST API and a hosted checkout page. The merchant creates a payment via the API, receives a paymentUrl and redirects the customer there. When the payment is confirmed, the gateway sends a signed HMAC-SHA256 webhook to the merchant's registered endpoint.

8. Authentication

All API requests are authenticated with a bearer API key:

Authorization: Bearer pk_live_…

Each store also has a secret key used to sign webhooks and the checkout link. Never expose the secret key in the browser or in any public location.

9. Creating a payment

POST /api/v1/payments
Authorization: Bearer pk_live_…
Content-Type: application/json

{
  "paymentId": "4975772",
  "amount": 200,
  "currency": "USD",
  "description": "Поддержка_ARIZONA_GAMES",
  "defaultMethod": "card",
  "returnUrl": "https://merchant.example/success"
}

10. Response

{
  "success": true,
  "paymentId": "ABC123…",
  "externalPaymentId": "4975772",
  "status": "awaiting_payment",
  "method": "card",
  "amount": 200,
  "currency": "USD",
  "paymentUrl": "https://pay.pgs.limited/pay?storeId=5&paymentId=4975772&amount=200&description=…&sign=25fef110…",
  "expiresAt": "2026-05-21T15:30:00.000Z",
  "ttlSeconds": 3600,
  "wallets": []
}

11. Signature scheme

The sign query parameter on the checkout URL is computed as

HMAC_SHA256(
  secretKey,
  "amount=200.00&description=Поддержка_ARIZONA_GAMES&paymentId=4975772&storeId=5"
)

The parameters are sorted alphabetically by name, joined with &, and the resulting string is the HMAC payload. The same algorithm validates the link server-side; an invalid signature returns 403.

12. Webhooks

When the payment status becomes paid, we send a POST request to the store's webhookUrl with the following headers:

X-Meow-Event:       payment.paid
X-Meow-Signature:   <HMAC-SHA256 of the raw body using your secret key>
X-Meow-Event-Id:    evt_…
X-Meow-Payment-Id:  <internal payment id>
Content-Type:       application/json
{
  "event": "payment.paid",
  "paymentId": "ABC123…",
  "externalPaymentId": "4975772",
  "storeId": "12345678",
  "amount": "200.00",
  "currency": "USD",
  "method": "card",
  "status": "paid",
  "paidAt": "2026-05-21T15:24:11.000Z",
  "createdAt": "2026-05-21T14:30:00.000Z"
}

Always verify the signature before trusting the body. Webhook deliveries are considered successful on any 2xx response; on failure, the gateway retries with exponential back-off (1 m, 5 m, 30 m, 2 h, 12 h).

13. Querying a payment

GET /api/v1/payments/4975772
Authorization: Bearer pk_live_…

14. Cancelling a payment

POST /api/v1/payments/4975772/cancel
Authorization: Bearer pk_live_…

15. Test mode

Stores in test mode can call Simulate received on the checkout to mark the invoice as paid without actually moving funds. The webhook is delivered identically, which lets you build and verify your back-end before going live.

16. Going live

  1. Switch the store's testMode flag to false.
  2. Whitelist our webhook IPs on your firewall.
  3. Replace the pk_test_… key with the production pk_live_… key.
  4. Update your return URLs to production hosts.

Anything missing? Write to commerce@meowsolutions.limited.