Accept crypto in
Paymenter
The CoinsPay gateway lets your clients pay Paymenter invoices in USDT, BTC, ETH or any of 30+ coins. The payment is added to the invoice on its own, Paymenter activates or renews the service, and the money goes straight to your wallets.
- Paymenter
- 1.4.0 and newer
- PHP
- 8.2 and newer
- Extension
- free, GPL 3.0
What the gateway gives you
Services start on their own
When the payment is confirmed, the gateway adds it to the invoice, and Paymenter does what it does after any payment: marks the invoice paid, activates or renews the service and emails the client. Nobody checks payments by hand.
Money lands in your wallets
CoinsPay does not hold your revenue: every payment goes on to your wallets by the payout rule of your shop. Each network takes up to 5 addresses with shares, say 70% to you and 30% to a partner.
Prices stay in your currency
The client pays what is left on the invoice, in its currency. CoinsPay converts it at the current rate and holds the coin amount for 30 minutes while the client opens a wallet. On invoices in a currency CoinsPay does not take, the gateway is hidden.
A key that cannot withdraw
The gateway only needs a key with "Invoices only" access: it can create invoices and follow them, but it cannot move money. Paymenter stores the key and the webhook secret encrypted.
Set up in five minutes
You need a CoinsPay account with a shop and access to the Paymenter admin area. No developer required.
- 01Install the extensionDownload the archive and upload it under Extensions → Extensions → "Upload Extension". Or unpack it into the Paymenter folder, so that it lands in extensions/Gateways/CoinsPay.
- 02Add the gatewayUnder Extensions → Gateways press "New gateway", pick CoinsPay and give it the name clients will see. In the CoinsPay dashboard create a key with "Invoices only" access and paste it into "API key".
- 03Connect the webhookCopy the webhook address from the "Status" block of the gateway to the "Webhook" section of the dashboard, and the whsec_ signing secret back into the gateway.
- 04Save and checkAfter saving, the "Status" block shows the name of your CoinsPay shop and the live mode. Send a test event from the dashboard, and the block notes it. Clients already see CoinsPay on their invoices.

It handles the awkward cases too
Partial payments, changed or cancelled invoices, lost webhooks: the gateway adds to the invoice exactly what came and shows you what needs your decision.
Payment on its way
While the network confirms a payment, it shows on the invoice as "processing", so the client sees that the money is coming. Once it is confirmed, the invoice is paid.
Underpayment
If less arrives, the client can pay the rest on the same payment page. When the CoinsPay invoice expires, the part received is added to the invoice, and the client pays the rest with "Pay" again.
Each payment once
The webhook, the return of the client and polling can arrive at the same moment, and the payment is still added once. Paymenter before 1.5.7 does not guard against that itself.
The invoice changed
Cancel the invoice, change its amount or have it paid another way, and the gateway cancels the open CoinsPay invoice. The next "Pay" creates one for the new amount.
Payments for your decision
A payment for an invoice cancelled meanwhile is not added: Paymenter would mark it paid and activate the service. Neither is anything above what the invoice still owes. Such payments wait in the "Status" block with a link to the invoice.
No payment gets lost
Webhooks are signed, and the gateway checks the signature. Even without webhooks, the gateway asks CoinsPay about open invoices every minute through the scheduler of Paymenter, and when the client opens the invoice.
The client can pay the fee
Turn these settings on and the CoinsPay fee and the network fee are added to the amount on the payment page. The invoice in Paymenter gets its own amount.
Everything in one block
The "Status" block at the top of the settings shows the shop and the mode of the key, the webhook address, whether the test event came, and the currencies of your Paymenter that CoinsPay does not take.
Test mode
With a cpk_test_ key, invoices are paid with a button on the payment page and no coins move. Only signed-in admins see the gateway, on their own invoices, so real clients never notice it.
Installation
The extension is one archive on GitHub, next to its source code. It installs like any other Paymenter extension: upload it in the admin area.
API documentation- Paymenter
- 1.4.0 and newer, tested up to 1.5.9
- PHP
- 8.2 and newer, as Paymenter needs
- Cron
- the cron of Paymenter, every minute
- License
- GPL 3.0
Pay only when you get paid
- First 10 days fee-free, on payouts up to $500
- No monthly or setup fee
- The fee can go on the buyer’s invoice
- Network fees at cost, no markup
Questions about the gateway
All questionsHow much does the extension cost?
The extension is free. You only pay the CoinsPay fee on payouts: as low as 0.3%, going down as your turnover grows, with no monthly fee. For the first 10 days after your first payment, payouts up to $500 carry no fee.
Which coins can clients pay with?
More than 30 coins and tokens on TRON, Ethereum, BNB Smart Chain, Solana, Bitcoin and Litecoin: USDT, USDC, BTC, ETH, BNB, TRX, LTC, SOL and more. A gateway setting can limit the choice to stablecoins.
Does the service start right after the payment?
Yes. Once the gateway adds the payment, the invoice is paid, and Paymenter activates or renews the service as after any payment, a game server in Pterodactyl for one, and emails the client.
Do I need a cron job?
Paymenter needs its cron anyway, and the gateway adds its check to the scheduler of Paymenter: open invoices are checked every minute, even when a webhook does not arrive. Without the cron, such a payment arrives when the client opens the invoice.
Which languages does the gateway speak?
English and Russian. Paymenter itself has no Russian yet, so its admin and client areas are in English. The Russian texts of the gateway show once you add a Russian translation to Paymenter.
What client data goes to CoinsPay?
The invoice number, the amount and currency, and the address to send the client back to after payment. Client names, emails, addresses and phone numbers are not sent.
Can I connect a staging copy of my Paymenter?
Yes, but give it a separate CoinsPay shop. A shop has one webhook address, so its events would reach only one of the two sites.
Start taking crypto today
Signing up takes a minute and setting up a shop about five more. Connecting is free.
Paymenter is an open-source project, and the Paymenter name and logo belong to it. CoinsPay is not affiliated with Paymenter, and the extension is not sponsored or endorsed by it.