Default icon

Donations

Accept donations with the Adyen Giving feature in your Drop-in integration.

View source

Adyen Giving is our donations feature. It lets your shoppers donate to a nonprofit as part of your payment flow. If the shopper chooses to make a donation, the donation amount is charged to the same payment method that was used for the original transaction. Drop-in handles the donation flow, including showing the donation campaign and processing the donation.

Requirements

In addition to the general Adyen Giving requirements, take into account the following requirements.

Requirement Description
Integration type A standard payments integration with Drop-in.
Customer Area roles Make sure that you have the Donation campaigns manager role.
Webhooks Subscribe to the following webhooks:
Setup steps Before you begin:

How it works

  1. The shopper goes to the checkout page.
  2. Your server creates a payment session. You do not need to pass any donation-specific parameters in your request to create a payment session.
  3. When you create a global configuration object for AdyenCheckout, optionally add a configuration object for donations.
  4. Drop-in shows the payment form.
  5. The shopper submits the payment on your checkout page.
  6. Drop-in handles the payment flow.
  7. If the payment is successful, Drop-in checks if you have an active donation campaign in your Adyen Customer Area.
  8. If you have an active donation campaign, Drop-in shows the donation form.
  9. The shopper chooses to donate or declines.
  10. Drop-in handles the donation flow.
  11. Get the donation result from the donation.onDonationSuccess callback.
  12. Adyen sends a webhook message with the donation outcome.
  13. Adyen sends a webhook message with the payment outcome.
CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgUyBhcyBTaG9wcGVyCiAgICBwYXJ0aWNpcGFudCBGIGFzIFlvdXIgY2xpZW50IHdlYnNpdGUKICAgIHBhcnRpY2lwYW50IFNWIGFzIFlvdXIgc2VydmVyCiAgICBwYXJ0aWNpcGFudCBBIGFzIEFkeWVuCiAgICBwYXJ0aWNpcGFudCBXIGFzIFlvdXIgd2ViaG9vayBzZXJ2ZXIKCiAgICBTLT4+RjogMS4gR28gdG8gY2hlY2tvdXQgcGFnZQogICAgU1YtPj5BOiAyLiBDcmVhdGUgcGF5bWVudCBzZXNzaW9uCiAgICBBLS0+PlNWOiBSZXR1cm4gc2Vzc2lvbiBkYXRhCiAgICBTVi0tPj5GOiBQYXNzIHNlc3Npb24gZGF0YQogICAgTm90ZSBvdmVyIEY6IDMuIEFkZCBvcHRpb25hbCBkb25hdGlvbiBjb25maWd1cmF0aW9uIGFuZCBpbml0aWFsaXplIERyb3AtaW4KICAgIEYtPj5TOiA0LiBEcm9wLWluIHNob3dzIHBheW1lbnQgZm9ybQogICAgUy0+PkY6IDUuIFN1Ym1pdCBwYXltZW50CiAgICBOb3RlIG92ZXIgRjogNi4gRHJvcC1pbiBoYW5kbGVzIHBheW1lbnQgZmxvdwogICAgRi0+PkE6IERyb3AtaW4gc2VuZHMgcGF5bWVudCBkYXRhCiAgICBOb3RlIG92ZXIgQTogNy4gQ2hlY2sgZm9yIGFjdGl2ZSBkb25hdGlvbiBjYW1wYWlnbgogICAgQS0tPj5GOiBTZXNzaW9uIHJlc3VsdCBhbmQgZG9uYXRpb24gY2FtcGFpZ24gZGF0YQogICAgb3B0IElmIHlvdSBoYXZlIGFjdGl2ZSBkb25hdGlvbiBjYW1wYWlnbgogICAgICAgIEYtPj5TOiA4LiBEcm9wLWluIHNob3dzIGRvbmF0aW9uIGZvcm0KICAgICAgICBTLT4+RjogOS4gRG9uYXRlIG9yIGRlY2xpbmUKICAgICAgICBOb3RlIG92ZXIgRjogMTAuIERyb3AtaW4gaGFuZGxlcyBkb25hdGlvbiBmbG93CiAgICAgICAgRi0+PkE6IERyb3AtaW4gc2VuZHMgZG9uYXRpb24gZGF0YQogICAgICAgIEEtLT4+RjogMTEuIERvbmF0aW9uIHJlc3VsdCAKICAgICAgICBBLT4+VzogMTIuIFdlYmhvb2sgbWVzc2FnZSB3aXRoIGRvbmF0aW9uIG91dGNvbWUKICAgIGVuZAogICAgQS0+Plc6IDEzLiBXZWJob29rIG1lc3NhZ2Ugd2l0aCBwYXltZW50IG91dGNvbWUgCg==

