How can we help?

Using Nacha files


This article explains how to configure and use Nacha files for U.S. transactions within LoanPro. Secure Payments specifically uses unbalanced Nacha files, which display one-way transactions from your customers.

Adding a Nacha processor

A processor can be added through either LMS or Secure Payments. Some advanced settings relating to batching days and times are only found in Secure Payments.

  • For LMS:
    • Navigate within LMS to Settings > Company > Merchant > Secure Payments > BANK ACCOUNT/ACH (USA) > Add Processor. Select ‘NACHA’ from the ‘Processor Type’ dropdown menu. 
    • Enter the following information in the new window.
      • Processor name: The name you give to this Nacha processor to distinguish it from other Nacha processors.
      • Company name: Your company name in the way your bank has it on file.
      • Bank name: Name of your bank.
      • Bank routing/transit number: Routing or transit number for your bank.
      • Company EIN/Tax ID: Company’s Employer Identification Number or Tax Identification Number.
      • Company discretionary data: Allows your company to include codes significant only to you (e.g., a batch number for a specific Nacha file).
      • Cut off time: Hour of the day and the 15 minute increment when the batch will run, in Coordinated Universal Time (UTC).
      • Merge similar transaction: If two transactions are made on this Nacha processor with the same account number and routing number, they will merge into a single transaction.                         
    • Choose the settings you want for this processor.
      • Auto reversal: Select “Yes” if you want payments that are returned to be automatically reversed in LoanPro. 
      • Default processor: Select “Yes” if you want this processor to be the default for new AutoPays.
    • Once you've finished entering in the correct information, click the ‘Save’ button.
  • For Secure Payments:
    • Navigate to Secure Payments and then go to Processors > Bank Account/ACH (USA) > Natcha Batch Submission.  Click the plus sign button at the top right. 
    • Enter the needed information in the new window. Many of the settings on this page are the same as the ones in the LMS UI with only a few exceptions:
      • Export type: Choose whether the output file is a Nacha or CSV file.
      • Time zone: Select a time zone for the cutoff time. Time Zones will be updated automatically to reflect daylight savings time shifts.
      • Batching days: Choose what days the Nacha batch will generate by checking the correlating box. 
      • Exclude banking holidays: Checking this box will tell Secure Payments not to batch on banking holidays. The calendar icon allows you to customize dates to match your bank's holidays.
    • Click the ‘Save’ button when you're finished entering the information. 

NACHA Version 2 (V2)

NACHA file V2 is now available in Secure Payments. You can select your preferred file when you are configuring your processor settings. To select V2, navigate to Secure Payments > Processors > Bank Account/ACH > NACHA Batch Submission. From here, you can either set up a new processor or edit an existing one. Scroll down to the “File Version” drop down menu where you will be able to select V1 or V2.

To complete your selection, click “Save”.

Please note that V2 will automatically assign IDs starting with number 1 while V1 starts at 0. 

 

Automated Nacha file delivery

To enhance your operational efficiency, you can automatically generate encrypted Nacha files and deliver them to your bank’s SFTP site. When banks send return files, LoanPro can automatically update accounts and take servicing actions based on your business logic (like disabling AutoPays and contacting a borrower when payments fail).

Since each bank formats their return files differently, this process will require additional configuration time for each bank you submit files to. Reach out to your normal LoanPro contact to get started. You’ll need to provide us with some information:

  • Your bank’s SFTP site, where the file will be delivered.
  • The encryption credentials or PGP Key your bank will use.
  • An email address where LoanPro can send notifications when the Nacha file has been delivered.

From there, we can set up the automation to send encrypted Nacha files one whatever cadence you prefer. When banks send their return files (either in a .csv or .txt format), LoanPro can automatically update accounts.

Manually generating a Nacha file

If you prefer to manually generate and send Nacha files, you can download them in Secure Payments. On the ‘NACHA Files and History’ page, you can view your account's Nacha file history and generate new files. To generate a file, click the document icon in the top right of the page.

A window will display and allow you to select a processor from the ‘Processor’ dropdown. Once you have chosen the processor you want to generate a Nacha file for, click 'Generate'. This will generate a file that includes all recorded transactions for the processor since the last Nacha file was created. At this point, you are responsible to send the generated Nacha file to your bank so that transactions can be processed. If you don’t do anything with the file, no money will actually be deposited or withdrawn from your bank account.

If the export type of the processor for which you are trying to generate a file has been set to ‘None’, no file will be generated. To change the ‘Export Type’ field, navigate to Processors > Bank Account/ACH (USA) > NACHA BATCH SUBMISSION in your Secure Payments account and select the edit icon next to the processor.

When Nacha files are generated, any special character names will be scrubbed out. Accepted characters are numbers, letters (uppercase and lowercase) and the characters "-", "&", and ",".

 

“On Us” Processing

