How to Enter Opening A/R in NetSuite from Legacy Invoices

Load legacy open invoices into NetSuite through an Opening Balance clearing account, match A/R Aging to the legacy total, and reconcile A/R to the opening trial balance.

The quick answer

Enter each open legacy invoice in NetSuite with an item whose Income Account is an equity clearing account such as 3100 Opening Balance, so the invoices debit A/R and credit the clearing account instead of revenue. Use the legacy invoice number and date, post them all in the cutover period, and check that A/R Aging matches the legacy aging total. Then reverse the clearing entry with a journal that credits A/R to a placeholder customer, enter the opening trial balance with its A/R debit on the same placeholder, and apply the two journals to each other with a customer payment of 0.00. A/R Aging keeps the real invoices, the balance sheet matches the legacy trial balance, and Opening Balance ends at zero.

The screenshots show sample data. Person and operating-company names are fictional. Use your own records and values when following the steps.

Before you start

At go-live you need two things from the old system. The open customer invoices give NetSuite aging, collections, and statements by customer and due date. The opening trial balance gives the general ledger its starting balances. If both post to Accounts Receivable and nothing takes one back out, A/R is counted twice. This walkthrough keeps the invoice detail for aging, reverses the invoices' GL effect, and lets the trial balance own the ledger.

The example company goes live on 09/30/2026, with Sep 2026 as the cutover period. Its legacy aging has three open invoices totaling 10,549.55, and its legacy trial balance carries the same 10,549.55 in 1100 Accounts Receivable.

It assumes a few things about the account:

  • The customers already exist in NetSuite.
  • Everything is in the base currency with one subsidiary and no tax on the conversion lines.
  • The Sep 2026 period is open, and the account allows a transaction date outside its posting period.
  • Invoice and journal approvals are off, so every transaction posts when saved, and the invoice form shows Invoice #, Posting Period, Terms, and Memo.
  • Invoices, journals, and the payment all use the same A/R account, 1100 Accounts Receivable.

You need a role that can change setup preferences, create items, customers, invoices, journals, and customer payments. The Administrator role can do all of it. Account numbers and names below are the example account's.

01. Read the legacy totals

Start with the numbers you have to match. The legacy export's A/R Aging sheet lists L-40718 for Alder Creek Dental at 3,275.40, L-40952 for Marlow Freight Lines at 1,864.15, and L-41137 for Pinecrest Library District at 5,410.00. The total is 10,549.55.

The legacy aging: three open invoices, 10,549.55 in total.

The Trial Balance sheet shows 1100 Accounts Receivable 10,549.55 debit, 1010 Operating Checking 24,300.00 debit, and 3700 Retained Earnings 34,849.55 credit. Every check later in this guide comes back to these figures.

The legacy trial balance carries the same 10,549.55 in Accounts Receivable.

02. Prepare the clearing account and settings

Go to Lists > Accounting > Accounts. 3100 Opening Balance is an Equity account with a Balance of $0.00. It's the clearing account for every conversion posting. Don't assume your account already has one with the right name and type; create it first if it doesn't.

3100 Opening Balance is an Equity account with nothing posted to it yet.

Go to Setup > Company > Auto-Generated Numbers and open Document Numbers. On the Invoice row, check Allow Override and click Save. Without it, NetSuite assigns its own invoice number and the legacy number is lost. Check that your legacy numbers can't collide with numbers NetSuite has already used, and that your role and invoice form let you edit the field.

Allow Override on the Invoice row lets you type the legacy invoice number.

Go to Setup > Accounting > Accounting Preferences. On the General subtab, under General Ledger, check Expand Account Lists and click Save. This lets account fields list accounts outside their usual types, which is how the equity account showed up in the item's Income Account list in this example. If your list still doesn't offer it, check the item form and your role before going further.

Expand Account Lists lets account fields offer accounts outside their usual type.

03. Create the conversion item

Go to Lists > Accounting > Items > New and choose Non-inventory Item, then For Sale. Type Legacy AR Conversion in Item Name/Number. Subsidiary already shows the company.

On the Accounting subtab, choose 3100 Opening Balance in Income Account and Non-Taxable in Tax Schedule, then click Save. Each invoice that uses this item credits the clearing account instead of revenue. Non-Taxable is a legacy tax schedule; accounts on SuiteTax set tax differently.

