Treasury Flow
Back to Import

Import Data Guidelines

A complete guide to importing transactions, vendors, users, and banks — including file formats, required fields, and AI extraction.

Overview

How importing works from start to finish

The Import Data tool lets you bring large amounts of information into the system at once — instead of entering records one by one. You can import transactions to create payment batches, vendors to set up payees, users to onboard your team, or bank configurations to connect financial institutions.

Importing works in three steps: Upload your file, Preview how it will be processed (and catch any errors before anything is saved), then Confirm to apply the changes.

1

Upload File

Choose your CSV, Excel, JSON, XML, PDF, or image file

2

Preview

Review matched fields and catch errors before saving

3

Confirm

Apply the import — records are created or updated

File Formats

Supported formats and when to use each one

Download a template from the Import page to get a pre-formatted file with sample data and the correct column names already filled in.

CSV — Comma-Separated Values

Best for spreadsheet exports from accounting systems

Recommended

A plain-text file where each row is a record and columns are separated by commas. The first row must be the header row with column names. Exported directly from Excel, QuickBooks, or any accounting software.

csv — transaction example
payee_name,amount,transaction_date,vendor_code,memo
Acme Corp,1500.00,2026-05-15,ACME-001,Q1 consulting
Riverside Printing,250.00,2026-05-15,,May flyers
City Utilities,425.50,2026-05-14,,Electric bill
  • Column names are flexible — common alternatives are recognized automatically
  • Dollar signs and commas in amounts are stripped automatically
  • Empty optional fields are fine — just leave them blank

Excel (.xlsx)

Native Excel workbook format

Works exactly like CSV but as a native Excel file. The first row of the first worksheet is treated as the header row. Other sheets in the workbook are ignored. Column names and data handling work identically to CSV.

Use the Download Template button on the Import page to get an Excel template with color-coded required fields (blue) and optional fields (gray), plus an Instructions sheet.

JSON

For API exports and developer-friendly formats

JSON files can be either a top-level array of objects, or an object with a wrapper key containing the array. Both flat and wrapped formats are accepted.

json — flat array
[
  {
    "payee_name": "Acme Corp",
    "amount": 1500.00,
    "transaction_date": "2026-05-15",
    "vendor_code": "ACME-001",
    "memo": "Q1 consulting"
  },
  {
    "payee_name": "Riverside Printing",
    "amount": 250.00,
    "transaction_date": "2026-05-15"
  }
]
json — wrapped object (also accepted)
{
  "data": [
    { "payee_name": "Acme Corp", "amount": 1500.00, "transaction_date": "2026-05-15" }
  ]
}

Accepted wrapper keys: data, items, records, transactions, rows

XML

For ERP and enterprise system exports

XML files exported from ERP systems (SAP, Oracle, etc.) are supported. The system looks for repeated record elements within a root container.

xml — transaction example
<?xml version="1.0" encoding="UTF-8"?>
<transactions>
  <transaction>
    <payee_name>Acme Corp</payee_name>
    <amount>1500.00</amount>
    <transaction_date>2026-05-15</transaction_date>
    <vendor_code>ACME-001</vendor_code>
    <memo>Q1 consulting</memo>
  </transaction>
  <transaction>
    <payee_name>Riverside Printing</payee_name>
    <amount>250.00</amount>
    <transaction_date>2026-05-15</transaction_date>
  </transaction>
</transactions>

PDF & Images (JPG, PNG)

Transaction imports only — uses AI extraction

AI-Powered

Transaction imports also accept PDF files and images. The AI reads the document — whether it's an image of a check, check register report, or a payment summary — and extracts the transaction data automatically. No column mapping required, but make sure the document contains the Payee Name, Amount, and Date.

AI extraction is best-effort. Always review the Preview screen carefully before confirming a PDF or image import. Complex layouts or poor scan quality may reduce accuracy.

Transaction Import

Create payment batches from your check run or payment file

Transaction imports create a payment batch ready for review and approval. Each row in your file becomes one payment. The system matches each payee name to a vendor in your account — if no match is found, the row is flagged in the Preview screen.

