Integrating ACH Processing with your Application

Step 1: Create a Profile for the Entity you want to transact with

Whenever you want to transact with a Person or Organization, you will need to create a Profile for them within the OpenTransact API.

See the API Docs for Create Profile for more information on the required attributes and options.

Step 2: Add an Address to the Profile (optional for ACH)

Once the profile is created you may want to add an address to the profile. Addresses are not required by default for ACH processing, but may be required by verification services, or the risk management requirements for your processing partner.

See the API Docs for Create Address for more information on the required attributes and options.

Step 3: Add an Account to the Profile

The final bit of information required to make ACH transactions is adding an Account to the Profile. For ACH transactions youll need to send parameters for an Account of type BankAccount.

See the API Docs for Create Account for more information on the required attributes and options.

Optionally, integrate our Javascript SDK, and Create a Client Token to let your users directly submit Account information to our API without sensitive data hitting your servers.

Step 4: Ensure the account becomes active.

If your application on OpenTransact is configured with a rule for activating accounts, it will be run after the account is created. This may involve checking a third party service or database to ensure the account is valid. Once complete, the account will be updated and either be in the active or invalid state. You can only create transactions with an active account.

Step 5: Create a transaction.

Once you have an active account of type BankAccount on your profile you can now create ACH transactions against that account. If you are sending money to the recipient you will want to set the transaction-type attribute to credit. If you want to receive funds from the account, you will set it to debit.

See the API Docs for Create Transaction for more information on the required attributes and options.

Step 6: Monitor the Activity Stream for updates to the transaction status.

Based on the payment provider you have chosen to connect or the bank where you are processing ACH transactions, the transactions you create will be submitted for processing. When successful, they will move into the processed state and when unsuccesful, they will move into the processing_failed state

See the API Docs for List Activities for more information.

Step 7: Monitor the Activity Stream for Returns and NOCs.

ACH transactions are never truly final. While the state of the transaction will move to processed, this just means that the bank has received it and will process it. The transaction can still fail for a multitude of reasons, which you can read about in the list of ACH Return Codes. Additionally, when there are minor errors in the data submitted, banks may process the transaction if able, and then respond with a Notificaiton of Change (NOC), which will contain info for correcting the minor errors. For this reason you must continuously monitor the activity stream for AchReturn and AchNotificationOfChange objects related to the transactions you have processed. When a Return occurs, the transaction will in essence have been reversed by the bank/processor, when a NOC occurs, you must alter the information you have on file to correct the error. If you are vaulting account data in OpenTransact, rules can be configured to automatically resolve NOC errors.

See the API Docs for List Activities for more information.