Section V.1

Overview

NetSuite's Electronic Bank Payments (EBP) SuiteApp enables organizations to automate the generation of bank payment files for vendor payments, employee expenses, customer refunds, and customer collections.

Key Capabilities

NetSuite's Electronic Bank Payments (EBP) SuiteApp enables organizations to automate the generation of bank payment files for vendor payments, employee expenses, customer refunds, and customer collections. Instead of manually entering payment information into your bank's portal, you generate standardized files that can be uploaded directly.

  • EFT (Electronic Fund Transfer) - Pay vendors, employees, and partners electronically
  • Direct Debit (DD) - Collect payments from customers by debiting their bank accounts
  • Positive Pay (PP) - Generate check verification files for fraud prevention
  • Payment Notifications - Automatically notify payees when payments are processed
  • Bank Reconciliation - Import and match bank statements (BAI2, OFX, CAMT.053)
Create Payment Batch Approve Batch Generate File Upload to Bank Send Notifications
ℹ️ How EBP Works

Electronic Bank Payments generates payment files in formats your bank understands (NACHA, ISO 20022, etc.). NetSuite does not process payments directly - you must download the generated file and upload it to your bank's payment portal for actual fund transfer.

Supported File Formats

Format Region Use Case
ACH - CCD/PPD (NACHA) US Standard vendor/employee payments
ACH - CTX US Payments with extended remittance info
SEPA Credit Transfer (pain.001) EU Euro-zone vendor payments
SEPA Direct Debit (pain.008) EU Euro-zone customer collections
ISO 20022 INTL International wire transfers
BAI2 US Bank statement import/reconciliation
Section V.2

Prerequisites & Installation

Required features, bundle installation, and initial configuration for Electronic Bank Payments.

Required Features

Before installing EBP, enable these features in your NetSuite account:

Setup Company Enable Features

  • Accounting Tab: Multi-Currency (if paying in multiple currencies)
  • Transactions Tab: Advanced PDF/HTML Templates (required for custom notifications)
  • SuiteCloud Tab: Client SuiteScript, Server SuiteScript

Bundle Installation

Tutorial: Installing Electronic Bank Payments

1
Install the License Client

Navigate to Customization > SuiteBundler > Search & Install Bundles

Search for Bundle ID: 116144 (NetSuite SuiteApps License Client)

Click Install. This manages your EBP license.

2
Install Electronic Bank Payments

Search for Bundle ID: 533070 (Electronic Bank Payments)

Alternative free bundle: 308852 (basic NACHA functionality only)

Click Install and accept the terms.

3
Configure Preferences

Navigate to Payments > Setup > Electronic Payments Preferences

Configure your default settings for payment processing.

4
Verify Installation

Navigate to Payments > Setup > Payment File Templates

You should see standard templates for ACH, SEPA, and other formats.

⚠️ License Requirements

The free bundle (308852) provides basic NACHA file generation. For advanced features like custom templates, ISO 20022, Direct Debit, and enhanced notifications, you need an Electronic Bank Payments license. Contact your NetSuite account manager.

Section V.3

Roles & Permissions

Required permission sets for EBP functions and segregation of duties best practices.

EBP requires specific permissions for different functions. Here are the key permission sets:

Permission Level Description
Electronic Bank Payment Files Full Generate and manage payment files
Payment Approval Full Approve payment batches
Bank Details Full Create/edit company and entity bank records
Payment File Templates View/Full View or modify payment file templates
Electronic Payments Preferences Full Configure system-wide EBP settings
💡 Segregation of Duties

For proper internal controls, separate the roles of payment creator (who initiates payment batches) from payment approver (who authorizes them). This prevents a single person from creating and approving payments.

Tutorial 1

Setting Up Company Bank Details

Company bank details define your organization's bank accounts from which payments will be made. This is the foundation of your EBP configuration.

Creating a Company Bank Record

1
Navigate to Bank Details

Payments Setup Bank Details New

Select "Company" as the entity type if prompted.

2
Enter Basic Information

Name: A descriptive name (e.g., "Operating Account - Wells Fargo")

GL Bank Account: Select the corresponding bank account from your Chart of Accounts

The subsidiary and currency will auto-populate based on the GL account.

3
Configure Bank Identification

Bank Name: Your bank's official name

Routing Number (ABA): 9-digit routing/transit number

