Guides · NetSuite

Free NetSuite bank statement import template (CSV, filled and blank)

Updated November 10, 2026 · 7 min read · By the Utilly team

Need a CSV template to import a bank statement into NetSuite? NetSuite has one, but you only get it from the Upload File page inside an account. Here's a free copy with no sign-up: Oracle's nine columns in Oracle's order, already filled with a fictional month of business checking so you can test an import and know exactly what should come in, plus a blank copy and an Excel version that won't mangle the dates. Below, every column's rule, the transaction types, the upload steps, and how to check the result.

Short answer: download the filled NetSuite CSV template, the blank one, or the Excel version (save it back as CSV UTF-8 before importing). Row 1 must be Date (MM/DD/YYYY), Payor/Payee Name, Transaction ID, Transaction Type, Amount, Memo, NS Internal Customer ID, NS Customer Name, Invoice Number(s). Dates are MM/DD/YYYY, the type is one of ten uppercase values, and amounts sit in one column with credits positive and debits negative. The filled template holds 31 fictional transactions: 11 credits totalling 29,597.43, 20 debits totalling 28,575.27, net +1,022.16. Upload it from Transactions → Bank → Upload File with the default parser, into a sandbox first.

See the PDF statement behind this template

Open Utilly's fictional September 2026 checking statement (account ending 0427): every line, the balance check from 12,418.36 to 13,440.52, and the OFX, CSV and QIF downloads. Free, because the data is made up. If you'd rather not fill in CSV columns at all, its OFX file carries the same 31 lines with the same transaction IDs, and NetSuite's default parser reads OFX too.

Filled CSVBlank CSVExcel (XLSX)

1. Where NetSuite's own template is

Oracle's Preparing CSV Files for Import page says: "Statement files in CSV format must adhere to the provided CSV template and constraints." You download that template by going to Transactions → Bank → Banking Import History → Upload File, selecting Import with a default parser (CSV, OFX, QFX, BAI2, or CAMT.053) and clicking Download the CSV template. The same page adds: "Or, you can create the file with the required columns and specifications."

That's what the files here are: the columns and rules from Oracle's help, with no login needed, and a filled copy whose totals you know. If the header row in your account's downloaded template ever differs from the one here, use your account's. These templates are for bank and credit card statement lines brought in for matching and reconciliation, not for other kinds of NetSuite records.

2. The templates

The filled files are written from the fictional statement explained on sample bank statement PDF, read by the same engine Utilly's converters use, so the rows can't drift from the PDF. The transaction IDs are the ones Utilly's OFX of the same statement carries.

FileWhat's in itUse it whenKnown totals
Filled CSV templateHeader row + 31 fictional bank transactionsTesting an import, or comparing a bank export with a file NetSuite accepts31 lines, +29,597.43 / −28,575.27, net +1,022.16
Blank CSV templateThe header row onlyTyping or pasting your own transactionsNone
Excel template (XLSX)The same 31 rows, with Date and Transaction ID stored as text, plus a How to use sheetEditing in Excel without it reformatting dates; save as CSV UTF-8 to importSame as the filled CSV
The same month as OFXThe 31 lines with the same transaction IDsYou'd rather skip the CSV rulesSame

The filled CSV is 2.6 KB of plain ASCII text (which is valid UTF-8) with Windows line endings. Its file name is 43 characters; NetSuite allows up to 50, extension included, so keep that in mind if you rename it.

3. The nine columns, one by one

The start and the end of the filled CSV as plain text:

Date (MM/DD/YYYY),Payor/Payee Name,Transaction ID,Transaction Type,Amount,Memo,NS Internal Customer ID,NS Customer Name,Invoice Number(s)
09/01/2026,ACH DEBIT GUSTO PAYROLL 0912,20260901E26D1A27070800,ACH,-6420.18,,,,
09/01/2026,STRIPE TRANSFER ST-K2M8Q4,202609019B6B1ED70CD300,TRANSFER,3184.27,,,,
09/02/2026,CHECK 2041,20260902692F5A239AB700,CHECK,-1850.00,,,,
09/02/2026,ACH DEBIT AUSTIN ENERGY UTIL,2026090282D432D35ED500,ACH,-412.66,,,,
…
09/30/2026,MONTHLY SERVICE FEE,2026093088B3E73B4B8C00,FEE,-15.00,,,,
09/30/2026,INTEREST PAYMENT,20260930A3183A5E30D100,INTEREST,3.21,,,,

