Development of multi-currency light wallets, wallets for Dapps, as well as exchange services, market analytics tools. Web, desktop, mobile applications.

show more
show more
case 19

Update payment gateway NOWPayments

3 months
Javascript, ReactJS, Tailwindcss,
NodeJS, Koa, PostgreSQL

About the project

NowPayments (NP) is a payment gateway specializing in cryptocurrency transactions that has a fairly large flow of users. There are two of them: the merchant who uses this gateway in his store, and the customer who buys something (pays) from the merchant. As you know, the user is always whimsical about the quality of service, especially in the financial sector. Therefore, NP decided that they want to improve the quality of their service, so they came to us.

Evercode Lab


We had a clear goal — to make the use of the NP service safe, reliable and more user-friendly. All work can be divided into two main blocks, which differ in the specifics of the task: the payment API and the merchant's account.


Merchant's office

Let's start with the front, as the block is the smallest and consisted of the tasks of a cosmetic nature. NP already had a ready-made design and built UX. The NP site already had a ready-made design and developed by UX. We just made it a little easier and clearer.. We made changes to the content on the pages, added footer and played with colors - changes are not significant in terms of time spent, but on the part of profit-significant.

The merchant's account is no different from any other account on any other site: here the user wants to get the information they need with minimal stress from using the service. Each visit to your personal account begins with login-authorization. It was present on the NP, but it had a key problem – a lack of options. We are faced with the task of making it safer and more comfortable to use. We have added:

  • two-factor registration via email (financial security is good) Evercode Lab
  • resetting your password using an email (this is really convenient) Evercode Lab

After the authorization stage, the user is exposed to the entire package of possibilities for adjusting the service functions to their needs. If you ask yourself: what do you want to get from the payment service? Safety, but this point was already implemented in the previous step. Then getting all the necessary statistics, knowing how much the merchant receives profits, and the ability to make adjustments to the process comes to the fore. The following additions were made:

  • filtering data in a table with payments Evercode Lab
  • uploading data from a table with payments in various formats (PDF, CSV, XLS) Evercode Lab Evercode Lab
  • receiving reports and statuses for operations by email
  • improved api key management
  • regulation of the received interest for the merchant
  • regulation of received coins, i.e. the merchant can issue coins that he is willing to accept as payment Evercode Lab

The fact that the original team NP is not implemented in MVP, we have implemented now.


This is the most interesting block, as we climb under the hood. These things do not always have a visual reflection on the site, as in this case, but they are not invisible to everyone, they help the merchant and its customers get a positive experience from using them.

The original team NP understood that all merchants are different and some, as true entrepreneurs, are willing to take risks and play with the price. For them, an APIi method was developed for adding value to the product by invoicing % in the merchant's personal account. That is, the merchant can adjust its profit from the product not by its cost, but only by changing its percentage of the transaction.

Evercode Lab

The cryptocurrency market is unstable, the bitcoin exchange rate can easily jump by $ 500 within half an hour, or fall with the same probability. In this case, the rate may change directly during the transaction, which will cause a negative status when making a purchase. To avoid such situations, we added an api method for splitting transactions. The logic is simple: if the rate jumped and the merchant received an incomplete amount, then the %error method that the merchant sets in the personal account is triggered. This is convenient, but the merchant is not ready to set a large percentage to lose its profit.

Then another api method is launched – splitting the transaction into several transactions. If the amount sent is not enough to pay for the product (service) and the %error does not cover the difference due to the difference in exchange rates, the client is asked to pay the missing amount. This allows you not to create a new transaction, while losing money and time, but to safely complete the transaction that has already started.

As a result, work has been done that brings merchants and customers only a positive experience of use.

Tell us about your ideas and we will offer the best solution!
Contact us
By clicking the "Send" button I am accepting the Terms of Use and Privacy Policy agreements
Evercode labs

Your message has been successfully sent.

Thank you!

We will contact you shortly.

Other Cases