Account Number: Your account number

Account Type: Checking or Savings

4
Configure EFT Template Details

On the EFT Template Details subtab:

Bank File Template: Select your payment format (e.g., ACH - CCD/PPD)

Company ID: Usually "1" + your EIN (e.g., 1123456789)

Immediate Origin: Typically same as Company ID

Immediate Destination: Your bank's routing number

5
Configure Positive Pay (Optional)

On the Positive Pay Template Details subtab:

Bank File Template: Select your bank's Positive Pay format

Account Number: May require leading zeros (check bank requirements)

6
Save the Record

Click Save. Your company bank is now ready for payment processing.

🚨 Important: Bank Record Creation

Always create company bank records using the Payments > Setup > Bank Details page. Do NOT create them via SuiteScript APIs or CSV Import - this can cause validation and field sourcing issues.

NACHA File Field Reference

Field Format Description
Immediate Origin 10 characters Typically "1" + Company Tax ID (no dashes)
Immediate Destination 10 characters Bank routing number with leading space
Company ID 10 characters "1" + EIN (provided by your bank)
Company Name 16 characters Your company name (truncated if longer)
Tutorial 2

Configuring Vendor Bank Details

Each vendor (or employee/partner) who will receive electronic payments needs bank details configured on their record.

Adding Bank Details to a Vendor

1
Open the Vendor Record

Lists Relationships Vendors

Find and edit the vendor you want to configure for electronic payments.

2
Set the Default Payables Account

Go to the Financial subtab.

Set the Default Expense Account or Default Payables Account.

🚨 Critical

The Default AP Account MUST be set for EFT payments to work. This is the most common setup error.

3
Navigate to Electronic Payments

Click the Electronic Payments subtab on the vendor record.

Click New Bank Detail to add a bank account.

4
Enter Bank Information

Name: Descriptive name for this bank account

Bank Name: Vendor's bank name

Routing Number: 9-digit ABA routing number

Account Number: Vendor's account number

Account Type: Checking or Savings

Payment File Template: Must match your company bank template

5
Configure Email for Notifications

On the vendor's main record, locate the Email Address for Payment Notification field.

Enter one or more email addresses (separate multiple addresses with semicolons).

Maximum: 300 characters

6
Save the Vendor Record

Click Save. The vendor is now configured for electronic payments.

💡 Bulk Import Tip

For many vendors, use CSV Import with record type "Bank Detail" (not "Entity Bank Detail"). This allows you to import bank information for multiple vendors at once. Include the internal ID of each vendor in your import file.

Tutorial 3

Generating NACHA/ACH Payment Files

Complete process of paying vendor bills via ACH, from bill approval to file generation.

ℹ️ NACHA Format Overview

NACHA (National Automated Clearing House Association) is the US standard for ACH payments. Common formats include:

  • CCD (Cash Concentration or Disbursement) - B2B payments
  • PPD (Prearranged Payment and Deposit) - Employee/individual payments
  • CTX (Corporate Trade Exchange) - Payments with extended remittance data

End-to-End ACH Payment Process

1
Ensure Bills Are Approved

ACH payments can only be generated for approved vendor bills.

Transactions Payables Enter Bills

Verify bills have Approval Status = "Approved" before proceeding.

2
Create a Bill Payment Batch

Payments Electronic Payments Bill Payment Processing

Or: Payments > Pay Bills (Electronic)

3
Configure Batch Settings

Bank Account: Select your company bank account

Processing Date: The date the bank should process the payment (typically next business day)

Subsidiary: If applicable, select the paying subsidiary

4
Select Bills to Pay

The system displays all approved bills with EFT-enabled vendors.

Check the boxes next to bills you want to include in this payment batch.

Tip: Use filters to narrow by due date, vendor, or amount.

5
Review Aggregation Setting

Aggregate by Payee:

  • Checked = One payment per vendor (combines multiple bills)
  • Unchecked = One payment per bill (separate transactions)

Most organizations prefer aggregated payments to reduce bank fees.

6
Submit for Approval

Click Create Batch or Submit.

If approval routing is enabled, approvers receive email notifications.

7
Approve the Batch

Payments Payment Processing Bill Payment Batches

Open the pending batch and click Approve.

Bills are marked as "Paid" once the batch is approved and processed.

8
Download the Payment File

Payments Payment Processing Payment File Administration

