Payment webhooks

Webhooks allow your server to automatically receive notifications about events in our system. Instead of periodically polling the API, you configure one endpoint and we send you an HTTP request for each important event.

To connect webhooks, you need:

  1. Create an HTTPS endpoint that accepts JSON requests.
  2. Send us the URL of this endpoint.
  3. Choose which events you want to receive.
  4. Accept and test webhook.

How it works in general

  1. An event occurs in our system (for example, a payment is created or its status has changed).
  2. We form a webhook notification in the form of an HTTP POST request with a JSON host.
  3. We send a request to your endpoint.
  4. Your server handles the request and responds with 2xx (usually 200) if it is successful.
Possible payment events
Reason
Event
Action
Outcome
To get information about a successful authorization of funds on the customer’s account.
charge_authorize
authorize
The funds are placed on hold in the customer’s account; a new subscription is created or the existing subscription is renewed.
To get information about a successful capture of funds from the customer’s account.
charge_capture
capture
The previously held funds are debited from the customer’s account; a new subscription is created or the existing subscription is renewed.
To get information about a successful withdrawal of funds from the customer’s account.
charge_settle
settle
The funds are debited from the customer’s account and transferred to the merchant’s account; a new subscription is created or the existing subscription is renewed.
curl -X POST \
    https://pal-test.adyen.com/pal/servlet/BalanceControl/v1/balanceTransfer \
    -H 'content-type: application/json' \
    -H 'x-api-key: YOUR_API_KEY' \
    -d '{"amount":{"value":50000,"currency":"EUR"},"description":"Your description for the transfer","fromMerchant":"MerchantAccount_NL","toMerchant":"MerchantAccount_DE","type":"debit"}'
Webhook-request format
Attribute
Type
Requirement
Description
Standard
type
string
mandatory
Type of event.
There will always be a charge.
-
action
string
mandatory
Indicates event (charge_authorize, charge_settle, etc)
-
merchant
string
mandatory
Merchant's name
-
chargeData
object
mandatory
Contains charge details
-