LoanPro

Using Nacha files

Learn how to batch process e-check payment in the United States.

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.
      • Immediate origin name: Customize your origin or check the box to ‘Use Company as Origin’.
      • Immediate origin: Customize your origin or check the box to ‘Use Company as Origin’.
      • 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.                         9add655057e0213736f99036e5edaf2bb7fd07de4de905354b9554804cd3c4ed.png
    • 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) > Nacha 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.
    • If you'd like to use the company as the origin, rather than a different source click the checkbox that says “Use Company as Origin”.
    • Click the ‘Save’ button when you're finished entering the information. 

9a6e3efd56f47cb319618273e31925b2b3fb444b6beefd22b6e501f8ceef7a60.gif

NACHA Version 2 (V2)

We've released an updated NACHA processor, now exclusively using the V2 file format for new configurations. When creating or configuring a new NACHA processor in Secure Payments, you'll find V2 as the sole option. Please note: All existing NACHA V1 processors will continue to be fully supported. For the rare instance where a new NACHA V1 is required, please contact LoanPro Support for assistance.

5a6e5a0409e15845584737858260aedd51b128ffcce02f72f1bde00c3de029b9.png

To complete your selection, click “Save”.

The adjustments made in NACHA V2 involve minor modifications to two fields within the file structure. Specifically, the batch number, which was fixed at '0' in V1, is now '1' in V2. Additionally, the sequence of trace numbers, which initiated at '0' in V1, now commences at '1' in V2.

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 on 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.

4b9038984fb64138917c754cd648f15b901e1d037a21f52314cd455dd6eeee40.png

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.

ee1b58f0654e5b5d80c52a9d055d0b1b0932e1474497d9a0ec64dd2f00bc7eb8.png

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.

CodeDescription
R01Insufficient funds
R02Bank account closed
R03No bank account/unable to locate account
R04Invalid bank account number
R05Improper Debit to Consumer Account
R06Returned per Originating Depository Financial Institution (ODFI) request
R07Authorization revoked by customer
R08Payment stopped
R09Uncollected funds
R10Customer advises not authorized
R11Check truncation entry return
R12Branch sold to another RDFI
R13RDFI not qualified to participate
R14Representative payee deceased or unable to continue in that capacity
R15Beneficiary or bank account holder deceased
R16Bank account frozen
R17File record edit criteria
R18Improper effective entry date
R19Amount field error
R20Non-payment bank account (AKA Non-transaction account)
R21Invalid company ID number
R22Invalid individual ID number
R23Credit entry refused by receiver
R24Duplicate entry
R25Addenda error
R26Mandatory field error
R27Trace number error
R28Transit routing number check digit error
R29Corporate customer advises not authorized
R30RDFI not participant in check truncation program
R31Permissible return entry (CCD and CTX only)
R32RDFI non-settlement
R33Return of XCK entry
R34Limited participation RDFI
R35Return of improper debit entry None
R36Return of Improper Credit Entry (RCK) NACHA
R37Source Document Presented for Payment NACHA
R38Stop payment source document
R39Improper Source Document / Source Document Presented for Payment
R40Return of ENR Entry by Federal Government Agency (ENR only) NACHA
R41Invalid Transaction Code (ENR only) NACHA
R42Routing Number/Check Digit Error (ENR only) NACHA
R43Invalid DFI Account Number (ENR only) NACHA
R44Invalid Individual ID Number/Identification Number (ENR only) NACHA
R45Invalid Individual Name/Company Name (ENR only)NACHA
R46Invalid Representative Payee Indicator (ENR only) NACHA
R47Duplicate Enrollment (ENR only) NACHA
R50State Law Affecting RCK Acceptance NACHA
R51The Amount of the RCK Entry was not Accurately Obtained from the Item NACHA
R52Stop Payment on Item (adjustment entries) NACHA
R53Item and ACH Entry Presented for Payment NACHA
R61Misrouted Return NACHA
R62Incorrect Trace Number NACHA
R63Incorrect Dollar Amount NACHA
R64Incorrect Individual Identification NACHA
R65Incorrect Transaction Code NACHA
R66Incorrect Company Identification NACHA
R67Duplicate Return NACHA
R68Untimely Return NACHA
R69Multiple Errors NACHA
R70Permissible Return Entry Not Accepted NACHA
R71Misrouted Dishonored Return NACHA
R72Untimely Dishonored Return NACHA
R73Timely Original Return NACHA
R74Corrected Return NACHA
R75Return Not a Duplicate
R76Non-Accepted of R62 Dishonored Return
R80Cross-Border Payment Coding Error NACHA
R81Non-Participant in Cross-Border Program NACHA
R82Invalid Foreign Receiving DFI Identification NACHA
R83Foreign Receiving DFI Unable to Settle NACHA
R84Entry Not Processed by OGO NACHA
R85Incorrectly Coded Outbound International Payment
R100No 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.  

0dd261a4357d4e3f631ded1181ace829cbe428d06e97f3c8924a846a64ac08b7.png

  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.

eb53d4921b377a17bc91789a84016831cf315ffb9732705ee035edecab196d2f.png

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.