
TL;DR: If your month-end close involves stablecoin balances, multi-currency payments, or onchain transaction records, standard close tools leave gaps that become manual work. FX gain/loss reporting, fiat-to-onchain timing gaps, and lot-level cost basis tracking all require steps that fiat-only workflows weren't built to handle. Teams that automate reconciliation at the transaction level finish the month-end close faster than teams that work longer hours at period-end.
Stablecoin balances, multi-currency payments, and onchain transaction records sit outside what standard close tools were built to handle. When that gap becomes manual work, the close slows down.
Standard close checklists are built for traditional fiat-based operations. Your reality includes stablecoin balances, onchain transaction IDs, and FX adjustments that fiat-only workflows ignore. The result is that every month-end becomes an exercise in stitching together bank portals, payment platforms, treasury tools, and spreadsheets by hand.
This guide gives you the full month-end close checklist, then shows where multi-currency and stablecoin activity breaks the standard process, and where automation removes the manual work without removing the audit trail.
Breaking down the month-end reconciliation flow
A clean close depends on controls that fire at the moment of transaction, not at month-end. Getting the three areas below right is what separates a fast close from a slow one:
- Audit-ready goals: Define what clean means for your external auditors
- Close ownership: Assign roles with segregation of duties built in
- Critical dates: Lock your timeline before the period ends
Establishing audit-ready close goals
Audit-ready means every transaction has a documented commercial rationale, every approval has a timestamped record, and every balance reconciles to a source of truth. The goal is clean external audits and zero unplanned incidents.
You need position reconciliation against onchain records, lot-level cost basis tracking for digital assets, and FX gain/loss calculations that tie back to executed rates, not approximations. The AICPA practice aid on digital assets provides nonauthoritative guidance on accounting for and auditing digital assets under GAAP (Generally Accepted Accounting Principles).
Assigning month-end close ownership