Column names are flexible. company_name, vendor_name, and payee are all accepted in place of payee_name. Similarly, check_date and date are accepted for transaction_date. The system normalizes them automatically.

Field NameRequiredDescriptionExample
payee_name RequiredThe name of the company or person you are paying. This becomes the vendor match during import.

Also accepted: payee, vendor_name, company_name, company

Acme Corp
amount RequiredPayment amount in dollars. Commas and dollar signs are stripped automatically.

Also accepted: payment_amount, check_amount, total

1500.00
transaction_date RequiredDate of the payment. ISO format (YYYY-MM-DD) recommended.

Also accepted: date, check_date, payment_date, effective_date

2026-05-15
vendor_codeOptionalYour internal vendor code. Speeds up vendor matching when provided.

Also accepted: code, vcode, payee_code

ACME-001
check_numberOptionalCheck or wire reference number for your records.10042
reference_numberOptionalInvoice or external reference number.

Also accepted: reference, ref, invoice, invoice_number

INV-2026-0099
memoOptionalFree-text memo or description for the payment.

Also accepted: description, note, notes, comment

Q1 consulting services

Vendor Import

Bulk-create or update your vendor / payee master list

Vendor imports set up the payees your organization sends money to. Only name and payment_type are required — banking details can be collected later via an automated bank-info request sent directly to the vendor's contact email.

Include at least one contact (name + email) so the system can automatically send a bank information request to vendors who don't have routing and account numbers yet.

Field NameRequiredDescriptionExample
name RequiredLegal vendor or payee name.Acme Corporation
payment_type RequiredDefault payment method. Must be one of the supported values.

Accepted: ACH, FedNow, RTP, RequestForCheck

ACH
codeOptionalYour unique internal vendor code. Used to match vendors on future imports.ACME-001
address_line1OptionalStreet address.123 Main St
address_line2OptionalSuite, floor, or department.Suite 400
address_city_state_zipOptionalCity, state, and ZIP code.Austin, TX 78701
routing_numberOptionalBank routing number (ABA, 9 digits). Collected via bank-info request if not provided.021000021
account_numberOptionalBank account number. Encrypted at rest.123456789
account_typeOptionalChecking or Savings.Checking
contact1_nameOptionalPrimary contact full name (used for bank info requests).Jane Smith
contact1_emailOptionalPrimary contact email address.jane@acme.com
contact1_mobile_phoneOptionalPrimary contact mobile phone.512-555-0100
contact1_work_phoneOptionalPrimary contact work phone.512-555-0101
contact2_nameOptionalSecondary contact full name.Bob Jones
contact2_emailOptionalSecondary contact email address.bob@acme.com
contact2_mobile_phoneOptionalSecondary contact mobile phone.512-555-0102
contact2_work_phoneOptionalSecondary contact work phone.512-555-0103
statusOptionalVendor status at import time.

Accepted: Active, Hold, Inactive, New, NeedBankInfo, WaitingApproval

Active

Payment Type values

  • ACH — Standard ACH bank transfer (1–3 business days)
  • FedNow — FedNow instant payment (seconds, 24/7)
  • RTP — The Clearing House Real-Time Payment
  • RequestForCheck — System mails a physical check on your behalf

User Import

Onboard your team members with the right roles

User imports add team members to the system. Each user receives a welcome email with instructions to set their password. Role assignment determines what actions each user can take.

Field NameRequiredDescriptionExample
email RequiredUser's email address. Used for login and notifications. Must be unique.jane.smith@company.com
name RequiredUser's full display name.Jane Smith
role RequiredSystem role that controls permissions.

Accepted: Admin, Approver, Processor

Approver
phoneOptionalMobile phone number for SMS notifications.512-555-0100
departmentOptionalDepartment or team for organizational grouping.Finance
titleOptionalJob title.CFO

Role permissions

AdminFull access — manage users, vendors, banks, approve payments
ApproverReview and approve/reject payment batches
ProcessorCreate batches and import transactions; cannot approve their own batches

Bank Configuration Import

Connect originating financial institutions

Bank imports configure the financial institutions that originate your ACH and payment files. Each bank requires at minimum a name, ODFI routing number, and transmission method. SFTP connection details are required when the transmission method is SFTP.

