When adding new ACH payment methods, Exact uses Plaid to validate the bank account information provided before a payment can be made. Both Merchants and Partners planning using the API to create ACH payments must integrate with Plaid to verify a customer's banking information.
Instructions
Follow the instructions on Plaid’s quick start guide:
Documentation | Plaid
Choose Ruby as the language for the samples
Once you have the app up and running, click the Plaid Link and go through the steps to add a bank account
Click the
/auth/get/
endpoint and verify that you see your account details:
Stop the app.
Download and apply the attached
patch.diff
file at the end of this article .Rebuild/restart the app.
Again, add a bank account, and this time you should see an additional section for a Processor Token:
Send that request and record the token.
Send the
/auth/get
request again and record the account number, the routing number and the account type, if present.Go to Postman and create an ACH payment method:
POST /account/{{accountId}}/payment-method
{
"type": "ach",
"billingDetails": {
"name": "Plaid Test",
"businessName": "Plaid Test",
"email": "[email protected]",
"address": {
"line1": "21 Jump Street",
"city": "Beverley Hills",
"state": "CA",
"country": "USA",
"postalCode": "90210"
}
},
"ach": {
"routingNumber": "011401533",
"accountNumber": "1111222233331111",
"bankAccountType": "savings",
"plaidToken": "processor-sandbox-2f1066d8-140d-47b2-bea0-bbbc56f7a515"
}
}
And the response should indicate that the account is verified:
{
"type": "ach",
"token": "241b3b8c-95a2-429f-8376-3da8ba913992",
"updatedAt": "2023-09-14T04:46:20.612Z",
"createdAt": "2023-09-14T04:46:20.613Z",
"billingDetails": {
"email": "[email protected]",
"name": "Plaid Test",
"businessName": "Plaid Test",
"address": {
"city": "Beverley Hills",
"country": "USA",
"line1": "21 Jump Street",
"postalCode": "90210",
"state": "CA"
}
},
"ach": {
"bankAccountType": "savings",
"verified": true,
"lastFour": "1111"
}
}
Find the customer in Dwolla Sandbox:
"id": "00eacb82-1581-4447-9990-a97ca35d1223",
"firstName": "Plaid",
"lastName": "Test",
"email": "[email protected]",
"type": "unverified",
"status": "unverified",
"created": "2023-09-14T04:20:20.557Z",
"businessName": "Plaid Test",
"correlationId": "secure-65028a04429c4c1bf7bdb187"
One verified checking account:
"id": "280a01ee-793d-4d1a-b160-d141975abdda",
"status": "verified",
"type": "bank",
"bankAccountType": "checking",
"name": "FundSrc 07099726-091c-41d6-beab-9f0cd5db73c4",
"created": "2023-09-14T04:20:25.301Z",
"removed": false,
"channels": [
"ach",
"real-time-payments"
],
"bankName": "SANDBOX TEST BANK",
"fingerprint": "9b6744931e9db6a27af5fdd9f065880bc21cd45fdcfee9d83a7c27bd35af2b49"
And another verified savings account:
"id": "5c6a983e-86fc-4d75-a82e-1335583fa5f4",
"status": "verified",
"type": "bank",
"bankAccountType": "savings",
"name": "FundSrc 241b3b8c-95a2-429f-8376-3da8ba913992",
"created": "2023-09-14T04:46:22.240Z",
"removed": false,
"channels": [
"ach",
"real-time-payments"
],
"bankName": "SANDBOX TEST BANK",
"fingerprint": "ac07032c81148bd80b3854c5893dc693e78abe6981ebebaaf1460553841dd2be"
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article