Request Header
Verifying the origin of webhooks from GrailPay guarantees the authenticity of a webhook notification. Each request sent to your webhook URL will carry a header namedX-Caller-Auth
, containing the SHA256
encryption of your API key
. It is of utmost importance to authenticate this key in order to ascertain that the webhook request indeed originates from GrailPay.
Transaction Started Event
GrailPay offers a webhook that executes each time when a transaction has been successfully created and ACH has not been processed yet. The webhook payload structure is:Transaction Capture Started Event
GrailPay offers a webhook that executes each time when ACH has been processed The webhook payload structure is:Transaction Completed Event
GrailPay offers a webhook that executes each time when transaction has been completed. The webhook payload structure is:Transaction Canceled Event
GrailPay offers a webhook that executes each time when transaction has been canceled. The webhook payload structure is:Transaction Failed Event
GrailPay offers a webhook that executes each time the transaction has failed due to some reason. The webhook payload structure is:failed_reason
along with the corresponding R code in ‘ach_return_code’.
Code | Description |
---|---|
R01 | Insufficient funds |
R02 | Account closed |
R03 | No account or unable to locate account |
R04 | Invalid account number structure |
R05 | Unauthorized debit to consumer account using a corporate SEC code |
R08 | Payment stopped |
R10 | Customer advises originator is not known to receiver and/or originator is not authorized by receiver to debit receiver’s account |
R20 | Failed deposit |
Payout Failed
GrailPay offers a webhook that executes each time the payout (transfer money to payee) has failed due to some reason. The webhook payload structure is:Payout Completed
GrailPay offers a webhook that executes each time the payout (transfer money to payee) has been completed.- Please note that this event indicates that the payout has been sent on GrailPay’s end. It does not indicate that the money has been successfully delivered by the bank yet.
Clawback Started Event
GrailPay offers a webhook that execute each time when payout return has been initiated. A payout return occurs when a transaction fails (with a specific reason code) after the payout has already been initiated. The webhook payload structure is:Clawback Completed Event
GrailPay offers a webhook that execute each time when payout return has been completed.- Please note that this event indicates that the payout return has been sent on GrailPay’s end. It does not indicate that the money has been successfully delivered by the bank yet.
Clawback Failed Event
GrailPay offers a webhook that execute each time when payout return has been failed. The webhook payload structure is:Reverse Payout Started Event
GrailPay offers a webhook that execute each time when reverse payout has been processed. The webhook payload structure is:Reverse Payout Completed Event
GrailPay offers a webhook that execute each time when reverse payout has been completed. The webhook payload structure is:Reverse Payout Failed Event
GrailPay offers a webhook that execute each time when reverse payout has been failed due to some reason. The webhook payload structure is:Batch Payout Event
GrailPay offers a webhook that execute each time when batch payout has been initiated to processor. The webhook payload structure is:Bank Link Successfully
GrailPay offers a webhook that executes each time when a bank account has been linked successfully. The webhook payload structure is:Bank Link Failed
GrailPay offers a webhook that executes each time when a bank account has not linked due to some reason. The webhook payload structure is:Bank Account Removed
GrailPay offers a webhook that executes each time when a bank account has been deleted. The webhook payload structure is:Business Created
GrailPay offers a webhook that executes each time when a business account has created. The webhook payload structure is:Business Updated
GrailPay offers a webhook that execute each time when a business has updated The webhook payload structure is:Refund Pending
GrailPay offers a webhook that execute each time when refund request has been created. The webhook payload structure is:Refund Capture Started
GrailPay offers a webhook that execute each time when refund request has been started and Debit ACH has been initiated from payee’s or processor’s bank account. Note:- For individual payouts, GrailPay will create a debit ACH from the payee or processor for each refund request.
- For batch payouts, GrailPay will create a debit ACH from the processor for all refund requests of the day.
- In both cases, this webhook will be initiated for each refund request.
Refund Capture Completed
GrailPay offers a webhook that execute each time when Debit ACH has been completed from payee’s or processor’s bank account. The webhook payload structure is:Refund Capture Failed
GrailPay offers a webhook that execute each time when Debit ACH has been failed from payee’s or processor’s bank account. The webhook payload structure is:Refund Payout Pending
GrailPay offers a webhook that execute each time when Credit ACH has been initiated to payer’s bank account. The webhook payload structure is:Refund Payout Completed
GrailPay offers a webhook that execute each time when refund has been completed and fund has been sent to payer’s bank account. The webhook payload structure is:Refund Payout Failed
GrailPay offers a webhook that execute each time when Credit ACH has been failed to payer’s bank account. The webhook payload structure is:Batch Refund
GrailPay offers a webhook that execute each time when Debit ACH has been created from processor’s bank account. Note:- This webhook will initiated only when processor has been configured to batch payouts.
- GrailPay will create a debit ACH from the processor for all refund requests of the day.
Security
HTTPS
Your webhook URL in the GrailPay sandbox and production environment must be HTTPS or the webhook event will not be sent.Response and Retry Logic
You must respond with HTTP status code 200 OK to confirm that you have received and successfully processed the webhook request.- Table of Contents
-
- Transaction Started Event
- Transaction Capture Started Event
- Transaction Completed Event
- Transaction Canceled Event
- Transaction Failed Event
- Payout Failed
- Payout Completed
- Clawback Started Event
- Clawback Completed Event
- Clawback Failed Event
- Reverse Payout Started Event
- Reverse Payout Completed Event
- Reverse Payout Failed Event
- Batch Payout Event
- Bank Link Successfully
- Bank Link Failed
- Bank Account Removed
- Business Created
- Business Updated
- Refund Pending
- Refund Capture Started
- Refund Capture Completed
- Refund Capture Failed
- Refund Payout Pending
- Refund Payout Completed
- Refund Payout Failed
- Batch Refund
- Security
- Response and Retry Logic