Locate your batch and click Refresh to complete processing.

Click the link in the File Reference field to download the NACHA file.

9
Upload to Your Bank

Log into your bank's business portal and navigate to ACH/Wire upload.

Upload the downloaded .txt or .ach file.

Review the batch in your bank portal and authorize if required.

10
Send Payment Notifications (Optional)

From Payment File Administration, click Send Email Notification.

See Tutorial 4 for detailed notification configuration.

🎯 Consultant Tip: NACHA 2021 Security Rules

Starting 2021, NACHA requires sensitive data protection. Enable encryption in NetSuite:

Payments Setup Electronic Payments Preferences

Check the Apply NACHA Rules box (Administrator role required). This encrypts ACH account numbers in storage and hides them in view mode.

Tutorial 4

Sending Payment Notifications

Configure and send payment notifications to vendors, employees, and customers when electronic payments have been processed.

Configuring Payment Notification Settings

1
Access Electronic Payments Preferences

Payments Setup Electronic Payments Preferences

Click Edit to modify the settings.

2
Configure Email Notification Settings

Navigate to the Email Notification subtab.

Enable Email Notification: Check this box

Vendor Payment Template: Select "Standard Vendor Payment" or your custom template

Customer Payment Template: Select "Standard Customer Payment" for refund notifications

Employee Payment Template: Select template for expense reimbursements

3
Set the Return Email Address

From Email Address: Enter the email address that notifications should come from

Example: payments@yourcompany.com

This email must be configured as an authorized sender in your NetSuite account.

4
Configure CC/BCC Options (Optional)

CC Email: Additional recipients for all notifications

BCC Email: Hidden recipients (useful for AP department records)

5
Save Preferences

Click Save to apply your notification settings.

Sending Notifications After Payment Processing

1
Navigate to Payment File Administration

Payments Payment Processing Payment File Administration

Locate the processed payment batch you want to notify on.

2
Open the Payment File Record

Click on the payment file to open the record details.

Verify the file status is "Processed" before sending notifications.

3
Send Email Notifications

Click the Send Email Notification button.

NetSuite will send emails to all payees with configured email addresses.

4
Verify Notification Status

The Payment File Administration record shows notification status.

Check the Email Notification Sent column to confirm delivery.

💡 Multiple Email Addresses

To send notifications to multiple people at a vendor, enter multiple email addresses in the Email Address for Payment Notification field on the entity record, separated by semicolons. Example: ap@vendor.com;cfo@vendor.com

Standard Email Template Content

The default "Standard Vendor Payment" template includes:

  • Payment amount and currency
  • Payment date (effective date)
  • Payment reference/transaction number
  • List of invoices/bills included in the payment
  • Your company name and address
Tutorial 5

Customizing Email Templates

Customize payment notification emails with additional information, branding, or PDF attachments.

ℹ️ Template Technologies

NetSuite email templates use FreeMarker template language for merge fields. You can also create Advanced PDF/HTML Templates for formatted PDF attachments.

Creating a Custom Payment Notification Template

1
Navigate to Email Templates

Documents Templates Email Templates New

2
Configure Template Settings

Name: Give your template a descriptive name (e.g., "Custom Vendor Payment Notification")

Subject: Email subject line - can include merge fields

Example: Payment Notification: ${payment.tranid} - ${payment.total}

3
Design the Email Body

Use the rich text editor or switch to HTML mode for full control.

Include merge fields using FreeMarker syntax: ${fieldname}

4
Save and Test

Save the template and test with a sample payment.

Update the Electronic Payments Preferences to use your new template.

Common Merge Fields for Payment Notifications

Payment Record Fields:
${payment.tranid}           - Payment transaction number
${payment.trandate}         - Payment date
${payment.total}            - Payment amount
${payment.currency.symbol}  - Currency symbol
${payment.memo}             - Payment memo

Payee (Vendor) Fields:
${entity.entityid}          - Vendor ID
${entity.companyname}       - Vendor company name
${entity.email}             - Vendor email

Company Fields:
${companyinformation.companyname}    - Your company name
${companyinformation.address1}       - Company address
${companyinformation.city}           - Company city
${companyinformation.state}          - Company state
${companyinformation.zip}            - Company ZIP

Applied Transactions (Bills Paid):
<#list payment.apply as applied>
  ${applied.doc}            - Bill/Invoice number
  ${applied.total}          - Bill amount
  ${applied.amount}         - Amount applied
