Crypto payment services that support refunds

September 10, 2026

Crypto payment services that support refunds

Anyone comparing crypto payment services that support refunds is usually not shopping for a card processor. A card refund runs back down the rail the payment came up, and nothing on a blockchain works that way. A confirmed transfer stays confirmed. Returning money to a customer means sending a second, separate payment. What you are really evaluating is the bookkeeping around that second payment: what the refund is attached to, who can create it, and what you can read back afterwards.

EukaPay treats a refund as a record attached to the paid invoice. One API call against the invoice code creates it. The refund then gets its own reference, and its status can be read back through the same API. This guide compares EukaPay, BitPay, CoinGate, and NOWPayments on four things: how a refund is created, whether it is recorded as full or partial, the states you can read, and how you find the refund again later.

In this guide, you'll learn:

  • Why a crypto refund is a new payment instead of a reversal, and what that changes operationally

  • The three criteria that separate a refund feature from a manual wallet transfer

  • How EukaPay, BitPay, CoinGate, and NOWPayments each create and track a refund

  • What a EukaPay refund record holds, and how to reach it from the API

What matters when you compare crypto payment services that support refunds

Three things decide whether a refund is a product feature or a spreadsheet task. All three are about the record, not the transfer.

Attachment - what the refund is bound to

A refund carrying no link to the original payment is a wallet transfer with a note beside it. A refund bound to the invoice it reverses can be reconciled without a human joining the two by hand. EukaPay binds a refund to a paid invoice by invoice code. The refund record then carries that invoice with its price, its number, and its payments. If you already run

crypto invoicing

, that is the same object you were already issuing.

Refund states - what you can read while the refund is being processed

A refund is not one event. The money is committed at one moment, the customer supplies a destination at another, and the transfer confirms at a third. A service that names those states lets support answer "where is my money" without opening a block explorer. A EukaPay refund record moves through Created, Pending, Success, Fail, or Unknown. Each refund can also be fetched on its own or listed with the rest.

API access - whether a refund can be created without a human in the dashboard

A dashboard refund form is fine at 10 a month and painful at 1,000. Anything above light volume needs the refund created from the system that already knows the order was cancelled. EukaPay creates refunds over the API, and an idempotency header can be sent so a retried request does not create a second refund. Teams already using the

crypto payout API

will recognize the shape.

How to choose

EukaPay

BitPay

CoinGate

NOWPayments

How a refund is created

One API call against the paid invoice code, or from the merchant dashboard

API call or dashboard, against the payment

API call or a refund form on the order

Merchant sends it from their own wallet

Full or partial

Each refund is recorded as full or partial

Full or partial

Full or partial

Whatever the merchant chooses to send

States you can read

Created, Pending, Success, Fail, or Unknown, on a refund with its own reference

Dashboard status, plus refund notifications

Pending, confirmed, or rejected

Merchant's own wallet transfer

Finding the refund later

Fetch one refund by its code, or page through all of them

Refunds retrievable by API

Refund statuses retrievable by API

Look up the original payment ID

Refer to the websites for current information.

EukaPay answers all four rows with one object: a refund carrying its own code, its own status, and the paid invoice it reverses. BitPay creates a refund against the payment and emails the customer a link to supply a wallet address. Its ledger has to hold funds above the refund amount before the request can be created. CoinGate takes the refund from the merchant's balance and asks the customer to confirm the details by email. It can also return a different cryptocurrency than the one the customer paid in. NOWPayments is non-custodial, so a customer refund is an ordinary transfer the merchant makes from their own wallet, with the amount looked up by payment ID. If reconciliation is the reason you are reading this, EukaPay is the one that leaves you a record to reconcile against.

Can crypto payments be refunded?

Yes, but not by reversing anything. A crypto payment that has confirmed on-chain cannot be pulled back by the merchant, the payer, or the payment service. No amount of product design changes that. Every refund in the table above is a fresh outbound payment to an address the customer supplies. What differs between these services is whether that outbound payment is created and tracked as a refund. The alternative is a manual send that somebody then has to tie back to an order. EukaPay does the first, which is why the refund carries the invoice with it.

Where each type of crypto refund tool fits

EukaPay fits the operator who already issues invoices or payment links and wants the return path in the same account and the same API. That is the common case for subscription services, B2B sellers, and anyone taking payment in person through a

crypto payment terminal

. For those operators a return is routine rather than exceptional. A merchant selling one-off digital goods under a no-returns policy may never create a refund at all, and the record is insurance instead of a daily tool. The same argument decides the wider

international payment gateway

question for a business selling across borders. The fewer places your money and your records live, the less reconciliation you own. EukaPay keeps both in one account.

One platform for deposits, payouts, and fiat settlement

Refunds sit inside a single account that also handles 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. EukaPay locks the exchange rate on every conversion by default, on pay-ins and on payouts. A crypto payment confirms on-chain, so protection against chargebacks is a property of the payment method.

If you take crypto payments and expect to give some of that money back, put the refund on the same platform as the payment. EukaPay records a refund against the invoice it reverses, gives it a status you can read, and lets you create it from an API you already hold a key for. Open an account and issue a test invoice in the staging environment to see the refund record before you commit.

Get started with EukaPay

Create a EukaPay account

, complete verification, provide your legal business information, then issue an API key. The refund, invoice, subscription, customer, and payout endpoints are all covered in the

EukaPay API documentation

, with a staging environment for development.

Frequently asked questions

Can a crypto payment be reversed once it has confirmed?

No. A confirmed on-chain transfer is final, and no payment service can claw it back. A refund is a new payment sent to the customer, which is why it needs its own record.

How does a crypto refund reach the customer?

As an outbound transfer to a wallet address the customer provides. The destination is not the card or account the payment arrived from, so a refund flow has to collect that address before anything moves.

Can you issue a partial refund on a crypto payment?

Yes. EukaPay records each refund as full or partial, so a part-return is a named state on the refund instead of an unexplained smaller transfer.

Can you refund the same invoice twice?

No. A refund request against an invoice EukaPay has already refunded is rejected, so a duplicate support ticket cannot quietly send the money a second time.

Do crypto refunds create chargeback exposure?

A crypto payment confirms on-chain, so protection against chargebacks is a property of the payment method. The trade-off is that a return has to be a refund you choose to send. That is exactly why the refund record matters.

Can refunds be created through an API?

Yes. EukaPay creates a refund with one request against the paid invoice code. Refunds can then be fetched singly or listed with pagination.

Does a refund request stay open indefinitely?

No. Each EukaPay refund record carries an expiry timestamp alongside its status, so a request the customer never completes does not sit open forever.

Which currencies can EukaPay settle to my bank account?

USD, EUR, GBP, and CAD, among others. Settlement reaches your own business bank account, and payouts are not tied to banking hours or the banking calendar.

Related articles