Add Giving configuration

When you create a global configuration object for Drop-in, you add configuration for donations to enable the feature.

Event handlers:

Property Required Description
onDonationSuccess Required Called when the donation is completed or the shopper declines to donate. Receives an object with didDonate: true or false.
onDonationFailure Required Called when an error occurs in the donation creation or when a donation fails.

Configuration parameters:

Property Required Description
autoMount Specifies if Drop-in automatically shows the donation form after a successful payment. Set to false to not show the donation form after the payment is completed. Default: true.
delay The delay in milliseconds after a successful payment before Drop-in shows the donation form.

After a successful payment, if you have an active donation campaign configured, Drop-in shows the donation form. By default, the donation form is mounted in the same container as Drop-in.

Drop-in handles the full donation flow, including:

  • Showing the donation campaign details (nonprofit name, description, logo, and banner).
  • Showing the donation amount options.
  • Processing the donation.

Get the donation outcome

After Drop-in finishes the payment flow, you can inform the shopper about the current payment status.

Inform the shopper

Depending on whether the donation was successful, the onDonationSuccess or onDonationFailure event is triggered. From the relevant event, you can get the result object to inform the shopper.

Get the webhook message

You also get the outcome of each donation in a webhook message.

For a successful donation, the event contains:

Field Description
eventCode DONATION
success true
originalReference Use this value to associate the donation with the shopper's original transaction.

Test and go live

Before you go live with donations, test your integration to make sure that your nonprofit receives the donations from your shoppers. We recommend to test your integration in the test environment, and live environment. In each environment, test the following:

  1. Creating and activating a donation campaign.
  2. Making a donation.
  3. Getting the donation outcome in the webhook message (Adyen Giving merchant webhook).

Test environment

Create and activate a test donation campaign

  1. In your test Customer Area, go to Giving > Campaigns.
  2. Create a test campaign using one of our demo nonprofits.
  3. Select Start campaign for the campaign you configured to:

Make a test donation

To test donations using iDEAL, contact our Support Team for additional configuration.

After you have started a campaign, verify that the /payments or /payments/details response contains a donationToken.

When you make a /donationCampaigns request, verify that the details returned in the response are correct.

Using your integration, make test donations using our test cards.

Get the test donation outcome

For each test donation that you make, verify that you get a webhook message.

Live environment

Create and activate a live donation campaign

  1. In your Live Customer Area, go to Giving > Campaigns.

    If you do not see Giving section in your Customer Area, reach out to your Adyen contact or our Support Team.

  2. Create a campaign for your nonprofit.
  3. Select Start campaign for the campaign you configured to:

Enable the webhook for the live environment

In your live Customer Area, enable the Adyen Giving merchant webhook.

Make donations for your live campaign

After you have started a campaign, verify that the /payments or /payments/details response contains a donationToken.

When you make a /donationCampaigns request, verify that the details returned in the response are correct.

Using your integration, make a donation to your nonprofit.

Get the donation outcome

You can verify the outcome of the donation by either:

Troubleshooting

If an issue occurs with your test donation requests, you can find more details in the API logs.

Test cards for donations

You can use the test card details below to make test donations.

Card Number Card Type Issuing Country/region Expiry Date CVC
3700 0000 0000 002 American Express NL 03/2030 7373
3700 0000 0100 018 American Express NL 03/2030 7373
5555 3412 4444 1115 Mastercard Consumer NL 03/2030 737
5201 2820 5004 2993 Mastercard RU 03/2030 737
5454 5464 9832 4682 Mastercard PL 03/2030 737
2223 5204 4356 0010 Mastercard Debit NL 03/2030 737
5103 2219 1119 9245 Mastercard Prepaid BR 03/2030 737
3569 9900 1009 5841 JCB US 03/2030 737
6011 6011 6011 6611 Discover US 03/2030 737
6445 6445 6445 6445 Discover GB 03/2030 737
6445 6445 6445 6445 Carte Bancaire FR 03/2030 737
4871 0499 9999 9910 Bancontact BE 03/2030 737

The following test card doesn't require the CVC when entering the card details. You must use this card to test Visa payments.

Card Number Card Type Issuing Country/region Expiry Date CVC
4111 1111 4555 1142 Visa NL 03/2030 737

Test 3D Secure 2 authentication with donations

The following test cards are enrolled in 3D Secure 2.

Card Number Card Type Issuing Country/region Expiry Date CVC
3714 4963 5398 431 American Express US 03/2030 7373
6011 1111 1111 1117 Discover US 03/2030 737
5111 1200 3000 8958 Mastercard NL 03/2030 737