</#list>

Sample Custom Template

<html>
<body style="font-family: Arial, sans-serif;">
  <div style="max-width: 600px; margin: 0 auto;">
    <h2 style="color: #059669;">Payment Confirmation</h2>

    <p>Dear ${entity.companyname},</p>

    <p>We have processed a payment to your account with the following details:</p>

    <table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
      <tr>
        <td style="padding: 8px; border: 1px solid #ddd;"><strong>Payment Reference:</strong></td>
        <td style="padding: 8px; border: 1px solid #ddd;">${payment.tranid}</td>
      </tr>
      <tr>
        <td style="padding: 8px; border: 1px solid #ddd;"><strong>Payment Date:</strong></td>
        <td style="padding: 8px; border: 1px solid #ddd;">${payment.trandate}</td>
      </tr>
      <tr>
        <td style="padding: 8px; border: 1px solid #ddd;"><strong>Amount:</strong></td>
        <td style="padding: 8px; border: 1px solid #ddd;">${payment.currency.symbol}${payment.total}</td>
      </tr>
    </table>

    <h3>Invoices Included in This Payment:</h3>
    <table style="width: 100%; border-collapse: collapse;">
      <tr style="background: #f0f0f0;">
        <th style="padding: 8px; border: 1px solid #ddd; text-align: left;">Invoice #</th>
        <th style="padding: 8px; border: 1px solid #ddd; text-align: right;">Amount</th>
      </tr>
      <#list payment.apply as applied>
      <tr>
        <td style="padding: 8px; border: 1px solid #ddd;">${applied.doc}</td>
        <td style="padding: 8px; border: 1px solid #ddd; text-align: right;">${applied.amount}</td>
      </tr>
      </#list>
    </table>

    <p style="margin-top: 20px;">
      Please allow 2-3 business days for the funds to appear in your account.
    </p>

    <p>If you have questions, contact us at accounts.payable@yourcompany.com</p>

    <p>Thank you for your business,<br>
    ${companyinformation.companyname}</p>
  </div>
</body>
</html>

Adding PDF Attachments

To include a formatted PDF remittance advice with your email notification:

1
Enable Advanced PDF/HTML Templates

Setup Company Enable Features SuiteCloud

Check Advanced PDF/HTML Templates

2
Create or Customize PDF Template

Customization Forms Advanced PDF/HTML Templates

Customize the "Vendor Payment" or "Bill Payment" template.

3
Link to Email Template

In your email template, check Attach Transaction PDF.

The system will automatically generate and attach the PDF.

🎯 Consultant Tip: Template File Location

Standard EBP email templates are stored in the File Cabinet under:

Documents Files SuiteBundles Bundle [ID] Templates

To modify standard templates, copy them to a new location and edit the copy. Never modify files in the SuiteBundles folder - they may be overwritten during upgrades.

Tutorial 6

Direct Debit Customer Collections

Pull funds directly from customer bank accounts to settle outstanding invoices, common for subscription businesses and recurring services.

⚠️ Authorization Required

Direct debit requires a signed authorization from the customer (often called a "Direct Debit Mandate" or "ACH Authorization Form"). Ensure you have this documentation before processing any debits.

Setting Up Direct Debit

1
Configure Customer Bank Details

Edit the customer record and navigate to Electronic Payments subtab.

Click New Bank Detail and enter the customer's bank information.

Payment File Template: Select a Direct Debit template (e.g., ACH - PPD for US)

2
Set Customer Payment Method

On the customer's Financial subtab:

Default Payment Method: Select "Direct Debit" or "ACH"

Terms: Configure appropriate payment terms

3
Create Invoices

Create invoices as normal. Invoices for DD-enabled customers will be eligible for direct debit collection.

4
Process Direct Debit Collection

Payments Electronic Payments Invoice Payment Processing

Or: Payments > Generate Customer Payment Files

5
Select Invoices to Collect

The system displays eligible invoices for customers with DD bank details.

Select invoices and configure the processing date.

Click Create Batch.

6
Download and Submit File

After approval, download the DD file from Payment File Administration.

Upload to your bank for processing.

Optionally send customer notifications.

ℹ️ SEPA Direct Debit Limits

