Onboard a Person
The first step in using GrailPay is onboarding new or existing persons to create user accounts. GrailPay will then return a UUID, which serves as the unique identifier for each person, to be used for further requests. Please note that only one person can be created per request.
The registration information typically includes details such as the user’s email, phone, address etc.
GrailPay offers a service to connect customer bank accounts with the GrailPay Bank Link Widget. Please refer to your client agreement if this service is included in your service package.
Account/Routing Validation
GrailPay supports account and routing number validation to prevent failed transactions and fund reversals. This validation is performed by setting the validate_account_routing
flag to true when onboarding a person with a custom bank account
Validation Results:
- valid: The account and routing number are valid, and the person is added successfully.
- invalid: The account or routing number is invalid, and the person is not added to the GrailPay application. This returns an HTTP response code - 406
- not_validated: Validation could not be completed, but the person is still added to the GrailPay application.
Billing
GrailPay’s API supports associating specific billable events with a particular merchant, enabling precise attribution for billing purposes. This feature allows you to link the UUID of a user tied to a merchant (a business that has undergone KYB verification) to the billing event recorded for the API call.
To attribute the billing event to a merchant, include the following parameter in your request payload:
- billing_merchant_user_uuid: The unique identifier (UUID) of the user associated with the merchant to whom this billable event should be attributed.
By leveraging this parameter, you can ensure accurate and detailed tracking of billable events across your integrations.
Endpoint
POST /3p/api/v1/register/person
Request Payload
Fields | Type | Is Required | Description |
---|---|---|---|
first_name | string | ||
last_name | string | ||
string|unique | |||
phone | string | without prefix +1 | |
client_reference_id | string | ||
billing_merchant_user_uuid | string | no | The UUID of the user associated with the merchant that should be associated with the billable event that is created when onboarding a new person |
address.line_1 | string | ||
address.line_2 | string | ||
address.city | string | ||
address.state | string(2) | ||
address.zip | string | must consist of 5 digit without any special character | |
bank_account.plaid.access_token | string | Plaid user access token | |
bank_account.plaid.account_id | string | Plaid user account id | |
bank_account.custom.account_number | string | Bank account number maximum of 17 characters | |
bank_account.custom.routing_number | string | Bank account routing number 9-digit ABA routing transit number associated with the account without any special character | |
bank_account.custom.account_name | string | Name of account in bank | |
bank_account.custom.account_type | string | Bank account type Possible values: savings checking | |
bank_account.custom.account_routing_validation | bool | No | Perform validation on the account and routing number. If validation fails, the person will not be created. |