Skip to content
Gladpaid

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

FieldWhy it matters
Transaction hashThe permanent reference. Anyone can look it up on a public explorer.
ChainThe same address format works on several chains; the hash only resolves on one.
Token contractIdentifies 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 unitsWhat arrived, before any conversion.
USD value and its sourceThe price used, where it came from and when. Auditors ask for it.
Sender addressEvidence for the match, and useful for recognising the payer next time.

The ordinary receipt

INV-101 for $10,000 paid with 10,000 USDC at $1.0000
AccountDebitCredit
Dr USDC wallet [classification per your policy]10,000.00
Cr Accounts receivable, Customer X10,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.

Partial payment (6,000 USDC at $1.0000)
AccountDebitCredit
Dr USDC wallet [classification per your policy]6,000.00
Cr Accounts receivable, Customer X6,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.

Over-payment (10,500 USDC at $1.0000)
AccountDebitCredit
Dr USDC wallet [classification per your policy]10,500.00
Cr Accounts receivable, Customer X10,000.00
Cr Customer credit balance or refund liability500.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.

Unmatched receipt (2,500 USDC at $1.0000)
AccountDebitCredit
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. [1]ASC 606-10-32-10 (refund liabilities) and 606-10-32-7 (price concessions)Settled
  2. [2]ASC 326 (credit losses) for written-off balancesSettled
  3. [3]ASC 820-10-35-5A, 35-6, 35-9B (principal market, quoted price, transaction costs); AICPA Q&A 16–18Settled
  4. [4]ASC 606-10-45-2 (contract liabilities) for prepaymentsSettled
  5. [5]AICPA practice aid, Accounting for and auditing of digital assets (Sept 2025)Settled
  6. [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.

Let Gladpaid record every one of these, with the evidence attached.