AR Open Invoice Import
A GAAP-compliant checklist for migrating open Accounts Receivable invoices to NetSuite without duplicating revenue. Includes GL flow visualization and auditor-ready documentation templates.
The Double-Count Trap
Why importing AR invoices without a clearing account duplicates your revenue.
The Scenario
When migrating to NetSuite, you typically load data in two ways:
- Trial Balance (GL History) â Your aggregate financial position, including one AR number
- Open Invoices (Transactional Detail) â Individual customer invoices that make up that AR
The problem: Both hit the AR account. Without proper handling, you double your AR balance and potentially recognize revenue twice.
What Goes Wrong (Without Clearing Account)
flowchart LR
subgraph Legacy["Legacy System"]
AR1["AR Balance: $100,000"]
REV1["Revenue: $500,000<br/>(lifetime)"]
end
subgraph NS["NetSuite (WRONG WAY)"]
TB["Trial Balance Load<br/>DR AR $100,000"]
INV["Invoice Import<br/>DR AR $100,000<br/>CR Revenue $100,000"]
RESULT["Final AR: $200,000 X<br/>New Revenue: $100,000 X"]
end
AR1 --> TB
AR1 --> INV
TB --> RESULT
INV --> RESULT
style RESULT fill:#fee2e2,stroke:#ef4444,color:#991b1b
style TB fill:#dbeafe,stroke:#3b82f6
style INV fill:#fef3c7,stroke:#f59e0b
The Solution (With Clearing Account)
flowchart LR
subgraph Legacy["Legacy System"]
AR1["AR Balance: $100,000"]
end
subgraph NS["NetSuite (RIGHT WAY)"]
TB["Step 1: Trial Balance<br/>DR AR $100,000<br/>CR Ret Earnings $100,000"]
INV["Step 2: Invoice Import<br/>DR AR $100,000<br/>CR CLEARING $100,000"]
REV["Step 3: Reversal<br/>DR CLEARING $100,000<br/>CR AR $100,000"]
RESULT["Final AR: $100,000 OK<br/>Clearing: $0 OK<br/>New Revenue: $0 OK"]
end
AR1 --> TB
TB --> INV
INV --> REV
REV --> RESULT
style RESULT fill:#d1fae5,stroke:#10b981,color:#065f46
style TB fill:#dbeafe,stroke:#3b82f6
style INV fill:#fef3c7,stroke:#f59e0b
style REV fill:#ede9fe,stroke:#8b5cf6
GL Entry Flow Visualization
Step through the three journal entries to see how balances change at each stage.
Load the opening AR balance from the legacy trial balance as of cutover date.
Import invoices using the clearing account instead of revenue accounts to create customer-level detail.
Reverse the double-count by clearing out the suspense account. This removes the duplicate AR while keeping customer detail intact.
Account Relationships
flowchart TB
subgraph Accounts["GL Accounts Involved"]
AR["1200 Accounts Receivable<br/>(Real Asset Account)"]
CLEAR["9999 OPEN AR CLEARING<br/>(Temporary Suspense)"]
RE["3000 Retained Earnings<br/>(Equity)"]
REV["4000 Revenue<br/>(NOT TOUCHED)"]
end
subgraph Purpose["Purpose"]
AR --> |"Holds customer balances"| P1["Balance Sheet"]
CLEAR --> |"Temporary parking lot"| P2["Nets to $0"]
RE --> |"Historical profits"| P3["Opening Balance"]
REV --> |"Already recognized"| P4["No Double-Count"]
end
style CLEAR fill:#fef3c7,stroke:#f59e0b
style REV fill:#d1fae5,stroke:#10b981
style AR fill:#dbeafe,stroke:#3b82f6
Pre-Migration Setup
Configure NetSuite accounts and records before importing any data.
Account & Record Configuration
Data Preparation
Clean and prepare your legacy AR data before import.
Clean the Legacy AR Aging
Data Export & Mapping
Import Sequence
Load data in the correct order to maintain integrity.
Required Import Order
flowchart LR
A["1. Trial Balance<br/>(GL History)"] --> B["2. Open Invoices<br/>(with clearing item)"]
B --> C["3. Open Credit Memos<br/>(with clearing item)"]
C --> D["4. Unapplied Payments<br/>(clearing bank)"]
D --> E["5. Customer Deposits<br/>(manual/JE only)"]
style A fill:#dbeafe,stroke:#3b82f6
style B fill:#fef3c7,stroke:#f59e0b
style C fill:#fef3c7,stroke:#f59e0b
style D fill:#ede9fe,stroke:#8b5cf6
style E fill:#fce7f3,stroke:#ec4899
Import Order (Sequence Matters!)
Critical Configuration Checks
Post-Import Validation
Verify data integrity before proceeding to reversal.
Reconciliation Checks
Audit Trail Documentation
Clearing Account Reversal
Eliminate the double-count by reversing the clearing account.
Create Reversing Journal Entry
Final Balance Verification
Reversal Entry Flow
flowchart LR
subgraph Before["Before Reversal"]
AR1["AR: $200,000<br/>(doubled)"]
CL1["Clearing: $100,000 CR"]
end
subgraph JE["Reversing JE"]
DR["DR 9999 Clearing $100,000"]
CR["CR 1200 AR $100,000"]
end
subgraph After["After Reversal"]
AR2["AR: $100,000 OK"]
CL2["Clearing: $0 OK"]
end
AR1 --> JE
CL1 --> JE
JE --> AR2
JE --> CL2
style Before fill:#fef3c7,stroke:#f59e0b
style After fill:#d1fae5,stroke:#10b981
style JE fill:#ede9fe,stroke:#8b5cf6
Cleanup & Controls
Deactivate temporary records and finalize compliance documentation.
Deactivate Temporary Records
Multi-Currency Considerations (if applicable)
ASC 606 Revenue Recognition Checkpoints
Auditor Comfort Package
Documents to prepare for your external auditors.
| Document | Purpose |
|---|---|
| Legacy AR Aging / NetSuite AR Aging | Customer-level tie-out reconciliation |
| Legacy Trial Balance / NetSuite Trial Balance | GL-level tie-out reconciliation |
| Account Mapping Document | Legacy account codes to NetSuite account codes |
| Journal Entry Support | Documentation for all migration entries |
| Clearing Account Activity Log | Shows net-to-zero activity |
| Retained Earnings Continuity | Opening balance validation schedule |
Common Pitfalls
Issues to watch for during AR data migration.
| Pitfall | Symptom | Prevention |
|---|---|---|
| Double-counted AR/Revenue | AR balance 2x expected | Use clearing account, NOT revenue accounts |
| "No Customer" on aging | Orphan line on aging report | Assign fictitious customer to AR journal entries |
| Aging does not equal Balance Sheet | Reports don't reconcile | Set "Report by Period" = "All Reports" in preferences |
| FX variances | Small unexplained differences | Document revaluation methodology; may need adjusting JE |
| Orphaned payments | Unapplied amounts persist | Clean up payments BEFORE migration |
| Deposit import fails | CSV import error | Deposits cannot be CSV imported â manual or JE only |
Sources & Further Reading
Primary Sources
- Optimal Data Consulting â How to Import Open AR Transactions into NetSuite
- Paul Giese Interview â NetSuite Data Migration Expert (Prendio)
- BDO â Revenue Recognition Under ASC 606
- Encore Business Solutions â Auditing Requirements After ERP Implementation
- Citrin Cooperman â Reconciling Aging Reports to the Balance Sheet
Related NCG Content
- IE-2: Migration Sequence
- IE-4: AP Open Invoice Import (companion for payables)
- Appendix G: General Ledger Reference
