# Accept crypto payments in your online store, SaaS or marketplace

> Price the order in fiat, show the customer an address and a network, and release the order when a signed webhook says it's confirmed.

Updated 2026-10-05 · Payaries · https://www.payaries.com/solutions/ecommerce

## How the checkout fits in

1. At checkout your backend creates an invoice for the order total with your order number as `referenceId`.
2. You show the customer the deposit address and the network — or send them to the hosted payment page at `/pay/<checkoutId>` — every invoice carries a `checkoutId` — which shows the amount, address and live status.
3. The customer pays. Payaries watches the address and moves the invoice through `pending`, `detected`, `confirming` and `confirmed`.
4. Your webhook handler verifies the signature and marks the order paid.

**Create an invoice**

```
POST /v1/invoices

{
  "referenceId": "order_10231",
  "fiat": { "amount": "49.99", "currency": "USD" },
  "crypto": { "asset": "USDT_TRC20", "chainId": "tron-mainnet" }
}
```

## What to know before you plan

- **It's an API integration.** There are no ready-made plugins for store platforms yet, so you'll write a small amount of backend code — the [crypto payment API page](https://www.payaries.com/crypto-payment-api) shows it.
- **Payments are irreversible.** A refund is a separate transaction you send to the customer.
- **Customers pay the network fee** on their own transfer; choose networks your customers already use. [Compare USDT on TRC-20, ERC-20 and BEP-20](https://www.payaries.com/blog/usdt-trc20-vs-erc20-vs-bep20).

## Short, late and double payments

A short payment is flagged `underpaid`; a payment after expiry moves the invoice back to `detected` or `underpaid`; an amount that fits no invoice is recorded as an unclaimed deposit. Your order logic should handle each — see [the guide](https://www.payaries.com/guides/handle-underpaid-and-late-crypto-payments).

## Questions

**Is there a plugin for Shopify or WooCommerce?**
Not yet. Payaries is integrated through its REST API and Node SDK, so the store needs a small amount of backend code.

**Can customers pay without me building a checkout page?**
Yes. Every invoice carries a checkoutId that opens a shareable payment page showing the amount, deposit address and live status, so you can send customers there instead of building your own, and have them returned to your store afterwards with a success and cancel URL (see the hosted checkout guide).

**Who pays the network fee?**
The customer pays the network fee on their own transfer. Network fees on your withdrawals, and Payaries's own fees, are separate — ask sales@payaries.com for a quote.

## Try it

Run a real invoice before you commit: [Payaries — www.payaries.com](https://www.payaries.com/signup). Payaries is a multi-chain crypto payment gateway — https://www.payaries.com

## Keep reading

- https://www.payaries.com/crypto-payment-api — A crypto payment API that behaves like the rest of your stack
- https://www.payaries.com/usdt-payment-gateway — Accept USDT payments on Ethereum, BNB Smart Chain, Polygon, Arbitrum, Tron and more
- https://www.payaries.com/guides/how-a-crypto-payment-gateway-works — How a crypto payment gateway works, from invoice to settlement
- https://www.payaries.com/blog/crypto-payment-gateway-vs-wallet-address — Crypto payment gateway vs just sharing a wallet address
- https://www.payaries.com/solutions/web3 — A crypto payment gateway for Web3 companies
- https://www.payaries.com/services
- https://www.payaries.com/custom-token-payments — Custom token payments: bring your own ERC-20, BEP-20 or TRC-20 token
