Commercial account holders at the Royal Bank of Canada (RBC) can stay on top of receivables—who has paid and who still owes them—through ACH Direct Payments, RBC Express Incoming Wires Reporting, Electronic Chargeback, Corporate Creditor Bill Payment Service, and Whole Lockbox. For a developer, working with any of these systems is a challenge but none poses more difficulties than ACH Direct Payments.
As if the absence of pre-built SDKs wasn’t a challenge in itself, for some unfathomable reason the RBC decided to go a step further and complicate things even more by not providing a sandbox environment and an API interface. So when a Canadian client asked us to integrate ACH Direct Payments with his website so he could accept recurring payments, we knew we had an uphill task in front of us. Nonetheless, we accepted the challenge. Two months later the system is up and working without a hitch.
Yet another successful and on-time delivery. Yet another happy client. But we wanted more this time… for you. So we asked our star developers, who worked on integrating ACH Direct Payments with a website, to share three techniques that will make future developers’ job easier.
If you have a Canadian client wanting to collect payments from her customers on a regular basis through the RBC’s ACH Direct Payments, reading these three tips can save you hours of frustration.
Technique 1: Keep Things Simple
The RBC provides five connectivity methods and accepts three data formats.
Data File Formats
1. RBC Express File Transfer
2. Secure FTP ?
3. Connect: Direct Secure+
4. A/P Link / Receivables Link
1. Flat Files ?
2. EDI Files
3. XML Files
In our experience, Secure FTP is the simplest way to connect to the RBC’s servers and Flat Files is the most straightforward format.
In fact, for our implementation, we opted for Secure FTP (SFTP) and if you choose SFTP, like us, you will need an IP, a username, a password, and a port to connect. As to the data files, they will be uploaded and stored on the RBC server. The server will then process your input files to create a report data file. The report data file will be placed in a different folder on the same server.
Technique 2: Understand Data Files
Payments in the RBC environment are handled through input data files, one type for receiving and the other for transferring the funds. An input data file is divided into separate sections some of which store the file’s purpose and identify its type. Each file has at least four kinds of records:
1. Routing Record
2. Header Record
3. Basic Payment Record
4. Trailer Record
Although the data layout in the files has been standardized by the RBC (https://www.rbcroyalbank.com/ach/cid-212260.html
), the absence of samples and references still pose a challenge in formatting. To ease things, we have created a short guide explaining Input Data files
Technique 3: Stick to the Data File Structure on the RBC Server
Data files are uploaded and stored on the RBC server for processing. The input files are stored in /inbound and the output data—that is produced after server processing—is kept in /outbound/AAPA or /outbound/AAPD; the exact location dependant on whether the input file is a credit or a debit.
This overview of the directory structure will help you create a mental map:
Working with ACH Direct Payments is not easy. Keep things simple. Stick with the simplest connectivity method and file format, take time to understand Data File structure, and follow the data file structure on the RBC server. It will reduce the probability of bugs sneaking in and you can deliver the project in time.