LoanPro also offers “On Us” Nacha processing. This feature will automatically identify any transactions that have the same routing number as the destination bank (i.e. your bank) and will split the transactions into two files. This eliminates the need to remove funds from borrowers who use your bank only to route them back to the same bank. To enable this feature navigate to Secure Payments > Processors > Bank Account/ACH (USA) > NACHA Batch Submission. From there you can add a new processor or edit an existing one. On the Add/Edit NACHA page, scroll down to ‘"On Us" Processing’ and use the drop down to enable.

Next, you'll enter the routing number(s) you want to classify as “On Us”. Select your Export Type and then click ‘Save’.

Nacha returns

Nacha's standards contain specific codes for returned payments, called "R-Codes" for short. To help make your automatic payment process as easy as possible, LoanPro lets you choose an action that the system should take depending on the R-Code.

Return codes

The table below lists all possible return codes.

Code

Description

R01

Insufficient funds

R02

Bank account closed

R03

No bank account/unable to locate account

R04

Invalid bank account number

R05

Improper Debit to Consumer Account

R06

Returned per Originating Depository Financial Institution (ODFI) request

R07

Authorization revoked by customer

R08

Payment stopped

R09

Uncollected funds

R10

Customer advises not authorized

R11

Check truncation entry return

R12

Branch sold to another RDFI

R13

RDFI not qualified to participate

R14

Representative payee deceased or unable to continue in that capacity

R15

Beneficiary or bank account holder deceased

R16

Bank account frozen

R17

File record edit criteria

R18

Improper effective entry date

R19

Amount field error

R20

Non-payment bank account (AKA Non-transaction account)

R21

Invalid company ID number

R22

Invalid individual ID number

R23

Credit entry refused by receiver

R24

Duplicate entry

R25

Addenda error

R26

Mandatory field error

R27

Trace number error

R28

Transit routing number check digit error

R29

Corporate customer advises not authorized

R30

RDFI not participant in check truncation program

R31

Permissible return entry (CCD and CTX only)

R32

RDFI non-settlement

R33

Return of XCK entry

R34

Limited participation RDFI

R35

Return of improper debit entry None

R36

Return of Improper Credit Entry (RCK) NACHA

R37

Source Document Presented for Payment NACHA

R38

Stop payment source document

R39

Improper Source Document / Source Document Presented for Payment

R40

Return of ENR Entry by Federal Government Agency (ENR only) NACHA

R41

Invalid Transaction Code (ENR only) NACHA

R42

Routing Number/Check Digit Error (ENR only) NACHA

R43

Invalid DFI Account Number (ENR only) NACHA

R44

Invalid Individual ID Number/Identification Number (ENR only) NACHA

R45

Invalid Individual Name/Company Name (ENR only)NACHA

R46

Invalid Representative Payee Indicator (ENR only) NACHA

R47

Duplicate Enrollment (ENR only) NACHA

R50

State Law Affecting RCK Acceptance NACHA

R51

The Amount of the RCK Entry was not Accurately Obtained from the Item NACHA

R52

Stop Payment on Item (adjustment entries) NACHA

R53

Item and ACH Entry Presented for Payment NACHA

R61

Misrouted Return NACHA

R62

Incorrect Trace Number NACHA

R63

Incorrect Dollar Amount NACHA

R64

Incorrect Individual Identification NACHA

R65

Incorrect Transaction Code NACHA

R66

Incorrect Company Identification NACHA

R67

Duplicate Return NACHA

R68

Untimely Return NACHA

R69

Multiple Errors NACHA

R70

Permissible Return Entry Not Accepted NACHA

R71

Misrouted Dishonored Return NACHA

R72

Untimely Dishonored Return NACHA

R73

Timely Original Return NACHA

R74

Corrected Return NACHA

R75

Return Not a Duplicate

R76

Non-Accepted of R62 Dishonored Return

R80

Cross-Border Payment Coding Error NACHA

R81

Non-Participant in Cross-Border Program NACHA

R82

Invalid Foreign Receiving DFI Identification NACHA

R83

Foreign Receiving DFI Unable to Settle NACHA

R84

Entry Not Processed by OGO NACHA

R85

Incorrectly Coded Outbound International Payment

R100

No R-Code Available. This is not an actual return code, but can be used when a return code is not available.

 
 

Automated transaction status updates

Since there are no bank integrations that provide information on if Nacha transactions have settled, Secure Payments cannot receive this information. To counteract this issue, Secure Payments provides a setting that lets users specify the number of days a Nacha transaction should remain in the ‘Processing’ status before it is automatically moved to the ‘Settled Successfully’ status. If payments are reversed or otherwise taken out of the ‘Processing’ status, they will not be moved to the ‘Settled Successfully’ status automatically.

