Skip to main content
    Best Practices

    Line-Level Shipping in NetSuite with Avalara AvaTax: Configuration and Testing Guide

    Smooth, compliant implementation of line-level shipping in NetSuite with Avalara, the Opal Creek way.

    Adam Chaikin
    Adam Chaikin
    CPA, PMP • The Navigator

    As more companies adopt complex order fulfillment models - multi-warehouse, drop ship, partial shipments, and customer-specific delivery requirements - NetSuite transactions increasingly contain items shipping to multiple destinations on a single order or invoice. This creates a core tax challenge: each destination may have a different jurisdiction, rate, and nexus treatment, and the tax engine must be capable of calculating tax at the line level rather than relying on a single “header” ship-to address.

    Avalara AvaTax supports line-level shipping in NetSuite, including line-level destination-based tax calculation and address validation. The key is sequencing it the right way: enable the required NetSuite and Avalara features and forms, confirm the configuration is behaving as expected, and validate everything with a structured test plan.

    This article explains:

    1. How line-level shipping works
    2. Required configuration in NetSuite
    3. Configuration considerations in Avalara
    4. How to build and execute a practical test plan

    1. Line-level shipping conceptual overview

    Most organizations configure NetSuite to treat the transaction header ship-to address as the destination for all tax calculations. In this model:

    • The Sales Order or Invoice has one ship-to address.
    • Avalara calculates tax using that one address for every line.

    With line-level shipping enabled:

    • Each item line on a transaction can have its own ship-to address.
    • Avalara receives a single transaction, but with distinct destinations per line.
    • AvaTax calculates tax independently for each line based on:
      • The item’s taxability (via tax code / item mapping)
      • The line’s ship-to address
      • The company’s nexus footprint
      • Local jurisdiction rules

    The key point: each line becomes its own tax determination, even though NetSuite still shows one sales transaction.

    2. NetSuite Configuration Required for Line-Level Shipping

    Enabling line-level shipping in NetSuite consists of the following steps:

    A) Enable Charge for Shipping

    NetSuite requires you to enable this feature in order to enable the others.

    NetSuite Path:Setup → Accounting → Shipping

    B) Enable Per-Line Taxes on Transactions (United States)

    This setting allows NetSuite to store tax results at the line level, and gives the Avalara connector a field to write line-level tax data to.

    NetSuite Path:Setup → Accounting → Taxes → Set Up TaxesUnder the United States tab, enable:

    • Per-Line Taxes on Transactions

    C) Enable Multiple Shipping Routes

    The NetSuite feature that enables multiple ship-to destinations on the same transaction is Multiple Shipping Routes, which becomes available under Advanced Shipping functionality.

    NetSuite Path:Setup → Company → Enable FeaturesUnder Transactions → Shipping & Receiving, enable:

    • Advanced Shipping
    • Multiple Shipping Routes

    Once enabled, NetSuite can support line-level shipping details such as ship-to, shipping method, and ship date by item.

    D) Confirm Transaction Form Support (Sales Orders + Invoices)

    Enabling features in NetSuite does not automatically expose line-level shipping fields on the transaction UI. Your Sales Order and Invoice forms must be configured to show line-level ship-to functionality.

    Key form requirements:

    • Enable Line Item Shipping
    • Show the Ship-To address column field at the line level
    • Ensure Location is visible (if ship-from depends on location)
    • Ensure the line tax amount is visible for review and troubleshooting

    A practical warning: Many teams validate line-level shipping successfully on Sales Orders but fail to carry it through to Invoices because the invoice form does not expose the line-level ship-to.

    If invoice lines revert to header ship-to, Avalara will calculate tax incorrectly for multi-destination invoices. In our testing, we observed that if our Invoice form was missing ship-to address, NetSuite arbitrarily chose one of the Sales Order ship-to addresses to send to Avalara to calculate tax for all invoice lines.

    3. Avalara Configuration Considerations

    One of the advantages of Avalara is that it already supports multi-destination line-level transactions as part of its standard transaction model. There are typically no “special” configurations required in Avalara to enable line-level shipping, but there are two areas you should confirm.

    A) Address Validation Settings (Recommended)

    If your company uses address validation, enabling it in Avalara and in the NetSuite connector improves overall tax accuracy, particularly when using multiple destinations.

    Why it matters:

    • More destinations means more addresses.
    • Poor address quality increases risk of jurisdiction mismatch (incorrect city/county, missing ZIP extensions).
    • Rooftop-level accuracy reduces compliance risk.

    In most cases, we recommend:

    • Address Validation (at the connector level)
    • Transaction logging (for audit and validation)

    B) Nexus Footprint Is the True Tax Gatekeeper

    With line-level destinations, AvaTax applies nexus determination for each destination. That means:

    • A line shipped to a nexus state will be taxed.
    • A line shipped to a non-nexus state may return zero tax (depending on the transaction type and the seller’s registration status).

    Therefore, when testing line-level shipping, you must confirm that Avalara nexus settings reflect the business reality. Its tax calculations can only be as good as the information you give it.

    4. Building a Test Plan

    Line-level shipping depends on how transactions are created and how data flows from Sales Order → fulfillment → Invoice.

    A strong test plan should validate:

    1. Line-level ship-to is preserved
    2. Avalara receives line-level destinations
    3. Avalara validates addresses correctly
    4. Tax is calculated per line and written back to NetSuite accurately
    5. Invoice behavior matches Sales Order behavior

    Below is a structured and repeatable approach.

    Step 1 — Confirm Test Setup

    Before testing, confirm:

    • Multiple Shipping Routes is enabled
    • Per-Line Taxes is enabled
    • Avalara connector is active
    • Transaction logs are enabled in Avalara / connector settings
    • Forms show line-level Ship-To

    Step 2 — Create a Sales Order With Multiple Destinations

    Create a Sales Order with three item lines, each shipping to a different jurisdiction. For example:

    • Line 1: New York (tax expected)
    • Line 2: California (tax expected)
    • Line 3: Texas (tax depends on nexus)

    Assign unique line-level ship-to addresses via the shipping route UI.

    Step 3 — Save and Trigger Tax Calculation

    Save the Sales Order and trigger Avalara calculation (either automatically or via a “Calculate Tax” action). Confirm:

    • Each line has a distinct ship-to
    • Each line has a distinct tax amount
    • Tax totals roll up correctly to the header

    Step 4 — Validate Address Normalization (If Enabled)

    If Avalara address validation is enabled, verify:

    • Corrected / normalized address formatting
    • ZIP+4 and county assignment where available
    • No address errors returned

    This is especially important for multi-destination scenarios where address quality can vary widely.

    Step 5 — Review AvaTax Transaction Logs

    This is the most critical validation step, because it confirms what Avalara actually received.

    In the Avalara transaction log, confirm:

    • Each line carries its own destination address
    • Each line’s tax result matches the destination jurisdiction
    • Address normalization and geocodes are returned where applicable

    Step 6 — Create the Invoice (End-to-End Validation)

    Create the Invoice using the company’s actual billing flow:

    • Sales Order → Invoiceor
    • Sales Order → Fulfillment → Invoice

    Confirm:

    • Line-level ship-to addresses persist to the invoice
    • Avalara recalculates tax correctly per line
    • NetSuite invoice tax amounts match expectations

    This step often uncovers real-world issues such as form misalignment, scripts, or workflow inconsistencies.

    5. Practical Recommendations and Common Pitfalls

    Common Pitfall: Invoice Form Doesn’t Support Line-Level Shipping

    Even if Sales Orders are correct, invoices may fall back to header-level ship-to without warning if the invoice form does not expose line-level shipping fields.

    Common Pitfall: Shipping Charges Aren’t Allocated by Destination

    Shipping charges are often represented as one header-level shipping line. In multi-destination shipments, you may need separate shipping charge lines per destination or a documented policy for allocation.

    Recommendation: Plan to Turn On Per-Line Taxation/Multiple Shipping Routes and Leave Them On. These features are intended to be enabled and left enabled. In our testing, we found that you could disable all these features, but only if there were no open orders or invoices that use the feature. Further, upon disabling the feature, we found that the line level shipping and tax information on historical orders could no longer be seen on any transaction form (though it was available in searches).

    Recommendation: Always Test With Mixed Nexus States

    To prove line-level nexus handling, include at least one ship-to state where nexus is expected and one where it is not.

    Recommendation: Build Screenshots Into the Test Deliverable

    When confirming functionality with stakeholders, include:

    • Sales Order screenshots showing line-level ship-to
    • Invoice screenshots showing line-level tax
    • AvaTax log screenshots showing per-line destinations

    These artifacts provide audit-grade documentation of your implementation process.

    Final Thoughts

    Line-level shipping is fully achievable within NetSuite using Avalara AvaTax. The key is ensuring the correct NetSuite features and forms are enabled, confirming Avalara configuration for address validation and nexus footprint, and executing a structured test plan that validates end-to-end behavior through invoicing.