Beancount.io LogoBeancount.io

Section 988 Foreign Currency Transactions: A Tax Guide for Importers, Exporters, and Remote Workers

12 min readMike ThriftMike Thrift
Section 988 Foreign Currency Transactions: A Tax Guide for Importers, Exporters, and Remote Workers

You invoice a German client €10,000 on January 15. They wire the money on March 30. By the time the euros land in your dollar bank account, you have $11,250 — but your accounting software booked the sale at $11,000 back in January. Where does that extra $250 go on your tax return?

Most small businesses answer that question wrong. They either bury the difference in revenue, ignore it entirely, or — worst case — report it as a capital gain at 15 percent when it is actually ordinary income taxed at their full marginal rate. The Internal Revenue Service has a specific, decades-old rule for this scenario, and it lives in Internal Revenue Code Section 988.

If you sell to customers in another currency, pay foreign vendors, hold a euro or pound bank account, or get paid by an overseas employer, Section 988 governs how every exchange-rate swing in your books becomes a line on your tax return. Get it right and you can deduct losses against ordinary income with no $3,000 cap. Get it wrong and you misclassify income, fail to make a one-day election that could save real money, or trigger an audit over a $200 vacation gain you did not even know was taxable.

Here is the practical version.

What Section 988 Actually Covers

Section 988 applies whenever a U.S. taxpayer enters into a transaction denominated in — or whose value is determined by reference to — a currency other than their "functional currency." For most U.S. individuals and businesses, the functional currency is the U.S. dollar. Anything else is what the statute calls a "nonfunctional currency."

The Code lists four broad categories of Section 988 transactions:

  • Acquiring or being the obligor on a debt instrument denominated in a foreign currency. That includes a euro-denominated loan, a pound-denominated bond, or a yen-denominated note payable to a supplier.
  • Accruing income or expense that is paid or received at a later date in a foreign currency. This is the classic importer/exporter case: you invoice or get invoiced today, payment lands weeks later, and the exchange rate moved.
  • Entering into a forward contract, futures contract, or option that calls for delivery or settlement in a foreign currency.
  • Disposing of nonfunctional currency itself — say, converting euros sitting in a bank account back into dollars, or using them to buy something.

The key insight is that Section 988 isolates the currency component of these transactions from the underlying economic substance. The euro receivable from your German client is one position; the exchange-rate movement on that receivable is what Section 988 measures, separately, between the date you booked the receivable and the date you got paid.

Ordinary Income, Ordinary Loss — That Is the Default

The defining feature of Section 988 is character. Gains and losses on Section 988 transactions are ordinary, not capital. That cuts both ways.

If you have a foreign exchange gain, it is taxed at your full ordinary income rates — up to 37 percent federally for individuals, plus state tax. There is no preferential long-term capital gains treatment, no matter how long you held the position.

If you have a foreign exchange loss, the news is much better. Ordinary losses offset any kind of income — wages, business profit, interest, rents — with no $3,000 annual cap that limits capital losses. For a small business that lost real money on a euro contract, that can be the difference between a deductible operating loss and a stranded capital loss carried forward for years.

This default treatment is precisely backwards from what most taxpayers assume. People hear "foreign exchange" and think "capital gain like a stock." Section 988 says the opposite, and it controls.

The One-Day Capital Gain Election (And When to Use It)

There is an important escape hatch in Section 988(a)(1)(B). For forward contracts, futures contracts, and options that are capital assets in your hands and are not part of a tax straddle, you can elect to treat the gain or loss as capital instead of ordinary.

The mechanics are punishing for the disorganized: you have to identify the transaction before the close of the day on which you enter into it, in your books and records. There is no specific form, no after-the-fact filing. If you forget to document it the same day, the election is gone for that contract.

When does electing make sense?

  • You have other capital losses you cannot otherwise use (capital losses only offset capital gains plus $3,000 of ordinary income per year). A capital gain from a euro forward could absorb a stranded stock loss.
  • You expect a gain on a long-held position and you would benefit from long-term capital gain rates.

