Productfy logoLog In



ACH refers to Automated Clearing House which is the traditional form of moving money between banks in the United States. Through our simple API you can allow your customers to move money between bank accounts. All ACH users must go through our KYC process, and must have valid linked accounts through our Account Linking process to be able to transact. Productfy creates properly formatted ACH files to be processed by our partner bank and handles ACH return processing on your behalf. You can choose whether to send the ACH as same-day or standard, see our ACH Implementation Guide for more details on processing times. Also note, same-day ACH carries increased risk of an ACH return after the initial ACH request has been settled, since it can settle on the same day but a return due to insufficient funds won't show up until the next day.

Initiate Fund Transfer

Transfers funds between accounts, currently the API does not support two-legged ACH transfers between two external accounts. If either the source or destination account is an external account, an ACH Transfer Request will be created and the ledger will be updated accordingly. Otherwise, if both accounts are internally managed accounts, the fund transfer will occur on the Productfy ledger without needing to create an ACH Transfer.

The transfer request will first be verified by our approval rule engine before being sent to the ACH network. If it does not pass, the field achTransferRequestDto.approvalRuleEvaluationResults.approved will be returned as false and the request will not be submitted to the network. Further details on the failure reason can be seen in the fields achTransferRequestDto.approvalRuleEvaluationResults.failureDetails and achTransferRequestDto.approvalRuleEvaluationResults.ruleDescription.

Initiate ACH Transfer

Submit the transaction amount, and which accounts the money should move from and to in this API to get the ACH transfer process started.

If you are testing in a test environment, any transfers where the last non-zero digit is an odd number (ex. 1, 2.21, 10, 20.01) will end in a failed ACH state whereas if the last non-zero digit is an even number (ex. 2, 1.02, 5.12) will succeed. This only occurs in simulation mode and only after the normal validation rules are applied.

Cancel ACH Transfer

Cancel an ACH transfer request. This can only be done before the ACH transfer request is validated.

Get ACH Transfer Requests

Retrieve ACH transfer requests based on various parameters, such as the transfer request ID, account ID, person ID, or status.

To find the status or reason for an ACH transfer failure, pass in the parameter achTransferRequestIds and ask for approvalRuleEvaluationResults in the response returns to display all the details pertaining to the failure.