Webhooks

Neon Pay sends webhook notifications to alert applications when data is created or updated. These notifications contain useful data; your application should listen for these and update their own records as appropriate.

Webhook Workflow

Webhook notifications are sent as a POST request with a JSON body to the Webhook URL you specify. The body of these webhooks does not contain the details of the webhook; merely that the trigger has occurred. Here's an example of the body:

{
  "notification_id": 12454,
  "type": "merchant.created",
  "created_at": "2019-02-11 15:13:38"
}

An application listens for webhooks, then query Neon Pay’s Notifications API to retrieve the details using the notification_id provided in the webhook body.

The Notifications API can also be queried at any time to retrieve any past notifications. If desired, an application can ignore the webhooks entirely and simply poll the Notifications API for updates.

Types of Webhooks

Webhook Description
bank_account.created A bank account has been created.
bank_account.updated A bank account has been updated.
bank_account.deleted A bank account has been deleted.
charge.succeeded A charge was successfully processed.
charge.updated A charge was updated (includes becoming authorized or captured).
charge.requested A charge was requested (not yet authorized or captured).
charge.processing A previously authorized charge was captured.
charge.canceled A previously authorized charge was canceled.
charge.updated A charge has been updated.
charge.refunded A charge has been refunded.
refund.requested A refund has been requested.
refund.updated A refund has been updated.
refund.processing A refund is processing.
refund.refunded A refund has been completed.
refund.failed A refund has failed.
dispute.created A dispute has been created.
dispute.closed A dispute has been resolved and closed.
dispute.won A dispute has been resolved and won on behalf of the merchant.
dispute.lost A dispute has been resolved and lost on behalf of the merchant.
dispute.updated A dispute has been updated. Typically this happens when evidence is provided or a processor submits new information.
payout.created A payout has been created.
payout.failed A payout has failed.
payout.returned A payout was attempted but failed/returned to merchant.
payout.processed A payout was successful and paid out to the merchant.
merchant.created A new merchant account was created.
merchant.updated A merchant account was updated.
merchant.failed A merchant account could not be verified and requires additional information to be submitted.
merchant.boarded A merchant account is verified and ready to transact.
organization.referred An organization has been created with a referrer_id in the /organization/register route. This webhook will include the client_id and state if passed in the URL to /register.
token.updated A payment token's information was updated. Namely useful for recurring charges.