When should you skip the election?

  • You expect a loss. Keeping the loss ordinary lets you deduct it in full against business income.
  • You do not have offsetting capital losses or favorable capital rates in play.

The election is made transaction by transaction, so you can mix and match across contracts as your situation evolves. Just remember the calendar: a same-day identification rule is unforgiving.

The Personal $200 Exception — and Why It Matters

If you have ever come back from a trip to London with leftover pounds and exchanged them at the airport, congratulations: you executed a Section 988 transaction. The statute, taken at face value, would tax any FX gain on that conversion as ordinary income.

Congress did not intend to audit American tourists. Section 988(e) provides a $200 per-transaction de minimis exception for personal transactions by individuals. If the gain on disposing of nonfunctional currency held for personal use is $200 or less, you do not have to recognize it.

A few things travelers and remote workers should understand:

  • It is per transaction, not annual. Two separate $150 gains do not combine to exceed the threshold.
  • It is gain only, not loss. Personal-use losses are not deductible at all — the exception only spares you from recognizing small gains.
  • It is a cliff, not a phase-out. If the gain on one transaction is $201, the entire $201 is taxable. You do not get to subtract the first $200 and report only $1.
  • "Personal" excludes any expense that would qualify under Section 162 (trade or business) or Section 212 (investment). Buying euros to pay a freelance contractor abroad is not personal, even if the contractor is your friend.

For a digital nomad or a remote employee paid in a foreign currency, this exception is narrow. Funding a vacation? Probably personal. Paying your overseas software vendor with the same euros? Business. Keep the wallets and bank accounts separate so the analysis is clean.

Timing: The Booking-Date vs. Payment-Date Two-Step

Section 988 measures the exchange-rate gain or loss between two dates:

  • The booking date — when you acquired the debt instrument, accrued the income, or recognized the expense at the then-current spot rate.
  • The payment date — when cash actually changes hands.

The Section 988 gain or loss is the difference between those two dollar amounts, attributable solely to exchange-rate movement.

Walk through the German client example again with numbers:

  • January 15: You invoice €10,000. The spot rate is 1 EUR = 1.10 USD. You book a $11,000 receivable and $11,000 of revenue.
  • March 30: The client wires €10,000. The spot rate is now 1 EUR = 1.125 USD. You receive $11,250.

You have two separate items on your tax return:

  1. $11,000 of business revenue (Schedule C, the corporate return, or wherever your operating income lives), unchanged by the FX movement.
  2. $250 of Section 988 ordinary income for the FX gain between January 15 and March 30.

If the dollar had strengthened and you only received $10,800, you would have $200 of Section 988 ordinary loss — fully deductible against business income, not subject to capital loss limits.

This split matters because it preserves the comparability of your revenue line over time. Your sales did not really change between January and March; the currency moved. Section 988 puts that currency movement in its own bucket where it belongs.

Practical Bookkeeping for Section 988

The single biggest cause of Section 988 errors is sloppy record-keeping. Spot rates are not optional inputs — they are the legal basis for measuring gain or loss. A few habits make this manageable:

  • Use a consistent spot-rate source. The U.S. Treasury publishes a quarterly Foreign Exchange Rate Bulletin. The Federal Reserve H.10 release publishes daily noon rates. Pick one and use it every period.
  • Record both the foreign currency amount and the USD equivalent on every invoice, bill, and bank transaction. "€10,000" alone is not enough; you need the spot rate that translated it into your books.
  • Tag a separate ledger account for FX gain/loss. Mixing these realized gains into general revenue or "other income" is how they get misclassified on the tax return. Plain-text accounting tools and any modern general ledger can hold a Income:Foreign-Exchange-Gain or Expenses:Foreign-Exchange-Loss account that maps cleanly to Section 988 lines.
  • Reconcile foreign-currency bank balances at month end. A euro account holding €5,000 has a different USD value at every month-end. Mark it to the closing rate and record the unrealized FX adjustment.
  • Document elections the same day. If you are using the capital-gain election on forwards or futures, write the identification into your books before midnight on the trade date. A trade confirmation alone is not the election.

