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
- The shopper goes to the checkout page.
- Your server creates a payment session. You do not need to pass any donation-specific parameters in your request to create a payment session.
- When you create a global configuration object for
AdyenCheckout, optionally add a configuration object for donations. - Drop-in shows the payment form.
- The shopper submits the payment on your checkout page.
- Drop-in handles the payment flow.
- If the payment is successful, Drop-in checks if you have an active donation campaign in your Adyen Customer Area.
- If you have an active donation campaign, Drop-in shows the donation form.
- The shopper chooses to donate or declines.
- Drop-in handles the donation flow.
- Get the donation result from the
donation.onDonationSuccesscallback. - Adyen sends a webhook message with the donation outcome.
- Adyen sends a webhook message with the payment outcome.
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 |
Called when the donation is completed or the shopper declines to donate. Receives an object with didDonate: true or false. |
|
onDonationFailure |
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:
- Creating and activating a donation campaign.
- Making a donation.
- Getting the donation outcome in the webhook message (Adyen Giving merchant webhook).
Test environment
Create and activate a test donation campaign
- In your test Customer Area, go to Giving > Campaigns.
- Create a test campaign using one of our demo nonprofits.
- Select Start campaign for the campaign you configured to:
- Activate the campaign.
- Start receiving the
donationTokenin the /payments or /payments/details responses.
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
- 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.
- Create a campaign for your nonprofit.
- Select Start campaign for the campaign you configured to:
- Activate the campaign.
- Start receiving the
donationTokenin the /payments or /payments/details responses.
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:
- Getting the webhook message for your donation.
- Finding the donation in a Giving report or dashboard.
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 |