To use this setting,

  1. Navigate to ‘Actions’ on the left navigation bar in Secure Payments.
  2. Click the settings icon for Nacha Payment Updates in the table. 
  3. This will open a popup window that shows the following explanation about when transaction statuses will be changed based on when the transactions are processed. Note when the explanation talks about a transaction being processed, this means that they are moved to a batch, which puts them in ‘Processing’ status.  
  1. Set the number of days that should elapse between the batching and the change of status to ‘Settled Successfully’. You can also choose whether the number of days is calendar days or banking days.
  2. Once you have entered the information, click ‘Save’. The transaction status update will now automatically occur.

Download past files

The search field provides the ability to find and download Nacha files that you have created in the past. With the search functionality, you can either search by keywords or by date.

Select the download button to download a generated Nacha file.

Build and submit Nacha files outside of Secure Payments

Some clients want to create and submit Nacha files to their banks themselves, instead of using Nacha files provided by Secure Payments. The reasons for doing this will vary, but they include retaining control of payment processing in-house, settling transactions to different bank accounts, or the need for specific information in the Nacha file that is not included in the file provided by Secure Payments. If you have a need to create your own Nacha files, it is still highly recommended to use Secure Payments' batching process to manage Nacha payments within LoanPro. 

If you would like to process Nacha payments entirely from LoanPro, you may use the following process.

To make the process clear, it will be broken down into the following steps:

  1. Create a payment custom field
  2. Pull a payment history report from LoanPro
  3. Create your Nacha file
  4. Mark payments included in the Nacha file as submitted in LoanPro

Create a Payment Custom Field

To learn how to create a custom field associated with payments, see our payment custom fields article.

The selection options for your custom field will be:

  1. Not Submitted
  2. Nacha Submitted
  3. Completed

Pull payments report

Send a POST request to this endpoint:

https://loanpro.simnang.com/api/public/api/1/Autopal.PaymentReport

When you pull the payments report, you will want only results where the payment custom field you created has a value of 1. Here is an example of a query you would use to get the correct results. To use this correctly, replace {customFieldId} with the ID of the custom field you created.

{
   "query": null,
   "reportOptions": {
       "method": "all",
       "type": "all",
       "status": "all",
       "reversereason": "all",
       "chargeOff": "all",
       "period": "other",
       "dateFrom": "",
       "dateTo": "",
       "changedPeriod": "tw",
       "changedDateFrom": "2017-11-12T00:00:01",
       "changedDateTo": "2017-11-15T23:59:59",
       "sourceCompanies": [
           {
               "id": ""
           }
       ],
       "portfoliosCriteria": "all",
       "splitPayments": "all",
       "dateEnteredPeriod": "other",
       "dateEnteredTo": "",
       "dateEnteredFrom": "",
       "customFields": {
           "{customFieldId}": "1"
       },
       "chargeOffRecovery": "all",
       "selectedPortfolios": [
       },
           {
               "category": "",
               "portfolio": "",
               "subportfolio": ""
           }
       ]
   }
}

Create a Nacha File

Creating a Nacha file is a complex process, as they have to be formatted in a very specific style. For that reason, we recommend using a software that specializes in building them; ask your success specialist and they can give you some options.

Mark payments as submitted

To make the payments as submitted, you’ll need to update the value of the custom field for all payments that were included in the Nacha file. To do this, you’ll first need to get the IDs for the custom field values that you want to update. This is best done using the following GET request. To use it, change {PaymentID} to the ID of the first payment for which you want to change a custom field value and {customFieldId} to the ID of the custom field you created.

GET https://loanpro.simnang.com/api/public/api/1/odata.svc/CustomFieldValues?$filter=entityType eq ‘Entity.Payment’ and entityId eq {PaymentID} and customFieldId eq {customFieldId}

This will retrieve the data for a single payment and will return something like this:

{
   "d": {
       "results": [
           {
               "__metadata": {
                   "uri": "https://local.fandora.com/api/public/api/1/odata.svc/CustomFieldValues(id=111)",
                   "type": "Entity.CustomFieldValue"
               },
               "CustomField": {
                   "__deferred": {
                       "uri": "CustomFieldValues(id=111)/CustomField"
                   }
               },
               "id": 111,
               "entityId": 100,
               "entityType": "Entity.Payment",
               "customFieldId": 25,
               "customFieldValue": 1
           }
       ],
       "summary": {
           "start": 0,
           "pageSize": 50,
           "total": 1
       }
   }
}

The id for the custom field value is labeled “id” in the response. To change the value, use the following request.

PUT https://loanpro.simnang.com/api/public/api/1/odata.svc/CustomFieldValues({customFieldId})

{
 "customFieldValue": "2"
}

This will update the custom field value to a value of “2” or Nacha Submitted, on the custom field for this payment. You will need to repeat this process for each payment that was included in the Nacha file.

Sample Nacha file

If your bank finds any errors in your Nacha file, you can use this sample file with line-by-line explanations to see what’s wrong and how to fix it. Read our article on how Nacha files work.


console.log(location);