172 lines
5.6 KiB
Markdown
172 lines
5.6 KiB
Markdown
|
# Adyen
|
||
|
|
||
|
[Adyen](https://www.adyen.com/) is a Dutch company that offers several online payment
|
||
|
possibilities.
|
||
|
|
||
|
:::{seealso}
|
||
|
- {ref}`payment_providers/add_new`
|
||
|
- {doc}`../payment_providers`
|
||
|
:::
|
||
|
|
||
|
:::{note}
|
||
|
Adyen works only with customers processing **more** than **10 million annually** or invoicing a
|
||
|
**minimum** of **1.000** transactions **per month**.
|
||
|
:::
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
:::{seealso}
|
||
|
{ref}`payment_providers/add_new`
|
||
|
:::
|
||
|
|
||
|
First, reach Adyen support to enable {guilabel}`multiple partial capture` for you.
|
||
|
|
||
|
### Credentials tab
|
||
|
|
||
|
Odoo needs your **API Credentials** to connect with your Adyen account, which comprise:
|
||
|
|
||
|
- **Merchant Account**: The code of the merchant account to use with Adyen.
|
||
|
- {ref}`API Key <adyen/api_and_client_keys>`: The API key of the webservice user.
|
||
|
- {ref}`Client Key <adyen/api_and_client_keys>`: The client key of the webservice user.
|
||
|
- {ref}`HMAC Key <adyen/hmac_key>`: The HMAC key of the webhook.
|
||
|
- {ref}`Checkout API URL <adyen/urls>`: The base URL for the Checkout API endpoints.
|
||
|
- {ref}`Recurring API URL <adyen/urls>`: The base URL for the Recurring API endpoints.
|
||
|
|
||
|
You can copy your credentials from your Adyen account, and paste them in the related fields under
|
||
|
the **Credentials** tab.
|
||
|
|
||
|
:::{important}
|
||
|
If you are trying Adyen as a test, with an Adyen *test account*, head to
|
||
|
{menuselection}`Accounting --> Configuration --> Payment Providers`. There, click on
|
||
|
{guilabel}`Adyen`, enable {guilabel}`Test Mode` and enter your credentials in the
|
||
|
{guilabel}`Credentials` tab.
|
||
|
:::
|
||
|
|
||
|
(adyen-api-and-client-keys)=
|
||
|
|
||
|
#### API Key and Client Key
|
||
|
|
||
|
In order to retrieve the API Key and the Client Key, log into your Adyen account, go to
|
||
|
{menuselection}`Developers --> API Credentials`.
|
||
|
|
||
|
- If you already have an API user, open it.
|
||
|
- If you don't have an API user yet, click on **Create new credential**.
|
||
|
|
||
|
Go to {menuselection}`Server settings --> Authentification` and copy or generate your **API Key**.
|
||
|
Be careful to copy your API key as you'll not be allowed to get it later without generating a new
|
||
|
one.
|
||
|
|
||
|
Now, head to {menuselection}`Client settings --> Authentification` and cody or generate your
|
||
|
**Client Key**. This is also the place where you can {ref}`allow payments to be made from your
|
||
|
website <adyen/allowed_origins>`.
|
||
|
|
||
|
(adyen-hmac-key)=
|
||
|
|
||
|
#### HMAC key
|
||
|
|
||
|
In order to retrieve the HMAC Key, you'll need to configure a `Standard Notification` webhook. For
|
||
|
this, log into your Adyen account then go to {menuselection}`Developers --> Webhooks --> Add webhook
|
||
|
--> Add Standard notification`.
|
||
|
|
||
|
```{image} adyen/adyen-add-webhook.png
|
||
|
:align: center
|
||
|
:alt: Configure a webhook.
|
||
|
```
|
||
|
|
||
|
There, in {menuselection}`General --> Server configuration --> URL`, enter your server address
|
||
|
followed by `/payment/adyen/notification`.
|
||
|
|
||
|
```{image} adyen/adyen-webhook-url.png
|
||
|
:align: center
|
||
|
:alt: Enter the notification URL.
|
||
|
```
|
||
|
|
||
|
Then enter {menuselection}`Security --> HMAC Key --> Generate`. Be careful to copy the key as you
|
||
|
will not be allowed to do it later without generating a new one.
|
||
|
|
||
|
```{image} adyen/adyen-hmac-key.png
|
||
|
:align: center
|
||
|
:alt: Generate a HMAC key and save it.
|
||
|
```
|
||
|
|
||
|
You have to save the webhook to finalize its creation.
|
||
|
|
||
|
(adyen-urls)=
|
||
|
|
||
|
#### API URLs
|
||
|
|
||
|
All Adyen API URLs include a customer area-specific prefix generated by Adyen. To configure the
|
||
|
URLs, proceed as follows:
|
||
|
|
||
|
1. Log into your Adyen account, then go to {menuselection}`Developers --> API URLs`.
|
||
|
|
||
|
2. Copy the {guilabel}`Prefix` for your live Customer area (i.e., **data center**) and save it for
|
||
|
later.
|
||
|
|
||
|
```{image} adyen/adyen-api-urls.png
|
||
|
:alt: Copy the prefix for the Adyen APIs
|
||
|
```
|
||
|
|
||
|
3. In Odoo, {ref}`navigate to the payment provider Adyen <payment_providers/add_new>`.
|
||
|
|
||
|
4. In the {guilabel}`Checkout API URL` field, enter the following URL and replace `yourprefix` with
|
||
|
the prefix you previously saved:
|
||
|
`https://yourprefix-checkout-live.adyenpayments.com/checkout`
|
||
|
|
||
|
5. In the {guilabel}`Recurring API URL` field, enter the following URL and replace `yourprefix` with
|
||
|
the prefix you previously saved:
|
||
|
`https://yourprefix-pal-live.adyenpayments.com/pal/servlet/Recurring`.
|
||
|
|
||
|
:::{note}
|
||
|
If you are trying Adyen as a test, you can use the following URLs instead:
|
||
|
|
||
|
- {guilabel}`Checkout API URL`: `https://checkout-test.adyen.com`
|
||
|
- {guilabel}`Recurring API URL`: `https://pal-test.adyen.com/pal/servlet/Recurring`
|
||
|
:::
|
||
|
|
||
|
### Adyen Account
|
||
|
|
||
|
(adyen-allowed-origins)=
|
||
|
|
||
|
#### Allow payments from a specific origin
|
||
|
|
||
|
To allow payment originated from your website, follow the steps in {ref}`adyen/api_and_client_keys`
|
||
|
to navigate to your API user and go to {menuselection}`Add allowed origins`, then add the URLs from
|
||
|
where payments will be made (the URLs of the servers hosting your Odoo instances).
|
||
|
|
||
|
```{image} adyen/adyen-allowed-origins.png
|
||
|
:align: center
|
||
|
:alt: Allows payments originated from a specific domain.
|
||
|
```
|
||
|
|
||
|
### Place a hold on a card
|
||
|
|
||
|
Adyen allows you to capture an amount manually instead of having an immediate capture.
|
||
|
|
||
|
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
|
||
|
{ref}`payment providers documentation <payment_providers/manual_capture>`.
|
||
|
|
||
|
Then, open your Adyen Merchant Account, go to {menuselection}`Account --> Settings`, and set the
|
||
|
**Capture Delay** to **manual**.
|
||
|
|
||
|
```{image} adyen/adyen_capture_delay.png
|
||
|
:align: center
|
||
|
:alt: Capture Delay settings in Adyen
|
||
|
```
|
||
|
|
||
|
:::{caution}
|
||
|
- If you configure Odoo to capture amounts manually, make sure to set the **Capture Delay** to
|
||
|
**manual** on Adyen. Otherwise, the transaction will be blocked in the authorized state in
|
||
|
Odoo.
|
||
|
:::
|
||
|
|
||
|
:::{note}
|
||
|
- After **7 days**, if the transaction has not been captured yet, the customer has the right to
|
||
|
**revoke** it.
|
||
|
:::
|
||
|
|
||
|
:::{seealso}
|
||
|
{doc}`../payment_providers`
|
||
|
:::
|
||
|
|