Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 49 additions & 17 deletions docs/developer/app-store/apps/adyen/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,33 @@ Before you begin configuration, make sure that you have disabled the **Delayed C
:::

In the Adyen dashboard, first go to **Developers -> Additional data**. Click on the following checkboxes:
- `Card summary`
- `Expiry date`
- `Subvariant`
- `Variant`
- `Co-brand`
- `Bank summary`
- `Authorization amount`
- `Authorisation amount (dynamic zero authorisation)`
- `Recurring details`
- `Recurring contract information`
- `Merchant reference`

Your "Response preview" should look like this:

```json
{
"additionalData": {
"cardSummary": "1111",
"expiryDate": "8/2018",
"paymentMethodVariant": "visadebit",
"paymentMethod": "visa",
"coBrandedWith": "visa",
"bankSummary": "1111",
"authorisedAmountCurrency": "EUR",
"authorisedAmountValue": "1000",
"recurring.shopperReference": "testshopper",
"recurring.recurringDetailReference": "1111111111111111",
"recurring.contractTypes": "RECURRING,ONECLICK",
"recurring.recurringDetailReference": "111111",
"recurring.firstPspReference": "111111",
"merchantReference": "ref_1234"
}
}
Expand All @@ -84,6 +97,24 @@ Adyen webhook will set `TransactionItem` metadata based on fields received in `N
To configure additional fields that will be set when users make payments, go to `Developers > Additional data` and choose fields you want to have in your metadata. Read more about this on the [Architecture docs page](./architecture.mdx#transactionitem-metadata)
:::

:::warning
Setting following fields is required for app to send `TransactionItem.paymentMethodDetails`:
- `Card summary`
- `Expiry date`
- `Subvariant`
- `Variant`
- `Co-brand`
- `Bank summary`
:::

:::danger
Setting following fields is required for app **to properly process payments**:
- `Authorization amount`
- `Authorisation amount (dynamic zero authorisation)`
- `Merchant reference`
:::


#### Configuring the webhook

Then head over to **Developers -> Webhooks**. Click the **+ Webhook** button and choose **Standard webhook**. Provide a description for the webhook.
Expand All @@ -99,17 +130,25 @@ Do not select merchant accounts that are used for payments made outside of Adyen
In **Events**, make sure that you have selected the following events:

:::tip
By default you can just:
- deselect `ORDER_OPENNED` event
- select `EXPIRE` and `OFFER_CLOSED` events.

However, make sure that all the listed events are selected, in case Adyen has added new events or removed them as default.
For quick configuration you can just follow these steps:
- deselect events:
- `ORDER_OPENED`
- `AUTORESCUE`
- `CANCEL_AUTORESCUE`
- `PAIDOUT_REVERSED`
- `PAYOUT_DECLINE`
- `PAYOUT_EXPIRE`
- `REPORT_AVAILABLE`
- `PAYOUT_THIRDPARTY`
- select events:
- `EXPIRE`
- `OFFER_CLOSED`

Note that Adyen might add new webhook events or change default selection in the future, check list below to ensure that all required webhooks are selected.
:::

- `AUTHORISATION`
- `AUTHORISATION_ADJUSTMENT`
- `AUTORESCUE`
- `CANCEL_AUTORESCUE`
- `CANCEL_OR_REFUND`
- `CANCELLATION`
- `CAPTURE`
Expand All @@ -124,11 +163,6 @@ However, make sure that all the listed events are selected, in case Adyen has ad
- `NOTIFICATION_OF_FRAUD`
- `OFFER_CLOSED`
- `ORDER_CLOSED`
- `PAIDOUT_REVERSED`
- `PAYOUT_DECLINE`
- `PAYOUT_EXPIRE`
- `PAYOUT_THIRDPARTY`
- `PENDING`
- `POSTPONED_REFUND`
- `PREARBITRATION_LOST`
- `PREARBITRATION_WON`
Expand All @@ -137,10 +171,8 @@ However, make sure that all the listed events are selected, in case Adyen has ad
- `REFUND_FAILED`
- `REFUND_WITH_DATA`
- `REFUNDED_REVERSED`
- `REPORT_AVAILABLE`
- `REQUEST_FOR_INFORMATION`
- `SECOND_CHARGEBACK`
- `TECHNICAL_CANCEL`
- `VOID_PENDING_REFUND`

In **Additional settings -> Card** select:
Expand Down
6 changes: 6 additions & 0 deletions docs/developer/app-store/apps/adyen/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ App supports following notification events from Adyen:
- [`CaptureFailed`](https://docs.adyen.com/api-explorer/Webhooks/1/post/CAPTURE_FAILED)
- [`Expire`](https://docs.adyen.com/api-explorer/Webhooks/1/post/EXPIRE)
- [`OrderClosed`](https://docs.adyen.com/api-explorer/Webhooks/1/post/ORDER_CLOSED)
- [`OfferClosed`](https://docs.adyen.com/api-explorer/Webhooks/1/post/OFFER_CLOSED)
- [`Refund`](https://docs.adyen.com/api-explorer/Webhooks/1/post/REFUND)
- [`RefundFailed`](https://docs.adyen.com/api-explorer/Webhooks/1/post/REFUND_FAILED)
- [`RefundedReversed`](https://docs.adyen.com/api-explorer/Webhooks/1/post/REFUNDED_REVERSED)
Expand All @@ -78,6 +79,9 @@ Following events will be mapped to `INFO` event in Saleor, it will not change am
- [`ManualReviewAccept`](https://docs.adyen.com/api-explorer/Webhooks/1/post/MANUAL_REVIEW_ACCEPT)
- [`ManualReviewReject`](https://docs.adyen.com/api-explorer/Webhooks/1/post/MANUAL_REVIEW_REJECT)

These events are currently ignored by the app, left for future implementation:
- [`RecurringContract`](https://docs.adyen.com/api-explorer/Webhooks/1/post/RECURRING_CONTRACT)

## Assumptions

- If Adyen doesn't respond to app request for [initialize transaction session](/developer/extending/webhooks/synchronous-events/transaction#initialize-transaction-session) or [process transaction session](/developer/extending/webhooks/synchronous-events/transaction#process-transaction-session) with `pspReference`:
Expand All @@ -100,6 +104,8 @@ Following events will be mapped to `INFO` event in Saleor, it will not change am
- [Webhook settings > Delayed Capture](#duplicated-chargedamount-in-saleor) is disabled in Adyen Dashboard
- Webhook in Adyen was created with all options (additional settings) described in [Saleor docs](./configuration.mdx#webhook-configuration)
- Before [user cancels a payment](./storefront.mdx#onordercancel), App will update `TransactionItem` in Saleor, so that it has either `REFUND_REQUEST` or `CANCEL_REQUEST` event. If update in Saleor fails, user won't be able to cancel payment. This prevents fraudulent orders from being created.
- `TransactionItem.paymentMethodDetails` are sent to Saleor if "Additional data" is properly configured in Adyen dashboard. [See configuration docs](./configuration.mdx#prerequisites)
- Refunds and cancels are done using `pspReference` provided by Adyen, not by `merchantReference` set by app. App will ignore refunds done externally via Adyen API that used `/cancels` with `paymentReference` parameter since it triggers `TECHNICAL_CANCEL` webhook which is not supported. [See more docs in Adyen](https://docs.adyen.com/online-payments/cancel#technical-cancel-webhook)

## Limitations & troubleshooting

Expand Down