Suite Utils
Back to Blog
NetSuite TipsAug 10, 2026 • 6 min read

How to Clear 'No Customer' Entries from NetSuite AR

Journal entries hitting AR without a name show as No Customer on the aging. Here is how to find them and tie each one back to a customer.

Sarah Jenkins, CPASarah Jenkins, CPAPrincipal Finance Automation Specialist
How to Clear 'No Customer' Entries from NetSuite AR
On this page

You want a clean AR Aging report. That means every transaction hitting an AR account needs to be tied to a specific Customer record. In NetSuite, the AR Aging report pulls balances based on the Name field of the transaction line. If a Journal Entry (JE) hits an AR account without a name in that field, NetSuite labels it "No Customer" because there is no entity to own the receivable.

These entries are orphans. Because they lack a customer association, you can't clear them using standard "Accept Customer Payment" actions. They will sit on your aging report forever unless you reverse the transaction or fix the attribution.

Identifying the Root Cause of 'No Customer' Balances

NetSuite looks at the Account field on the transaction line when you run an AR Aging report. If that account is flagged as "Accounts Receivable," the system tries to link the balance to a customer.

If you post a Journal Entry for an accrual or a manual adjustment:

  1. The Account field is filled with your AR account.
  2. The Name (Customer/Vendor) field stays blank.
  3. NetSuite flags this as a "No Customer" entry because the transaction exists in the General Ledger (GL) but lacks an entity link.

This usually happens with manual journal entries for:

  • Accrued Revenue/Expenses.
  • Bad Debt Expense adjustments.
  • Opening Balance entries from a previous system migration.

How to Fix Existing 'No Customer' Entries

You can't just "delete" these entries once they are posted. You have to move the balance to a customer record or reverse the original entry.

Option 1: The Zero-Dollar Payment Method

If you have a Journal Entry that correctly represents a balance but was posted without a name (like a correction), you can "clear" it using a zero-dollar payment.

  1. Navigate to Transactions > Make Payments > Accept Customer Payment.
  2. Select the Name of the customer who should own the balance (or a "Dummy" customer if it is a corporate accrual).
  3. Enter 0.00 in the Amount field.
  4. In the Apply subtab, select the Journal Entry line items that you want to clear.
  5. Save the transaction.

This approach applies the debit and credit of the Journal Entry against each other. It effectively "zeros out" the balance on the customer's record and wipes it from the AR Aging report.

Option 2: Correcting the Journal Entry Line

If you haven't posted the journal entry yet, or if you can void/reverse it, make sure every line item has a name.

When recording an accrual, do not use the "Trade AR" account. Instead:

  1. Create a separate GL Account (e.g., "Accrued Receivables").
  2. Ensure this account is not of the Account Type "Accounts Receivable."
  3. By using a non-AR account type, the balance won't show up on the AR Aging report at all.

Correcting Historical Data Imports

A messy data migration often causes "No Customer" entries. If you imported your Trial Balance (TB) and also imported open Invoices, you likely double-counted your AR.

To fix this:

  1. Identify the Journal Entry that imported the historical balance.
  2. Ensure the Name field on the AR line of that Journal Entry is filled with a "Historical_AR" customer record.
  3. Create a Reversing Journal Entry.
  4. On the Reversing Journal Entry, ensure the Name field is filled with the same "Historical_AR" customer.
  5. This ensures that the balance is correctly attributed to an entity and does not sit in the "No Customer" bucket.

Technical Implementation: Automating Name Validation

Stop users from creating "No Customer" entries before they happen. You can use a Client Script to verify that the Name field is filled on any transaction line involving an AR account.

The following SuiteScript 2.1 example shows how to check for a name on a Journal Entry line before it can be saved.

/**
 * @NApiVersion 2.1
 * @NScriptType ClientScript
 */
define(['N/ui/message', 'N/log'], (ui, log) => {
    /**
     * Validates that a Customer Name is provided for AR accounts.
     */
    const validateLine = (scriptContext) => {
        // Only run on Create or Edit of Journal Entry
        if (scriptContext.type === 'create' || scriptContext.type === 'edit') {
            const currentRecord = scriptContext.currentRecord;
            const lineCount = currentRecord.getSublist({
                sublistId: 'item'
            }).count;

            for (let i = 0; i < lineCount; i++) {
                const account = currentRecord.getSublistValue({
                    sublistId: 'item',
                    fieldId: 'account',
                    line: i
                });

                // Check if the entity/name field is populated
                const name = currentRecord.getSublistValue({
                    sublistId: 'item',
                    fieldId: 'entity', 
                    line: i
                });

                // If the record is a Journal Entry and it's an AR line, 
                // ensure a name exists to prevent "No Customer" errors.
                if (!name && account) {
                    // Note: In a production environment, you would verify 
                    // the account type via N/search or a custom field.
                    ui.create {
                        title: 'Missing Customer Name',
                        message: 'Please provide a Customer Name for the line item.'
                    }.validate(); 
                    // Note: Standard practice is to use ui.showAlert() or similar logic
                }
            }
        }
    };

    return {
        validateLine: validateLine
    };
});

Key Field Mapping for Journal Entries

When creating or correcting these records, use the correct internal IDs:

| Field Label | Internal ID | Requirement | | :--- | :--- | | | Account | account | Must be a General Ledger Account. | | Name | entity | Required for AR Aging reports. | | Amount | amount | The numerical value of the entry. | | Account Type | N/A | Ensure Accruals are NOT set to "Accounts Receivable" type. |

Summary of Best Practices

Keep your AR Aging report clean by following these rules:

  • Never leave the Name field blank on a line item that posts to an Accounts Receivable account.
  • Use a Dummy Customer: If you must post a journal entry that doesn't belong to a specific customer (like a tax adjustment), create a "Dummy Customer" and assign the entry to them.
  • Separate Accruals: Keep "Trade AR" clean by using a separate General Ledger account for non-trade receivables.
  • Audit the History: If your "Historical AR Customer" balance is not zero, it means you likely imported a Trial Balance line and the corresponding open invoices. You must create a Journal Entry to reverse the TB balance, ensuring that the Name field is filled on both the original and the reversal.

When reviewing your reports, you can use the Dashboards Guide to ensure your AR Aging data is presented clearly for stakeholders.

About the author

Put these ideas to work.

Suite Utils builds small NetSuite tools that fix the specific thing breaking your day. Each one runs as a native SuiteScript SuiteApp inside your account. No sales call, no onboarding.

Browse the Tools

Enjoyed this one?

Get NetSuite tips like this in your inbox. No spam. Practical guides only.

Keep reading