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 all debits or all credits) 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 |
A closer look
Cost-efficient bulk payments – You can bundle up to 200 payments in a single call and save. Batched payments must be of the same type.
Send now or later – You can send same-day payments or schedule them up to 60 days in advance. Bulk payments can have a mix of processing dates.
Separate processing – Payments sent or collected don’t appear in Online Banking for Business and cannot be modified once submitted. However, deletions and reversals are available in ACH Fraud Control.
Real-time tracking – Request on-demand status updates for your created payments or get automatic alerts by API, email or text message using our Push Notifications API. Payments are tracked up until the time they leave BMO, but potential issues at the other bank are also covered.
Easy reconciliation – You can subscribe to an automatic end-of-day report showing individual transactions that were offset by a consolidated PEP+ Generated settlement entry. This allows you to easily reconcile ACH settlements with their individual ACH entries.
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 one or more batches with a combined total of up to 200 payments within the same call. They must all be credits, but you can include a mix of 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 submit one or more batches with a combined total of up to 200 payments within the same call. They must all be debits, but you can include a mix of 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.
Request
Code Samples
Headers
Body
Get ACH Company ID list
ACH Company IDs act as an alias for your BMO accounts and ACH payment types that can be used. This is an optional call to retrieve the list of available ACH Company IDs that have received consent for API use in .json format.
Note: This API endpoint is currently not available for testing in our Sandbox and Pre-Production environments.