Best Integration Practices at NOWPayments

Integrating a crypto payment gateway is a huge step toward future-proofing your business. But let’s be honest, integration isn’t a “set it and forget it” task. It requires fine-tuning to handle the unpredictable nature of blockchain networks, from network congestion to users sending the wrong token.

At NOWPayments, we process millions of transactions, and we’ve seen where merchants usually get stuck. To help you move from a basic integration to a robust, revenue-saving setup, we’ve compiled a checklist of the 10 Best Integration Practices.

Use this guide to audit your current workflow and ensure you never lose a payment (or a customer) again.

Tailor NOWPayments to Your Workflow

Your Most Requested Feature: Scheduled Payouts

The Challenge. You’re running a business with regular payouts, such as affiliate commissions, supplier payments, or employee salaries. Doing such payments manually every Friday eats up hours and invites human error.

The Solution. Use the execute_at and interval parameters in our Payout API. You can schedule:

  • One-time future payouts: Set it and forget it
  • Recurring payouts: Weekly, biweekly, or monthly in a fully automated way

Plus: Make sure to add an extra layer of security with wallet and IP whitelisting. Your payouts, your rules.

Handle Wrong Asset Deposits

The Challenge: A client intends to pay with USDT (Tether, an ERC20 token) but mistakenly sends USDC (USD Coin) to an address. Currently, any such mismatch results in a support ticket and requires a manual “push” from our team to recover the funds.

The Solution: You actually have three ways to handle this, depending on how much automation you want:

Option 1: Contact Our Support
Contact our support team to get the current exchange rate and confirm the payment push.

Option 2: Push It Yourself
Manually push the payment directly from the payment card in your dashboard.

Option 3: Enable Auto-Processing
Turn on the auto-processing feature and configure the status logic in your dashboard. Once enabled, the system automatically handles such payments at the current exchange rate without any manual intervention.

Please check out our integration checklist to not miss out on anything.

Wrong assets do not mean lost payments. They just mean flexibility.

Handle Payment & Payout Delays

The Challenge. You notice transactions stuck in “Confirming” or “Sending” status. This is usually a network issue (e.g., network congestion). 

The Solution. 

Step 1: Wait and Refresh

Sometimes transactions are stuck due to temporary network delays. Please wait 10–15 minutes and then refresh the payment status in your dashboard. Many transactions will resolve on their own once the network confirms them.

Step 2: Check Basic Info

If the payment is still stuck, look at the transaction details in your dashboard (like the TXID if available). You can paste the TXID into a block explorer (e.g., Etherscan for Ethereum) to see if the transaction is pending or has failed. Common signs:

  • The transaction shows as “unconfirmed” for a long time.
  • The gas fee was too low (for networks like Ethereum).

However, if you’re unsure what you’re looking at, skip to Step 3.

Step 3: Contact Support

We’ve got your back. If the payment remains stuck after 30 minutes, contact our support team directly. Provide the Payment ID from your dashboard. Our team has internal tools to investigate and can manually push the transaction if possible.

Secure Your Webhook (Callback) Infrastructure

The Challenge. Your server fails to receive or properly process callbacks for deposits and redeposits, causing them to be lost in your system. This issue usually stems from incorrect server configuration.

The Solution.

  • 200 OK Status: Your callback URL must be publicly accessible and must return a 200 OK HTTP status code as soon as you receive the data. If you return a 500 error, we will assume it failed and keep retrying.
  • HMAC Verification: Never trust a webhook just because it arrived. Verify the HMAC signature header using SHA256 and your secret key. This ensures the request is genuinely from NOWPayments.
  • Idempotency: You might receive the same webhook twice. Ensure your logic checks for a duplicate Payment ID before creating a new transaction (use an idempotency key).

A properly configured webhook means zero missed payments.

Manage Network Fees and Pricing

The Challenge. Crypto isn’t free; miners and validators need fees. If you aren’t accounting for them, you are shrinking your margins.

The Solution.

  • Payout Fees: When you withdraw funds from your NOWPayments wallet, you can choose who pays the network fee: Sender (you) or Receiver (your client). Set this option according to your accounting preferences.
  • Fee Payer by User: If you want the customer to cover the network costs of sending crypto to you, enable this feature. The final invoice will include the estimated network fee.
  • Custodial Solution: Instead of managing wallets for each currency, we recommend using our custodial solution. We handle all wallets and settlements automatically, and with custody enabled, new partners can enjoy 0% network fees for USDT TRC20 deposits for the first 2 months.

Manage full control over who pays, when, and how.

Log All Requests

The Challenge. A payment fails at 3:00 AM. You check the payment card in your dashboard, and it shows “Failed,” but there’s no explanation why. Did the webhook never arrive? Was the HMAC signature invalid? Did your server respond with an error? Without detailed logs, you have no way to investigate, and you’re left flying blind.

The Solution. Store logs for all incoming webhooks and outgoing API requests for at least 30 days.

What to log:

  • Full Request Body
  • Headers (especially the HMAC signature)
  • Timestamps
  • Your HTTP Response Codes

Why? Because when something unexpected happens, logs turn mystery into answers.