Lean teams often have one person who owns the close end-to-end. That person prepares, reviews, and approves, creating a control weakness with no segregation of duties and a single point of failure.
The structural alternative is role-based permissions with configurable thresholds. Altitude's approval rules let you define who proposes, who approves, who submits, and who has read-only access. A payment above a threshold you set requires a second approver, applied automatically, every time. The audit trail is produced at the moment of transaction.
Defining critical month-end close dates
Lock these dates before the period ends:
- Bank statement availability: When your bank portal and payment platforms release final statements.
- Onchain transaction cut-off: The last block height or timestamp you will include in the period.
- FX rate lock date: The date you fix exchange rates for period-end revaluation.
- Journal entry deadline: When all accruals, prepaids, and adjustments must be posted.
- Report distribution date: When the financial package goes to stakeholders.
Stablecoin transfers run continuously. The block timestamp on the settlement network is the reference point for finality, not your bank's business hours.
Essential steps for a compliant month-end close
The steps below cover the core close sequence. Multi-currency and stablecoin activity can add reconciliation complexity to several of these steps. The table below shows how stablecoin and multi-currency activity changes each standard close task:
| Traditional Fiat Tasks | Onchain Tasks |
|---|---|
| Match bank statements to ledger | Match bank statements, onchain records, and internal ledger, which may sit across separate systems with different formats and reference fields |
| Verify transaction categories | Verify categories plus cost basis tagging for stablecoin transactions and FX rate validation for multi-currency flows |
| Post accruals, prepaids, FX adjustments | Post same entries plus, for qualifying digital assets such as SOL and cbBTC, fair value adjustments under ASC 350-60. Fiat-backed stablecoins with enforceable redemption rights are generally excluded from that standard |
| Reconcile intercompany balances per entity | Reconcile each workspace separately with no consolidated reporting across entities |
| Confirm outstanding AR and AP match ledger | Confirm balances and trace bill pay workflow status from Parsing to Paid |
| Document write-off rationale for audit | Capture approval records at transaction execution for audit |
| Convert multi-currency balances at period-end rates | Revalue at period-end rates and reconcile against executed rates captured in payment records |
| Investigate unreconciled items before signoff | Resolve timing gaps between instant onchain settlement and delayed bank statement availability |
1. Reconcile bank and payment accounts
Match bank statements against your internal ledger. The specific pain: bank portals, payment platforms, and treasury tools each expose data in different formats, with different timestamps and different reference fields, so matching transaction IDs across them requires manual effort even when integrations exist.
Altitude's QuickBooks Online and Xero sync reduces manual matching for the transactions it covers. The sync runs one-way from Altitude to QBO or Xero, and you confirm every posting before it applies. SOL and cbBTC holdings, card transactions, rewards, and invoice objects don't sync, so those remain manual.
2. Audit and tag monthly transactions
Review every transaction for correct categorization. Multi-currency transactions need FX rate verification. Stablecoin transactions need cost basis tagging.
Altitude's receipt-to-transaction matching handles the document collection side. Forward receipts to your workspace receipt address, and Altitude's agent automatically matches them by amount, merchant, and date. Admins review unmatched or flagged items, with each transaction marked OK, Needs review, Missing receipt, No receipt needed, or Rejected.
3. Finalize period-end journal entries
Post accruals, prepaids, depreciation, and FX adjustments. The specific pain: FX gain and loss entries require manual rate lookups and adjustment calculations.
Under ASC 830-20-35-2, foreign currency balances must be remeasured into the functional currency at the current exchange rate each period, with changes recorded in earnings. For period-end remeasurement of open balances, such as unpaid foreign-currency bills or cash still held, you apply the closing rate to those open positions. For realized gain or loss on a settled payment, the reference points are the rate at which the bill was originally booked and the rate at which it settled. Altitude's payment records capture the executed rate and both amounts in one place, so you are not reconstructing the settlement side from portal PDFs. The journal entry itself remains a manual step.
4. Validate intercompany balances
Confirm balances between entities match. Altitude runs each company as its own workspace with its own records, and consolidated multi-entity reporting isn't supported. If you operate multiple entities, you reconcile each workspace separately and consolidate manually or through your accounting system.
5. Verify AR and AP ledger balances
Confirm outstanding invoices and bills match the ledger. Altitude's bill pay workflow shows the status at every step: bills move from Parsing bill to Needs Approval to Ready to Pay to Paid. The visibility removes the "did we pay that?" question that delays AP reconciliation.
6. Process non-cash write-off entries
Write off bad debt, obsolete inventory, or unreconcilable differences. The specific pain: write-offs need documented rationale for audit.
Every payment follows the approval rules your team sets, and the rules are applied automatically. The record shows who proposed, who approved, and when, with the commercial rationale captured in the payment memo or linked invoice.
7. Generate auditable financial reports
Produce the balance sheet, income statement, and cash flow statement. Multi-currency balances need conversion at period-end rates.
ASC 830-20-35-1 requires that exchange rate changes on recorded balances flow through earnings. Altitude's CSV export is QuickBooks-compatible and imports into any accounting system, including ones the live sync doesn't support. You get the raw data for revaluation without manual transcription.
8. Resolve discrepancies for final signoff
Investigate and resolve any unreconciled items before signoff. Discrepancies in stablecoin balances often trace to timing gaps between onchain settlement and bank statement availability.
Stablecoin transfers settle on Solana instantly. The onchain record is available immediately, not when the bank statement arrives. Altitude keeps its own internal ledger on Solana to organize activity inside the product, so the onchain record and the product record are aligned.
Addressing multi-currency bottlenecks
Multi-currency operations add three specific bottlenecks to the close:
- FX gain and loss reporting that requires manual rate lookups
- Currency reconciliation across mismatched systems
- Timing gaps between fiat and onchain settlement
- Period-end rate adjustments across multiple currencies
Automating FX gain and loss reporting
The specific pain: manual FX rate lookups and adjustment entries. You're pulling rates from central bank websites or FX data providers, matching them to transaction dates, and calculating gains or losses line by line.
Altitude's payment records capture the agreed rate and both amounts at execution. For realized gain or loss on a settled payment, the reference points are the rate at which the bill was originally recorded and the rate at which it settled. Those two figures sit in different places: the bill is booked at the accounting system's daily rate, and the settlement rate is on a PDF or buried in the bank portal, not in the bank feed. SWIFT deductions can also change the amount the vendor actually receives, which creates a further discrepancy between the booked payable and the settled amount.
Altitude's payment records give you the executed rate and both amounts in one place, so you are not reconstructing the settlement side from portal PDFs. FX gain and loss accounting isn't covered by the QuickBooks Online or Xero sync, so the journal entry itself remains a manual step. For period-end revaluation of open balances, such as unpaid foreign-currency bills or cash still held, the period-end rate applies to those open positions, not to executed payment records.
Audit-ready currency reconciliation
Reconciling balances across currencies requires matching rates and amounts across systems. A payment in EUR that settles in USDC has two values: the EUR amount the recipient received and the USDC amount you sent.
Altitude shows the effective rate and both amounts before you approve a payment. The payment records the agreed source amount, recipient amount, and rate. When you reconcile at month-end, you are matching against a documented rate, not an estimated one.
Bridging fiat and onchain timing
A stablecoin payment settles on Saturday, but the bank statement shows it Monday. The gap creates an accrual question: is this a month-end transaction or a next-month transaction?
Stablecoin transfers don't observe banking cut-off times. In Q2 2026, 12% of Altitude's payment volume moved on weekends, according to CEO Stepan Simkin. This shows usage on stablecoin transfers that run at weekends. It doesn't mean every bank payout settles at weekends.
The table below shows settlement windows and fees by rail:
| Rail | Settlement Window | Altitude Charges | Minimum |
|---|---|---|---|
| ACH | Up to 3 business days | None | $5 or €5 |
| Same-day ACH | Same business day | None | $5 or €5 |
| US domestic wire | Typically 1 business day | None | $5 or €5 |
| SEPA (EURC-funded) | 1 business day | None | $5 or €5 |
| SWIFT outbound | Up to 5 business days | $35 SWIFT transfer fee | $100 |
| Stablecoin (Solana) | Instant | None for supported stablecoins | 1 USDC or 1 EURC |
| Inbound deposit (other networks) | Credited as USDC on Solana, typically within about 15 minutes | None for supported stablecoins | 1 USDC or 1 EURC |
Simplifying currency rate adjustments
Period-end rate adjustments require revaluing balances at the closing rate. For USDC and EURC balances, the peg is the reference point, but the peg isn't guaranteed.
Altitude's conversion between USDC and EURC through Jupiter adds no Altitude fee, with the executed rate and any Jupiter slippage applying. The rate is shown before you approve. At period-end, you revalue foreign-currency balances at the closing rate, and the difference from your recorded rate is the FX adjustment. A de-peg event is a separate situation: if a stablecoin trades below its intended peg, that is not a standard FX revaluation. The accounting treatment depends on how the asset is classified and must be assessed under the applicable standard for that classification, not as a routine period-end rate adjustment.
Addressing stablecoin ledger discrepancies
Stablecoin operations add four specific reconciliation challenges that fiat-only ledgers do not face.
1. Reconciling the ledger for audit readiness
The specific pain: matching onchain transaction IDs against internal ledger entries by hand. You're copying transaction hashes from a block explorer, pasting them into a spreadsheet, and matching them to payment records.
Altitude keeps its own internal ledger on Solana to organize activity inside the product. The onchain record and the product record are built on the same Solana-based infrastructure through Squads Protocol, reducing the need for manual matching.
2. Calculating fair value adjustments

