NetSuiteLive

NetSuite Bank Feeds API

Post statements from your platform through the Bank Feeds API and NetSuite imports them into Banking, Match Bank Data on its next import cycle. Your customer’s admin sets it up once, in about 15 minutes, on the token-based authentication they already use with Apideck.

POST/accounting/bank-feed-statements
x-apideck-service-id: netsuite​​{​  "bank_feed_account_id": "bfa_ns_10442",​  "start_date": "2026-10-05T00:00:00Z",​  "end_date": "2026-10-11T23:59:59Z",​  "start_balance": 52000.00,​  "start_balance_credit_or_debit": "credit",​  "end_balance": 49981.60,​  "end_balance_credit_or_debit": "credit",​  "transactions": [​    {​      "source_transaction_id": "card_88231",​      "posted_date": "2026-10-06T12:00:00Z",​      "description": "AWS, October usage",​      "counterparty": "Amazon Web Services",​      "amount": 1840.20,​      "credit_or_debit": "debit",​      "transaction_type": "payment"​    },​    {​      "source_transaction_id": "card_88240",​      "posted_date": "2026-10-08T12:00:00Z",​      "description": "Trade show booth deposit",​      "counterparty": "Expo Hall Events",​      "amount": 450.00,​      "credit_or_debit": "debit",​      "transaction_type": "payment"​    },​    {​      "source_transaction_id": "card_88257",​      "posted_date": "2026-10-10T12:00:00Z",​      "description": "Refund, duplicate charge",​      "counterparty": "Expo Hall Events",​      "amount": 271.80,​      "credit_or_debit": "credit",​      "transaction_type": "credit"​    }​  ]​}​

01How it works

How NetSuite bank feeds work

NetSuite does not take bank transactions pushed straight into its ledger. It imports bank data through Financial Institution records and Format Profiles: a connectivity plug-in fetches the data, a parser turns it into transactions, and NetSuite lists them in Banking, Match Bank Data for the bookkeeper to match against what is already in the books.

Apideck ships that plug-in. An admin installs the Apideck bundle once, points a Format Profile at it, and links the bank and card accounts to feed. From then on, every statement you post to the Bank Feeds API is staged inside the customer’s NetSuite account and picked up on the next import, scheduled or on demand.

  1. 01 · Your platform

    POST /accounting/bank-feed-statements

  2. 02 · Apideck

    Writes the statement to staging records through the Apideck RESTlet

  3. 03 · NetSuite import

    The Apideck connectivity plug-in hands the lines to the CSV parser

  4. 04 · Match Bank Data

    Transactions appear on the linked GL account, ready to reconcile

02Setup

Set up NetSuite bank feeds

A NetSuite administrator does this once per account. It reuses the token-based authentication from the existing Apideck connection, so there is no new auth flow.

  1. 1

    Enable features

    Under Setup, Company, Enable Features, SuiteCloud tab: Client SuiteScript, Server SuiteScript, Custom Records and Token-Based Authentication.

  2. 2

    Install Bank Statement Parsers

    Oracle’s free Bank Statement Parsers SuiteApp (bundle 293699) provides the CSV parser the Apideck plug-in relies on. Skip if already installed.

  3. 3

    Install the Apideck bundle

    From Customization, SuiteBundler. It adds the statement and transaction record types, the Apideck Bank Feed RESTlet, a maintenance script and the Apideck Bank Feed Connectivity plug-in.

  4. 4

    Create a Format Profile

    Setup, Accounting, Financial Institution, Format Profiles. Profile type Bank Reconciliation, connectivity method Apideck Bank Feed Connectivity, parser CSV Plugin Implementation.

  5. 5

    Link accounts

    Run Update Imported Bank Data once to list the Bank and Credit Card accounts, then link each one to its GL account with an earliest transaction date.

  6. 6

    Save the RESTlet IDs in Vault

    Copy the script and deploy IDs from the RESTlet deployment into the NetSuite connection settings in Apideck Vault. Optionally set an import schedule; every 6 hours is common.

Full step-by-step instructions: NetSuite bank feeds setup guide.

03Fields

What NetSuite receives

The plug-in emits the column headers of NetSuite’s default CSV bank statement template, so the Format Profile’s field mapping works without changes on a standard account.

NetSuite fieldCSV column the plug-in emits
Account NumberAccount NumberRequired by NetSuite
DateDateRequired by NetSuite
Transaction TypeTransaction TypeRequired by NetSuite
AmountAmountOne signed column
Payee or Payer NamePayee or Payer Name
Transaction NumberTransaction ID
Amount CurrencyCurrency
MemoMemo
Customer Name and IDNS Customer Name, NS Customer Internal ID
Invoice NumbersInvoice Numbers

Credit Amount, Debit Amount, Amount Indicator and the closing balance fields stay blank: the single signed Amount column carries the direction. Dates use MM/DD/YYYY and numbers 1,000,000.00, the defaults on a US English account. A locale-aware build of the plug-in is available from Apideck support for other locales.

04In production

Running NetSuite bank feeds

Import history

Banking, Banking Import History lists every run.

Failed imports

Each failed run offers a downloadable CSV with a reason per row. Send it to Apideck support if the error is unclear.

Retention

A scheduled script marks staging records still pending after 7 days as errors and deletes successful ones after 30 days.

Timing

Lines appear on the next import: on the profile’s schedule, or when someone clicks Update Imported Bank Data.

05FAQ

NetSuite bank feeds FAQ

Does NetSuite have a bank feeds API?

Not one you can post transactions to. NetSuite imports bank data through Format Profiles and connectivity plug-ins, then lists it in Match Bank Data. Apideck provides the plug-in and a RESTlet, so you post statements to the Apideck Bank Feeds API and NetSuite imports them on its next cycle.

How long does NetSuite bank feed setup take?

About 10 to 15 minutes for a NetSuite administrator: enable a few SuiteCloud features, install Oracle’s Bank Statement Parsers SuiteApp and the Apideck bundle, create one Format Profile, link the accounts and save two RESTlet IDs in Apideck Vault.

When do transactions show up in NetSuite?

On the next import cycle. Set an import schedule on the Format Profile, for example every 6 hours, or trigger Update Imported Bank Data on demand. Transactions then appear in Banking, Match Bank Data on the linked GL account.

Do I need new credentials for NetSuite bank feeds?

No. Bank feeds reuse the token-based authentication of the existing Apideck NetSuite connection. The role on that token needs Custom Record Entries, Custom Record Types, SuiteScript and REST Web Services at full level.

Can I register bank feed accounts in NetSuite through the API?

Yes. On NetSuite the Bank Feeds API supports listing, reading and creating bank feed accounts, and posting statements against them.

One Bank Feeds API, every ledger

The statement you send to NetSuite is the same one that reaches Xero, Exact Online, Moneybird and the other native ledgers, and QuickBooks Online through Intuit.