Documentation

Add Bank Account

A bank account plays an important role in GrailPay's transaction processing between the payer and payee. When using the registration API, you have the option to include the user's bank account information along with their personal information.

If, for some reason, the bank information was not provided during the registration API process, you can still request to add the bank account information for the person or business using this API. Additionally, if the existing bank account information for the person or business is not accessible in GrailPay, you can add new bank account information through this API.

This API includes a path parameter <user_uuid>, which refers to the unique identifier of the registered business or individual that was obtained from the registration API.

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 adding a bank account to an existing user.

Validation Results:

  • valid: The account and routing number are valid, and the account is added successfully.
  • invalid: The account or routing number is invalid, and the account is not added to the GrailPay application. This returns an HTTP response code - 406
  • not_validated: Validation could not be completed, but the account is still added to the GrailPay application.


Endpoint

   /3p/api/v1/bank-account/{user_uuid}

 

Request Payload

{
	"custom": {
	    "account_number": "12345678901234",
	    "routing_number": "056008849",
	    "account_name": "Jack Jones",
	    "account_type": "checking", 
	    "valid_account_routing": true
	}
}
FieldsTypeIs RequiredDescription
plaid.access_tokenstringPlaid user access token
plaid.account_idstringPlaid user account id
custom.account_numberstringBank account number

maximum of 17 characters
custom.routing_numberstringBank account routing number

9-digit ABA routing transit number associated with the account
custom.account_namestringName of account in bank
custom.account_typestringBank account type

Possible values:
savings
checking
validate_account_routingbooleanNoPerform validation on the account and routing number.

If validation fails, the account will not be added.

Response Object

{
    "status": true,
    "message": "Bank account has been added.",
    "data": {
        "uuid": "9bb541c4-05bc-48f8-8bcd-fd0fe5c903d7",
        "account_number": "12345678901234",
        "routing_number": "056008849",
        "account_name": "Jack Jones",
        "account_type": "checking",
        "aggregator_type": "manual",
        "created_at": "2024-04-02 03:19:07",
        "is_default": true,
        "valid_account": "valid"
    },
    "errors": []
}
{
    "status": true,
    "message": "We found a matching bank account associated with your account.",
    "data": {
        "uuid": "9bb541c4-05bc-48f8-8bcd-fd0fe5c903d7",
        "account_number": "12345678901234",
        "routing_number": "056008849",
        "account_name": "Jack Jones",
        "account_type": "checking",
        "aggregator_type": "manual",
        "created_at": "2024-04-02 03:19:07",
        "is_default": true
    },
    "errors": []
}

Errors & Warnings

CodeMessage
401
403
406The account or routing number provided is invalid
422