Introducing our brand new Rules Engine —
Read the docs
LogoLogo
Core APIOther APIsChangelog
How-tos
How-tos
  • Introduction
  • Product discovery
    • Product listing page
    • Product page
  • Placing orders
    • Shopping cart
      • Creating a shopping cart
      • Adding products to cart
      • Updating cart quantities
      • Removing products from cart
      • Displaying the cart summary
    • Checkout
      • Adding the customer
      • Adding a billing address
      • Adding a shipping address
      • Selecting a shipping method
      • Selecting a payment method
      • Adding a payment source
      • Adding a gift card or coupon
      • Placing the order
    • Subscriptions
      • Configuring a subscription model
      • Selecting the source order
      • Generating the subscriptions
      • Updating the subscriptions
    • Payments
      • Adyen
        • Adding the payment source
        • Sending back the payment details
        • Configuring the notification webhooks
        • Reusing the payment source
      • Axerve
        • Adding the payment source
        • Updating the payment intent
      • Braintree
        • Adding the payment source
        • Sending back the payment method nonce
        • Accepting local payments
        • Reusing the payment source
      • Checkout.com
        • Adding the payment source
        • Getting the payment details
        • Refreshing pending transactions
        • Reusing the payment source
      • Klarna
        • Adding the payment source
        • Sending back the authorization token
        • Reusing the payment source
      • PayPal
        • Adding the payment source
        • Preparing the payment for execution
      • Stripe
        • Adding the payment source
        • Refreshing the payment source
        • Reusing the payment source
      • Manual payments
        • Adding a wire transfer payment source
      • External payments
        • Adding the payment source
        • Reusing the payment source
    • Auto-capture
      • Enabling the auto-capture
      • Limiting the auto-capture amount
  • inventory
    • Inventory strategies
      • No split
      • Split shipments
      • Split by line items
      • Ship from first available (or primary)
      • Ship from primary
  • FAQ
    • Environments and initial setup
    • Authentication and access tokens
On this page
  • Problem
  • Solution
  • Example
  • More to read
  1. Placing orders
  2. Payments
  3. Adyen

Configuring the notification webhooks

How to set up Adyen's notification system

PreviousSending back the payment detailsNextReusing the payment source

Last updated 2 years ago

Problem

You want to rely on Adyen's webhooks notification system, which is the only way can receive automatic updates about requests that are processed asynchronously (e.g. transactions or payment modifications — captures, voids, and refunds).

Solution

You can enable Adyen's notification system in two separate steps:

  1. on your Adyen's customer area.

  2. on Commerce Layer

1. Configure the notification webhooks

To configure the notification system, first you need to access your Adyen's customer area and follow the procedure detailed . On the Server configuration and Security sections, make sure to perform the following actions:

  • Copy the webhook_endpoint_url you'll get by into the URL field.

  • Select JSON as the method.

  • Select TLSv1.2 as the protocol.

  • Generate the HMAC key to verify the integrity of notifications and copy it.

Commerce Layer does not support the Adyen webhooks SOAP or HTTP methods, but the JSON one only.

2. Update your gateway

Once the notification webhooks are properly configured, you need to update your Adyen gateway and specify you're going to support the asynchronous notifications system.

To do that, send a PATCH request to the /api/adyen_gateway/:id endpoint, setting the async_api attribute as true and passing the HMAC key you generated in the previous step as the webhook_endpoint_secret value.

Example

The following request updates the Adyen gateway identified by the "HGFvfREwAX" ID in order to use the Adyen asynchronous APIs:

curl -g -X PATCH \
  'http://yourdomain.commercelayer.io/api/adyen_gateways/HGFvfREwAX' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer your-access-token' \
  -H 'Content-Type: application/vnd.api+json' \
  -d '{
  "data": {
    "type": "adyen_gateways",
    "id": "HGFvfREwAX",
    "attributes": {
        async_api: true,
        webhook_endpoint_secret: 'xxxx-yyyy-zzzz'
      }
    }
  }
}'

On success, the API responds with a 200 OK status code, returning the updated Adyen gateway object:

{
  "data": {
    "id": "HGFvfREwAX",
    "type": "adyen_payments",
    "links": {
      "self": "https://yourdomain.commercelayer.io/api/adyen_gateways/HGFvfREwAX"
    },
    "attributes": {
      "name":"Adyen 01",
      "live_url_prefix":"bdf1c25d-b4e3-4c97-a51c-105e35dcbe27-AdyenDemo",
      "async_api": true,
      "webhook_endpoint_secret": "xxxx-yyyy-zzzz",
      "webhook_endpoint_url":"http://core.commercelayer.dev/webhook_callbacks/adyen_gateways/HGFvfREwAX",
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": null,
      "reference_origin": null,
      "metadata": {}
    },
    "relationships": {
      "order": {
        "links": {...}
      }
    },
    "meta": {
      "mode": "test"
    }
  }
}

Be sure to enable webhooks on the Adyen dashboard as the very first step, and by the way always before setting the gateway's async_api attribute to true, otherwise you risk all of your payment modifications failing silently.

More to read

See our documentation if you need more information on how to or .

iDEAL
here
Configure the notification webhooks
Update your Adyen gateway
fetching the gateway via API
fetch
update an Adyen gateway