Create a payment link
Returns a link to a hosted payment page. The customer picks a coin and pays a fresh address; every
deposit is forwarded to your wallet and reported to your callback like a /create/ payment. Give at
least one address_<family>: the page offers every coin of the families you give a wallet for, or
only coins. Limited to 30 requests a minute and 1,000 a day per IP.
kind?stringpayment: a fixed fiat amount, paid once. deposit: any amount, any number of times.
"payment""payment""deposit"value?stringAmount to collect, in currency. Required for a payment link.
currency?stringFiat code (usd, eur, …). Required with value or suggested_value.
suggested_value?stringdeposit links: an amount shown on the page, never enforced.
address_evm?stringYour wallet for Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum, Optimism and Avalanche, or a split
pct@address|pct@address. address_tron, address_btc, address_ltc, address_bch, address_doge
and address_sol work the same for their chains. At least one is required.
address_tron?stringaddress_btc?stringaddress_ltc?stringaddress_bch?stringaddress_doge?stringaddress_sol?stringcoins?stringComma-separated tickers to offer, each with a wallet for its chain. Defaults to every coin you gave a wallet for.
callback?stringYour URL. It receives the callback of every deposit, with noncepay_link and noncepay_ticker added
to its query string, and, for a payment link, one link-paid callback.
uripending?integer1 to also be called when a deposit is first seen.
001post?integer1 to receive callbacks as a POST form.
001json?integer1 to receive callbacks as a POST JSON body.
001redirect_url?stringpayment links: where the page sends the customer once paid, with link_id and success_token added.
uriitem_description?stringPlain text shown on the page.
length <= 128merchant_name?stringPlain text shown on the page.
length <= 64logo_url?stringAn https image shown beside the merchant name, loaded from your server with no referrer. NoncePay never uploads or hosts it.
urilength <= 2048expire_at?integerpayment links: expiry in epoch seconds, at least one hour ahead. Defaults to 7 days.
tolerance?stringpayment links: percent, 0 to 1, by which the paid total may fall short of value and still count as paid.
"0"The link.
application/json- response
status?stringlink_id?stringuuidpayment_url?stringThe page to share.
urisuccess_token?stringSecret added to redirect_url with link_id once the link is paid. Store it with the link
and compare it with the one on the redirect.
curl -X GET 'https://api.noncepay.app/link/create/?value=49.90¤cy=usd&address_evm=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266&coins=trc20%2Fusdt%2Cbep20%2Fusdt&callback=https%3A%2F%2Fshop.example%2Fpaid%3Forder%3D1042'{ "status": "success", "link_id": "3f6c2a1e-8b4d-4c7a-9e21-5d0f7b9a6c13", "payment_url": "https://checkout.noncepay.app/?id=3f6c2a1e-8b4d-4c7a-9e21-5d0f7b9a6c13", "success_token": "q3J8vT0mZk6xR1yH5wN2bC9dL4sF7gA0eU8iO3pK6jM"}Get the callback signing key GET
RSA public key (PEM) that verifies the `x-ca-signature` header of every callback.
Read a payment link GET
The public view the payment page renders. It never contains your wallets or callback URL. `redirect_url`, with `link_id` and `success_token` added, is returned only once the link is `paid`.