PS Wallet Help
RUEN
Open wallet

PS Wallet Pay overview

What PS Wallet Pay is, how to create an app, get a token, and make your first API request.

On this page

PS Wallet Pay is the PS Wallet payment system for accepting crypto in your bots, websites, and apps. You create an invoice via the API — in a coin, dollars, or rubles — the user pays it in PS Wallet in a couple of taps, and the funds arrive on your app's balance. From there you can withdraw them to your own account or send them to users via a transfer or a check.

How it works

  1. Your server creates an invoice with the createInvoice method and receives a payment link.
  2. You send the link to the user. The invoice opens in PS Wallet: in the bot chat with a payment button, or directly on the payment screen in the mini app.
  3. The user pays from their PS Wallet account.
  4. The payment amount minus the fee — 0.3% — is credited to the app balance, and if webhooks are connected, your server immediately receives an invoice_paid notification.
  5. You can withdraw funds from the balance to your PS Wallet accounts in the dashboard, or send them to users via transfer and checks.

Getting started

  1. Open PS Wallet in Telegram (@pswallet) → "Profile" → "PS Wallet Pay" → "Create new".
  2. Set the name, description, project link, and logo in the "App information" section — your customers see them on the payment screen.
  3. Copy the token in the "API token" section (you will need your PIN). The token gives full access to the app, so store it only on the server and never share it. If the token leaks, tap "Regenerate": the old one stops working immediately.
  4. If you need payment notifications, specify your server address in the "Webhooks" section.
  5. If you are going to send money to users, enable the transfer and createCheck methods in the "Security" section. They are disabled by default.
!

The token is access to the money on the app's balance. Do not put it in the code of mini apps, websites, or mobile clients. For more details, see the Security section.

How to test

There is no separate test network. For development, create a separate app and test everything with small amounts: you can pay your own app's invoices yourself.

✓

It is convenient to test webhooks with the "Send test" button in the "Webhooks" section: your server will receive a test event signed the same way as real notifications.

First request

Check the token with the getMe method. Replace $TOKEN with your app's token.

curl https://pay.pswallet.org/api/getMe \
  -H "PSWallet-Pay-API-Token: $TOKEN"
// Node.js 18+ (built-in fetch)
const response = await fetch("https://pay.pswallet.org/api/getMe", {
  headers: { "PSWallet-Pay-API-Token": process.env.PSWALLET_PAY_TOKEN },
});
const data = await response.json();
console.log(data.result);
import os
import requests

response = requests.get(
    "https://pay.pswallet.org/api/getMe",
    headers={"PSWallet-Pay-API-Token": os.environ["PSWALLET_PAY_TOKEN"]},
    timeout=15,
)
print(response.json()["result"])

Response:

json
{
  "ok": true,
  "result": {
    "app_id": 1234,
    "name": "My Shop",
    "payment_processing_bot_username": "pswallet"
  }
}

API methods

MethodHTTPWhat it does
getMeGET, POSTChecks the token and returns app information.
createInvoicePOSTCreates a payment invoice.
getInvoicesGET, POSTLists invoices.
deleteInvoicePOSTDeletes an unpaid invoice.
transferPOSTTransfers money to a PS Wallet user.
getTransfersGET, POSTLists transfers.
createCheckPOSTCreates a check.
getChecksGET, POSTLists checks.
deleteCheckPOSTDeletes an unactivated check.
getBalanceGET, POSTApp balance.
getExchangeRatesGET, POSTCoin rates to USD and RUB.
getCurrenciesGET, POSTCoins the API currently accepts.
getStatsGET, POSTApp statistics for a period.

Documentation sections

  • Requests and responses — API address, authorization, parameter and response formats, request limit.
  • Coins and amounts — coin codes, precision, USDT on any network, invoices in dollars and rubles.
  • Invoices — createInvoice, getInvoices, deleteInvoice.
  • Transfers — transfer, getTransfers.
  • Checks — createCheck, getChecks, deleteCheck.
  • App, balance, and rates — getMe, getBalance, getExchangeRates, getCurrencies, getStats.
  • Object types — fields of Invoice, Transfer, Check, and other objects.
  • Webhooks — payment notifications, signature verification, retries.
  • Errors — error format and codes.
  • Fees and limits — how much accepting payments costs and what limits apply.
  • Security — token, allowed methods, IP allowlist.
Updated November 9, 2026Translated automatically from Russian.