Skip to main content
    Best Practices

    Nuances of Vendor Bill Settlement in NetSuite

    Three ways to settle, so many names, and some trickery in links

    Mathias Craig
    Mathias Craig
    Master's in Engineering from MIT • The Engineer

    A NetSuite Vendor Bill, or Bill for short, most commonly gets settled by a Bill Payment. But there are actually three settlement paths - and one of them has no obvious entry point in the UI. Even less well knowns is that there is a fourth kind of relationship — one that isn’t a settlement at all — that travels through the same data structure and shows up in the same saved searches showing “applying transactions”. This last once can introduce gremlins into an AP reconciliation.

    Three ways to settle a Bill

    A Vendor Bill credits an Accounts Payable account. It can be relieved by a Bill Payment, a Bill Credit, or a Journal Entry.

    Before going further, a word on NetSuite nomenclature. The same transaction has different names in four places: the menu you create it from, the label on the saved record, the internal code you filter on in a saved search, and the record id you reference in a script.

    Menu PathRecord & Saved Search LabelTransaction Type CodeSuiteScript record id
    Transactions > Payables > Enter BillsBillVendBillvendorbill
    Transactions > Payables > Pay BillsBill PaymentVendPymtvendorpayment
    Transactions > Payables > Enter Vendor CreditsBill CreditVendCredvendorcredit
    Transactions > Financial > Make Journal EntriesJournalJournaljournalentry

    The Bill Credit row is the clearest offender. You create it from a menu item called Enter Vendor Credits. The list page that opens is titled Bill Credits. The different names all appear inside a single SuiteAnswer, Applying a Vendor Credit. Another SuiteAnswer, Transaction Numbers Available for Auto-Numbering, splits the difference again, listing the types as “Bill (Vendor Bill),” “Bill Payment (Vendor Payment),” and “Bill Credit (Vendor Credit).”

    Once you are inside a Transaction search, use the Type field on the Criteria tab to separate Bills from Bill Payments from Journals. VendBill is the underlying NetSuite value. If you’re selecting a Type, you’ll select “Bill.” That’s also what the {typecode} formula returns. Display names are renameable per account, so use {typecode} rather than {type} in a formula. The code is the same in every account; the display name is whatever you say it is.

    Applying a Journal Entry

    Creating a Bill Payment that settles a Bill is straightforward: TransactionsPayablesPay Bills.

    Journal Entries can also be applied to settle a Bill, but in contrast to Bill Payments, you have to create the Journal Entry first. Create a Journal Entry with a line that debits your Accounts Payable account, and select the vendor in the Name column on that line. Debiting A/P is what makes it available to apply to an open Bill, since a Vendor Bill credits A/P and everything that relieves it debits A/P. If you credit A/P by mistake, your Journal will increase A/P and will not be available to apply to Bills.

    Go to Transactions > Payables > Pay Bills (or Pay Single Vendor), choose the vendor, and open the Apply subtab. The Apply list shows every open item for that payee in one table, with a Type column. Your journal appears there as a row of type Journal carrying a negative amount. Check the Apply box on that row and on the chosen Bill or Bills, then save. If credits fully cover the Bill, the Bill is marked as Paid in Full. You will see the Journal appear on the Related Records subtab of the Bill. Alas, the Bill will not appear on the Related Records subtab on the Journal.

    If the credits you select exceed the total amount of open bills you select, NetSuite shows an error that a payment can’t be processed for a negative amount. Applied credits can zero a payment. They can’t make it negative.

    An exotic case: a credit born on one Bill, applied to another

    A Bill is fully paid. Someone opens it and clicks the Credit button, which opens a Bill Credit pre-populated with the original Bill’s lines. But the original Bill has no open balance left, so the credit ends up getting applied to a different Bill.

    Now you build a Vendor Bill saved search with the Applying Transaction join to understand the payment status and details of a Bill, and the Bill Credit shows up twice — once under the Bill it was created from, and once under the Bill it was applied to. Looking closer:

    1. On the Bill it was applied to, the credit appears on the mainline row only.
    2. On the Bill it was created from, the credit appears on the mainline row and on the line-level rows.

    And on that originating Bill, the Applying Link Amount is $0.00. Nothing was settled. The Bill still shows a link to a transaction, but with no impact.

    Why: transformation links and application links share a table

    NetSuite has two different relationships between transactions and does not visually distinguish them in a saved search.

    An application link is a settlement: a Bill Payment, Bill Credit, or Journal Entry consuming a Bill’s open balance. It is recorded at the header, against Accounts Payable.

    A transformation link is lineage: the record that the Credit button created from this Bill. Because the transform action “Credit” copies the source Bill’s lines onto the credit, the link is recorded line by line as well as at the header.

    The saved search join doesn’t care about the difference. “Applying Transaction” traverses the whole link structure, applications and lineage alike. This is the same reason an Invoice search returns Sales Orders and Estimates under Applied To Transaction — those are transformations, not payments. The Related Records tab on the Bill behaves differently: it shows you only the ones that consumed the balance. So the credit that originated on your fully-paid Bill is absent from that Bill’s Related Records while sitting right there in your saved search results. Same underlying data, two different readings of it.

    Losing the real link from Bill to applying transactions but keeping ghosts

    There’s another thing to watch out for. Adding a saved search criterion for Projects restricts the search to line-level rows. The Bill Payment link lives at the header, so it disappears from your results. The Bill Credit, carrying a line-level transformation link, survives the filter. Your report now shows a Bill related by a credit that was never applied to it, and omits the payment that settled it.

    What to do about it

    Three changes, in order of how much they’ll save you.

    Use Applying Link Amount, not the applying transaction’s Amount.applyinglinkamount is the amount consumed by that specific link. Applying Transaction : Amount is the applying document’s own total. On a Payment covering five Bills, you’ll quintuple your applying amount by returning the Payment total once for each Bill. Transformation links have $0.00 in Applying Link Amount, so this single change makes phantom settlements self-identifying. Use appliedtolinkamount if you’re traversing in the other direction.

    Add Applying Link Type as a column.applyinglinktype exposes the distinction between created from and genuinely applying to. Include it in your results so you can troubleshoot.

    Be deliberate about header rows versus line rows. If you aren’t confident about NetSuite’s transaction model, with main and non-main lines, take the time to familiarize yourself. Every row a transaction search returns sits at one of two levels: the header, or main, line, which includes information about the whole transaction; or the line, which represents line items on the transaction (for example, the different expense entries in an expense report, or items in a vendor bill). That level decides which links you can see. Applications are recorded at the header, while transformations reach down to the lines. Mainline rows are flagged with * in the results. Filtering to Main Line = True gives you header rows only; False gives you line rows. However the Main Line filter does not work on transaction searches where the type is set to Journal Entry. If your company’s settlement process includes paying Bills with JEs, your searches must not be filtered to Main Line = True.

    The bottom line

    A link between two transactions in NetSuite does not mean money moved between them. Settlement is a header-level event against Accounts Payable; lineage is a line-level artifact of how a record was created; and the saved search join hands you both without comment. Before you publish an AP aging, a settlement report, or an unapplied-credit analysis, put Applying Link Amount and Applying Link Type on the results and see what’s actually there. The $0.00 rows will tell you the rest.

    Sources

    Oracle NetSuite Help Center

    Transaction Numbers Available for Auto-Numbering — Oracle’s own “Bill (Vendor Bill),” “Bill Payment (Vendor Payment),” “Bill Credit (Vendor Credit)” naming

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/bridgehead_N252671.html

    Applying a Vendor Credit — the menu/list/record naming split, the Apply subtab, and the Credits Applied subtab

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2393276.html

    Creating a Vendor Credit Directly From a Vendor Bill — the Credit button copies the source Bill’s lines

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2392547.html

    Vendor/Purchase Transaction GL Impact — which side of Accounts Payable each transaction hits

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N1461991.html

    Paying Bills to a Single Vendor — the Pay Single Vendor procedure, A/P and bank account selection

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2381924.html

    Paying Bills to Multiple Vendors — the Pay Bills procedure

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2383803.html

    Vendor Credits and Discounts — the zero-dollar Bill Payment

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_0807081534.html

    Vendor Payments Overview — the negative-amount error when credits exceed bills

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2381751.html

    Using Transaction Links — created-from, created-to, and applied-to as three distinct relationships

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N551392.html

    Main Line in Transaction Search Criteria — the mainline flag, and the warning that the Main Line filter does not work on Journal Entry searches

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4459563851.html

    Vendor Credit — the vendorcredit record id (the Vendor Bill, Vendor Payment, and Journal Entry pages follow the same pattern)

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_0809015408.html

    NetSuite schema references

    SuiteScript Records Browser 2026.1 — Transaction — the applyinglinkamount, appliedtolinkamount, applyinglinktype, and appliedtolinktype fields, each available as both a search filter and a search column

    https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2026_1/script/record/transaction.html

    The Analytics Browser was retired as of NetSuite 2021.2. The two 2021.1 pages below are its final public snapshot and remain the clearest published statement of the header/line split between the link tables. In a current account, the live equivalent is the Records Catalog, which reflects your own account’s model rather than a static schema.

    Analytics Browser 2021.1 — NextTransactionLink — the header-grained link table: linktype, previousdoc, nextdoc, and no amount

    https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2021_1/analytics/record/NextTransactionLink.html

    Analytics Browser 2021.1 — NextTransactionLineLink — the line-grained link table, which adds previousline, nextline, and foreignamount

    https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2021_1/analytics/record/NextTransactionLineLink.html

    Removal of the Analytics Browser — “As of NetSuite 2021.2, the Analytics Browser is no longer available”

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_163758909154.html

    Records Catalog Overview — the replacement tool, reached at Setup > Records Catalog once the Records Catalog permission is on the role

    https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_159367781370.html

    Additional reference

    Oracle does not publish an enumeration of linktype values, nor a help topic on the Applying Transaction join’s traversal of lineage links. These two practitioner sources cover that ground.

    Plative — Applied To vs. Applying Transaction — the join returning transformations alongside applications

    https://plative.com/the-netsuite-eternal-conflict-applied-to-vs-applying-transaction/

    Prolecto — SearchFilter Internal Transaction Type Codes — the VendBill / VendPymt / VendCred / Journal search codes

    https://blog.prolecto.com/2014/01/03/netsuite-searchfilter-internal-transaction-type-codes/