Crypto Payment Processor API - No KYC - Instant Payouts - PayGate.to
Crypto payment processing API without sign up and without KYC. This API allows you to generate unique crypto receiving address for payments with a callback notification feature to your website to mark orders as paid. Please review supported coins and minimum amounts list.
Generated receiving wallets are unique for each callback URL. Any amount above the minimum allowed sent to the generated wallet address will be instantly forwarded to your original wallet without any delays or holds. Your website will receive a GET callback request with more information about any transaction.
If the customer made a mistake sending to the wrong token or send through the wrong network our system will still forward the crypto to you automatically. This feature is available for TRC-20, and EVM-based blockchains for all supported tokens across all chains in our system.
Optionally for customer convenience you can generate a QR code for the generated wallet in step 2.
Any crypto sent by the customer above the minimum will be forwarded to your specified wallet and a callback will be sent to your website including your original passed GET parameters plus our transaction data parameters value_coin representing paid crypto value, coin parameter representing coin ticker with underscore format (example: erc20_usdc) and txid_in parameter representing TXID of the customer transaction to the receiving wallet.
Affiliate system consumes higher blockchain fees due to multiple payouts per transaction. You can use the affiliate estimated blockchain fees endpoint to get the values.
The following API endpoints are for the standard integration of the crypto payment gateway system. It is for merchants who want to create automated receiving crypto wallet addresses with QR codes to be displayed for their customers convenience. Any cryptocurrency sent to those generated receiving addresses will be automatically forwarded to the merchant predefined wallet without any delays or holds.
Our payment bot will send a GET request to the merchant predefined callback URL once a payment is confirmed at the receiving wallet address. Merchant need to have the proper coding logic at their server side to catch those callback events and change order/invoice status within their own system.
Merchants integrating this crypto payment gateway system must be aware of the minimum order value per ticker. Any value sent by the customer below those minimums will be stuck at the receiving wallet forever as the value is less than the blockchain fees to forward them.
Merchants must also be aware that generating a unique receiving wallet address with a correct merchant payout wallet requires that callback links must be unique by using at least one GET parameter at those links with a unique value for those parameters in order to generate a unique receiving wallet. Once a crypto receiving address is generated it is tied to the specified callback link and the payout wallet can't be changed later unless a new unique parameter value is passed. The unique GET parameter can be any of the merchant choice like order numbers or invoice IDs.
address: Your merchant wallet address to receive payouts, it must be compatible with the network and coin selected.
callback: Your website URL where you will receive GET notification after payment is received. You must have at least one unique GET parameter with each request. If you use the same parameter value again the same temporary receiving address will be provided in the response. In production use your own unique URL and NOT example.com
After a payment is made our bot will add multiple parameters to the GET notification request about transaction information: value_coin representing paid crypto value, coin parameter representing coin ticker with underscore format (example: erc20_usdc) and txid_in parameter representing TXID of the customer transaction to the receiving wallet. Those will be added after your existing unique GET parameters in the callback URL.
Optional Parameters
pending: optional parameter for enabling pending (unconfirmed) blockchain transactions callback notifications. Default value: 0 Set the parameter to pending=1 to enable this feature. When enabled you will be notified of pending transactions (were sent by the customer but not yet confirmed by the blockchain). Notes: To avoid receiving multiple callback requests, please ensure that the response to the callback request is a plain text response with the message ok.
confirmations: optional parameter to set the number of blockchain confirmations needed before sending a confirmed callback. Default value: 1 Minimum: 1 Example parameter: confrimations=2
Response
address_in: Newly generated receiving wallet address assigned to the provided callback URL. Any crypto sent to this address will be forwarded instantly to the specified merhant wallet in the original request.
callback_url: The callback URL provided with your request for confirmation.
ipn_token: This token is useful when provided to our support team we will be able to track your payment and investigate failed callback events.
You can use this endpoint to get the estimated blockchain fees. You don't need to pass any GET parameters for this request. Only the ticker path is required.
status: If the value is not success then the request was a failure.
estimated_cost: Estimated blockchain fees shown in the main network currency value. For example if you are fetching the estimated blockchain fees for trc20/usdt the value will be displayed as Tron (TRX).
estimated_cost_currency: The estimated blockchain fees calculated in fiat currencies for easier conversion.
You can use this endpoint to get the coin name, minimum transaction value and fiat converted values. You don't need to pass any GET parameters for this request. Only the ticker path is required.
minimum: The minimum transaction value of the coin that can be sent to the generated wallet address. Any sent amount below the minimum will be stuck in the generated address forever as it is less than required fees to process your forwarding transaction.
prices: Fiat converted value prices of the coin in different currencies.
You don't need to pass any GET parameters with this endpoint. It will return all supported networks with nested coins in JSON format listing coin name, identifier (ticker), logo and minimum transaction value (minimum_transaction_coin).
The hosted multi-coin mode is an optional integration setup designed for merchants seeking to redirect their customers to one hosted payment page with multi-cryptocurrency options enabled while passing fiat value and currency. End customer will have the ability to select the desired coin for payment, the amount to send + the QR code of the unique receiving wallet address will be displayed on the hosted page. The hosted page will keep checking every minute for confirmed transactions done to the receiving wallet and will compare them to the fiat amount specified by the merchant.
The hosted page is two way encrypted to prevent manipulation from the customer side and the callback links are encrypted so it can't be guessed by the end customer. It can be fully rebranded too by following the custom domain guide.
This endpoint is optional and it must be used if you want to use the hosted payment page with multi-coin mode that allows your customer to select from multiple cryptocurrencies while you pass the amount to be paid in fiat value. This can be useful if you don't want to go through complicated coding integration on your own website as the hosted multi-coin page will automatically detect the customer selected coin minimum value, convert fiat to crypto and display the proper coin value to pay + QR code. However in case you want to enable each coin while indvidually hosting the payment within your own website pages then you must use the default https://api.paygate.to/crypto/{ticker}/wallet.php
Query Parameter
Send the mandatory JSON payload per the same format as the example below via POST method. The POST body should contain valid JSON data and it must be in the following format:
You must pass your merchant wallets where you would receive instant payouts for the desired networks. EVM wallet is the same for networks (ERC20 - BEP20 - ARBITRUM - AVAX-C - POLYGON - BASE - OPTIMISM - MONAD - LINEA).
fiat_amount and fiat_currency are mandatory for the multi-coin mode. If you want to disable some blockchain network from the list available to your customer in the multi-coin mode then you just don't include its respective key or value merchant wallet in the POST request body. However at least one wallet is required otherwise no blockchain network can be enabled.
callback: Your website URL where you will receive GET notification after payment is received. You must have at least one unique GET parameter with each request. If you use the same parameter value again the same temporary receiving addresses will be provided in the response.In production use your own unique callback and NOT example.com
By using this endpoint customer will be redirected to a hosted crypto payment checkout page with multi-coin selection. Fiat amount will be converted to the customer selected cryptocurrency and a QR code of the address will be displayed. Optionally you can add the blockchain fees on the customer.
add_fees: Optional parameter if set to 1 blockchain fees will be added to the total payment value so the customer will handle blockchain sending fees.
domain: This is an optional parameter to white-label (rebrand) the hosted multi-coin checkout page with your own custom domain name. You can set your own rebranded subdomain that will replace any instance of api.paygate.to in the hosted payment page code. The format of this optional parameter value should be like api.example.com and it can be set to be hidden within your cloudflare worker code to prevent manipulation.
logo: urlencoded image URL to be used as the brand logo displayed on the multi-coin crypto checkout page. This is an optional value and it can be for example your own website/brand logo.
background: urlencoded HEX color code to optionally change the background color of the checkout page. Instead of HEX code you may pass direct CSS color naming like green, blue, orange, etc.
theme: urlencoded HEX color code to optionally change the theme color of the checkout page. Instead of HEX code you may pass direct CSS color naming like green, blue, orange, etc.
button: urlencoded HEX color code to optionally change the checkout page button color. Instead of HEX code you may pass direct CSS color naming like green, blue, orange, etc.
The affiliate endpoints will allow you integrating the same crypto payment system while setting an extra affiliate wallet for earning. The default endpoint will set the commission to 0.5% per transaction while you can use the custom affiliate endpoint to set your own percentage commission on every transaction. The custom affiliate commission endpoint may have other use cases like integrating a crypto payment system with unique generated receiving wallets that would forward any received crypto automatically to two specified wallets with a preset percentage distribution.
Individuals and companies who would like to white-label or instantly rebrand and earn this crypto payment system while setting their own custom commission may follow the custom domain guide for a more simple and quick rebranding.
Optionally if you want to white-label (rebrand) our payment gateway then you can use this affiliate.php endpoint as the first step and pass your affiliate wallet as an extra affiliate parameter to earn 0.5% commission on every sale. Merchant wallet and affiliate wallet must be different or the request will fail.
Theminimum transaction valueis higher when setting your affiliate wallet. You may also use the API to fetch minimum transaction values for each coin within the affiliate system.
Create a receiving crypto wallet with a payment notification feature to your website.
address: Your merchant wallet address to receive payouts, it must be compatible with the network and coin selected.
callback: Your website URL where you will receive GET notification after payment is received. You must have at least one unique GET parameter with each request. If you use the same parameter value again the same temporary receiving address will be provided in the response. We will add multiple parameters to the request about transaction information: value_coin representing paid crypto value, coin parameter representing coin ticker with underscore format (example: erc20_usdc) and txid_in parameter representing TXID of the customer transaction to the receiving wallet.
affiliate: This wallet will receive 0.5% commission on every sale, it must be compatible with the network and coin selected.
Optional Parameters
pending: optional parameter for enabling pending (unconfirmed) blockchain transactions callback notifications. Default value: 0 Set the parameter to pending=1 to enable this feature. When enabled you will be notified of pending transactions (were sent by the customer but not yet confirmed by the blockchain). Notes: To avoid receiving multiple callback requests, please ensure that the response to the callback request is a plain text response with the message ok.
confirmations: optional parameter to set the number of blockchain confirmations needed before sending a confirmed callback. Default value: 1 Minimum: 1 Example parameter: confrimations=2
Response
address_in: Newly generated receiving wallet address assigned to the provided callback URL. Any crypto sent to this address will be forwarded instantly to the specified merhant wallet in the original request.
callback_url: The callback URL provided with your request for confirmation.
ipn_token: This token is useful when provided to our support team we will be able to track your payment and investigate failed callback events.
This optional endpoint is for advanced rebranding usage. If you want to rebrand (white-label) and set a custom redistribution of the payout or set a custom commssion fee to yourself as an affiliate then you can optionally use this endpoint to create wallets. This endpoint is similar to the Affiliate endpoint with two extra parameters affiliate_fee and merchant_fee. Those two parameters can be used to distribute percentage of the instant payout to address and affiliate wallets.
affiliate_fee is used to set percentage to the affiliate wallet, if it is set to 0.01 this wallet would receive 1% of the total final payout. merchant_fee is used to set percentage to the address wallet, if it is set to 0.98 then this wallet would receive 98% of the total final payout.
The sum ofaffiliate_feeandmerchant_feemust always be 0.99 as our service fee is 1% of the total payout. If the total is not 0.99 the request would fail.
Theminimum transaction valueis higher when setting your affiliate wallet. You may also use the API to fetch minimum transaction values for each coin within the affiliate system.
Optional Parameters
pending: optional parameter for enabling pending (unconfirmed) blockchain transactions callback notifications. Default value: 0 Set the parameter to pending=1 to enable this feature. When enabled you will be notified of pending transactions (were sent by the customer but not yet confirmed by the blockchain). Notes: To avoid receiving multiple callback requests, please ensure that the response to the callback request is a plain text response with the message ok.
confirmations: optional parameter to set the number of blockchain confirmations needed before sending a confirmed callback. Default value: 1 Minimum: 1 Example parameter: confrimations=2
Blockchain fees is higher for the white-label affiliate system because there are payouts to multiple wallets per transaction. You can use this endpoint to get updated blockchain fees when rebranding our gateway.
status: If the value is not success then the request was a failure.
estimated_cost: Estimated blockchain fees shown in the main network currency value. For example if you are fetching the estimated blockchain fees for trc20/usdt the value will be displayed as Tron (TRX).
estimated_cost_currency: The estimated blockchain fees calculated in fiat currencies for easier conversion.
You can use this endpoint to get the coin name, minimum transaction value and fiat converted values for the affiliate system. You don't need to pass any GET parameters for this request. Only the ticker path is required. The affiliate minimum is the coin minimum multiplied by 1.255 and by using this endpoint you will get the coin minimum transaction value already calculated per the affiliate system.
minimum: The minimum transaction value of the coin that can be sent to the generated wallet address. Any sent amount below the minimum will be stuck in the generated address forever as it is less than required fees to process your forwarding transaction.
prices: Fiat converted value prices of the coin in different currencies.
You don't need to pass any GET parameters with this endpoint. It will return all supported networks with nested coins in JSON format listing coin name, identifier (ticker), logo and minimum transaction value (minimum_transaction_coin) for the affiliate system.
The crypto mass payout feature allows you to set up to 19 payout wallets and split the payout through them. In this way you are able to rebrand the system with multi-level sub-affiliates or set variable fee and wallet count structures.
Multitoken and multichain support for generated receiving addresses. If the customer made a mistake sending to the wrong token or send through the wrong network our system will still forward the crypto to you automatically. However you need to set the ticker coin when creating your request https://api.paygate.to/crypto/{ticker}/mass-payout.php
The generated crypto receiving address will auto forward any payment instantly according to the preset percentage split to all payout wallets.
The request must be made via the POST request method with the body in JSON format including the callback URL where you will receive payment status notification and up to 19 wallets with the respective percentage to split the payout through them. So for example if the wallet is set to 0.01 it will receive 1% of the total payout.
Similar to all previous endpoints the callback URL should have one unique GET parameter. The total fees for all wallets must always be 0.99 representing 99% of the payout as the paygate.to imposed fees is 1%. If any request is made with total fees other than 0.99 the request will fail. If you use the same callback URL value again the same temporary receiving address with initial set fees will be provided in the response. In production use your own unique callback NOT example.com.
Disclaimer: With more payout wallets set the crypto forwarding minimum and blockchain fees maybe higher. If the customer send some amount below the crypto minimum it maybe stuck in the receiving wallet. You may check the minimum endpoint for further information regarding crypto mass payouts minimums.
Optional GET Parameters
The request must be made via the POST request method. However those optional GET parameters maybe included for additional features.
pending: optional parameter for enabling pending (unconfirmed) blockchain transactions callback notifications. Default value: 0 Set the parameter to pending=1 to enable this feature. When enabled you will be notified of pending transactions (were sent by the customer but not yet confirmed by the blockchain). Notes: To avoid receiving multiple callback requests, please ensure that the response to the callback request is a plain text response with the message ok.
confirmations: optional parameter to set the number of blockchain confirmations needed before sending a confirmed callback. Default value: 1 Minimum: 1 Example parameter: confrimations=2
Response
address_in: Newly generated receiving wallet address assigned to the provided callback URL. Any crypto sent to this address will be forwarded instantly to the specified payout wallets in the original request.
callback_url: The callback URL provided with your request for confirmation.
ipn_token: This token is useful when provided to our support team we will be able to track your payment and investigate failed callback events.
Through this endpoint you can estimate the blockchain fees based on the number of payout wallets. If you set for example 5 payout wallets with their respective fees use the GET parameter wallet_count=5
This can be important especially for high fees tokens like TRC20. The more wallets you set the more fees it takes to send mass payout as multiple transactions required to send a payout for each wallet. The fees calculated here doesn't include the 0.5% receiving fee or the 1% payout fee imposed by PayGate.to
Response
status: If the value is not success then the request was a failure.
estimated_cost: Estimated blockchain fees shown in the main network currency value. For example if you are fetching the estimated blockchain fees for trc20/usdt the value will be displayed as Tron (TRX).
estimated_cost_currency: The estimated blockchain fees calculated in fiat currencies for easier conversion.
The minimum amount is an important aspect, if the customer send any amount below minimum it will be stuck in the generated receiving wallet forever. The coin minimum depends also on the number of payout wallets set when generating the receiving address. The more wallets you set the minimum will be higher. Use the GET parameter wallet_count to set the number of wallets for fetching the coin info and minimum. This endpoint will also return the fiat price of the coin which doesn't depend on wallet count but global pricing.
Response
coin: The name of the coin
minimum: The minimum transaction value of the coin that can be sent to the generated wallet address. Any sent amount below the minimum will be stuck in the generated address forever as it is less than required fees to process your forwarding transaction.
prices: Fiat converted value prices of the coin in different currencies.
This endpoint will return all supported networks with nested coins in JSON format listing coin name, identifier (ticker), logo and minimum transaction value (minimum_transaction_coin). Since the minimum depend on the number of payout wallets you need to set the GET parameter wallet_count
Optionally you can generate wallets dedicated for exchanging and swapping cryptocurrencies between supported tickers without requiring any KYC. The generated receiving crypto wallets support an affiliate system too it will split commission between the specified affiliate wallet and the exchange system to be sent finally to the designated wallet after completing the exchange.
Exchanges are usually completed in a few minutes after the required blockchain confirmation.
GET
Supported Tickers/Coins
GEThttps://api.paygate.to/crypto/swap-info.php
The endpoint will list all supported tickers/cryptocurrencies that can be used as pairs for swapping and exchanging.
By passing exchange_id you can check the status of the exchange. Usually this should be used client side to avoid rate limiting.
Warning: This endpoint is intended to be used on casual basis only to check the payment status and payout info when needed. However you shouldn't rely on this endpoint to change order status on your own website/system to avoid getting rate limited. To change order status within your own website system you should rely on the Callback Event where our bot will hit your server when the payment is made.
Make this request to convert the fiat value for example (USD, EUR or GBP) to the desired crypto value to show your customer how much crypto they have to send.
amount: Optional parameter to include the crypto amount to be paid in the generated QR code. The optional amount parameter might not be compatible with many exchanges and wallets. While it works with Trust Wallet and Exodus wallet, some user wallets or exchanges may only read the address and ignore the amount field. Hence, it is advised to use the amount parameter cautiously and be aware that it may not be recognized by all wallets and exchanges, causing some confusion to the end customer.
Response
status: If the value is not success then the request was a failure.
qr_code: This is the base64 code for the image. Should be used in HTML like this: <img src="data:image/png;base64,{qr_code}" alt="Payment QR Code"/>
payment_uri: The wallet address provided with the request.
When a payment is made by the customer our bot will visit your callback URL using GET request method. All your original parameters will be included plus the following payment data parameters:
value_coin: Amount of crypto paid by the customer.
coin: Paid coin and network type in the format network_coin, for example btc or polygon_usdt or erc20_usdc and so on
txid_in: TXID of the payment made from the customer to the order assigned wallet.
txid_out: Instant payout TXID from the order assigned wallet to your merchant predefined wallet.
address_in: This should match the same address_in wallet generated at the first step.
value_forwarded_coin: Total crypto amount forwarded from the order assigned wallet to the merchant and affiliates.
pending: If the callback request is for a pending callback (unconfirmed blockchain transaction) the value will be pending=1 which is an optional feature that can be enabled during first step when creating the receiving wallet. Confirmed callback will have parameter value pending=0
Warning: This endpoint is intended to be used on casual basis only to check the payment status and TXID info when needed. However you shouldn't rely on this endpoint to change order status on your own website/system to avoid getting rate limited. To change order status within your own website system you should rely on the Callback Event where our bot will hit your server when the payment is made.
Request Parameters
ipn_token: You should have this already from the first request when creating the wallet.
ticker: urlencoded ticker so for example bep20/usdt should be bep20%2Fusdt.
Response
status: This can be either paid or unpaid.
value_coin: crypto value sent by the customer to the generated receiving wallet address.
txid_in: The blockchain TXID of the transaction sent from the customer to the receiving address (temporary wallet).
txid_out: The blockchain TXID of the payout from the generated receiving wallet to the merchant wallet.
coin: The crypto coin type sent by the customer and payout.