Accurate bookkeeping from the moment a foreign currency hits your business is what makes Section 988 manageable. Try to reconstruct exchange-rate gains at tax time, after the fact, and you will either overpay, underpay, or both.

Common Mistakes That Trigger Adjustments

The same errors show up over and over in IRS exams and tax-preparer reviews:

  • Treating FX gains as capital gains. This is the single most frequent mistake. People drop a foreign exchange gain on Form 8949 because it "feels like" an investment. It is not — it is ordinary unless you made the same-day forward-contract election.
  • Failing to recognize FX loss on debt repayment. If you borrowed €100,000 when the euro was 1.20 and repaid when it was 1.10, you used fewer dollars to repay than you borrowed. That is a Section 988 ordinary gain to you. Many small businesses miss this entirely.
  • Ignoring small balances. A euro account holding €3,000 across two years can throw off real ordinary income or loss when the dollar moves 10 percent. Mark to market or reconcile at year-end.
  • Mixing personal and business foreign currency. Once you commingle a vacation-fund euro account with vendor payments, you lose the $200 personal exception and the IRS can recharacterize everything.
  • Forgetting source rules. Section 988(a)(3) generally sources FX gain or loss to the residence of the taxpayer (or qualified business unit), not to the currency. That matters for foreign tax credit baskets and for non-U.S. owners of U.S. entities.

Real-World Scenarios

The freelance designer paid in euros. You bill a Berlin agency €5,000 per month. Each invoice is a separate Section 988 transaction. Book the receivable at the invoice-date spot rate, recognize the FX gain or loss when cash arrives, and report the cumulative net amount on Schedule C as ordinary FX gain or loss. No election available — these are receivables, not forwards.

The Shopify store importing from a U.K. supplier. You pay invoices in pounds and hold a small GBP balance to avoid wire fees. Every payment is a Section 988 transaction (the spread between the spot rate when you accrued the bill versus when you paid it). Year-end revaluation of the GBP cash balance produces additional ordinary FX gain or loss.

The startup with a euro-denominated forward contract. You sold software to a French enterprise for €500,000 closing in six months and bought a forward contract to lock in the dollar amount. Decide on day one whether to elect capital treatment under Section 988(a)(1)(B). If you have capital losses to absorb, the election can be worthwhile. Identify it in writing the same day.

The remote worker on a year abroad. You moved to Lisbon for 12 months and your employer pays you in euros. The wage portion is ordinary compensation translated at the pay-date spot rate. Any euros you accumulate and later convert to dollars are subject to Section 988, with the $200 personal exception applying only to euros used for genuinely personal transactions — not for paying business expenses or remitting savings to a U.S. brokerage.

When to Loop in a Professional

Section 988 has more dark corners than this article can cover. Talk to a tax advisor before:

  • Setting up a qualified business unit (QBU) with a non-USD functional currency under Section 985.
  • Entering into integrated hedging transactions under Section 988(d), where multiple instruments must be treated as a unit.
  • Holding foreign-currency-denominated bonds with material accrued interest.
  • Operating through a CFC or partnership with non-USD operations, where Sections 987 and 989 interact.
  • Receiving cryptocurrency in a foreign currency stablecoin — the IRS has not fully settled how Section 988 applies, but the analysis is not optional.

A 30-minute consultation now will be cheaper than a Form 1040-X next April.

Keep Your Multi-Currency Books Audit-Ready

If you sell across borders, pay overseas vendors, or earn in a foreign currency, your bookkeeping system needs to handle multiple currencies cleanly from day one. Spot rates, FX gain and loss accounts, and reconcilable foreign-currency balances are not optional add-ons — they are core requirements for an accurate Section 988 calculation.

Beancount.io gives you plain-text accounting built for exactly this kind of work: every transaction stores its original currency and the cost basis in your home currency, multi-currency reconciliations produce explicit FX gain and loss postings, and the whole ledger is version-controlled so you can audit any historical rate. Get started for free and see why developers, finance teams, and globally distributed small businesses are switching to transparent, AI-ready accounting.