Adyen-for-platform icon

Online donations using Adyen Giving

Enable your users to accept online donations from shoppers using Adyen Giving.

View source
Read more

Giving logo Learn about Adyen Giving on your payment terminals.

With Adyen Giving, your users can give shoppers the option to donate to a nonprofit organization as part of their online purchase. When a shopper chooses to donate, the donation is processed as a separate transaction. Adyen covers all fees and the donation amount is transferred to the nonprofit in full. This means you can split amounts and fees on the original transaction, but not on the donation transaction.

This page describes how to implement online donations after a donation campaign has been set up.

Requirements

Before you begin, take into account the following requirements, limitations, and preparations.

Requirement Description
Integration type Adyen for Platforms with a platform model, with an API only online payments integration using Checkout API v67 or later.
Webhooks Subscribe to the Adyen Giving merchant webhook.
Limitations Make sure that you are using supported payment methods and supported regions and currencies.
Setup steps Before you begin, set up a donation campaign and learn how to activate and manage donation campaigns. See Create and manage donation campaigns.

How it works

To enable your users to accept donations at checkout:

  1. Choose a nonprofit and set up an account holder donation campaign in your Customer Area or using API calls. For instructions, see Create and manage donation campaigns.

  2. Make sure that your integration can show the active campaign in your checkout, and make a request for the amount that the shopper wants to donate. See Online payments flow.

  3. Make sure you have a way to show the nonprofit's terms and conditions.

  4. To inform shoppers about their donation, make sure that you can process Giving webhook messages.

  5. Start the campaign in your Customer Area, or using an API call. For instructions, see Create and manage donation campaigns.

Online payments flow

The donation flow depends on the donation moment, pre-checkout or post-checkout:

Get details of your active donation campaigns

Depending on the donation moment that you choose, get the details of your active donation campaigns at either moment:

  • Pre-checkout: When a shopper proceeds to pay for their original transaction with a payment method that supports donations.
  • Post-checkout: When a shopper completes their original transaction with a payment method that supports donations, and the /payments or /payments/details (for iDEAL payments) response includes the donationToken field.

When you make a request to get your active donation campaigns, the response you receive depends on the donation type, fixed amounts or round-up:

Present the option to donate

Make a donation

Depending on the interaction flow for the campaign, you make a donation request at either time:

  • Pre-checkout donation: you first make a /payments request. If the payment is authorized, and the /payments or /payments/details (for iDEAL payments) response includes the donationToken field, you make a donation request.
  • Post-checkout donation: you present the option to donate after the shopper completes the payment for their original transaction, you make a donation request and use the donationToken you received in the /payments or /payments/details (for iDEAL payments) response.

Get the donation outcome

You get the outcome of each donation in a webhook message. For cards, you can show the shopper if their donation is successful after you get the webhook message. For iDEAL, you get the webhook event a day or more later. You can send the outcome to the shopper using email or mobile messaging.

To receive these webhook messages, enable the Adyen Giving merchant webhook, which includes eventCode: DONATION.

For a successful donation, the event contains:

  • success: true.
  • originalReference: use this value to associate the donation with the shopper's original transaction.

Test and go live

Before going live with your integration, use our test cards to test your integration.

See also