Invoicing

How to send a crypto invoice a client can pay in USDC

Short answer: To send a crypto invoice, state the amount, the stablecoin, the network, a due date and your invoice number, then give the client one payment link that holds all of it. Payzum is non-custodial: the client pays USDC or USDT into your own wallet, and the dashboard shows who paid.

Key takeaways

  • A crypto invoice is a normal invoice plus three extras: the coin, the network and an expiry. Without the network, clients send money to the wrong chain.
  • Put your own invoice number in the order reference. Then you can look up any payment by the number your client already knows.
  • A client who pays from an exchange often arrives a little short, because the withdrawal fee comes out of the amount.
  • On a $1,850 project the client pays 1,850 USDC and you receive $1,840.75 after the 0.5% fee, plus a few cents of gas.

Why a freelancer cannot just paste a wallet address into a PDF

Plenty of people start this way. They add a line to a PDF that says "pay to 0x...", and they hope. Then a client asks which network, whether USDC or USDT is fine, and what to write in the memo. Nobody can answer, because a plain wallet address carries no invoice at all.

The reverse problem hits the sender too. One wallet receives five transfers in a week, none of them labelled. Which one settled the logo job, and which one was the retainer? You end up reading a block explorer and matching amounts by eye.

This guide covers the sending side: what a crypto invoice contains, how to issue one that matches a single payment, and what to do when the client pays too little, too late or on the wrong chain. Payzum is a non-custodial, stablecoin-first crypto payment processor: payments settle directly to wallets the merchant controls. If your problem is the month-end books rather than the invoice itself, read our guide on how to reconcile stablecoin payments with invoices.

The fields on a crypto invoice, and why each one is there

Start from the paper invoice you already send. The European Commission's VAT invoicing page (checked 2026-11-06) lists what a full invoice must carry. That includes the date of issue, a unique sequential number, the supplier's and customer's names and addresses, a description and quantity of the goods or services, the unit price, and the VAT rate and amount. Your national rules may differ, so check them.

A crypto invoice keeps every one of those lines. It adds the fields a payment needs to land in the right place.

FieldWhy it is on the invoiceExample
Invoice numberUnique and sequential, so you and your client can name the same document2026-031
Amount and unitOne number the client can copy, in a stablecoin that tracks the dollar1,850.00 USDC
NetworkThe same token exists on many chains; only one of them reaches youBase
ExpiryStops an unpaid invoice from staying open foreverValid until Nov 13
Payment referenceTies the payment to your number, not just to an addressorder reference 2026-031
Tax and party detailsYour usual legal lines; a payment link does not replace themNames, addresses, VAT number if you have one

A payment request and a tax document do different jobs. Payzum gives you the request and the record of what was paid. Your tax invoice stays your own document, and Payzum does not give tax advice. The two meet on the invoice number.

Pick the network before you pick the amount

"I'll pay in USDC" is not a complete answer. Circle's multi-chain USDC page lists 38 blockchains with native USDC (as of June 2026). Tether's supported protocols page shows USDT on 14 networks, with a few older ones closed to new issuance (checked 2026-11-06). Each chain is its own ledger. A token sent on one does not appear on another.

Payzum accepts payments on Bitcoin, Ethereum, Solana, Polygon, Base, Arbitrum, Optimism, BNB Chain and Avalanche. For an invoice, narrow that to one or two chains your client can use. A designer in Lisbon billing a startup that holds USDC on Base should write Base on the invoice, and nothing else.

Cost and speed should guide the choice. Base and Polygon confirm in about two seconds and cost cents in gas. Our notes on USDC transfer speed by network and the cheapest network for USDT payments compare them in detail.

One invoice, start to finish: a $1,850 brand identity project

Here is a single invoice followed from creation to settlement. The numbers are illustrative, but the mechanics are the ones Payzum documents.

DateWhat happensStatus you see
Nov 6You issue invoice 2026-031 for $1,850 in USDC on Base. The order reference is 2026-031 and the expiry is Nov 13. You email the payment link.waiting
Nov 9The client opens the link, sees the exact amount, network and address, and withdraws 1,850 USDC from an exchange.waiting
Nov 9The exchange takes a 1.50 USDC withdrawal fee out of the amount, so 1,848.50 USDC arrives. The invoice is short by 1.50.partially_paid
Nov 9The client sees the shortfall on the checkout page and sends 1.50 USDC more.finished
Nov 9Total received is 1,850 USDC. Payzum keeps 0.5%, which is $9.25, and you receive $1,840.75 plus a few cents of network gas.finished

The 1.50 USDC fee is an example. Real exchange fees depend on the exchange and the network. The shape is the point: a small shortfall, a visible status and a top-up on the same invoice.

The invoice stays open for top-ups while it is partially paid. According to Payzum's invoice lifecycle reference, no notification is sent for a partial payment today, so you find it in the dashboard or by polling the API. Do not release the work on a partial.

Five steps to send the invoice

  1. Settle your own side first. Create a wallet you control, sign up at merchant.payzum.com, complete identity verification and add the wallet as the settlement address.
  2. Create the invoice with the amount, the coin and the network. Use your own number as the order reference. In the API this is the order_id field, and you can read the payment back by that number later.
  3. Set the expiry to match your payment terms. Seven days is a reasonable default for project work; an advance can be shorter.
  4. Send the hosted link by email or chat, next to your normal PDF. The PDF carries your tax lines; the link carries the payment.
  5. Wait for finished. Then release the files or book the next milestone. If you automate this, trigger it from a signed webhook and not from the client's word. See how signed webhooks for crypto payments work.