Under ASC 350-60, qualifying digital assets are measured at fair value each reporting period, with changes reflected in net income. For most Altitude balances, this applies to SOL and cbBTC holdings. Fiat-backed stablecoins with enforceable redemption rights to underlying assets are generally excluded from scope, so they do not require fair value measurement under ASC 350-60.
Whether a particular stablecoin holding falls inside or outside scope depends on its specific redemption terms and must be assessed case-by-case. For stablecoins determined to be outside scope, de-peg events may still create accounting adjustments, but those would be assessed under the applicable standard for the asset's classification, not as ASC 350-60 fair value adjustments.
3. Tracking cost basis at the lot level
Cost basis, acquisition date, fees, and disposition method must be tracked per transaction. The AICPA practice aid on digital assets provides guidance on accounting for and auditing digital assets under GAAP.
Altitude's transaction records capture the source amount, recipient amount, and rate at execution, which provides the data needed for lot-level tracking. You aren't reconstructing cost basis from memory or market data at month-end.
4. Automating cross-chain reconciliation
Multi-chain activity multiplies the reconciliation surface. A USDC deposit on Ethereum, a payment on Solana, and a receipt on Base are three records in three formats.
Altitude converts inbound USDC from Ethereum, Base, Avalanche, and Tempo to USDC on Solana, typically within about 15 minutes. The cross-chain record consolidates to one ledger, so you reconcile one balance, and not four.
Reducing manual work in the close procedure
The steps above are the checklist. The steps below are how you remove the manual work from the checklist.
Automate payment data reconciliation
Manual matching of payment records against bank statements is the largest time sink in most closes. Altitude's QuickBooks Online and Xero sync removes the manual matching for the transactions it covers.
The sync runs one-way from Altitude to QBO or Xero. You confirm every posting before it applies. Transaction splitting and QBO metadata fields aren't yet available. For transactions not covered by either sync, the CSV export is QuickBooks-compatible and imports into any accounting system.
Establish approval workflows with audit trails
Ad hoc payments that bypass the approval chain are a control failure. The fix is structural: approval thresholds, role-based permissions, and an audit trail produced at the moment of transaction.
Every payment follows the approval rules your team sets. The rules are applied automatically, every time. The record shows who proposed, who approved, and when, with the timestamped record available for audit.
Centralize visibility of fiat and crypto
Context-switching between bank portals, payment platforms, and spreadsheets introduces error surface at every close. Altitude gives you one account for USD and EUR balances, stablecoin transfers, and global payments.
The balance is held in fully reserved stablecoins, backed one to one by the issuer's reserves, controlled by your business and not lent out by Altitude. Licensed partners provide the banking services: Bridge, Rain, Infinite and MoonPay, on the Visa network.
Mitigate errors with weekly audits
Errors found at month-end are expensive to fix. Weekly reconciliation of Altitude transactions against QBO or Xero postings catches discrepancies before they compound.
The weekly check is a sampling exercise: pick five transactions, trace them from Altitude to QBO or Xero, confirm the amounts and categories match. If they do, the sync is working. If they don't, you've found the gap before month-end.
How to eliminate costly closing oversights
The following failure modes below are the ones that extend a fast close into a slow one.
Resolving sync gaps between ledgers
The bank ledger and the internal ledger do not match because of timing gaps. A payment initiated on the 30th settles on the 2nd, and the question is which period it belongs to.
Altitude's internal ledger on Solana aligns the onchain record with the product record. The QBO and Xero sync post transactions with confirmation. The timing gap is visible, and the cutoff is a policy decision, not a data hunt.
Gaps in audit trail records
Missing documentation for why a payment was made or who approved it is an audit finding waiting to happen.
Every payment follows the approval rules your team sets, and the rules are applied automatically. The timestamped record shows the proposal, the approval, and the execution. The commercial rationale is captured in the payment memo or linked invoice.
Preventing end-of-period reconciliation gaps
Transactions that land after the close cut-off but before the report is issued create a reconciliation gap. You're deciding whether to reopen the books or issue a subsequent events note.
Onchain settlement completes in seconds, and the record is available immediately. The cutoff is the block timestamp, not the bank's business day.
Missed cut-offs and reporting errors