The conversion item's Income Account is 3100 Opening Balance, not a sales account.

04. Enter each legacy open invoice

Go to Transactions > Sales > Create Invoices. Type L-40718 in Invoice #, choose Alder Creek Dental in Customer, and type the legacy date, 07/14/2026, in Date. In this account the date moved Posting Period to Jul 2026. Set it back to Sep 2026, the cutover period, so every conversion posting lands in one period and can be reversed there. Type Legacy AR conversion in Memo so the conversion invoices are easy to find later.

The Date stays at the legacy 07/14/2026 while Posting Period goes back to Sep 2026.

Open the Billing subtab and choose Net 30 in Terms. Due Date becomes 08/13/2026, 30 days after the invoice date. Aging uses this due date, which is why the invoice keeps its legacy date.

Net 30 sets Due Date to 08/13/2026, 30 days after the legacy invoice date.

On the Items subtab, choose Legacy AR Conversion, type the open amount, 3,275.40, in Rate, and click Add. Enter the amount still owed, not necessarily the original invoice total. Click Save.

One conversion line for the open amount, 3,275.40.

Enter the other two the same way: L-40952 for Marlow Freight Lines dated 08/21/2026 for 1,864.15, due 09/20/2026, and L-41137 for Pinecrest Library District dated 09/18/2026 for 5,410.00, due 10/18/2026. For a long list, a CSV import can load the same fields. Map the number, customer, date, posting period, terms, item, and amount, and test a small batch first.

05. Check where an invoice posted

On saved invoice L-41137, open Actions > GL Impact. 1100 Accounts Receivable is debited $5,410.00 with Name Pinecrest Library District, and 3100 Opening Balance is credited $5,410.00.

The conversion invoice debits A/R and credits 3100 Opening Balance, not a revenue account.

06. Reconcile A/R Aging and the balance sheet

Go to Reports > Customer/Receivables > A/R Aging. The report runs as of 09/30/2026 and ages by due date, which you can check under Aging Options. With 30-day intervals, Alder Creek Dental shows $3,275.40 in the 31-60 day column, Marlow Freight Lines $1,864.15 in 1-30, and Pinecrest Library District $5,410.00 in Current. The Total is $10,549.55, the legacy aging total. If it doesn't match, find the missing or doubled invoice now, before anything is reversed.

A/R Aging totals $10,549.55, the same as the legacy aging.

Go to Reports > Financial > Balance Sheet for Sep 2026. 1100 Accounts Receivable is $10,549.55 and 3100 Opening Balance is $10,549.55, both from the conversion invoices.

Before the reversal, both A/R and Opening Balance carry the conversion total.

07. Reverse the conversion to an offset customer

The trial balance will bring Accounts Receivable into the ledger, so the conversion's A/R has to come back out. Go to Lists > Relationships > Customers > New, type AR Conversion Offset in Company Name, keep the subsidiary, and click Save.

Go to Transactions > Financial > Make Journal Entries. Keep Date 09/30/2026 and Posting Period Sep 2026, and type Reverse legacy AR in Memo. Add a line debiting 3100 Opening Balance 10,549.55, then a line crediting 1100 Accounts Receivable 10,549.55 with AR Conversion Offset in Name. Leave Name empty on the clearing line. Click Save.

The reversal names AR Conversion Offset on the A/R line only.

Open A/R Aging again with the same settings. AR Conversion Offset shows ($10,549.55) in Current, and the three customer rows haven't changed. In this example the Total is $0.00 until the trial balance brings Accounts Receivable back.

The three invoices are still open; the offset customer carries the negative balance until the trial balance comes in.

08. Enter the opening trial balance

Make another journal entry dated 09/30/2026 in Sep 2026 with Memo Opening trial balance. Debit 1100 Accounts Receivable 10,549.55 with AR Conversion Offset in Name, debit 1010 Operating Checking 24,300.00, and credit 3700 Retained Earnings 34,849.55. These are the lines from the legacy trial balance. Click Save.

The opening trial balance puts A/R on the same offset customer.

