Payment links
A payment link opens a dedicated order page. Customers see the seller, purchase description, available methods and total due on their phone or computer.
On this page
What an invoice includes#
For a new invoice in the interface, USD offers cards and Alipay; RUB offers SBP; USDT offers crypto. The API can also save USD + crypto for compatibility, but its live crypto payment is blocked with crypto_requires_usdt. USD and USDT are distinct, with no automatic conversion or assumed 1:1 rate. A crypto payment requires a separate USDT invoice.
Never include passwords, API keys, card details or bank codes in public descriptions. Use an order title and reference the customer recognizes.
- Store name, an order title of up to 120 characters and a description of up to 500 characters.
- Base amount and an explicit USD, RUB or USDT currency.
- Compatible methods, separate fee and VAT shares, an order reference and link expiry.
- Owner responses include link.payment with the saved state of an existing operation; this is separate from the link’s availability state.
Any — the customer chooses#
Any selects all methods compatible with the invoice currency: cards and Alipay for USD, SBP for RUB, and crypto for USDT. The API takes a concrete methods array rather than the string any. Each method has its own quote.
For a new invoice in the interface, USD offers cards and Alipay; RUB offers SBP; USDT offers crypto. The API can also save USD + crypto for compatibility, but its live crypto payment is blocked with crypto_requires_usdt. USD and USDT are distinct, with no automatic conversion or assumed 1:1 rate. A crypto payment requires a separate USDT invoice.
For a new live card or Alipay payment, the current gateway supports only feeCustomerPercent=0 and vatCustomerPercent=100: the merchant covers the entire processing fee and VAT is added in full for the customer. Other shares can be saved and calculated on an invoice, but execution is blocked with unsupported_allocation. The server never silently changes saved terms. SBP and USDT crypto payments support every processing-fee share and have no VAT.
Creating a link#
- 1
Open Payment links in your account.
- 2
Enter a title, amount, currency and description. Set fee and VAT shares with the two controls.
- 3
Keep Any to let the customer choose, or select specific methods. Set the expiration.
- 4
Compare the total for each method and preview checkout.
- 5
Receive the ready checkout link immediately after creation, then copy it for your customer or widget.
Terms stay with the invoice#
A saved invoice does not change when store settings change. Its price, currency, fee and VAT shares, order reference and metadata belong to that order. This keeps the total consistent for a customer who has already opened the link.
Create a new link and pause the old one when the price, description or cost allocation changes. Editing a URL amount cannot change the server calculation.
A dedicated checkout page#
Server links are saved in the database and open across devices at /pay/… without merchant account access. A customer does not need to register to view an invoice. Store balances, settings and other customer records remain private.
The /pay/demo example previews the experience without charging money. Browser demo links are test data and must not be presented as real invoices.
Managing availability#
Pausing, cancelling or expiring a link blocks a new operation. It does not hide a dispatched payment: status, reconciliation and a requested bank code remain available. Link availability and financial state are checked separately.
Resuming lifts a pause without changing terms. Cancellation is final, and an expired link cannot be extended. Create a new invoice for a new order or changed terms, not to retry a charge whose result is unknown.