When using SEPA Direct Debit templates, note that NetSuite limits each payment run to 1,500 transactions (vs. 5,000 for other payment types). For larger batches, split into multiple payment files.

Tutorial 7

Positive Pay Fraud Prevention

Protect your organization from check fraud by providing your bank with a list of issued checks for verification.

Issue Checks in NetSuite Generate PP File Upload to Bank Bank Validates Presented Checks

Configuring Positive Pay

1
Verify Company Bank Setup

Payments Setup Bank Details

Edit your company bank record and go to the Positive Pay Template Details subtab.

2
Select Positive Pay Template

Bank File Template: Select your bank's PP format

Options include: Generic Positive Pay, Bank of America, Wells Fargo, etc.

3
Configure Account Number Format

Some banks require specific formatting:

  • Bank of America: 12 digits with leading zeros
  • Wells Fargo: Check bank requirements

Enter the account number exactly as your bank requires.

4
Save Configuration

Click Save on the company bank record.

Generating Positive Pay Files

1
Navigate to Positive Pay

Payments Cheques Positive Pay

2
Select Check Transactions

The system displays all eligible check transactions.

Select the checks to include in the Positive Pay file.

This typically includes newly issued checks since your last file.

3
Include Voided Checks

If you've voided any checks, include them in the file.

This tells the bank to reject these check numbers if presented.

4
Generate and Download

Click Generate File.

Navigate to Payment File Administration to download.

Upload to your bank's Positive Pay portal.

💡 Daily Practice

Best practice is to generate and upload Positive Pay files daily after each check run. Most banks require the file to be uploaded before checks are presented. A check presented without being in the Positive Pay file may be automatically rejected or flagged for manual review.

Tutorial 7B

Financial Institution Records Setup

Configure Financial Institution records for bank statement imports, expense report data, and connecting to banks and card providers.

ℹ️ Two Implementation Approaches

User-Created Records: Manually create Financial Institution records and configure format profiles. Requires the Financial Institution Records permission with Full access level.

SuiteApp Provisioned: Install Bank Feeds or Auto Bank Statement Import SuiteApps to get pre-configured institution records with read-only settings. Enables direct bank connectivity.

Understanding Format Profiles

Each Financial Institution record contains one or more Format Profiles that define how data is imported. A format profile specifies:

  • Profile Type: Bank Reconciliation or Employee Expense Reports
  • Connectivity Method: Manual upload, SFTP, or direct bank connection
  • Transaction Parser: The format parser (BAI2, OFX, MT940, CAMT.053, etc.)

Creating a Financial Institution Record

1
Navigate to Financial Institutions

Setup Accounting Financial Institutions New

2
Enter Institution Details

Name: Bank or card company name (e.g., "Wells Fargo", "American Express Corporate")

URL: Institution's website (optional, for reference)

Inactive: Leave unchecked

3
Save the Record

Click Save. You must save before adding format profiles.

Adding a Bank Reconciliation Format Profile

1
Access Format Profiles

View the Financial Institution record.

Go to the Format Profile: Configuration subtab.

Click Add.

2
Configure Profile Settings

Name: Descriptive name (e.g., "Wells Fargo - BAI2 Import")

Profile Type: Bank Reconciliation

Connectivity: File-Based (for manual upload) or SFTP

Transaction Parser: Select the appropriate format:

  • BAI2: US bank standard
  • OFX: Open Financial Exchange
  • MT940: SWIFT format (international)
  • CAMT.053: ISO 20022 standard
3
Save the Profile

Click Add to save the format profile.

Then save the Financial Institution record.

Adding an Expense Report Format Profile

1
Create Profile for Corporate Cards

On the same Financial Institution (or create a new one for your card provider):

Profile Type: Employee Expense Reports

Connectivity: File-Based or direct connection (if supported)

2
Select Card Parser

Choose the parser that matches your card provider's export format.

Common corporate card formats include CSV exports from American Express, Visa Commercial, etc.

3
Map to Employee Records

After setup, corporate card transactions can be imported and linked to employees for expense reporting.

💡 Related SuiteApps

Consider these SuiteApps for enhanced functionality:

Bank Feeds: Direct bank connectivity for automatic statement retrieval
Auto Bank Statement Import: Scheduled automatic imports via SFTP
Bank Statement Parsers: Additional parser formats for regional banks

Required Permissions

