Integration Guide

There are all kinds of integrations available: API, plugins, donation solutions, customized Twitch, or Casino solutions – you name it. 

Regardless of what integration you choose, first there are three most simple steps you would need to follow.

  1. Sign up. Enter your crypto wallet or wallets. Go to Store Settings and find Outcome wallet.
    Choose the currency you want, enter the address of your wallet, click the green button, and click save.
  2. Generate your API key.
    Scroll up to API keys and click Generate.
    Your API key will appear.
  3. Generate your IPN secret key.
    Go to Store settings and find Instant Payment Notifications.  Click “generate”. Save this key somewhere, it will be shown to you only once – when generated.

Types of Integration

How do you know which integration is for you?

Crypto payments
Choose your integration

Do you want to accept payments or donations? If donations – click accept donations and choose a button, a widget or a link.

If payments – do you have CMS? If yes, go to Plugins.

If you have a developing team or you are a developer yourself, check out our API.

We have an integration that could fit everyone – invoices, which anyone can generate in their personal account.

We also have customized solutions tailored to suit specific needs.

  1. Mass payments – for payroll, affiliate payouts, faucets, and so on.
  2. A crypto payments casino solution
  3. Fiat-to-crypto and crypto-to-fiat

Learn more about each type below.


  1. WooCommerce: WooCommerce crypto gateway
  2. WHMCS: add crypto to WHMCS gateway
  3. OpenCart: add payment gateway to Opencart  
  4. Magento 2: add Magento payment gateway
  5. PrestaShop: add PrestaShop payment gateway
  6. Zen Cart: add crypto to Zen Cart gateway
  7. Shopify: add crypto Shopify payment gateway

Button, Widget, Donation link 


Crypto donations
Donation Widget

Our Donation widget can be embedded on any site within mere minutes. You can accept donations in 70+ cryptocurrencies using this option. Read more about the widget and how to accept donations in crypto.

How to set up?
  • Generate your API key, copy it and paste here
  • Cope the code
  • Paste the widget code into the code of your site.


This is our Donation button.

Crypto donation button
Donation button

It is not very different from the donation widget, it is smaller and redirects the user, when compared to the widget, which is slightly bigger and lets users donate right on the website.

Where can I place the button?

Anywhere. You can place it literally anywhere.

  • For example, on Twitch (accept donations in crypto on Twitch) as we have developed a customized crypto solution for Twitch streams.
  • Various sites, forums and so on – anywhere where you can add an Html code.

Donation link

What is a donation link? 

Donation link is a URL or a web page where users can send donations to a merchant. 

Where can merchants add a donation link?
  • Anywhere they want.
  • Merchants could add their donation link to any social media platform, website, or blog. 
  • Users can donate in 50+ cryptos (all cryptocurrencies supported on our platform). 
How to start? 
  • To create a donation link, a merchant needs to share their API key with us and provide a name for their URL. 
  • We always create a custom URL. Please, personalize the URL for your donation link: 



Explore our API documentation and integrate using your API key. 

Got any questions? Our business developers are here to help. You can also contact [email protected] or [email protected] 

Typical flow for the API

And here is the typical flow:

  • You create a payment with “create payment request” and show “pay_adress” to a user.
  • Users send money to a “pay_adress”.

You can check the payment status with “get payment status” or via IPN. To get IPN messages just specify “ipn_callback_url” in the “create payment” request. We will send a POST request to this URL with every payment status change. The IPN message is similar to a “get payment status” message.

Here’s when these status messages would appear.

  • Expired transaction

Status flow: waiting -> expired

  • Finished transaction

Status flow: waiting->confirming->confirmed->sending->finished

  • Partially paid transaction:

Status flow: waiting->confirming->confirmed->sending->partially_paid

  • Failed transaction:

Status flow: waiting->failed

Alternative status flow:

  • waiting->confirming->failed
  • waiting->confirming->confirmed->failed
  • waiting->confirming->confirmed->sending->failed
  • Refunded

Status flow: ..->finished->refunded Alternative status flow: …->failed->refunded

Once the payment is finished, you can proceed with your service to the user.

As an alternative, you can proceed with the service once the payment has the “Confirmed” status. Please note that in this case, you should check how much the user has sent to you. You can do it by using the “actually_paid” parameter, which shows the exact amount the user has sent.


Crypto invoice

This is the easiest way to start accepting payments in crypto using NOWPayments. Anyone can do it anywhere. There is no need to undergo an integration process – just create your account and generate invoices right there. 

Here are the instructions on how to create crypto invoices.

This method can also be used by brick-and-mortar stores and offline businesses.

  1. Print the QR code from the invoice and place it in your store. 
  2. User scans the QR code picture, gets a wallet address, fills in the payment amount and sends payment. 
  3. Within a few seconds, the payment is made!

Invoices can also be generated when using our API. Right now, there is no option of showing them via iframe, although it is on our roadmap

Customized solutions

Mass payments

What are mass payments?

This solution provides the ability to send payments to different wallets at once.

How do mass payments work?

Here, you can find the mass payments API documentation.

This is how it works: 

  1. You put your funds on your balances. It is like a simple payment. 
  • You send your funds to a dynamically generated deposit address.
  • The funds arrive to your NOWPayments account – the place where we store liquidity for you. 
  • Here, you can monitor how much you have.
  • To be able to do this, we would need your IP address. 
  1. You request a payout and define the address, the currency and the amount. 
  2. NOWPayments performs the payout for you and converts the funds if needed.

