AR and AP Balances

Loading AR and AP Balances in NetSuite

Introduction: Purpose of Loading AR and AP Balances

The main reason for loading Accounts Receivable (AR) and Accounts Payable (AP) balances during a NetSuite migration is to enable your AR and AP teams to manage outstanding transactions after go-live. This allows your finance team to work with open invoices and bills without affecting other areas of the accounts.

Key Points:

  • Transactions are loaded without tax.

  • One line per invoice/bill, even if the original had multiple lines.

  • Memos (both line-level and header) should be added to the memo field.

  • The double entry for each transaction will be between the AR/AP account and the Opening Balance Migration account.

  • Part-paid invoices/bills: Only the unpaid portion is loaded.

  • External ID for each transaction: Should be loaded as the "Line Unique Key" from the source system.


1. Creating a Migration Account in Your COA

Before starting, create a Migration Account (also known as an Opening Balance Clearing Account) in your Chart of Accounts (COA). This account should be of type Equity and assigned a unique account number (e.g., 99999) similar to a suspense account. It serves as a temporary holding account for migrated AR and AP balances.

Why it’s important:

  • Simplifies reconciliation: You can track and clear migrated balances easily.

  • Increases transparency: Helps monitor your migration progress and outstanding balances.


2. Managing Double Entries for AR and AP Balances

When importing your trial balance, AR and AP balances are already included. Importing detailed transactions (invoices, bills) will temporarily double these balances.

What to Expect:

  • Doubling: After importing detailed transactions, AR and AP balances will temporarily double.

  • Verification: Check that balances have doubled, confirming all transactions were imported correctly.

Resolving the Doubling:

To correct the doubled balances, create offsetting journal entries. These entries reset the AR and AP balances to the correct amounts.

Steps:

  • Import Transactions: Load all open invoices (AR) and bills (AP) from your source system. Include credit memos and bill credits, if applicable.

  • Verify Doubling: After the import, check that AR and AP balances have doubled.

  • Offset Journal Entries:

    • For AR:

      • Debit: Opening Balance Clearing Account (Equity)

      • Credit: Accounts Receivable

    • For AP:

      • Debit: Accounts Payable

      • Credit: Opening Balance Clearing Account (Equity)

  • Final Check: After posting, your AR and AP balances should match your trial balance. The Opening Balance Clearing Account should now have a zero balance.


3. Loading Transactions in Original Currency

If your source accounting system revalued transactions at the month-end exchange rate (which is common in many systems), the base currency balance of all open AR transactions, when summed at their original exchange rates, will not exactly match the AR balance in the loaded balance sheet.

How to Handle This:

There are options to manage this discrepancy, which are detailed in a separate article, Dealing with Foreign Currency Revaluations. These approaches help align the loaded transactions with the base currency balances in NetSuite.


4. Importing AR and AP Balances via CSV

When importing AR and AP balances via CSV, you’ll need to include certain fields to ensure the import goes smoothly. Below is an example of the fields required for importing an opening balance bill:

Field

Description

Entity ID

Internal ID for vendor or customer (e.g., external system ID)

Currency

ISO currency code for the transaction (e.g., USD, EUR)

Date

Original transaction date

Memo

Any relevant information for AR/AP teams (e.g., line or header-level details)

Due Date

Original due date of the transaction

Exchange Rate

Original exchange rate from the source system

Subsidiary

(If using OneWorld) The subsidiary for the customer/vendor

Item

Hard-coded to the opening balance item (e.g., "Opening Balance AR/AP")

Amount

Amount of the opening balance bill in foreign currency

Rate

Set to the same amount as the balance

Quantity

Hard-coded to 1

CSV Import Tips:

  • Use Internal IDs: For fields like "Entity" and "Item", always use internal IDs to avoid issues with special characters.

  • Test Imports: Start with a small dataset to catch any errors before importing the full data.


5. Importing AR and AP Balances via Script

When importing opening balances, using scripts offers greater control. It allows for data validation and confirmation with the finance team before posting transactions to the ledger.

NetSuite’s CSV imports can be challenging, especially when dealing with multiple subsidiaries or complex transactions. In such cases, writing custom scripts to load data into custom records is more efficient. This also allows for data validation before converting records to invoices or bills.

Custom Record: "Opening Balance Queue"

To handle the script import process, you would create a custom record called "Opening Balance Queue". This record should include all the fields listed above, plus additional fields for validation:

  • Entity External ID (text): Used to identify the customer/vendor from the source system.

  • Originating Transaction Type: Source system transaction type (e.g., invoice, bill).

  • Target Transaction Type: NetSuite transaction type (e.g., invoice, bill).

  • Processed (tickbox): To indicate when the balance has been processed.

  • Exclude (tickbox): To exclude specific balances from the import.

  • Error (text): Captures any errors during processing.


6. Map/Reduce Scripts for Importing Opening Balances

Script 1: Validate Opening Balance Data

This script validates that each item exists, sets the Internal ID based on the Entity External ID, and checks that the currency, subsidiary, and item are valid. Errors are logged in the Error field.

Script 2: Convert Custom Record to Transactions

This script transforms the validated custom record items into the actual transaction types (invoices, bills, etc.).

Last updated

Was this helpful?