ACH Payments
Our ACH Payments API is a quick, cost-effective way to send and collect domestic and international payments from the U.S. You can submit batches of up to 200 payments at any time and track them with real-time status updates.
Overview
Limits: | $99,999,999/payment 200 payments/call (must be same type) Up to 60 days in advance Unlimited calls |
Countries: | U.S., Mexico and Panama USD only (local currency conversion at destination) |
Speed: | Same day (available until 2 p.m. CT for payments within the U.S.) 2 business days (standard ACH and IAT) |
Cut-off times (business days): | Same-day ACH payments 2:00 p.m. CT Standard ACH and IAT payments 8:00 p.m. CT |
Endpoints Summary
Payload encryption
For security reasons, all requests to and responses from our Payments APIs need to be encrypted. For detailed instructions, have a look at our encryption process.
Send payments
To reduce the number of necessary calls, you can submit a batch of up to 200 payments within the same call. They must be of the same type (ACH credits or IAT credits), but you can mix current and scheduled payments (up to 60 days in the future).
Create your payments (Pain.001) by providing the type and all mandatory details as outlined in the Specifications document at the top. As a best practice, we recommend first sending a $0 prenote transaction and confirming a successful payment status before sending the actual amount. Our API supports both $0 prenotes and microdeposits of less than $1, but they need to be submitted as independent transactions. For added certainty, we also recommend the use of our Account Validation API.
Once submitted, we'll validate your payments and respond with the results (Pain.002). If there are no issues, we'll process your payments. No approvals are required.
Note: Payments don't appear in Online Banking for Business and cannot be modified once submitted. However, deletions and reversals are available in ACH Fraud Control.
Request
Code Samples
Headers
Body
Collect payments
You can also collect payments in bulk to reduce the number of necessary calls. You can bundle up to 200 payments in a single batch as long as they are of the same type (ACH debits or IAT debits), but you can mix current and scheduled payments (up to 60 days in the future).
Create your payments (Pain.008) by providing the type and all mandatory details as outlined in the Specifications document at the top. It's required to first submitting a $0 prenote transaction and confirming a successful payment status before collecting the actual amount. Our API supports both $0 prenotes and microdeposits of less than $1, but they need to be submitted as independent transactions. For added certainty, we also recommend the use of our Account Validation API.
Once submitted, we'll validate your payments and respond with the results (Pain.002). If there are no issues, we'll process your payments. No approvals are required.
Note: Payments don't appear in Online Banking for Business and cannot be modified once submitted. However, deletions and reversals are available in ACH Fraud Control.
Request
Code Samples
Headers
Body
Get payment status
Check the latest status for your sent payments (CAMT.005). This call returns the current status of a particular payment batch (Pain.002) up until it leaves BMO. Please check our table below for more information about the possible statuses that can be returned.
Note: Instead of checking manually, you can also request automatic alerts by API Webhook, email or text message using our Push Notifications API.