Netsuite Bank Feeds

Back to Bank Feeds

Setting up a Netsuite Bank Feeds Workflow with Rutter

Introduction

Rutter API enables you to support setting up Bank Feeds for your customers' accounting instances. This allows you to sync bank transaction data into the instance to enable reconciliation for an accountant which ensures the accuracy and validity of your customers' books.

  1. Connect to a business entity’s accounting system using Rutter Link. See Getting Started for more info on creating your first connection.
  2. Onboard your customers to Netsuite Bank Feeds to establish a connection between their bank account and their accounting instance.
  3. Continuously sync transaction data into the accounting instance to enable reconciliation.

Platform Setup

Data Sync Configuration

Make sure to include these Rutter Objects in your Data Sync Configuration through the Rutter dashboard.

  • Bank Feed Account
  • Bank Feed Transaction

Connect to the Accounting System

Embed Rutter Link into your application and walk through an end to end business authentication flow in order to create a new Connection. This Connection represents the business accounting system and contains an access_token used to read and write data for that instance.

Make your first connection in minutes

Follow our guide to get up and running

Explore Quickstart

Pre-requisites on your NetSuite Instance

Please reach out to Rutter if you'd like access to this feature after a Rutter connection has been established with your User's NetSuite instance.

Ensure your User's "AccountLink" NetSuite bundle is updated to at least Version 26. We will then configure your User's bundle with the required resources programmatically.

Please ask your Netsuite Users not to manually update or uninstall & reinstall the "AccountLink" bundle once we have configured the bundle as this will remove the resources required for this feature. If this happens, please reach out to Rutter and we will reconfigure the bundle for you.

Implementation Steps

Step 1: Create a Bank Feed Account

Creating a Bank Feed Account in a NetSuite instance accomplishes two things:

  1. A new Financial Institution is created in NetSuite with your organization’s name.
  2. A connection is established between the Financial Institution bank account and the specified GL account in NetSuite.

The GL account representing the bank account may already exist in NetSuite or may need to be created. You can use the LIST /accounts API to find the Rutter ID of an existing account, or the POST /accounts API to create a new one if needed.

Once set up, the new Financial Institution will appear in the "Financial Institutions List" tab in the NetSuite UI. The new Bank Feed Account will be visible under the "Format Profile" section. Any additional Bank Feed Accounts created later will be attached to the same Financial Institution and listed in the Format Profile. You can begin syncing Bank Feed Transactions after creating the first Bank Feed Account.

Financial Institution page example

Use Rutter’s POST /bank_feeds/accounts API endpoint to supply the bank accounts your customer would like to set up with a Bank Feed.

Example Create Bank Feed Account Request Body
1
{
2
"bank_feed_account": {
3
"account_id": "00000000-0000-0000-0000-000000000000",
4
"internal_bank_account_id": "0674101002388",
5
"parent_bank_feed_account_id": "00000000-0000-0000-0000-000000000000",
6
"transaction_start_date": "2023-02-02T00:00:00.000Z",
7
"bank_account_type": "bank",
8
"currency_code": "USD",
9
"name": "Regan's Bank Account",
10
"available_balance": 1546.23,
11
"bank_account_number": "182237382",
12
"current_balance": 1833.21,
13
"line_of_business": "small business",
14
"routing_number": "123456789",
15
"additional_fields": {
16
"override_existing": true
17
}
18
}
19
}

The feed_status field of the posted Bank Feed Accounts will be inactive to start. Once the first set of transactions has been synced (see Sync Bank Feed Transactions), the bank feed account will be activated in NetSuite and the feed_status field will be set to active.

Example Create Bank Feed Account Response Body
1
{
2
"bank_feed_account": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"account_id": "00000000-0000-0000-0000-000000000000",
5
"internal_bank_account_id": "0674101002388",
6
"parent_bank_feed_account_id": "00000000-0000-0000-0000-000000000000",
7
"last_statement_date": null,
8
"next_payment_date": null,
9
"transaction_start_date": "2023-02-02T00:00:00.000Z",
10
"bank_account_type": "bank",
11
"feed_status": "active",
12
"available_balance": 1546.23,
13
"available_credit": null,
14
"bank_account_number": "182237382",
15
"credit_limit": null,
16
"currency_code": "USD",
17
"current_balance": 1833.21,
18
"finance_charges": null,
19
"last_statement_balance": null,
20
"line_of_business": "small business",
21
"minimum_payment_amount": null,
22
"name": "Regan's Bank Account",
23
"next_payment_amount": null,
24
"past_due_amount": null,
25
"purchases_apr": null,
26
"routing_number": "123456789",
27
"last_synced_at": "2023-01-02T02:34:56.000Z",
28
// ...
29
}
30
}

Step 2: Sync Bank Feed Transactions

There are two ways that Netsuite ingests transactions from Rutter:

  1. Netsuite will automatically run a sync for the latest transactions for every active Bank Feed Account every 24 hours.
  2. The end user can click on the “Update Imported Bank Data” button in the “Match Bank Data” tab to trigger a manual sync for the latest transactions. Triggering a manual sync can only be done once per hour per GL account.

Once the bank transaction data has been successfully ingested by Netsuite, the end user can now reconcile the bank transactions against accounting transactions.

NetSuite Bank Feed Transactions can be seen in the “Match Bank Data” tab of the NetSuite UI, where it’s used by finance teams for reconciliation.

Match Bank Data page example

To sync transaction data for a Bank Feed Account, use the POST /bank_feeds/transactions API. We suggest syncing transactions every 24 hours, though this can be done at any frequency you prefer.

Example Create Bank Feed Transactions Request Body
1
{
2
"bank_feed_transactions": {
3
"bank_feed_account_id": "00000000-0000-0000-0000-000000000000",
4
"transactions": [
5
{
6
"transaction_id": "ACRAF23DB3C4",
7
"posted_at": "2023-02-02T02:34:56.000Z",
8
"amount": -300,
9
"description": "Office supplies",
10
"transaction_type": "debit",
11
"payee": "Office Depot"
12
}
13
]
14
}
15
}

After you have synced transactions to Rutter, NetSuite will ingest these transactions automatically at a 24 hour cadence. All Bank Feed Transactions contain a platform_ingested field which represents whether it has been successfully sent to the third party accounting system.

Example Create Bank Feed Transactions Response Body
1
{
2
"bank_feed_transactions": [
3
{
4
"id": "00000000-0000-0000-0000-000000000000",
5
"bank_feed_account_id": "00000000-0000-0000-0000-000000000000",
6
"transaction_id": "ACRAF23DB3C4",
7
"posted_at": "2023-02-02T02:34:56.000Z",
8
"amount": -300,
9
"description": "Office supplies",
10
"duplicate": false,
11
"payee": "Office Depot",
12
"platform_ingested": true,
13
"transaction_type": "debit",
14
"last_synced_at": "2023-01-02T02:34:56.000Z"
15
}
16
]
17
}

Transaction Syncing Rules

  1. Only sync transactions that have been marked as posted by the Financial Institution.
  2. transaction_id's within a list of transactions in a POST request must be unique, otherwise the input will be rejected. If you are unsure whether a transaction has been synced before in a previous POST request, you can still include the transaction in the request and Rutter will handle the deduplication. The POST response for an already synced transaction_id will include a duplicate: true field, as well as the data that was previously synced- the new input will not override the previously synced data.
  3. You must provide at least one transaction per sync request, and at max 1000.
  4. We suggest syncing transactions every 24 hours, though this can be done at any frequency you prefer.