Xero
How to record a USDC payment in Xero
Updated · 4 min read
In short
In Xero, an invoice paid in USDC is closed with a **payment** against the invoice, made to an account that can receive payments. Manual journals cannot touch Accounts Receivable, so they cannot close it. How the wallet balance is classified is a policy your accountant sets.
The situation
The business raised INV-101 for $10,000 in Xero. The customer sent 10,000 USDC to the business's own wallet. Xero knows nothing about it. The invoice still shows as awaiting payment, and the receivables aging is overstated by $10,000 until the payment is recorded.
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 10,000.00 | |
| Cr Accounts receivable, Customer X | 10,000.00 |
This is the effect of the payment. In Xero it is entered as a payment on the invoice, not as a journal.
Step 1: an account that can receive payments
Xero only accepts a payment into an account of type BANK, or into another account with Enable payments to this account switched on in the chart of accounts. Which to use depends on the organisation's base currency.
| Base currency | Wallet account | Why |
|---|---|---|
| USD | Current Asset with payments enabled | No bank reconciliation lines to clear, accepts manual journals, can hold attachments |
| Not USD (AUD, GBP, NZD, EUR…) | BANK account in USD | Only bank accounts carry a currency code; needs a Xero plan with multicurrency |
A Current Asset account in a non-USD organisation is carried in the base currency, so Xero cannot calculate unrealised currency movement on the USDC balance. That is the reason for the USD bank account in that case.
Step 2: apply the payment to the invoice
- 01
Open the invoice
Find INV-101 under Sales and scroll to Record payment.
- 02
Enter the amount
The USD amount received. Less than the total leaves the balance owing; Xero shows it as part paid.
- 03
Date paid
The date of the block that confirmed the transfer.
- 04
Paid to
The wallet account from Step 1. It only appears if it is a bank account or has payments enabled.
- 05
Reference
A short form of the transaction hash, and the chain.
Step 3: evidence, given that payments take no attachments
- Payments in Xero cannot carry attachments. Put the hash, or a short form of it, in the payment Reference.
- Attach the explorer printout or payment proof PDF to the invoice instead, and add a history note with the full hash.
- Keep the full hash and chain in your own workpapers as well. Xero payments cannot be edited after the fact, only deleted and re-entered.
Step 4: differences and fees
If the market price at the block was below $1.00, or the customer sent slightly less than the invoice, the difference is recorded separately. With a Current Asset wallet account, a manual journal can move the difference to a gain or loss account. With a BANK wallet account, manual journals cannot touch it; a spend money or receive money transaction does the same job.
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 4,998.75 | |
| Dr Bank fees or write-off [account per your policy] | 1.25 | |
| Cr Accounts receivable, Customer X | 5,000.00 |
Whether a small shortfall is written off, treated as a price concession or left open on the invoice is a policy with a materiality threshold. Guidance on the presentation is unsettled.
Step 5: lock dates
Xero has two lock dates: a period lock date for most users and an end-of-year lock date for everyone. A payment dated before either is refused ("document date cannot be before the period lock date"). A late receipt for a locked month is typically recorded in the first open period and noted in both months' workpapers; moving a lock date is the adviser's decision.
Doing this for every payment
The free record a USDC payment tool shows the entries for any transaction hash under each treatment. Gladpaid connects to Xero with accounting scopes only, watches the wallet read-only, matches each receipt to its invoice and records the payment with the evidence on the invoice. See Connecting Xero.
Questions
Can a Xero payment go to an account that is not a bank account?
Yes. Any account with Enable payments to this account switched on can receive a payment, as can any BANK account.
Why can't I use a manual journal to clear the invoice in Xero?
Xero does not allow manual journals to post to Accounts Receivable, Accounts Payable, retained earnings or bank accounts. Only a payment settles the invoice.
Where does the transaction hash go in Xero?
Payments cannot hold attachments, so a short form of the hash goes in the payment Reference, and the proof is attached to the invoice with a history note.
What if the organisation's base currency is not USD?
Xero only allows a currency code on bank accounts, so the wallet is usually set up as a USD bank account, which needs a Xero plan with multicurrency.
Sources
- [1]Xero Developer: Payments (payment account must be BANK or have payments enabled)Settled
- [2]Xero Developer: Manual Journals (reserved accounts)Settled
- [3]Xero Developer: Accounts (EnablePaymentsToAccount, CurrencyCode for bank accounts only)Settled
- [4]ASC 606-10-32-7 (price concession) and ASC 326 (credit loss) for short paymentsUnsettled
- [5]AICPA practice aid, Accounting for and auditing of digital assets (Sept 2025)Settled
This guide describes how published standards and guidance treat these transactions, and where that guidance is unsettled. It is not accounting, tax or legal advice. The treatment for your business is your accountant's decision.