Skip to content

Post NetSuite Journal Entry

Posts journal entries to NetSuite over your NetSuite connection. The step takes two source tables — a header table with one row per journal entry and a lines table with one or more debit/credit rows per entry — groups the lines by journal entry, and posts each entry to NetSuite. Test Only Mode builds and checks every entry without making any call to NetSuite, and an optional result table records the outcome of each entry.

  • NetSuite Connection — the NetSuite connection to post through, filtered to connections of type NetSuite.
  • Environment — the connection’s environment.

NetSuite connections are managed under Tools > Connections — see Connect to NetSuite.

  • Journal Entry Header Table — one row per journal entry.
  • Journal Entry Lines Table — one or more debit/credit rows per journal entry, linked to its header row by Journal ID.
  • Test Only Mode — checked by default. Validates each journal entry against the checks below but makes no call to NetSuite; nothing posts. Uncheck it to post for real.
  • Continue posting remaining entries if one entry fails — checked by default. When an entry fails a check or the post itself, PlaidCloud records an error for that entry and moves on to the rest of the batch rather than stopping it.
  • Posting Result Table — optional. If set, PlaidCloud (over)writes it with one row per journal entry — see Result Table Columns.

Map the header table’s columns to the journal entry fields below, and optionally filter which header rows are posted, using the standard data mapping and filter tabs.

Field Required Notes
Journal ID Yes Links a header row to its lines. One row per unique Journal ID.
Subsidiary Yes NetSuite subsidiary internal ID.
Posting Date Yes The entry’s transaction date.
Currency No NetSuite currency internal ID.
Memo No Entry-level memo.
External ID No Overrides the deterministic external ID PlaidCloud generates for the entry — see Re-Posting and Duplicate Entries.

Map the lines table’s columns, and optionally filter which line rows are posted.

Field Required Notes
Journal ID Yes Matches a header row’s Journal ID.
Account Yes NetSuite GL account internal ID.
Debit Yes The debit amount; 0 for a pure-credit line.
Credit Yes The credit amount; 0 for a pure-debit line.
Memo No Line-level memo.
Department No NetSuite department internal ID.
Class No NetSuite class internal ID.
Location No NetSuite location internal ID.
Entity No NetSuite entity (customer or vendor) internal ID.

PlaidCloud groups the lines table by Journal ID and builds one NetSuite journal entry per header row. Before posting each entry — or, in Test Only Mode, before recording it as validated — PlaidCloud checks that:

  • the entry has at least one line
  • its debits and credits balance to the cent
  • every line has an Account
  • the header row has a Subsidiary
  • Posting Date is a valid date

Any check that fails records an error row for that entry and, unless Continue posting remaining entries is off, moves on to the next entry in the batch.

Each entry posts with a deterministic external ID, built from the project, connection, Journal ID, Posting Date, and the line amounts. Re-posting an entry whose lines haven’t changed reuses that same external ID, and NetSuite’s own external-ID handling keeps it from creating a duplicate journal entry. Change any line on an entry — a different amount, an added or removed line — and PlaidCloud computes a new external ID for it, which NetSuite accepts as a new entry rather than an update to the old one. Set a value in the header table’s External ID column to control the ID yourself instead.

Column Description
journal_id The Journal ID from the header table.
external_id The external ID used for this posting attempt.
internal_id NetSuite’s internal ID for the created journal entry. Blank in Test Only Mode and on error.
status validated (Test Only Mode), posted, or error.
message Error detail. Blank on success.