All the cryptocurrencies that are available for “exchange to” can be used for this. There are no limitations in regards to the number of payout addresses. 

How to set this up?
  1. Reach out to us and say you are interested in the “Mass payments” feature. 
  2. Provide the following information: 
  • IP addresses which you will use for API whitelisting. This is necessary to ensure the security of the system and it means you will be able to request the payouts using this IP only. 
  • A letter to [email protected]  from the registration address to confirm the request.
  • The approximate payout amounts or the minimum amounts.

The addresses are going to be dynamic or they will be specified in advance. You can specify all this by filling out the form.

Please note, mass payments can work only if we enable the custody method – with the Balances feature enabled.

Besides the standard procedure, we can do the following:

We can remove the IP whitelisting (point a) from the instructions) – for this you need to contact us or send an email to us with a request to remove the whitelisting. You will need to state that you understand all the risks associated with this request and bear full responsibility.

Payments can be made to familiar and unfamiliar addresses. If payments are made to familiar addresses, we will whitelist them for safety. If you plan to make payments to unfamiliar addresses, then please contact us or send an email to us stating that you understand the associated risks and bear full responsibility.

Casino Solution

How do crypto payments work for casinos? 
  1. Players register and are given permanent deposit addresses. (Right now it is possible with Bitcoin-like coins). 
  2. Players send funds to the NOWPayments deposit address. Using IPN, NOWPayments sends the information about the amount and the currency to the casino. 
  3. We send the funds to the casino balance inside our system. The funds are stored in the currency the player sent.
  4. Then, the player or the casino requests the payout from the balance. 
  5. We withdraw the funds and send them to the address of the casino or the player. We convert the funds if needed. 

These are the Bitcoin-like currencies which are available for Casinos: ZEC, DASH, DOGE, BTG, BCD, RVN, XVG, KMD, BCH, BSV, LTC, BTC

There will be more coins added to the list.

Why Bitcoin-like cryptos

The addresses of such coins are permanent. 

As of now, our system doesn’t create permanent addresses for other blockchains, like Ethereum, for example.

This will change in the future. 

Casino fees
  1. The player sends funds to the permanent deposit address – and pays the transaction fee. 
  2. We send the funds from the deposit address to the balance – the casino pays the network fee. 
  3. The casino also pays the transaction fee (0,5%) and the exchange fee (0,5%) if exchange is needed.
  4. We withdraw the funds and send them to the wallets of the player or the casino – the network fee is always paid by the casino, in both cases.

To sum up,

There are 3 network fees – one is paid by the casino, and one – by the player.

There are transaction and exchange fees (0.5% per transaction, 0,5% per exchange = 1% maximum)



This feature allows merchants to withdraw the cryptocurrency they received from buyers into fiat. If customers pay in crypto, merchants can choose to receive fiat.

Onboarding or Flow

Find an application form in your account you can submit to be able to withdraw funds in euros. Any merchant can fill it out. You will see a warning about restrictions. Note that the application approval process takes 2 business days. You can always contact us with any questions.

When an application is sent, our third-party fiat provider Guardarian, gets a notification, as do we. They analyze the application involving their AML officer. This takes up to 2 business days

In case of a positive response from the AML officer, Guardarian sends us a list of necessary documents and a link to the KYB provider. We send the information to the merchant. It may take from 2 to 5 days

In case of a successful KYB, an agreement is signed between Guardarian and the Merchant (and in certain cases with NOWPayments as well if there is custody involved). You will need to specify the wallet address from which the funds will be sent (the same wallet that you have entered in the personal account; with custody enabled, it is still necessary to do so that we know what currencies we should convert automatically). The address must be specified, because it will have to pass AML verification


Fiat-to-crypto (cash-in). This feature allows users/buyers to pay for goods/services with fiat, and the merchant receives money in cryptocurrency. 

This feature is available via invoices and all plugins, except for Shopify (as most of the plugins redirect buyers to NOWPayments).

Our fiat provider here is Mercuryo.

This feature can be available when two conditions are met:

The merchant indicated USD as the base currency (the number of fiat currencies can be expanded upon request)

The payment amount is more than the minimum (see Mercuryo minimum amounts)

Flow for the user
  1. Select USD on the invoice page

Note: When you select USD, a notification is sent out that dollars will be converted to BCH first – this improves the speed of the transaction and reduces network fees.

  1. Click “Complete checkout”. You will see the Mercuryo widget.
  2. You will need to undergo KYC – enter your phone number, passport details and upload a selfie. This is a standard procedure for when you are buying cryptocurrency. 
  3. You will get a code in an SMS and by email. Enter your credit card info – and you are good to go. 
How do I set this up as a merchant?
Integrate API
API key

1. Go to your NOWPayments dashboard and enter your wallet address or addresses. Generate an API key.

2. Go to “Invoices: and click “Create invoice” 

Create invoice

3. Fill in the “Order description” and “Order ID”

Payments in crypto invoice

4. Leave the “Pay currency” section empty

5. Enter “Price”

6. Click “Create Invoice”

7. Copy the invoice link and send it to your customer. This process is automatic via plugins.

Minimum Limits:

  • 0.002 BTC
  • 0.03 ETH
  • 70 BAT
  • 5 USDT
  • 50 ALGO
  • 600 TRX
  • 2 OKB