Skip to content
>
Mode: standard

Integration Options

Start here

Two paths to accept crypto payments.

Every CoinPayments integration starts as one of two primitives. Invoices hand the checkout to us — you generate a bill and we manage the hosted payment page. Wallets & Addresses hand the flow to you — you mint per-customer deposit addresses and design the flow of funds. Both ship across the full set of supported currencies.
Path A · Invoices

Invoices

Generate an invoice, hand the buyer a link, and we'll host the entire payment experience — currency selection, confirmations, refunds, and webhooks. Issue from the dashboard with no code, or drive it programmatically via the Invoices API.

Invoices are great for merchants who...
  • Need to bill their customers for single purchases (i.e. products)
  • Need to bill their customers for recurring services involving subscriptions
  • Require an easily accessible financial history via the invoice documents
  • Prefer the simplicity of CoinPayments-managed invoicing, delivery, and payment collection
Path 1 / 4

Invoice via Dashboard

Use the invoice creation tool on the dashboard to configure and send invoices visually — no code required.
Invoice creation tool on the CoinPayments dashboard
The invoice creation tool walks you through every field — settings, buyer, line items, notes.
What you can configure
Invoice Settings

Delivery method, delivery date, due date, invoice and PO numbers, business branding.

Buyer Information

Customer personal and business details, location, contact, and shipping (if applicable).

Invoice Details

Product name, quantity, price, applicable discounts, shipping fees, and taxes.

Customer Notes

A note to the recipient and your terms & conditions.

Internal Comments

Notes for your records — never shown to the buyer.

Delivery method
  • Link — Share the invoice URL with the recipient manually.
  • Email — Auto-delivered to the recipient on the date you specified.

Customers land on the hosted invoice page, then click Pay using CoinPayments to launch the payment window.

Hosted invoice

What the buyer sees when they open the invoice link.

Hosted invoice page
Payment window

How the buyer pays once they click Pay using CoinPayments.

Checkout payment window

Payment timeout & fees

Path 2 / 4

Invoice via API

For granular control over creation, dispatch, and the invoice lifecycle, drive everything via the Invoices API.

After creating an invoice via POST /merchant/invoices, the response carries two URLs — one to share, one to embed:

linkResponse property

Send this URL to your client. It renders the hosted invoice with a “Pay using CoinPayments” button that kicks off the checkout flow.

Hosted invoice page rendered from the link property
checkoutLinkResponse property

Drop this URL into your own UI to display the checkout/payment window directly to your client.

Checkout payment window rendered from the checkoutLink property
Open the Invoices API reference

Invoice distribution

Compare the integration shapes: Invoice Link, White-Label Checkout, and Displaying Invoices.

Invoice notifications

React to invoice events with webhook notifications, or poll GET Invoice Status.

Path 3 / 4

Invoice via "Buy Now" Button

A static checkout element you drop straight into your site. Clicking it auto-creates an invoice and pops the checkout/payment window — a good fit for merchants selling fixed-price single products or services.
Live demo

Click the button above to preview the express-checkout flow.

Generate "Buy Now" buttons

Step-by-step setup is in the Buy Now button example.

Path 4 / 4

Automatic Transfers

Configure where received invoice payments settle inside your account's payment settings. Funds can route to other internal wallets, external addresses, or be auto-converted into a target currency on the way in.
Configure payment settings
Path B · Wallets & Addresses

Wallets & Addresses

Drive the collection flow yourself via the wallets API. Create a wallet per currency, mint per-customer addresses, and react to deposits with webhooks — perfect when you need a permanent, on-demand way to receive funds.

Wallets & Addresses are great for merchants who...
  • Need a permanent, on-demand way for customers to deposit funds
  • Require a permanent or temporary window for customers to deposit an arbitrary amount of funds
  • Would like to customize their integration to fit their company's unique requirements
  • Would like to optimize fees associated with currency collection, both on a micro and macro scale
Step 1 / 4

Payment Architecture

Per currency, start by creating a wallet. Inside that wallet, mint as many addresses as you need to attribute incoming payments.

Wallets host either permanent or temporary addresses. Your choice shapes the flow of funds and the fee profile of the integration.

The deep dive lives in Address Types.

The common pattern: one address per customer, stored against your internal customer id. Every incoming deposit then maps back to the right account.

Basic wallet and address architecture
One wallet per currency, one address per customer — the canonical setup.
Step 2 / 4

Collecting Payments

Address-based collection accepts any amount at any time — the integration acts as an always-on receiver that captures arbitrary deposits.
Inspect wallets and addresses

To collect a payment, display the address's networkAddress to the customer. Your platform then controls:

  • How to render the collection window or address
  • What amount counts as a completed payment
  • How to fulfil the customer once they pay

QR code address display

See the QR code example for rendering a network address as a scannable QR.

Deposit notifications

React to incoming deposits with webhooks, or poll GET Transactions.

Step 3 / 4

Withdrawing Funds

Send funds to internal wallets, external addresses, or auto-convert into a different currency through the Spend Request flow.

Temporary addresses

When collecting via temporary addresses, funds aggregate into a wallet-level virtual balance — withdraw straight from that balance.

Permanent addresses

Permanent-address wallets distribute funds across many on-chain addresses, so a direct withdrawal can incur extra fees to gather them. Two options:

  • Pre-consolidate into a temporary wallet first via sweeping & consolidation, then spend from that wallet.
  • Or accept the extra fees and process spend requests sequentially — one at a time, because the auto-consolidation step rejects concurrent attempts.

Full detail in Address Types.

Step 4 / 4

Sweeping & Consolidation

Depending on your wallet's address type and desired flow, use sweeping & consolidation to gather scattered balances into a single spendable pool.

Consolidated funds can land in other internal wallets, external addresses, or be auto-converted into a target currency on the way out.

  • For granular control, call the consolidation routes directly and pick the exact source/destination addresses.
  • For zero-code automation, set "trigger amounts" on the dashboard to fire transfers on a balance threshold — optionally converting into a strategic holding currency at the same time.
Read the consolidation guide

Ready to integrate?

Pick the next step that matches your stage.