Bank imports require Admin role. Incorrect routing numbers or SFTP credentials can prevent payments from being delivered. Double-check with your bank before importing.

Field NameRequiredDescriptionExample
name RequiredName of the bank or financial institution.First National Bank
odfi_routing RequiredODFI routing number (9 digits). This is the originating bank's ABA number.021000021
transmission_method RequiredHow ACH files are delivered to the bank.

Accepted: SFTP, Manual, API

SFTP
sftp_hostOptionalSFTP server hostname.sftp.firstnational.com
sftp_portOptionalSFTP port (default 22).22
sftp_usernameOptionalSFTP login username.ach_upload
sftp_remote_pathOptionalRemote directory path for file uploads./ach/incoming
company_idOptionalACH Company ID assigned by the bank (up to 10 characters).1234567890
company_nameOptionalACH Company Name as it appears on NACHA files (up to 16 characters).ACME CORP
default_payment_typeOptionalDefault payment rail for this bank.ACH

AI Extraction

How the system reads PDFs, images, and unstructured files

When you upload a PDF or image file (JPG or PNG) for a transaction import, the system uses AI to read and extract payment data automatically — no manual column mapping needed.

What it can read

  • Check run summary reports
  • Scanned payment vouchers
  • Invoice lists and remittance advice
  • Bank-generated payment summaries
  • Screenshots of spreadsheets
  • Multi-page PDFs

Limitations to be aware of

  • Poor scan quality reduces accuracy
  • Handwritten documents may not extract correctly
  • Very large PDFs may time out
  • Totals/subtotal rows may be included — review carefully
  • Always verify the Preview screen before confirming

How it works, step by step

  1. 1

    You upload a PDF or image file on the Import page.

  2. 2

    The system first tries to extract text directly from the PDF. If the file is a scanned image or the text extraction doesn't find transactions, AI vision is used to visually read the document.

  3. 3

    The AI identifies rows that look like payment transactions — payee name, amount, and date — and converts them to structured data.

  4. 4

    The Preview screen shows every extracted row. Rows the system is uncertain about are flagged. You can review and remove any incorrect rows before confirming.

  5. 5

    Only after you click Confirm are any records created in the system.

AI extraction is also used as a fallback for CSV and Excel files when the column names don't match any known format. In that case, the AI reads the header names and maps them to the correct fields automatically.

Tips & Troubleshooting

Common issues and how to resolve them

My file uploaded but shows 0 transactions

Check that the required columns (payee_name, amount, transaction_date) are present and spelled correctly. Download the template to see the expected column names. Also confirm the file has at least one data row below the header.

Amounts are importing as 0 or being skipped

Make sure amounts are numbers (not text). Currency symbols and commas are stripped automatically, but cells formatted as text in Excel may not parse correctly. Re-format the column as Number in Excel before exporting.

Vendors are showing as 'Not matched' in the preview

The system matches payee names to your vendor list by name similarity. If the name in the file is different from the vendor name in the system, it won't match. You can still confirm the import — unmatched transactions are imported with the payee name as-is and can be linked later. Providing a vendor_code in your file improves match accuracy significantly.

My Excel file isn't being read correctly

Make sure the data starts in the first row of the first worksheet and that row one is the header row. Remove any merged cells, title rows above the headers, or decorative formatting. Use the Download Template button as a starting point.

PDF extraction missed some rows

For best results, use PDFs with selectable text rather than scanned images. If extraction is incomplete, consider exporting to CSV or Excel from the source system instead. You can also add missing transactions manually after the batch is created.

I'm getting a 'missing required fields' error

The file must include payee_name (or an alias like company_name), amount, and transaction_date for transactions. For vendors, name and payment_type are required. Check the field tables above for all required fields and accepted aliases.

The import succeeded but some records were skipped

The result screen shows a count of skipped rows. Common reasons: amount was zero or negative, payee name was blank, or a duplicate record was detected. Skipped rows are listed in the result details.

What file size is supported?

Files up to 10 MB are supported. For very large files, split them into smaller batches of 500–1,000 rows each for best performance.

Still having trouble? Go back to Import and use the Download Template button to start from a correctly formatted file.