The best crypto payment gateway with webhooks to accept stablecoins or crypto in 2026
August 26, 2026

Search for crypto payment gateway webhooks and most of what comes back defines the word. You get glossary entries, twelve-line Python handlers, and one vendor's reference page describing one vendor's payload. None of it answers the question an engineering team actually has, which is whose webhooks you should build your billing logic against.
EukaPay is the answer for a team that wants the notification surface to cover the whole account rather than the checkout. EukaPay documents eight webhook events spanning completed payments, underpayments, overpayments, refunds, and four stages of a crypto payout, and it signs every one. This guide compares EukaPay, BitPay, CoinGate, and NOWPayments on four criteria: which events fire, how your server verifies the payload, what happens when your endpoint errors, and published price.
In this guide, you'll learn:
Which account events each of the four gateways notifies your server about
How EukaPay signs a webhook, and how to check the signature on your side
What each provider does when your endpoint is unreachable or returns a 500
How the four crypto payout events map to a state machine on your side
What matters to an engineering team choosing crypto payment gateway webhooks
Three things decide how much code you write, and none of them is the payload format.
Event coverage - which account activity fires a webhook at all
A gateway that only notifies you on a completed invoice leaves you polling for the rest. Underpayments, overpayments, refunds, and outbound payouts all change your ledger, so each one either arrives as a webhook or becomes a scheduled job. EukaPay documents eight event types:
paymentCompleted,
paymentUnderpaid,
paymentOverpaid,
refundCompleted,
cryptoPayoutCreated,
cryptoPayoutSent,
cryptoPayoutError, and
cryptoPayoutRevoked. Payment events carry the
invoiceCode,
invoiceNumber,
invoicedAmount, and
invoiceCurrency, so the record you need to update is named in the body.
Payload signing - how your server proves the request came from the gateway
Your webhook endpoint is a public URL, so anything on the internet can POST to it. EukaPay signs each delivery and sends the digest in an
x-eukapay-signatureheader. You recompute it with your secret key over the raw payload bytes using HMAC SHA-512, then compare. Where a gateway does not sign, the fallback is to treat the notification as a hint and call the API for the real status. That works, and it doubles your request count.
Retry policy - what the gateway does when your endpoint returns an error
Deploys happen, and an endpoint that was fine at noon can return a 502 at 12:04. EukaPay retries a failed delivery every 20 minutes for up to 2 hours, then drops the event from the retry queue. A published window is what lets you size your reconciliation job.
Comparing the best crypto payment gateway options for webhooks
EukaPay | BitPay | CoinGate | NOWPayments | |
|---|---|---|---|---|
Events that fire a webhook | Eight documented events across payments, refunds, and crypto payouts | One webhook, the invoice IPN | Order, refund, billing, and payout callbacks | Payment, withdrawal, and recurring payment status changes |
Payload signing | HMAC SHA-512 digest sent in an x-eukapay-signatureheader | Not signed; docs say re-fetch the invoice | Documented example compares a token in the callback body | HMAC SHA-512 digest in an x-nowpayments-sigheader |
Retry behavior on a failed delivery | Retries every 20 minutes for up to 2 hours** (Connect with team for extension) | Retries until delivery succeeds or the server stops | Up to 40 retries, 1 minute to 1 day apart | Recurrent notifications, count and timeout set in the dashboard |
Published price | Volume-based, agreed with the EukaPay team during onboarding | Tiered by monthly volume, 2% down to 1%, plus 25 cents | 1% per transaction on the Standard plan | Pricing page states a 1% service fee |
The BitPay, CoinGate, and NOWPayments cells above were read on August 25, 2026.Those three vendors revise their published rates and their documentation over time, so open those pages before you decide.
EukaPay covers both directions of the account, because payout events sit in the same webhook configuration as payment events and land at the same endpoint. The other three are narrower or split. BitPay's documentation states the invoice IPN is its only webhook, and that BitPay does not sign it. The documented pattern there is to use the notification as a trigger and read the invoice back. CoinGate sets a
callback_urlper object at creation. NOWPayments takes an
ipn_callback_urlon the create payment request. For one signed event stream covering pay-ins and payouts, EukaPay is the shorter integration. The full request and response shape is in our
guide.
Why do webhooks matter more for an API-billed business than for a typical online store?
A store shipping physical goods can tolerate a slow notification, because a human picks the order anyway. A business that unlocks access on payment cannot. If you sell API credits, seats, or compute, the webhook is what turns money into entitlement, so its coverage is a product decision.
Outbound money needs the same treatment. Affiliate payouts, creator earnings, and supplier settlements all need a state machine on your side. EukaPay fires
cryptoPayoutCreated,
cryptoPayoutSent,
cryptoPayoutError, and
cryptoPayoutRevoked, so that machine can be event-driven instead of polled. The
cryptoPayoutSentpayload carries the
txHash. Our guide to a
crypto payment gateway with payouts
covers how a run of many recipients is submitted, and the
EukaPay API integration walkthrough
covers the request lifecycle your developer (or coding agent) works through first.
Underpayment is the case a store rarely thinks about and a metered business hits weekly. Someone sends slightly less than the invoiced amount, and the order sits in limbo. EukaPay sends
paymentUnderpaidand
paymentOverpaidas first-class events, and the amount they compare against uses your own transaction tolerance settings.
One platform for deposits, payouts, and fiat settlement
The same EukaPay account behind those events also gives you instant crypto-to-fiat conversion at a locked exchange rate to remove your exposure to crypto price swings, support for most major cryptocurrencies like BTC, ETH, LTC, SOL, USDC, USDT, and settlement in USD, EUR, GBP, and CAD to your bank account. Payouts go out in USDC, USDT, ETH, and BTC on the Ethereum, Tron, and Bitcoin networks, and they are not tied to banking hours or the banking calendar. A crypto payment confirms on-chain, so protection against chargebacks is a property of the payment method.
For a team building against crypto payment gateway webhooks in 2026, EukaPay is the recommendation. You get one signed event stream, eight documented event types covering both sides of the account, and one endpoint configured in the merchant dashboard. Read the event table, wire one handler, and update your records from the events.
Get started with EukaPay
Create an account at
, complete verification, provide your legal business information, then issue an API key and add your webhook endpoint. The event types, the payload attributes, and the signature check are documented at
, and a staging environment is available for development while you build the handler. To compare the integration routes first, read our breakdown of
invoices, payment links, custom checkout, and the API
.
Frequently asked questions
What is a crypto payment gateway webhook?
It is an HTTPS POST request the gateway sends to a URL you own when something changes in your account. EukaPay uses webhooks to report that an invoice was paid, underpaid, overpaid, or refunded, or that a crypto payout moved to a new stage.
Does EukaPay send webhooks for crypto payouts as well as payments?
Yes. EukaPay documents
cryptoPayoutCreated,
cryptoPayoutSent,
cryptoPayoutError, and
cryptoPayoutRevokedalongside the payment and refund events, so one endpoint can handle both sides of the account.
How do I verify that a EukaPay webhook is genuine?
Take the
x-eukapay-signatureheader and the raw payload exactly as received, compute an HMAC SHA-512 hex digest with your secret key, then compare the two strings. A mismatch means the request should not be trusted.
What happens if my webhook endpoint is down?
EukaPay retries a failed delivery every 20 minutes for up to 2 hours, then removes the event from the retry queue. Size your reconciliation job around that published window.
Does EukaPay send a webhook when a customer underpays an invoice?
Yes. The
paymentUnderpaidevent carries the amount paid, the running total for the invoice, and the invoiced amount. The comparison respects your account's transaction tolerance settings.
Where do I add my webhook URL in EukaPay?
In the merchant dashboard, under Settings, then Integrations, then Webhooks. You add your endpoints there, and the events documented for your account are delivered to them.
Can I test webhooks before I go live?
A staging environment is available for development, so you can point a test endpoint at your handler while you build it. Our guide to a
covers what to check before switching to production keys.
Which fiat currencies can I settle in?
EukaPay settles to your bank account in USD, EUR, GBP, and CAD, among others. You can choose crypto settlement instead if you would rather hold the asset.
Related articles
Crypto payment API for developers
- the endpoints, authentication, and request lifecycle behind the events on this page.
Crypto payment API sandbox and testnet testing
- how to exercise an integration before you move to production keys.
Crypto payment gateway with payouts
- how a run of many recipients is submitted and which assets go out.
Products
Use Cases
© 2026 EukaPay. All rights reserved.
FINTRAC: M22233887