PAD agreements
Send PAD agreements for approval for ACH processing.
The PAD agreement object
A pad
object is created and stored against a customers bank
object, as an indication that the banking details have been verified and payments using these details have been authorized by the customer. A PAD agreement can be created and authorized through a range of payment tools, such as HelcimPay.js, the ACH Payment API, or within the Customer section of your Helcim account.
A PAD agreement stores a number of core payment details for the customers bank authorization, including:
- Details on which bank account and customer the PAD agreement is for.
- A range of date values indicating when the PAD agreement was created, accepted, revoked, updated, and when the earliest debit from the bank account can occur.
- The status of the PAD agreement, indicating whether it i spending, has been accepted, or has been revoked.
// Example PAD agreement object
{
"pad": {
"id": 66051,
"accepted": 1,
"bankAccountId": 53443,
"customerId": 22745923,
"dateAccepted": "2024-07-04 11:16:44",
"dateCreated": "2024-07-04 11:16:44",
"dateEarliestDebit": "2024-07-04 11:16:44",
"dateRevoked": "0000-00-00 00:00:00",
"dateUpdated": "2024-07-04 11:16:44",
"ipAddress": "",
"merchantId": 208967,
"merchantAuthorized": 0,
"type": 1,
"status": 1
}
}
Creating a PAD agreement for a customer
A PAD agreement is created automatically by the Helcim system when a customer provides their bank account details for processing. How the PAD agreement is created will determine how the customer can approve the AD agreement.
Processing ACH Bank Payments
A PAD agreement is required in order to successfully process ACH bank payments.
ACH payments will remain in a pending status and not progress through settlement if processed against bank account details that have not been authorized by an approved PAD agreement.
Sending a PAD agreement to a customer
A PAD agreement will be sent to a customer, or can be approved by a customer, through the following methods.
- Using the Create bank account endpoint will trigger an email to the associated customer, if a valid billing address email exists in the
customer
object. - Using the Request bank account information from a customer endpoint will trigger an email to the relevant customer to enter their banking information and approve a PAD agreement at the same time.
- Integrating with HelcimPay.js to capture banking information, using a "verify" payment type with a payment method of "ach", will allow the customer to enter their banking information and approve a PAD agreement at the same time.
How to retrieve or update customer PAD agreements
Through the Customer API you can retrieve or update a PAD agreement for bankAccount
objects in the Helcim system. A single bank account could have one or more PAD agreements associated with it.
An approved PAD agreement is required in order to process ACH transactions against a customers bank account. If a PAD agreement does not exist for a bankAccount object, refer to the section on how to request bank account information from a customer to verify existing banking information in the Helcim system.
- The Get all PADS for a customer endpoint will return an array of all PAD agreements for all
bankAccount
objects associated with thatcustomer
object. - The Get a PAD by its ID endpoint will return a single PAD agreement object for a specific customer and bank account.
- The Update a PAD by its ID endpoint can be used to update a PAD agreement for a specific
bankAccount
object to authorize processing on that account.
Understanding PAD agreement responses
The retrieve and update PAD agreement endpoints will respond with an object array of pad
objects, or a single pad
agreement object.
Each PAD agreement has an accepted
property that indicates whether this specific agreement, for this specific bankAccountId
, was authorized by the customer.
Each PAD agreement has a status
property that indicates whether the this specific agreement, for a this specific bankAccountId
, is currently active or inactive.
- A PAD agreement that has been accepted by the customer will be active and have an
accepted
value of1
and astatus
value of1
. - A PAD agreement that has not been accepted by the customer will be inactive and have an
accepted
value of0
and astatus
value of2
. - A PAD agreement that was accepted, but was then later revoked or cancelled, will be inactive and have an accepted value of
1
and astatus
value of2
.
{
"id": 53735,
"accepted": 0,
"bankAccountId": 41992,
"customerId": 19411033,
"dateAccepted": "0000-00-00 00:00:00",
"dateCreated": "2024-03-14 16:51:40",
"dateEarliestDebit": "0000-00-00 00:00:00",
"dateRevoked": "0000-00-00 00:00:00",
"dateUpdated": "2024-03-14 16:57:19",
"ipAddress": "",
"merchantId": 208967,
"merchantAuthorized": 0,
"type": 2,
"status": 2
}
In order to process ACH transactions against a bank account successfully, there must be an
accepted
PAD agreement with an activestatus
.
PAD agreement endpoints
Retrieve and update a pad
object using the following endpoints.
Endpoint | Description |
---|---|
Get a PAD by its ID | Retrieve a single pad object, based on the customerId , bankAccountId , and padId . |
Get all PADS for a customer | Retrieve an array of pad objects, based on the customerId . |
Update a PAD by its ID | Update a range of parameters for a pad object, based on the customerId , bankAccountId , and padId . |
Updated 19 days ago