Oracle's rule: "the column headings must be in the first row in the specified order". The rules per column, from the same page:

ColumnRequired?Oracle's ruleIn the template
Date (MM/DD/YYYY)YesMM/DD/YYYY. "A one-digit month must be preceded by a zero." Don't let Excel reformat it09/01/2026 to 09/30/2026
Payor/Payee NameYesUp to 70 charactersThe bank's text for the line
Transaction IDYesA unique bank transaction or reference ID; can be the check number. Up to 90 charactersA 22-character ID per line, the same as the OFX's
Transaction TypeYesOne of ten values, all uppercase (below)ACH, TRANSFER, CHECK, DEPOSIT, FEE, INTEREST, CREDIT, DEBIT
AmountYesOne column. Positive amounts are credits; negative amounts are debits and "must begin with a minus sign or be in parentheses". No currency symbols, no commas instead of decimal places, same currency as the account−6420.18 for payroll, 3184.27 for a Stripe deposit
MemoNoUp to 4,000 characters, with no commas, semicolons or underscoresEmpty
NS Internal Customer IDNoNumeric, up to 12 characters. Used first to match the line to a customerEmpty
NS Customer NameNoFree text, up to 512 characters. Used if the ID is missing or doesn't matchEmpty
Invoice Number(s)NoComma-separated with no spaces (132,133,134), in quotes in a hand-written CSV; up to 128 characters each, all for the same customer and AR accountEmpty

Oracle's help spells the second heading "Payor/Payee Name" in the column list and "Payer/Payee Name" in the description under it; the template uses the column-list spelling. "If you exceed the character limit for any field, the import fails."

Oracle also says to remove empty columns between filled columns, empty rows between filled rows, opening and closing balance columns, any column the template doesn't have, other accounts ("The CSV file can only contain transactions that belong to a single account"), and the bank account number. That's why there's no Balance column. The four optional columns stay as headings; in the template they're empty at the end of each row, not between filled ones.

4. Transaction types

The Transaction Type column takes only these values, in uppercase: CREDIT, DEBIT, CHECK, PAYMENT, ACH, INTEREST, DEPOSIT, TRANSFER, FEE, OTHER. Oracle doesn't say how to choose between them for a given line. The filled template uses one simple rule you can copy:

If the bank's text…TypeLines in the template
starts with CHECKCHECK3
starts with ACHACH11
contains TRANSFERTRANSFER7
contains DEPOSITDEPOSIT2
is a service feeFEE1
starts with INTERESTINTEREST1
anything else, money in / money outCREDIT / DEBIT2 / 4

The sign of the Amount, not the type, says which way the money went, so a CHECK line is still negative.

5. Filling it in Excel or Google Sheets

  1. Start from the blank CSV or the XLSX. In the XLSX, the Date and Transaction ID columns are formatted as text, so 09/01/2026 stays 09/01/2026 instead of becoming 9/1/2026, and long numeric IDs aren't rounded.
  2. Paste your bank's lines under row 1, one bank account per file. Type dates as MM/DD/YYYY with leading zeros.
  3. Give every line a Transaction ID. Use the bank's reference or the check number; it has to be unique.
  4. Combine debit and credit columns into one signed Amount, for example =E2-F2 in a helper column, then paste as values.
  5. Clean the Memo if you use it: no commas, semicolons or underscores.
  6. Save as CSV UTF-8. Excel: File → Save As → CSV UTF-8 (Comma delimited) (*.csv), from the sheet with the data (Excel saves only the active sheet). Google Sheets: File → Download → Comma-separated values.

Opening a CSV straight in Excel can change its dates and numbers before you notice. Opening a bank CSV in Excel without breaking it covers the safe way.

6. Uploading the file to NetSuite

From Oracle's Importing Data Using Default Parsers:

  1. Go to Transactions → Bank → Upload File. The Manual Import subtab is open.
  2. Click Choose File (or drag and drop) and select the CSV.
  3. Under Import Options, choose Import with default parser (CSV, OFX, QFX, BAI2, or CAMT.053).
  4. In Account, select the bank or credit card account. The Character Encoding field doesn't appear for CSV, which must be UTF-8.
  5. Click Import, then Track your status to follow it in Banking Import History.

Oracle notes the default parsers "can't be customized" and recommends the Bank Statement Parsers SuiteApp if you have financial institution records set up. Matching the imported lines, Delete Import and the error codes are covered in how to import a bank statement into NetSuite.

7. Checking the import against the known totals

