EN
Hosting billing

Crypto payments for Blesta

Accept crypto on Blesta invoices. SnapEX Pay is a non-merchant gateway: the client chooses SnapEX Pay (Crypto), pays on the SnapEX Pay page in USDT on TRON, Ethereum, BSC and other networks, or in other coins converted to USDT, and the payment is recorded in Blesta and applied to the invoices automatically.

Download the module

Free. Version 1.0.0.

What it does

  • No wallets or nodes to run: funds arrive in your SnapEX Pay merchant balance.
  • The payment is recorded from the signed webhook or as soon as the client comes back to the "payment received" page, whichever comes first. Either way the invoice is first read back from the SnapEX Pay API: the webhook body alone never marks anything paid, and a payment is never recorded twice.
  • Any invoice currency: non-USD amounts are converted to USD with the exchange rates Blesta already keeps, and the transaction is recorded in the invoice currency.
  • Partial payments are never applied automatically: they become a pending transaction for you to review.
  • Test mode: test invoices confirm by themselves without real money; while it is on, only staff logged in as a client see the button, and other clients are asked to choose another payment method.

Install

  1. Upload the contents of the archive to the Blesta root folder, keeping the path components/gateways/nonmerchant/snapex_pay/.
  2. In Blesta admin open Settings → Payment Gateways → Available, find SnapEX Pay (Crypto) and press Install. Installing creates one table, snapex_pay_invoices.
  3. In the SnapEX Pay merchant cabinet create an API key with the invoices.read and invoices.write scopes and paste it into API key.
  4. Webhook (required): in the cabinet add a webhook with the URL https://<your Blesta>/callback/gw/<company id>/snapex_pay/ (the exact address is shown in the gateway settings) and paste the whsec_… secret into Webhook secret. Blesta has no cron for gateways, so the webhook is how payments arrive when the client does not come back to the site.
  5. If your invoices are not in USD, add USD under Settings → Company → Currencies with an exchange rate (or let Blesta update rates automatically). Tick the currencies the gateway should be offered for.
  6. Turn on Test mode, log in to the client area as a client from the admin area, pay an invoice on the SnapEX Pay page with a test method and check the invoice is paid. Then turn test mode off.

Settings

API keyFrom the SnapEX Pay cabinet. Stored encrypted.
Webhook secretwhsec_… from the cabinet webhook settings. Required. Stored encrypted.
Network fee paid byMerchant: the client pays exactly the invoice amount. Client: the fee is added on top.
Payment window, minutesHow long the payment page stays valid (1–1440, default 60). Paying again later opens a fresh one.
Test modeTest invoices; only staff see the button while it is on. Test payments are ignored once test mode is off.
Partner IDOptional: the Partner ID of the integrator who set the module up (SnapEX Pay referral program). Leave empty if you set it up yourself.
API URLLeave as is.

Questions

Why is the webhook required?

Blesta has no cron for gateways. If the client pays and does not come back to the site, the signed webhook is how the payment reaches Blesta. When the client does come back, the payment is recorded right away, and it is never recorded twice.

My invoices are not in USD. Will it work?

Yes. Add USD under Settings → Company → Currencies with an exchange rate. Amounts are converted with Blesta's rates, and the transaction is recorded in the invoice currency.

What lands in Blesta when an invoice is paid?

An approved transaction in the invoice currency, applied to the invoices that were paid. The transaction ID is the SnapEX Pay invoice ID (INV-…), and the client gets Blesta's usual "payment received" email.

What if the client sends less than the invoice amount?

If the client does not top up in time, a pending transaction with the received amount in its message is recorded and not applied. Review it under the client's transactions.

What if the payment page expires without payment?

Nothing is recorded. If money arrives after the invoice was closed, the gateway log gets an entry; the money is in your SnapEX Pay balance.

Where do I see what the module did?

In Blesta, Tools → Logs → Gateway.

Ready to accept crypto?

Create a merchant account, get an API key and connect the module. 1% per payment, no monthly fee.