What your client sees, and what you see

The client opens a hosted checkout page. It shows the exact amount to send, the coin, the network and a deposit address. They copy these into their wallet or exchange. They do not need a Payzum account.

On your side, each invoice returns the Payzum ID, your order reference, the price you quoted, the exact amount the client must send, and the amount received so far. The reading invoices guide lists the fields. To find a payment you can search by either ID. Note that the response does not include the transaction hash. If a client wants to prove they paid, ask for the hash and look it up on the chain's block explorer. Etherscan, for one, documents a receipt status endpoint for Ethereum transactions.

The Payzum inline widget rendering the crypto checkout inside a page, with amount, order reference, expiry countdown and the embed snippet
Inside Payzum: the inline checkout widget, with amount, order reference and expiry countdown.

When the invoice goes wrong: expired, short, over or on the wrong chain

Most problems fall into one of four cases.

SituationWhat the status showsWhat you do
Client pays after the expiryexpiredIssue a fresh invoice. If funds did arrive, return them as a new payment.
Client pays too littlepartially_paidAsk for the difference on the same invoice. Hold the work.
Client pays too muchfinished, with the amount received above the amount dueCompare the two amounts. Refund the excess as a new payment.
Client sends on a different networkNo match on the invoiceDo not guess. Ask for the hash and check the chain before promising anything.

On overpayment, the invoice lifecycle reference says the buyer-facing page can show overpaid, while the merchant API reports finished. Detect it by comparing actually_paid with pay_amount. Payzum's default tolerance is 5%, so a slight excess is accepted as paid.

Nobody can pull an on-chain payment back, so a refund is a new transfer you send. Return the same stablecoin to an address the client confirms in writing, not to the address the money came from. That address is often an exchange deposit wallet that you cannot reach.

Crypto invoice versus a bank-transfer invoice

PointInvoice paid by bank transferInvoice paid with Payzum
Matching a payment to the invoiceClient writes a reference, or you guess from the amountOrder reference set by you; look up by your number
Time to know it is paidOften 1 to 3 days, longer across bordersSeconds after the network confirms
Where the money landsYour bank, after intermediaries take feesYour own wallet, minus Payzum's 0.5%
Short paymentsFound when you check the statementpartially_paid status, with a top-up on the same invoice
Reversal after paymentPossible by the sending bank in some casesNone; a refund is a new transfer you send

Three people who send invoices this way

  • A freelance developer bills three overseas clients a month. One link per invoice replaces three emails asking for bank details. The longer guide on accepting USDC as a freelancer covers the rest of the workflow.
  • A small agency invoices a retainer on the first of each month. The same client, the same network and a new number every time keep the ledger clean.
  • A parts supplier asks a distributor for 50% upfront and 50% on delivery. Two invoices with the same job in the order reference tell you which half arrived.

Doubts clients and freelancers raise

My client has never used crypto. Will they manage?

If they hold USDC on an exchange, they can pay. The checkout page tells them the amount, network and address. Send them the link and one sentence: "choose Base when you withdraw". If they do not hold crypto, offer a bank transfer instead.

Is this invoice also my tax invoice?

Treat it as the payment request. Keep issuing your tax invoice the way your jurisdiction requires and quote the same number on both. Payzum's accounting exports value each sale on the day it happened, but they are records and not tax advice.

Frequently asked questions

How do I send an invoice that a client can pay in USDC?

Create the invoice with the amount, the coin and the network, set an expiry, and use your own invoice number as the order reference. Then send the hosted payment link by email or chat. The client pays from any wallet or exchange, and the funds settle in your own wallet.

Does the client need a Payzum account to pay?

No. The client opens the hosted checkout page, copies the exact amount, network and address into their wallet or exchange, and sends the payment. Only the person who gets paid needs an account.

What happens if the client pays too little?

The invoice moves to partially_paid and stays open for a top-up. No notification is sent for a partial payment today, so check the dashboard or poll the API. Hold the work until the status is finished.

What happens if the invoice expires before the client pays?

It moves to expired. Issue a fresh invoice. If funds still arrived on the old one, return them as a new payment to an address the client confirms.

Can I refund a crypto invoice?

A payment on-chain cannot be pulled back, so a refund is a new transfer from you. Send the same stablecoin to an address the client confirms in writing, not to the address the payment came from.

Is a Payzum invoice also a tax invoice?

Treat it as the payment request. Keep issuing your tax invoice as your jurisdiction requires and quote the same number on both. Payzum provides accounting records and not tax advice.

Book 20 minutes and we will set up your first invoice

Every freelancer and small agency bills a little differently. Bring one real invoice, and we will configure the coin, the network, the expiry and the order reference with you. The funds settle in a wallet that only you control. Payzum charges 0.5% per processed sale, taken out of the amount received, plus network gas.

Calendar not loading? Book directly here · [email protected]

This is not legal, tax or financial advice. Invoice requirements and network lists were checked on 2026-11-06 and change over time. Confirm the rules for your jurisdiction.