Both journals name AR Conversion Offset on their A/R lines for a reason. If an A/R journal line has no customer, aging lists it under "No Customer/Project" and there's no customer to apply it against.

09. Apply the two journals to each other

Go to Transactions > Customers > Accept Customer Payments and choose AR Conversion Offset in Customer. On Apply > Invoices, check the Opening trial balance journal, JE119, for 10,549.55. In this example Payment Amount followed it to 10,549.55.

Checking the trial balance journal fills Payment Amount with 10,549.55.

Open Apply > Credits and check the Reverse legacy AR journal, JE118, for 10,549.55. Payment Amount went back to 0.00, because the credit pays the debit. Check that it reads 0.00, then click Save. The payment moves no cash and adds no net GL amount; the two journals already posted their impact, and the payment only closes them against each other. Depending on the form and account, a zero payment may still need fields such as the deposit account or payment method, so try it in a sandbox first.

With the reversal journal applied as a credit, Payment Amount drops to 0.00.

10. Confirm the finished conversion

Open A/R Aging. With the same settings, only Alder Creek Dental, Marlow Freight Lines, and Pinecrest Library District remain, in the same columns, and the Total is $10,549.55. AR Conversion Offset has no open balance left, so it's gone from the report.

Only the real customers are left, totaling the legacy $10,549.55.

Open the Balance Sheet for Sep 2026.

The balance sheet matches the legacy trial balance, and Opening Balance is $0.00.

Check the result

  1. 1100 Accounts Receivable is $10,549.55, the same as A/R Aging and the legacy trial balance.
  2. 1010 Operating Checking is $24,300.00 and 3700 Retained Earnings is $34,849.55.
  3. 3100 Opening Balance is $0.00, so the clearing account is empty.
  4. AR Conversion Offset has no open balance, and no conversion activity landed under No Customer/Project.

There's another way to do this: build the conversion so the trial balance journal balances to the clearing account and skip the reversal. That works too, but only when every debit and credit is modeled so Accounts Receivable isn't counted twice.

Common questions

Why not post the legacy invoices to revenue?

The old system already recorded that revenue, and the opening trial balance carries its effect. Posting the invoices to revenue again would count the sales twice. The conversion item credits the equity account 3100 Opening Balance instead, so each invoice posts debit A/R and credit Opening Balance.

Why keep the old invoice date but post to the cutover period?

The date and terms set the due date, and A/R Aging ages each invoice from its due date. Keeping 07/14/2026 with Net 30 leaves L-40718 due 08/13/2026, in the same bucket it sat in on the old system. The posting period puts every conversion posting in Sep 2026, so one reversal in the same period clears them all.

Why do I need a placeholder customer?

A/R Aging and customer payments work by customer. The reversal and the trial balance both hit Accounts Receivable, so both A/R lines need a customer, or they land under No Customer/Project. A placeholder such as AR Conversion Offset gives them a customer to sit on and lets a payment apply one against the other. Keep it for the conversion only.

What if A/R Aging doesn't match the legacy total?

Run it with the same as-of date, aging basis, subsidiary, and A/R account you'll use for the balance sheet, then compare it invoice by invoice with the legacy aging. A missing or doubled invoice, a wrong customer, or an amount that isn't the open balance usually explains it. Fix that before posting the reversal, since everything after it assumes the totals match.

Can I load the invoices with a CSV import?

Yes. With a long list, a CSV import is quicker than entering invoices one by one. Map the legacy number, customer, date, posting period, terms, conversion item, and open amount, load a small test file first, and check its aging and GL impact before loading the rest.

What causes a No Customer/Project row in A/R Aging?

A transaction that posts to an A/R account with no customer on that line. In a conversion, that's usually a journal line to Accounts Receivable where Name was left empty. Put the placeholder customer on every A/R journal line, and the row doesn't appear.

Do I need the reversal and the zero payment at all?

Only if the opening trial balance will carry Accounts Receivable too. The reversal takes the invoices' A/R back out of the ledger, and the trial balance puts it back, both on the placeholder customer. The 0.00 payment closes those two against each other, so aging shows only the real invoices. You can instead build the conversion so the trial balance balances to the clearing account and skip the reversal, as long as every debit and credit is modeled so A/R isn't counted twice.