Watch Your API Rate Limits

The Challenge. You are running a high-frequency trading desk or a massive NFT mint. If you are hitting API limits, transactions will be throttled.

The Solution. If you anticipate high volume or are currently being rate-limited, contact our support team. Please provide details about your business case, and we will review your account to potentially increase the limits, ensuring your operations proceed smoothly.

Your growth is our growth. We scale with you.

Handle Failed Payments

The Challenge. A payment shows as “Failed” in your dashboard, but the funds actually arrived at NOWPayments’ deposit address. For some reason, we couldn’t push the payment through automatically. 

The Solution. 

Here are the most common causes and how to resolve them:

  • If a customer sends an amount that is less than the minimum required for that specific currency pair, the payment will fail.

Solution: Contact our support team. We can manually push the payment so you receive the funds but only if the amount covers the network fee. If the transaction is smaller than the fee, there’s nothing we can do.

  • This only works if the customer sent a token that we actually support. If they sent something NOWPayments doesn’t process, we won’t be able to help.

Solution: In this case, only a refund is possible. Contact our support team, and we will guide you through the process to return the funds to the customer.

  • Our compliance team reviews transactions that trigger our Anti-Money Laundering protocols to ensure security for all users.

Solution: Contact our support team with the Payment ID. Our compliance team handles the review. In most cases, transactions clear quickly. If we need additional information, we’ll guide you through the process.

“Failed” doesn’t mean “lost.” It means “let’s talk.”

Recover “Expired” Payments

The Challenge. Did you know you can “wake up” dead deals? A payment expires if the user doesn’t send the funds within the specified timeframe. However, the intent was there.

The Solution. Set up automated reminders. Use Telegram, email, or push notifications to “nudge” the client.

  • “Hey, your cart is still waiting.”

Often, people just get distracted. A gentle reminder can convert an expired payment into a successful sale.

How to Configure Statuses for Your Business Model

Deliver Goods Based on Status, Not Amount

The Challenge. If you deliver digital goods the moment you see a “Confirming” status (meaning the transaction is broadcast but not yet settled), you have a risk of losing money. Although NOWPayments is ready to do our best, we do not recommend you act on a “Confirming” status.

The Solution. The way you handle payment statuses should depend entirely on what you are selling. Acting on the wrong status, or acting too early, can cost you money. 

Here’s how to handle each status correctly based on your business model:

Scenario 1: E-commerce or Fixed-Price Items

You sell specific items for exact prices.

  • Confirming: Do nothing. The payment is not final yet.
  • Partially Paid: Do not deliver. The customer sent less than required. Either wait for the full amount or reach out to them. Moreover, if you’re willing to accept the partial payment, you can manually complete it through your dashboard.
  • Finished: This is your green light. But first, verify that the outcome_amount matches your expected price. Only deliver when both conditions are met.

Dashboard Settings: Set both “Repeated Payments” and “Wrong-asset deposits” to Partially Paid. This protects your margins automatically.

Scenario 2: Casino, Gaming, or Balance Top-Ups

You accept deposits to credit a user’s balance. Every amount counts.

  • Confirming: Do nothing. Even for balance top-ups, wait for confirmation.
  • Partially Paid: Accept it. Credit the user with the exact outcome_amount they sent. This procedure automatically handles underpayments.
  • Finished: Credit the user. The transaction is now irreversible.

Dashboard Settings: Set both “Repeated Payments” and “Wrong-asset deposits” to Finished. This automates everything, where every deposit becomes a finished top-up.

One platform, two workflows. It is you who chooses what fits.

Manage Repeated Payments Like a Pro

The Challenge. Navigate to your settings and review how you handle edge cases. The default behavior in this section can significantly impact your reconciliation process.

The Solution.

  • Partially Paid: Select this option if you want the system to flag orders where the customer underpaid. It will set a specific “Partially Paid” status, allowing you to hold the order until the full amount arrives.
  • Finished: Be very careful with this setting. If selected, it automatically marks every deposit as “Finished,” even if the amount is wrong. 

Which One Should You Choose?

It depends on your business model. In our detailed Integration Scenarios Guide, we break this down further:

For E-commerce or Fixed-Price Items:

  • Choose Partially Paid for both settings.
  • This protects you from underpayments and wrong-asset mistakes.
  • Always verify that the outcome_amount matches your expected price before delivering.

For Casinos or Balance Top-Ups:

  • Choose Finished for both settings.
  • This automates everything, where every deposit becomes a finished top-up.
  • You accept the financial risks of underpayments in exchange for full automation.

Still unsure? Refer back to the scenarios above, we’ve mapped it out for you.

Final Thoughts

Crypto payments offer unparalleled freedom, but they demand precision. Whether it’s automating wrong-asset deposits, securing your webhooks, or scheduling mass payouts, these best practices are your safeguard against revenue loss.

The 10 steps outlined here aren’t just a maintenance checklist, they are the blueprint for building a mature, crypto-native business. By adopting these practices, you stop reacting to problems and start focusing on what really matters, that is, growing your brand and serving your customers.

If you’re ready to take your setup to the next level, the NOWPayments team is just a message away.

Adblock
detector