The point of a filled template is that you know what should come in. After importing it into a sandbox or test account, compare:

CheckShould beIf it's wrong
Lines imported31Fewer, or none: open Banking Import History for the import's status and error
Credits29,597.43 (11)A different total means lines were skipped or an amount was misread
Debits28,575.27 (20)Same as above
Net change+1,022.16−1,022.16 means every sign is flipped
Dates09/01–09/30/2026If the import errored, check that Excel didn't change the dates to 9/1/2026
Statement balance12,418.36 → 13,440.52The CSV carries no balances; compare them when you reconcile the account

The transactions are fictional (Example Community Bank and Sample Customer LLC don't exist; the statement they come from says SAMPLE STATEMENT, FICTIONAL DATA FOR DEMONSTRATION ONLY). Import them into a sandbox, never into books you report from, and replace every row before using the template for real. If a real month won't tie out, finding bank reconciliation discrepancies walks through the usual causes.

8. Other accounting software

9. From a PDF statement or a messy bank export

PDF isn't among the formats NetSuite's default parsers accept; Oracle's help says to "use a third-party conversion tool to change the file to a supported format". Upload the PDF to bank statement to OFX: the preview is free with no sign-up and checks that the opening balance plus every transaction equals the closing balance, and the downloads include an OFX with a unique ID per line, which NetSuite's default parser reads without any of the CSV rules above. Downloading uses 1 credit ($9 for 5, no subscription). Have a bank CSV with a title block on top or Debit and Credit columns? CSV to OFX reads it and writes an OFX; it's free up to 100 rows.

Get your own statement into NetSuite

PDF statements, downloaded or scanned, get a free preview with the balance check, no sign-up. CSV and Excel exports are free up to 100 rows. Files are processed in memory and not stored.

Utilly isn't affiliated with Oracle or NetSuite. The rules and steps above are from Oracle's NetSuite Applications Suite help, checked November 10, 2026; the templates weren't imported into a live NetSuite account. Sources: Preparing CSV Files for Import, Importing Data Using Default Parsers, Supported File Formats for Default Parsers. Oracle updates these pages; if a screen differs, follow the current help.

FAQ

Where do I download NetSuite's own bank statement CSV template?

Inside NetSuite: go to Transactions > Bank > Upload File, choose Import with default parser (CSV, OFX, QFX, BAI2, or CAMT.053), and click the Download the CSV template link that appears. The template on this page needs no login, uses the column headings and order from Oracle's help, and the filled copy has a test month with known totals.

What columns does the NetSuite bank statement CSV need?

Nine, in the first row and in this order: Date (MM/DD/YYYY), Payor/Payee Name, Transaction ID, Transaction Type, Amount, Memo, NS Internal Customer ID, NS Customer Name, Invoice Number(s). Memo and the three NS/invoice columns are optional and can be left empty.

What date format does NetSuite's bank import use?

MM/DD/YYYY, with a leading zero on one-digit months, for example 09/01/2026. Oracle warns that Excel can reformat dates, so the Excel version of this template stores the Date column as text.

Which transaction types can I use?

Only these, in uppercase: CREDIT, DEBIT, CHECK, PAYMENT, ACH, INTEREST, DEPOSIT, TRANSFER, FEE, OTHER. The filled template uses CHECK, ACH, TRANSFER, DEPOSIT, FEE and INTEREST where the bank's text says so, and CREDIT or DEBIT by the sign for the rest.

How do I enter amounts in the NetSuite CSV?

In one Amount column. Positive amounts are credits; negative amounts are debits and must start with a minus sign or be in parentheses. No currency symbols, and no commas instead of a decimal point. A bank export with separate debit and credit columns has to be combined into one column first.

Can I import an Excel file into NetSuite bank import?

No. The default parsers take CSV, OFX, QFX, BAI2 and CAMT.053, not XLSX or QIF. The Excel version here is for editing: fill it in, then save it as CSV UTF-8 (Comma delimited) and import the CSV.

How do I know the import worked?

Import the filled template into a sandbox or test account first. It should bring in 31 transactions dated September 2026: 11 credits totalling 29,597.43 and 20 debits totalling 28,575.27, a net change of +1,022.16. A net of -1,022.16 means the signs were flipped.

Related tools

  • Bank reconciliation checker: compare a bank statement to your books and list missing, duplicate and mismatched transactions.
  • Receipt to CSV: turn PDF or photo receipts and invoices into CSV, Excel, or QuickBooks and Xero bill imports.