Bookkeeping basics
Stablecoin bookkeeping for small businesses
Updated · 4 min read
In short
A stablecoin receipt is recorded like any customer payment, with more evidence: the transaction hash, chain, token contract, block time and a USD value with its source. Short payments, over-payments and receipts with no invoice each have a standard home. The classification of the balance is a policy for the accountant.
Who this is for
Agencies, exporters, contractors and software businesses that put a wallet address on their invoices and get paid in USDC or USDT. The business is not a crypto company. It sells a service in dollars and some customers happen to pay on-chain. The bookkeeping goal is the same as for a wire: the invoice shows Paid and the money is on the balance sheet.
What to capture for every receipt
| Field | Why it matters |
|---|---|
| Transaction hash | The permanent reference. Anyone can look it up on a public explorer. |
| Chain | The same address format works on several chains; the hash only resolves on one. |
| Token contract | Identifies the token. The symbol alone is not enough (see below). |
| Block time (UTC) | When control passed. Sets the date and the period. |
| Amount in token units | What arrived, before any conversion. |
| USD value and its source | The price used, where it came from and when. Auditors ask for it. |
| Sender address | Evidence for the match, and useful for recognising the payer next time. |
The ordinary receipt
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 10,000.00 | |
| Cr Accounts receivable, Customer X | 10,000.00 |
In QuickBooks or Xero this is entered as a payment on the invoice, so the invoice closes.
Putting a dollar value on it
Fair value guidance (ASC 820) points to the quoted price in the principal market, presumed to be the market the business normally transacts in, at the time control passed. Aggregated prices such as VWAP are not used for an active market, and transaction costs are not part of fair value. Many businesses value USD stablecoins at $1.00 and flag any receipt where the market price was noticeably different; others use the observed price at the block every time. Using a day-close price instead of the block-time price is a practical expedient that holds up only as a documented, immaterial policy.
Whichever is chosen, write down the source, the time and the price used for each receipt. That record is what an auditor or tax preparer asks for first.
Partial payment
The customer sent 6,000 USDC against the $10,000 invoice. The receivable is cleared to the extent of the value received and the remainder stays open.
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 6,000.00 | |
| Cr Accounts receivable, Customer X | 6,000.00 |
$4,000 remains open on INV-101. A later write-off is a credit loss (ASC 326) or, if the business accepts less, a price concession (ASC 606-10-32-7). Which applies is a judgement.
Over-payment
The customer sent 10,500 USDC. Under ASC 606-10-32-10 the excess is a liability to the customer, a credit or a refund owed, not revenue.
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 10,500.00 | |
| Cr Accounts receivable, Customer X | 10,000.00 | |
| Cr Customer credit balance or refund liability | 500.00 |
A receipt with no invoice
Money arrives and nobody knows why yet. Recording it to revenue is a guess. The standard pattern is an unidentified receipts (suspense) account until someone classifies it.
| Account | Debit | Credit |
|---|---|---|
| Dr USDC wallet [classification per your policy] | 2,500.00 | |
| Cr Unidentified receipts (suspense) | 2,500.00 |
- A customer prepayment: a contract liability until the work is done.
- An invoice found later: reclassify to Accounts Receivable.
- A transfer from the business's own exchange account or wallet: no income at all; reverse it as a transfer.
- A loan or owner contribution: to the loan or equity account.
- Sent by mistake: a liability to return it.
- Unsolicited dust or look-alike tokens: flagged, not recognised. These are often address-poisoning attempts.
What a wallet cannot show you
When a customer pays through a checkout processor such as Stripe, Shopify Payments or PayPal, the stablecoin lands at the processor and the business is paid out in US dollars. Nothing reaches the business's wallet, so there is nothing on-chain to reconcile; those payouts reconcile like card settlements. The wallet only shows payments sent directly to it, and opt-in payouts the business chose to take in stablecoin. See Shopify USDC payouts in QuickBooks.
Keys never belong in the books
Recording receipts needs only the public address. No accounting process needs a recovery phrase or private key, and anything that asks for one is a warning sign. Gladpaid refuses them outright and says why. See Why we never ask for keys.
To see the full entry set for a single payment, paste its hash into the free record a USDC payment tool.
Questions
What records do I keep for a USDC payment?
The transaction hash, chain, token contract, block time, amount in token units, the USD value with its price source, and the sender address.
How is an over-payment in USDC recorded?
The excess over the invoice is a liability to the customer, a credit or refund owed, under ASC 606-10-32-10. It is not revenue.
Where does a stablecoin receipt with no invoice go?
Commonly to an unidentified receipts or suspense account until it is classified as a prepayment, a later invoice, an own transfer, a loan, an owner contribution or funds to return.
Why doesn't a Stripe or Shopify stablecoin payment show in my wallet?
Checkout payments settle to the processor, which pays the business in US dollars. Only payments sent directly to the business's address, or payouts it opted to receive in stablecoin, appear on-chain.
Sources
- [1]ASC 606-10-32-10 (refund liabilities) and 606-10-32-7 (price concessions)Settled
- [2]ASC 326 (credit losses) for written-off balancesSettled
- [3]ASC 820-10-35-5A, 35-6, 35-9B (principal market, quoted price, transaction costs); AICPA Q&A 16–18Settled
- [4]ASC 606-10-45-2 (contract liabilities) for prepaymentsSettled
- [5]AICPA practice aid, Accounting for and auditing of digital assets (Sept 2025)Settled
- [6]PwC Viewpoint, Crypto assets guide §3.1 (receipt of crypto)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.