Permission Level Purpose
Financial Institution Records Full Create and edit institution records and format profiles
Import Bank Data Full Upload and process bank statement files
Match Bank Data Full Run reconciliation matching
Tutorial 8

Bank Reconciliation with BAI2

Automated bank statement import and reconciliation using BAI2, OFX, MT940, and CAMT.053 formats.

Setting Up Bank Statement Import

1
Create a Financial Institution Record

Setup Accounting Financial Institutions New

Name: Your bank's name (e.g., "Wells Fargo")

URL: Bank's website (optional)

2
Create a Format Profile

On the Financial Institution record, click View mode.

On the Format Profile: Configuration subtab, click Add.

Name: Descriptive name (e.g., "Wells Fargo - BAI2")

Profile Type: Bank Reconciliation

Parser: Select BAI2 (or OFX/CAMT.053 as needed)

3
Configure BAI2 Mapping

After saving, go to the Parser Configuration subtab.

Map your NetSuite GL bank accounts to the account numbers in your BAI2 file:

  • 02 Record - Originator ID: Bank routing number
  • 03 Record - Account Number: Your account number
  • GL Account: NetSuite bank account
4
Link to GL Account

Edit your bank GL account and go to the Bank Import Mapping subtab.

Enter the same routing and account numbers to enable automatic linking.

Importing and Matching Bank Data

1
Download Statement from Bank

Log into your bank and download the statement in BAI2 format.

Save the file to your computer.

2
Upload to NetSuite

Transactions Bank Banking Import History Upload File

Select your file and click Upload.

NetSuite will parse and import the transactions.

3
Run Auto-Match

Transactions Bank Match Bank Data

Select the bank account and click Run Reconciliation Rules.

NetSuite's intelligent matching will pair bank transactions with GL transactions.

4
Handle Unmatched Transactions

Review unmatched items and either:

  • Manually match to existing transactions
  • Create new transactions (for bank fees, interest, etc.)
  • Create auto-create rules for recurring items
5
Reconcile the Account

Transactions Bank Reconcile Bank Statement

Complete the formal reconciliation process.

ℹ️ Supported BAI2 Banks

NetSuite's BAI2 parser supports major US banks including Wells Fargo, Bank of America, US Bank, TD Bank, JP Morgan Chase, and others. Each bank may have slight variations in their BAI2 format - configure the parser mapping accordingly.

Tutorial 9

ISO 20022 and SEPA Payments

International standard for financial messaging, used extensively in Europe (SEPA) and increasingly adopted worldwide.

SEPA Credit Transfer (pain.001)

ISO 20022 is the international standard for financial messaging, used extensively in Europe (SEPA) and increasingly adopted worldwide for cross-border payments.

Used for outbound Euro payments within the Single Euro Payments Area. NetSuite provides standard templates for multiple European countries.

Country Template Name
AustriaSEPA (Austria) Pain.001.001.02
BelgiumSEPA Credit Transfer (Belgium)
FranceSEPA Credit Transfer (France)
GermanySEPA Credit Transfer (Germany)
NetherlandsSEPA Credit Transfer (ABN AMRO)
UKSEPA Credit Transfer (HSBC)

Configuring SEPA Payments

1
Install Localization Assistant (if needed)

For SEPA v2019 formats, install the Localization Assistant SuiteApp.

Customization SuiteBundler Search & Install Bundles

2
Configure Company Bank for SEPA

Edit your company bank record.

On the EFT Template Details subtab:

Bank File Template: Select appropriate SEPA template

IBAN: Enter your IBAN

BIC/SWIFT: Enter your bank's BIC code

3
Configure Vendor Bank Details

For each European vendor, enter:

IBAN: Vendor's IBAN

BIC/SWIFT: Vendor's bank BIC code

Payment File Template: Match to company template

4
Process SEPA Payments

Follow the same workflow as NACHA payments (Tutorial 3).

The generated file will be in pain.001 XML format.

SEPA Direct Debit (pain.008)

For collecting payments from European customers:

  • Requires customer mandate reference
  • Limited to 1,500 transactions per batch
  • Enable Use Advanced SEPA DD Sorting for optimal performance
⚠️ SEPA Template Updates

After upgrading to EBP 2019.2 or later, custom SEPA DD templates require updates to the sorting logic. Check your template configuration if you encounter errors when creating payment batches.

Tutorial 10

Automating File Transfers with SFTP