A payment that misses the banking cut-off creates an accrual guess. You are estimating the settlement date and adjusting later.
Unlike bank transfers, stablecoin transfers run continuously and ignore the 5pm banking cut-off. A payment sent Friday afternoon settles the same day, not Monday. The accrual is exact.
Common failure scenarios and fixes
The following list shows common failure modes and mitigations:
- Solana network halt: stablecoin transfers are delayed until the network resumes. Mitigation: use bank transfer rails for time-sensitive payments during network issues.
- Approval signer unavailable: payments above the threshold cannot execute. Mitigation: configure backup approvers in role-based permissions before month-end.
- Weekend settlement timing gap: fiat statements show Monday for a Saturday onchain settlement. Mitigation: reference the onchain record as the primary settlement indicator. Solana block timestamps are consensus-level values derived from a stake-weighted validator median and are subject to known clock drift, governed by asymmetric rate bounds that allow slots to progress up to 25% faster or 150% slower than expected elapsed time.
- FX rate changes between execution and period-end: two separate calculations apply. For open balances such as unpaid foreign-currency bills or cash still held, apply the closing rate at period-end and record the difference as the remeasurement gain or loss. For settled payments, the realized gain or loss is the difference between the rate at which the bill was originally booked and the rate at which it settled, both of which are captured in the payment record.
See how Altitude handles multi-currency and stablecoin reconciliation inside your month-end close. Book a demo.
FAQs
How long should month-end close take?
3 to 6 days is the common range. APQC data shows the median close is 6.4 calendar days, with top quartile teams closing in 4.8 days or fewer. Teams that automate reconciliation at the transaction level consistently close faster than those that rely on manual matching at month-end.
What is the difference between soft close and hard close?
A soft close is an internal review with estimates allowed. A hard close is the final, auditable close with all journal entries posted and all reconciliations complete. Most lean teams run a soft close at month-end and a hard close at quarter-end.
How do you close the books with stablecoin balances?
Reconcile the onchain record against the internal ledger, track cost basis at the lot level, and calculate fair value adjustments where applicable. Under ASC 350-60, fiat-backed stablecoins with enforceable redemption rights to underlying assets are generally excluded from scope. ASC 350-60 fair value measurement applies to qualifying digital assets like bitcoin and ether; confirm the scope determination for each asset on a case-by-case basis.
What reconciliation records do auditors require?
Auditors typically look for a documented commercial rationale for transactions, timestamped approval records, and a reconciliation of balances to a source of truth. The AICPA practice aid on digital assets provides nonauthoritative guidance on accounting for and auditing digital assets under GAAP, including controls over recordkeeping and reconciliation.
Can you automate multi-currency reconciliation?
Yes. Payment records that capture the agreed rate and both amounts at execution remove the manual FX rate lookup. Altitude's QuickBooks Online and Xero sync post transactions with confirmation, and CSV export is QuickBooks-compatible for any accounting system. FX gain and loss accounting isn't covered by either sync, so that remains manual.
Key terms glossary
Position reconciliation: Matching the balance of a specific asset or currency position against the source of truth, such as a bank statement or onchain record.
Cost basis: The original value of an asset for accounting purposes, including its acquisition price and associated fees. The disposition method (FIFO, LIFO, or specific identification) determines which cost basis lot is matched to a sale, but is not part of the definition of cost basis itself.
Lot-level records: Transaction-level records that track cost basis for each acquisition of an asset separately.
Settlement window: The time between when a payment is initiated and when it is final and available to the recipient.
Approval threshold: A configured limit that determines which payments require which approvers, applied automatically.
Audit trail: A timestamped record of who approved what, when, and why, produced at the moment of transaction.
Fair value adjustment: An accounting entry that revalues an asset to its current market value at period-end.
FX gain and loss: The accounting impact of currency rate changes on balances and transactions denominated in foreign currencies.
Altitude is a financial technology platform, not a bank or digital asset custodian.