Automate the file transfer process using SFTP instead of manually downloading and uploading payment files.

ℹ️ Automation Options

NetSuite provides the N/sftp module for scripted file transfers. Major banks like Wells Fargo, Citi, and Silicon Valley Bank support SFTP uploads. Alternatively, third-party connectors can simplify the setup.

SFTP Configuration Overview

  1. Obtain SFTP credentials from your bank (host, username, SSH key)
  2. Store credentials securely in NetSuite (password fields or Secrets Management)
  3. Create a SuiteScript using N/sftp to connect and upload files
  4. Schedule the script to run after payment batches are processed

Sample SuiteScript for SFTP Upload

/**
 * @NApiVersion 2.1
 * @NScriptType ScheduledScript
 */
define(['N/sftp', 'N/file', 'N/search', 'N/log'], function(sftp, file, search, log) {

    function execute(context) {
        // SFTP Connection Details
        var connection = sftp.createConnection({
            username: 'your_username',
            passwordGuid: 'your_password_guid', // Stored securely
            url: 'sftp.yourbank.com',
            hostKey: 'your_host_key'
        });

        // Find latest payment file
        var fileSearch = search.create({
            type: 'file',
            filters: [
                ['folder', 'is', 'PaymentFiles'],
                'AND',
                ['created', 'within', 'today']
            ]
        });

        fileSearch.run().each(function(result) {
            var fileObj = file.load({ id: result.id });

            // Upload to bank SFTP
            connection.upload({
                directory: '/incoming/payments/',
                filename: fileObj.name,
                file: fileObj,
                replaceExisting: true
            });

            log.audit('File Uploaded', fileObj.name);
            return true;
        });
    }

    return { execute: execute };
});
🎯 Security Best Practices
  • Use SSH keys instead of passwords when possible
  • Store credentials using NetSuite's Secrets Management
  • Restrict access to SFTP scripts to authorized roles only
  • Log all file transfers for audit purposes
  • Implement error handling and alerting for failed transfers
Reference

Payment File Formats Reference

Detailed structure reference for NACHA/ACH, ISO 20022, and BAI2 file formats.

NACHA/ACH Format Structure

NACHA files consist of batched records:

Record Type Code Description
File Header1File-level information (origin, destination)
Batch Header5Batch-level info (company, SEC code)
Entry Detail6Individual payment records
Addenda7Additional payment details (optional)
Batch Control8Batch totals and counts
File Control9File totals and counts

Pad Blocks: Files must be in blocks of 10 lines; unused rows contain "9999..."

ISO 20022 XML Structure

pain.001 (Credit Transfer) key elements:

  • <GrpHdr> - Group Header (message ID, creation date)
  • <PmtInf> - Payment Information (debtor details)
  • <CdtTrfTxInf> - Credit Transfer details (creditor, amount)

BAI2 Import Format

Bank statement import structure:

  • 01 Record: File Header
  • 02 Record: Group Header (bank routing)
  • 03 Record: Account Identifier
  • 16 Record: Transaction Detail
  • 49 Record: Account Trailer
  • 98 Record: Group Trailer
  • 99 Record: File Trailer
Reference

Troubleshooting

Solutions for common EBP issues including file generation failures, bank rejections, and notification problems.

Common Issues

Payment file generation fails

  • Verify vendor has bank details with matching payment file template
  • Check vendor's Default AP Account is set on Financial subtab
  • Ensure bills are approved before attempting payment
  • Verify company bank EFT template is configured

Bank rejects NACHA file

  • Confirm Company ID format matches bank requirements
  • Check routing numbers are valid 9-digit ABA numbers
  • Verify account numbers don't exceed length limits
  • Ensure processing date is a valid business day

Email notifications not sending

  • Verify Email Notification is enabled in Electronic Payments Preferences
  • Check entity has email in "Email Address for Payment Notification" field
  • Confirm From email address is authorized in NetSuite
  • Check email template is properly configured

BAI2 import account matching fails

  • Verify 02/03 record mapping in Format Profile matches file
  • Check GL account's Bank Import Mapping subtab configuration
  • Ensure account numbers match exactly (including leading zeros)
💡 File Validation

Before uploading to your bank, validate NACHA files using free tools like NachaTech. This helps catch formatting issues before they cause bank rejections.

Reference

Resources

Official documentation, community resources, and tools for Electronic Bank Payments.