yaml files

This commit is contained in:
aleksei
2019-11-20 09:58:35 +01:00
parent a9d3821366
commit e2dd2fc086
12 changed files with 10614 additions and 166 deletions

View File

@@ -3,11 +3,11 @@ servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Payout/v30' - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v30'
info: info:
version: '30' version: '30'
title: Adyen Payout Service title: Adyen Payout API
description: |- description: |-
A set of API endpoints that allow you to store payout details, confirm, or decline a payout. A set of API endpoints that allow you to store payout details, confirm, or decline a payout.
For more information, refer to [Third-party payouts](https://docs.adyen.com/developers/features/third-party-payouts). For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts).
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact: contact:
name: Adyen Support name: Adyen Support
@@ -203,42 +203,39 @@ components:
Address: Address:
properties: properties:
city: city:
description: |- description: The name of the city.
The name of the city.
>Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided.
type: string type: string
country: country:
description: |- description: |-
The two-character country code of the address The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
>The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL'). > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string type: string
houseNumberOrName: houseNumberOrName:
description: The number or name of the house. description: The number or name of the house.
type: string type: string
postalCode: postalCode:
description: |- description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
The postal code.
>A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries.
>Required if either houseNumberOrName, street, city, or stateOrProvince are provided.
type: string type: string
stateOrProvince: stateOrProvince:
description: |- description: |-
The abbreviation of the state or province. State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
>Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries. > Required for the US and Canada.
>Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided.
type: string type: string
street: street:
description: |- description: |-
The name of the street. The name of the street.
>The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
>Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided.
type: string type: string
required: required:
- street
- houseNumberOrName
- city
- postalCode
- country - country
Amount: Amount:
properties: properties:
currency: currency:
description: 'The three-character [ISO currency code](https://docs.adyen.com/developers/development-resources/currency-codes).' description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).'
maxLength: 3 maxLength: 3
minLength: 3 minLength: 3
type: string type: string
@@ -246,7 +243,7 @@ components:
description: |- description: |-
The payable amount that can be charged for the transaction. The payable amount that can be charged for the transaction.
The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/developers/development-resources/currency-codes). The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes).
format: int64 format: int64
type: integer type: integer
required: required:
@@ -314,11 +311,11 @@ components:
properties: properties:
cvc: cvc:
description: |- description: |-
The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits * CVV2/CVC2 length: 3 digits
* CID length: 4 digits * CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/features/client-side-encryption), the CVC code is present in the encrypted data. You must never post the card details to the server. > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/classic-integration/recurring-payments). > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored. > When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20 maxLength: 20
minLength: 1 minLength: 1
@@ -538,17 +535,17 @@ components:
properties: properties:
additionalAmount: additionalAmount:
description: |- description: |-
If you want a [BIN or card verification](https://docs.adyen.com/developers/payment-methods/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification). If you want a [BIN or card verification](https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).
Required to be in the same currency as the `amount`. Required to be in the same currency as the `amount`.
$ref: '#/components/schemas/Amount' $ref: '#/components/schemas/Amount'
additionalData: additionalData:
description: |- description: |-
This field contains additional data, which may be required for a particular payment request. This field contains additional data, which may be required for a particular payment request.
The `additionalData` object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata). The `additionalData` object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata).
type: object type: object
amount: amount:
description: 'The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/payment-methods/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).' description: 'The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).'
$ref: '#/components/schemas/Amount' $ref: '#/components/schemas/Amount'
bankAccount: bankAccount:
description: |- description: |-
@@ -556,10 +553,14 @@ components:
> Either `bankAccount` or `card` field must be provided in a payment request. > Either `bankAccount` or `card` field must be provided in a payment request.
$ref: '#/components/schemas/BankAccount' $ref: '#/components/schemas/BankAccount'
billingAddress: billingAddress:
description: The address where to send the invoice. description: |-
The address where to send the invoice.
> For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object.
$ref: '#/components/schemas/Address' $ref: '#/components/schemas/Address'
browserInfo: browserInfo:
description: The shopper's browser information. description: |-
The shopper's browser information.
> For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**).
$ref: '#/components/schemas/BrowserInfo' $ref: '#/components/schemas/BrowserInfo'
captureDelayHours: captureDelayHours:
description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.'
@@ -593,7 +594,7 @@ components:
format: date-time format: date-time
type: string type: string
deviceFingerprint: deviceFingerprint:
description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).' description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).'
type: string type: string
entityType: entityType:
description: The type of the entity the payment is processed for. description: The type of the entity the payment is processed for.
@@ -609,7 +610,7 @@ components:
description: The person or entity funding the money. description: The person or entity funding the money.
$ref: '#/components/schemas/FundSource' $ref: '#/components/schemas/FundSource'
installments: installments:
description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).' description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).'
$ref: '#/components/schemas/Installments' $ref: '#/components/schemas/Installments'
mcc: mcc:
description: 'The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.' description: 'The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.'
@@ -619,13 +620,14 @@ components:
type: string type: string
merchantOrderReference: merchantOrderReference:
description: |- description: |-
This reference allows linking multiple transactions to each other. This reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle.
The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations.
> We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`.
type: string type: string
metadata: metadata:
description: |- description: |-
Metadata consists of entries, each of which includes a key and a value. Metadata consists of entries, each of which includes a key and a value.
Limitations: Error "177", "Metadata size exceeds limit" Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit".
type: object type: object
mpiData: mpiData:
description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa).
@@ -635,20 +637,22 @@ components:
maxLength: 2 maxLength: 2
type: string type: string
orderReference: orderReference:
description: The order reference to link multiple partial payments. description: 'When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead.'
type: string type: string
recurring: recurring:
description: 'The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/developers/features/recurring-payments).' description: 'The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/classic-integration/recurring-payments).'
$ref: '#/components/schemas/Recurring' $ref: '#/components/schemas/Recurring'
recurringProcessingModel: recurringProcessingModel:
description: |- description: |
Defines a recurring payment type. Defines a recurring payment type.
Allowed values: Allowed values:
* `Subscription` A transaction for a fixed or variable amount, which follows a fixed schedule. * `Subscription` A transaction for a fixed or variable amount, which follows a fixed schedule.
* `CardOnFile` Card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `CardOnFile` Card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction.
* `UnscheduledCardOnFile` A transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount.
enum: enum:
- CardOnFile - CardOnFile
- Subscription - Subscription
- UnscheduledCardOnFile
type: string type: string
reference: reference:
description: |- description: |-
@@ -671,12 +675,14 @@ components:
description: A session ID used to identify a payment session. description: A session ID used to identify a payment session.
type: string type: string
shopperEmail: shopperEmail:
description: 'The shopper''s email address. We recommend that you provide this data, as it is used in velocity fraud checks.' description: |-
The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.
> For 3D Secure 2 transactions, schemes require the `shopperEmail` for both `deviceChannel` **browser** and **app**.
type: string type: string
shopperIP: shopperIP:
description: |- description: |-
The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).
> This field is mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new).
type: string type: string
shopperInteraction: shopperInteraction:
description: |- description: |-
@@ -764,7 +770,7 @@ components:
description: |- description: |-
The 3D request data for the issuer. The 3D request data for the issuer.
If the value is **CUPSecurePlus-CollectSMSVerificationCode**, collect an SMS code from the shopper and pass it in the `/authorise3D` request. For more information, see [3D Secure](https://docs.adyen.com/developers/risk-management/3d-secure). If the value is **CUPSecurePlus-CollectSMSVerificationCode**, collect an SMS code from the shopper and pass it in the `/authorise3D` request. For more information, see [3D Secure](https://docs.adyen.com/classic-integration/3d-secure).
type: string type: string
pspReference: pspReference:
description: |- description: |-
@@ -782,21 +788,29 @@ components:
description: |- description: |-
The result of the payment. Possible values: The result of the payment. Possible values:
* **Authorised** Indicates the payment authorisation was successfully completed. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. * **AuthenticationFinished** The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions.
* **Refused** Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state. * **Authorised** The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state.
* **RedirectShopper** Indicates the shopper should be redirected to an external web page or app to complete the authorisation.
* **Received** Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments.
* **Cancelled** Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state. * **Cancelled** Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state.
* **Pending** Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/developers/development-resources/payments-with-pending-status). * **ChallengeShopper** The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **Error** Indicates an error occurred during processing of the payment. The reason is given in the `refusalReason` field. This is a final state. * **Error** There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state.
* **IdentifyShopper** The issuer requires the shopper's device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **Pending** Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status).
* **PresentToShopper** Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment.
* **Received** Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments.
* **RedirectShopper** Indicates the shopper should be redirected to an external web page or app to complete the authorisation.
* **Refused** Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.
enum: enum:
- AuthenticationFinished
- Authorised - Authorised
- PartiallyAuthorised
- Refused
- Error
- Cancelled - Cancelled
- ChallengeShopper
- Error
- IdentifyShopper
- Pending
- PresentToShopper
- Received - Received
- RedirectShopper - RedirectShopper
- Refused
type: string type: string
Recurring: Recurring:
properties: properties:
@@ -804,10 +818,10 @@ components:
description: |- description: |-
The type of recurring contract to be used. The type of recurring contract to be used.
Possible values: Possible values:
* `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid). * `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp). * `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not. * `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/developers/features/third-party-payouts). * `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum: enum:
- ONECLICK - ONECLICK
- RECURRING - RECURRING
@@ -1146,7 +1160,10 @@ components:
ThreeDSecureData: ThreeDSecureData:
properties: properties:
authenticationResponse: authenticationResponse:
description: The authentication response if the shopper was redirected. description: |-
In 3D Secure 1, the authentication response if the shopper was redirected.
In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**.
enum: enum:
- 'Y' - 'Y'
- 'N' - 'N'
@@ -1158,20 +1175,27 @@ components:
format: byte format: byte
type: string type: string
cavvAlgorithm: cavvAlgorithm:
description: The CAVV algorithm used. description: The CAVV algorithm used. Include this only for 3D Secure 1.
type: string type: string
directoryResponse: directoryResponse:
description: The enrollment response from the 3D directory server. description: |-
In 3D Secure 1, this is the enrollment response from the 3D directory server.
In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow.
enum: enum:
- 'Y' - A
- C
- D
- I
- 'N' - 'N'
- R
- U - U
- E - 'Y'
type: string type: string
eci: eci:
description: The electronic commerce indicator. description: The electronic commerce indicator.
type: string type: string
xid: xid:
description: 'The transaction identifier (base64 encoded, 20 bytes in a decoded form).' description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).'
format: byte format: byte
type: string type: string

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,34 @@ servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v18' - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v18'
info: info:
version: '18' version: '18'
title: Adyen Recurring Service title: Adyen Recurring API
description: 'Additional methods that allow you to manage payment details stored for recurring payments. For more information, refer to [Recurring payments](https://docs.adyen.com/developers/features/recurring-payments).' description: |-
The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.
For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization).
## Authentication
To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example:
```
curl
-U "ws@Company.YourCompany":"YourWsPassword" \
-H "Content-Type: application/json" \
...
```
Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).
## Versioning
Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
For example:
```
https://pal-test.adyen.com/pal/servlet/Recurring/v18/disable
```
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact:
name: Adyen Support
url: 'https://support.adyen.com/'
email: support@adyen.com
x-groups: x-groups:
- General - General
paths: paths:
@@ -14,7 +40,7 @@ paths:
description: |- description: |-
Disables stored payment details to stop charging a shopper with this particular recurring detail ID. Disables stored payment details to stop charging a shopper with this particular recurring detail ID.
For more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details). For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/).
x-groupName: General x-groupName: General
x-sortIndex: 2 x-sortIndex: 2
requestBody: requestBody:
@@ -45,7 +71,7 @@ paths:
description: |- description: |-
Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.
For more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details). For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/).
x-groupName: General x-groupName: General
x-sortIndex: 1 x-sortIndex: 1
requestBody: requestBody:
@@ -70,34 +96,70 @@ paths:
description: Unprocessable Entity - a request validation error. description: Unprocessable Entity - a request validation error.
'500': '500':
description: Internal Server Error - the server could not process the request. description: Internal Server Error - the server could not process the request.
/scheduleAccountUpdater:
post:
summary: Schedules running of the Account Updater.
description: |-
When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:
* If the card information is provided, all the sub-fields for `card` are mandatory.
* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.
x-groupName: General
x-sortIndex: 3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components: components:
schemas: schemas:
Address: Address:
properties: properties:
city: city:
description: The city name. description: The name of the city.
type: string type: string
country: country:
description: A valid value is an ISO two-character country code (e.g. 'NL'). description: |-
The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string type: string
houseNumberOrName: houseNumberOrName:
description: The house number or name. description: The number or name of the house.
type: string type: string
postalCode: postalCode:
description: The postal code with a maximum of 5 characters for USA and maximum of 10 characters for any other country. description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
type: string type: string
stateOrProvince: stateOrProvince:
description: 'For USA or Canada, a valid 2-character abbreviation for the state or province respectively. For other countries any abbreviation with maximum 3 characters for the state or province.' description: |-
State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
> Required for the US and Canada.
type: string type: string
street: street:
description: | description: |-
The street name. The name of the street.
> Don't append the house number to this field. Instead, pass the house number separately as `houseNumberOrName`. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
type: string type: string
required: required:
- street - street
- houseNumberOrName - houseNumberOrName
- city - city
- postalCode
- country - country
BankAccount: BankAccount:
properties: properties:
@@ -148,11 +210,11 @@ components:
$ref: '#/components/schemas/Address' $ref: '#/components/schemas/Address'
cvc: cvc:
description: |- description: |-
The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits * CVV2/CVC2 length: 3 digits
* CID length: 4 digits * CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/ecommerce-integration), the CVC code is present in the encrypted data. You must never post the card details to the server. > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments). > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored. > When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20 maxLength: 20
minLength: 1 minLength: 1
@@ -217,7 +279,7 @@ components:
* PAYOUT * PAYOUT
type: string type: string
merchantAccount: merchantAccount:
description: Your merchant account. description: The merchant account identifier with which you want to process the transaction.
type: string type: string
recurringDetailReference: recurringDetailReference:
description: |- description: |-
@@ -236,33 +298,18 @@ components:
- shopperReference - shopperReference
DisableResult: DisableResult:
properties: properties:
details:
description: A list of one or more recurring payment details that were disabled.
items:
$ref: '#/components/schemas/RecurringDetail'
type: array
response: response:
description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].' description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].'
type: string type: string
ELV:
properties:
accountHolderName:
type: string
bankAccountNumber:
type: string
bankLocation:
type: string
bankLocationId:
type: string
bankName:
type: string
Name: Name:
properties: properties:
firstName: firstName:
description: A person's first name. description: The first name.
type: string type: string
gender: gender:
description: A person's gender (can be unknown). description: |-
The gender.
>The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`.
enum: enum:
- MALE - MALE
- FEMALE - FEMALE
@@ -271,10 +318,12 @@ components:
minLength: 1 minLength: 1
type: string type: string
infix: infix:
description: 'A person name''s infix, if applicable. Maximum length: 20 characters.' description: |-
The name's infix, if applicable.
>A maximum length of twenty (20) characters is imposed.
type: string type: string
lastName: lastName:
description: A person's last name. description: The last name.
type: string type: string
required: required:
- firstName - firstName
@@ -286,9 +335,10 @@ components:
description: |- description: |-
The type of recurring contract to be used. The type of recurring contract to be used.
Possible values: Possible values:
* `ONECLICK` The shopper opts to store their card details for future use. The shopper is present for the subsequent transaction, for cards the security code (CVC/CVV) is required. * `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details are stored for future use. For cards, the security code (CVC/CVV) is not required for subsequent payments. This is used for shopper not present transactions. * `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details are stored for future use. This allows the use of the stored payment details regardless of whether the shopper is on your site or not. * `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum: enum:
- ONECLICK - ONECLICK
- RECURRING - RECURRING
@@ -299,51 +349,66 @@ components:
type: string type: string
RecurringDetail: RecurringDetail:
properties: properties:
acquirer:
type: string
acquirerAccount:
type: string
additionalData: additionalData:
additionalProperties: description: |-
type: string This field contains additional data, which may be returned in a particular response.
The additionalData object consists of entries, each of which includes the key and value.
type: object type: object
alias: alias:
description: |-
The alias of the credit card number.
Applies only to recurring contracts storing credit card details
type: string type: string
aliasType: aliasType:
description: |-
The alias type of the credit card number.
Applies only to recurring contracts storing credit card details.
type: string type: string
bank: bank:
description: A container for bank account data.
$ref: '#/components/schemas/BankAccount' $ref: '#/components/schemas/BankAccount'
billingAddress: billingAddress:
description: The billing address.
$ref: '#/components/schemas/Address' $ref: '#/components/schemas/Address'
card: card:
description: A container for card data.
$ref: '#/components/schemas/Card' $ref: '#/components/schemas/Card'
contractTypes: contractTypes:
description: Types of recurring contracts.
items: items:
type: string type: string
type: array type: array
creationDate: creationDate:
description: The date when the recurring details were created.
format: date-time format: date-time
type: string type: string
elv:
$ref: '#/components/schemas/ELV'
firstPspReference: firstPspReference:
description: The `pspReference` of the first recurring payment that created the recurring detail.
type: string type: string
name: name:
description: An optional descriptive name for this recurring detail description: An optional descriptive name for this recurring detail.
type: string type: string
paymentMethodVariant: paymentMethodVariant:
description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).'
type: string type: string
recurringDetailReference: recurringDetailReference:
description: The reference that uniquely identifies the recurring detail description: The reference that uniquely identifies the recurring detail.
type: string type: string
shopperName: shopperName:
description: The name of the shopper.
$ref: '#/components/schemas/Name' $ref: '#/components/schemas/Name'
socialSecurityNumber: socialSecurityNumber:
description: A shopper's social security number (only in countries where it is legal to collect).
type: string type: string
tokenDetails:
$ref: '#/components/schemas/TokenDetails'
variant: variant:
description: 'The payment method, such as “mc", "visa", "ideal", "paypal".'
type: string type: string
required:
- recurringDetailReference
- variant
RecurringDetailsRequest: RecurringDetailsRequest:
properties: properties:
merchantAccount: merchantAccount:
@@ -369,7 +434,7 @@ components:
format: date-time format: date-time
type: string type: string
details: details:
description: A list of one or more recurring payment details. description: Payment details stored for recurring payments.
items: items:
$ref: '#/components/schemas/RecurringDetail' $ref: '#/components/schemas/RecurringDetail'
type: array type: array
@@ -379,11 +444,46 @@ components:
shopperReference: shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string type: string
TokenDetails: ScheduleAccountUpdaterRequest:
properties: properties:
tokenData: additionalData:
additionalProperties: description: 'This field contains additional data, which may be required for a particular request.'
type: string
type: object type: object
tokenDataType: card:
description: |-
A container for credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.
$ref: '#/components/schemas/Card'
merchantAccount:
description: Account of the merchant.
type: string type: string
reference:
description: A reference that merchants can apply for the call.
type: string
selectedRecurringDetailReference:
description: |-
The selected detail recurring reference.
Optional if `card` is provided.
type: string
shopperReference:
description: |-
The reference of the shopper that owns the recurring contract.
Optional if `card` is provided.
type: string
required:
- merchantAccount
- reference
ScheduleAccountUpdaterResult:
properties:
pspReference:
description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.
type: string
result:
description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.'
type: string
required:
- pspReference
- result

View File

@@ -3,13 +3,13 @@ servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v25' - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v25'
info: info:
version: '25' version: '25'
title: Adyen Recurring Service title: Adyen Recurring API
description: |- description: |-
The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.
For more information, refer to our [Tokenization documentation](https://docs.adyen.com/developers/features/tokenization). For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization).
## Authentication ## Authentication
To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/developers/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example:
``` ```
curl curl
@@ -17,7 +17,7 @@ info:
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
... ...
``` ```
Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/developers/development-resources/live-endpoints). Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).
## Versioning ## Versioning
Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
@@ -40,7 +40,7 @@ paths:
description: |- description: |-
Disables stored payment details to stop charging a shopper with this particular recurring detail ID. Disables stored payment details to stop charging a shopper with this particular recurring detail ID.
For more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details). For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/).
x-groupName: General x-groupName: General
x-sortIndex: 2 x-sortIndex: 2
requestBody: requestBody:
@@ -71,7 +71,7 @@ paths:
description: |- description: |-
Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.
For more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details). For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/).
x-groupName: General x-groupName: General
x-sortIndex: 1 x-sortIndex: 1
requestBody: requestBody:
@@ -96,42 +96,70 @@ paths:
description: Unprocessable Entity - a request validation error. description: Unprocessable Entity - a request validation error.
'500': '500':
description: Internal Server Error - the server could not process the request. description: Internal Server Error - the server could not process the request.
/scheduleAccountUpdater:
post:
summary: Schedules running of the Account Updater.
description: |-
When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:
* If the card information is provided, all the sub-fields for `card` are mandatory.
* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.
x-groupName: General
x-sortIndex: 3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components: components:
schemas: schemas:
Address: Address:
properties: properties:
city: city:
description: |- description: The name of the city.
The name of the city.
>Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided.
type: string type: string
country: country:
description: |- description: |-
The two-character country code of the address The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
>The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL'). > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string type: string
houseNumberOrName: houseNumberOrName:
description: The number or name of the house. description: The number or name of the house.
type: string type: string
postalCode: postalCode:
description: |- description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
The postal code.
>A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries.
>Required if either houseNumberOrName, street, city, or stateOrProvince are provided.
type: string type: string
stateOrProvince: stateOrProvince:
description: |- description: |-
The abbreviation of the state or province. State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
>Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries. > Required for the US and Canada.
>Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided.
type: string type: string
street: street:
description: |- description: |-
The name of the street. The name of the street.
>The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
>Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided.
type: string type: string
required: required:
- street
- houseNumberOrName
- city
- postalCode
- country - country
BankAccount: BankAccount:
properties: properties:
@@ -180,11 +208,11 @@ components:
properties: properties:
cvc: cvc:
description: |- description: |-
The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits * CVV2/CVC2 length: 3 digits
* CID length: 4 digits * CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/features/client-side-encryption), the CVC code is present in the encrypted data. You must never post the card details to the server. > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/classic-integration/recurring-payments). > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored. > When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20 maxLength: 20
minLength: 1 minLength: 1
@@ -305,10 +333,10 @@ components:
description: |- description: |-
The type of recurring contract to be used. The type of recurring contract to be used.
Possible values: Possible values:
* `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid). * `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp). * `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not. * `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/developers/features/third-party-payouts). * `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum: enum:
- ONECLICK - ONECLICK
- RECURRING - RECURRING
@@ -329,7 +357,7 @@ components:
description: |- description: |-
This field contains additional data, which may be returned in a particular response. This field contains additional data, which may be returned in a particular response.
The additionalData object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to [RecurringDetail.additionalData](https://docs.adyen.com/developers/api-reference/recurring-api#recurringdetailadditionaldata). The additionalData object consists of entries, each of which includes the key and value.
type: object type: object
alias: alias:
description: |- description: |-
@@ -368,7 +396,7 @@ components:
description: An optional descriptive name for this recurring detail. description: An optional descriptive name for this recurring detail.
type: string type: string
paymentMethodVariant: paymentMethodVariant:
description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/developers/api-reference/common-api/paymentmethodvariant).' description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).'
type: string type: string
recurringDetailReference: recurringDetailReference:
description: The reference that uniquely identifies the recurring detail. description: The reference that uniquely identifies the recurring detail.
@@ -423,47 +451,43 @@ components:
ScheduleAccountUpdaterRequest: ScheduleAccountUpdaterRequest:
properties: properties:
additionalData: additionalData:
additionalProperties: description: 'This field contains additional data, which may be required for a particular request.'
type: string
type: object type: object
card: card:
description: |-
A container for credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.
$ref: '#/components/schemas/Card' $ref: '#/components/schemas/Card'
genericBlockId:
format: int64
type: integer
genericFileId:
format: int64
type: integer
genericLineId:
format: int64
type: integer
merchantAccount: merchantAccount:
description: Account of the merchant.
type: string type: string
reference: reference:
description: A reference that merchants can apply for the call.
type: string type: string
selectedRecurringDetailReference: selectedRecurringDetailReference:
description: |-
The selected detail recurring reference.
Optional if `card` is provided.
type: string type: string
shopperReference: shopperReference:
type: string description: |-
updateAfter: The reference of the shopper that owns the recurring contract.
format: date-time
Optional if `card` is provided.
type: string type: string
required: required:
- merchantAccount - merchantAccount
- reference
ScheduleAccountUpdaterResult: ScheduleAccountUpdaterResult:
properties: properties:
accountUpdaterAction:
type: string
newAlias:
type: string
newExpiryMonth:
type: string
newExpiryYear:
type: string
processedDate:
format: date-time
type: string
pspReference: pspReference:
description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.
type: string type: string
result: result:
description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.'
type: string type: string
required:
- pspReference
- result

View File

@@ -0,0 +1,493 @@
openapi: 3.0.0
servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v30'
info:
version: '30'
title: Adyen Recurring API
description: |-
The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.
For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization).
## Authentication
To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example:
```
curl
-U "ws@Company.YourCompany":"YourWsPassword" \
-H "Content-Type: application/json" \
...
```
Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).
## Versioning
Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
For example:
```
https://pal-test.adyen.com/pal/servlet/Recurring/v30/disable
```
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact:
name: Adyen Support
url: 'https://support.adyen.com/'
email: support@adyen.com
x-groups:
- General
paths:
/disable:
post:
summary: Disables stored payment details.
description: |-
Disables stored payment details to stop charging a shopper with this particular recurring detail ID.
For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/).
x-groupName: General
x-sortIndex: 2
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisableRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DisableResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/listRecurringDetails:
post:
summary: Retrieves stored payment details for a shopper.
description: |-
Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.
For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/).
x-groupName: General
x-sortIndex: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/scheduleAccountUpdater:
post:
summary: Schedules running of the Account Updater.
description: |-
When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:
* If the card information is provided, all the sub-fields for `card` are mandatory.
* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.
x-groupName: General
x-sortIndex: 3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components:
schemas:
Address:
properties:
city:
description: The name of the city.
type: string
country:
description: |-
The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string
houseNumberOrName:
description: The number or name of the house.
type: string
postalCode:
description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
type: string
stateOrProvince:
description: |-
State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
> Required for the US and Canada.
type: string
street:
description: |-
The name of the street.
> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
type: string
required:
- street
- houseNumberOrName
- city
- postalCode
- country
BankAccount:
properties:
bankAccountNumber:
description: The bank account number (without separators).
type: string
bankCity:
description: The bank city.
type: string
bankLocationId:
description: The location id of the bank. The field value is `nil` in most cases.
type: string
bankName:
description: The name of the bank.
type: string
bic:
description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.'
type: string
countryCode:
description: |-
Country code where the bank is located.
A valid value is an ISO two-character country code (e.g. 'NL').
type: string
iban:
description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).'
type: string
ownerName:
description: |-
The name of the bank account holder.
If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example:
* χ12 is converted to ch12.
* üA is converted to euA.
* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.
After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example:
* John17 - allowed.
* J17 - allowed.
* 171 - not allowed.
* John-7 - allowed.
> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
type: string
taxId:
description: The bank account holder's tax ID.
type: string
Card:
properties:
cvc:
description: |-
The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits
* CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20
minLength: 1
type: string
expiryMonth:
description: |-
The card expiry month.
Format: 2 digits, zero-padded for single digits. For example:
* 03 = March
* 11 = November
maxLength: 2
minLength: 1
type: string
expiryYear:
description: |-
The card expiry year.
Format: 4 digits. For example: 2020
maxLength: 4
minLength: 4
type: string
holderName:
description: 'The name of the cardholder, as printed on the card.'
maxLength: 50
minLength: 1
type: string
issueNumber:
description: The issue number of the card (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
number:
description: |-
The card number (4-19 characters). Do not use any separators.
When this value is returned in a response, only the last 4 digits of the card number are returned.
maxLength: 19
minLength: 4
type: string
startMonth:
description: The month component of the start date (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
startYear:
description: The year component of the start date (for some UK debit cards only).
maxLength: 4
minLength: 4
type: string
required:
- number
- expiryMonth
- expiryYear
- holderName
DisableRequest:
properties:
contract:
description: |-
Specify the contract if you only want to disable a specific use.
This field can be set to one of the following values, or to their combination (comma-separated):
* ONECLICK
* RECURRING
* PAYOUT
type: string
merchantAccount:
description: The merchant account identifier with which you want to process the transaction.
type: string
recurringDetailReference:
description: |-
The ID that uniquely identifies the recurring detail reference.
If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details.
type: string
shopperReference:
description: |-
The ID that uniquely identifies the shopper.
This `shopperReference` must be the same as the `shopperReference` used in the initial payment.
type: string
required:
- merchantAccount
- shopperReference
DisableResult:
properties:
response:
description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].'
type: string
Name:
properties:
firstName:
description: The first name.
type: string
gender:
description: |-
The gender.
>The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`.
enum:
- MALE
- FEMALE
- UNKNOWN
maxLength: 1
minLength: 1
type: string
infix:
description: |-
The name's infix, if applicable.
>A maximum length of twenty (20) characters is imposed.
type: string
lastName:
description: The last name.
type: string
required:
- firstName
- lastName
- gender
Recurring:
properties:
contract:
description: |-
The type of recurring contract to be used.
Possible values:
* `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum:
- ONECLICK
- RECURRING
- PAYOUT
type: string
recurringDetailName:
description: A descriptive name for this detail.
type: string
tokenService:
description: The name of the token service.
enum:
- VISATOKENSERVICE
- MCTOKENSERVICE
type: string
RecurringDetail:
properties:
additionalData:
description: |-
This field contains additional data, which may be returned in a particular response.
The additionalData object consists of entries, each of which includes the key and value.
type: object
alias:
description: |-
The alias of the credit card number.
Applies only to recurring contracts storing credit card details
type: string
aliasType:
description: |-
The alias type of the credit card number.
Applies only to recurring contracts storing credit card details.
type: string
bank:
description: A container for bank account data.
$ref: '#/components/schemas/BankAccount'
billingAddress:
description: The billing address.
$ref: '#/components/schemas/Address'
card:
description: A container for card data.
$ref: '#/components/schemas/Card'
contractTypes:
description: Types of recurring contracts.
items:
type: string
type: array
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
firstPspReference:
description: The `pspReference` of the first recurring payment that created the recurring detail.
type: string
name:
description: An optional descriptive name for this recurring detail.
type: string
paymentMethodVariant:
description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).'
type: string
recurringDetailReference:
description: The reference that uniquely identifies the recurring detail.
type: string
shopperName:
description: The name of the shopper.
$ref: '#/components/schemas/Name'
socialSecurityNumber:
description: A shopper's social security number (only in countries where it is legal to collect).
type: string
variant:
description: 'The payment method, such as “mc", "visa", "ideal", "paypal".'
type: string
required:
- recurringDetailReference
- variant
RecurringDetailsRequest:
properties:
merchantAccount:
description: The merchant account identifier you want to process the (transaction) request with.
type: string
recurring:
description: |-
A container for the type of a recurring contract to be retrieved.
The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract.
However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase.
$ref: '#/components/schemas/Recurring'
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
required:
- merchantAccount
- shopperReference
RecurringDetailsResult:
properties:
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
details:
description: Payment details stored for recurring payments.
items:
$ref: '#/components/schemas/RecurringDetail'
type: array
lastKnownShopperEmail:
description: The most recent email for this shopper (if available).
type: string
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
ScheduleAccountUpdaterRequest:
properties:
additionalData:
description: 'This field contains additional data, which may be required for a particular request.'
type: object
card:
description: |-
A container for credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.
$ref: '#/components/schemas/Card'
merchantAccount:
description: Account of the merchant.
type: string
reference:
description: A reference that merchants can apply for the call.
type: string
selectedRecurringDetailReference:
description: |-
The selected detail recurring reference.
Optional if `card` is provided.
type: string
shopperReference:
description: |-
The reference of the shopper that owns the recurring contract.
Optional if `card` is provided.
type: string
required:
- merchantAccount
- reference
ScheduleAccountUpdaterResult:
properties:
pspReference:
description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.
type: string
result:
description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.'
type: string
required:
- pspReference
- result

View File

@@ -0,0 +1,500 @@
openapi: 3.0.0
servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v40'
info:
version: '40'
title: Adyen Recurring API
description: |-
The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.
For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization).
## Authentication
To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example:
```
curl
-U "ws@Company.YourCompany":"YourWsPassword" \
-H "Content-Type: application/json" \
...
```
Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).
## Versioning
Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
For example:
```
https://pal-test.adyen.com/pal/servlet/Recurring/v40/disable
```
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact:
name: Adyen Support
url: 'https://support.adyen.com/'
email: support@adyen.com
x-groups:
- General
paths:
/disable:
post:
summary: Disables stored payment details.
description: |-
Disables stored payment details to stop charging a shopper with this particular recurring detail ID.
For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/).
x-groupName: General
x-sortIndex: 2
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisableRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DisableResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/listRecurringDetails:
post:
summary: Retrieves stored payment details for a shopper.
description: |-
Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.
For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/).
x-groupName: General
x-sortIndex: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/scheduleAccountUpdater:
post:
summary: Schedules running of the Account Updater.
description: |-
When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:
* If the card information is provided, all the sub-fields for `card` are mandatory.
* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.
x-groupName: General
x-sortIndex: 3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components:
schemas:
Address:
properties:
city:
description: The name of the city.
type: string
country:
description: |-
The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string
houseNumberOrName:
description: The number or name of the house.
type: string
postalCode:
description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
type: string
stateOrProvince:
description: |-
State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
> Required for the US and Canada.
type: string
street:
description: |-
The name of the street.
> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
type: string
required:
- street
- houseNumberOrName
- city
- postalCode
- country
BankAccount:
properties:
bankAccountNumber:
description: The bank account number (without separators).
type: string
bankCity:
description: The bank city.
type: string
bankLocationId:
description: The location id of the bank. The field value is `nil` in most cases.
type: string
bankName:
description: The name of the bank.
type: string
bic:
description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.'
type: string
countryCode:
description: |-
Country code where the bank is located.
A valid value is an ISO two-character country code (e.g. 'NL').
type: string
iban:
description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).'
type: string
ownerName:
description: |-
The name of the bank account holder.
If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example:
* χ12 is converted to ch12.
* üA is converted to euA.
* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.
After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example:
* John17 - allowed.
* J17 - allowed.
* 171 - not allowed.
* John-7 - allowed.
> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
type: string
taxId:
description: The bank account holder's tax ID.
type: string
Card:
properties:
cvc:
description: |-
The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits
* CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20
minLength: 1
type: string
expiryMonth:
description: |-
The card expiry month.
Format: 2 digits, zero-padded for single digits. For example:
* 03 = March
* 11 = November
maxLength: 2
minLength: 1
type: string
expiryYear:
description: |-
The card expiry year.
Format: 4 digits. For example: 2020
maxLength: 4
minLength: 4
type: string
holderName:
description: 'The name of the cardholder, as printed on the card.'
maxLength: 50
minLength: 1
type: string
issueNumber:
description: The issue number of the card (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
number:
description: |-
The card number (4-19 characters). Do not use any separators.
When this value is returned in a response, only the last 4 digits of the card number are returned.
maxLength: 19
minLength: 4
type: string
startMonth:
description: The month component of the start date (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
startYear:
description: The year component of the start date (for some UK debit cards only).
maxLength: 4
minLength: 4
type: string
required:
- number
- expiryMonth
- expiryYear
- holderName
DisableRequest:
properties:
contract:
description: |-
Specify the contract if you only want to disable a specific use.
This field can be set to one of the following values, or to their combination (comma-separated):
* ONECLICK
* RECURRING
* PAYOUT
type: string
merchantAccount:
description: The merchant account identifier with which you want to process the transaction.
type: string
recurringDetailReference:
description: |-
The ID that uniquely identifies the recurring detail reference.
If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details.
type: string
shopperReference:
description: |-
The ID that uniquely identifies the shopper.
This `shopperReference` must be the same as the `shopperReference` used in the initial payment.
type: string
required:
- merchantAccount
- shopperReference
DisableResult:
properties:
response:
description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].'
type: string
Name:
properties:
firstName:
description: The first name.
type: string
gender:
description: |-
The gender.
>The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`.
enum:
- MALE
- FEMALE
- UNKNOWN
maxLength: 1
minLength: 1
type: string
infix:
description: |-
The name's infix, if applicable.
>A maximum length of twenty (20) characters is imposed.
type: string
lastName:
description: The last name.
type: string
required:
- firstName
- lastName
- gender
Recurring:
properties:
contract:
description: |-
The type of recurring contract to be used.
Possible values:
* `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum:
- ONECLICK
- RECURRING
- PAYOUT
type: string
recurringDetailName:
description: A descriptive name for this detail.
type: string
recurringExpiry:
description: Date after which no further authorisations shall be performed. Only for 3D Secure 2.
format: date-time
type: string
recurringFrequency:
description: Minimum number of days between authorisations. Only for 3D Secure 2.
type: string
tokenService:
description: The name of the token service.
enum:
- VISATOKENSERVICE
- MCTOKENSERVICE
type: string
RecurringDetail:
properties:
additionalData:
description: |-
This field contains additional data, which may be returned in a particular response.
The additionalData object consists of entries, each of which includes the key and value.
type: object
alias:
description: |-
The alias of the credit card number.
Applies only to recurring contracts storing credit card details
type: string
aliasType:
description: |-
The alias type of the credit card number.
Applies only to recurring contracts storing credit card details.
type: string
bank:
description: A container for bank account data.
$ref: '#/components/schemas/BankAccount'
billingAddress:
description: The billing address.
$ref: '#/components/schemas/Address'
card:
description: A container for card data.
$ref: '#/components/schemas/Card'
contractTypes:
description: Types of recurring contracts.
items:
type: string
type: array
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
firstPspReference:
description: The `pspReference` of the first recurring payment that created the recurring detail.
type: string
name:
description: An optional descriptive name for this recurring detail.
type: string
paymentMethodVariant:
description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).'
type: string
recurringDetailReference:
description: The reference that uniquely identifies the recurring detail.
type: string
shopperName:
description: The name of the shopper.
$ref: '#/components/schemas/Name'
socialSecurityNumber:
description: A shopper's social security number (only in countries where it is legal to collect).
type: string
variant:
description: 'The payment method, such as “mc", "visa", "ideal", "paypal".'
type: string
required:
- recurringDetailReference
- variant
RecurringDetailsRequest:
properties:
merchantAccount:
description: The merchant account identifier you want to process the (transaction) request with.
type: string
recurring:
description: |-
A container for the type of a recurring contract to be retrieved.
The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract.
However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase.
$ref: '#/components/schemas/Recurring'
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
required:
- merchantAccount
- shopperReference
RecurringDetailsResult:
properties:
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
details:
description: Payment details stored for recurring payments.
items:
$ref: '#/components/schemas/RecurringDetail'
type: array
lastKnownShopperEmail:
description: The most recent email for this shopper (if available).
type: string
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
ScheduleAccountUpdaterRequest:
properties:
additionalData:
description: 'This field contains additional data, which may be required for a particular request.'
type: object
card:
description: |-
A container for credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.
$ref: '#/components/schemas/Card'
merchantAccount:
description: Account of the merchant.
type: string
reference:
description: A reference that merchants can apply for the call.
type: string
selectedRecurringDetailReference:
description: |-
The selected detail recurring reference.
Optional if `card` is provided.
type: string
shopperReference:
description: |-
The reference of the shopper that owns the recurring contract.
Optional if `card` is provided.
type: string
required:
- merchantAccount
- reference
ScheduleAccountUpdaterResult:
properties:
pspReference:
description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.
type: string
result:
description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.'
type: string
required:
- pspReference
- result

View File

@@ -0,0 +1,500 @@
openapi: 3.0.0
servers:
- url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v49'
info:
version: '49'
title: Adyen Recurring API
description: |-
The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.
For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization).
## Authentication
To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example:
```
curl
-U "ws@Company.YourCompany":"YourWsPassword" \
-H "Content-Type: application/json" \
...
```
Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).
## Versioning
Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
For example:
```
https://pal-test.adyen.com/pal/servlet/Recurring/v49/disable
```
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact:
name: Adyen Support
url: 'https://support.adyen.com/'
email: support@adyen.com
x-groups:
- General
paths:
/disable:
post:
summary: Disables stored payment details.
description: |-
Disables stored payment details to stop charging a shopper with this particular recurring detail ID.
For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/).
x-groupName: General
x-sortIndex: 2
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisableRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DisableResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/listRecurringDetails:
post:
summary: Retrieves stored payment details for a shopper.
description: |-
Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.
For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/).
x-groupName: General
x-sortIndex: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringDetailsResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
/scheduleAccountUpdater:
post:
summary: Schedules running of the Account Updater.
description: |-
When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:
* If the card information is provided, all the sub-fields for `card` are mandatory.
* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.
x-groupName: General
x-sortIndex: 3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAccountUpdaterResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components:
schemas:
Address:
properties:
city:
description: The name of the city.
type: string
country:
description: |-
The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**.
> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
type: string
houseNumberOrName:
description: The number or name of the house.
type: string
postalCode:
description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.'
type: string
stateOrProvince:
description: |-
State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada.
> Required for the US and Canada.
type: string
street:
description: |-
The name of the street.
> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
type: string
required:
- street
- houseNumberOrName
- city
- postalCode
- country
BankAccount:
properties:
bankAccountNumber:
description: The bank account number (without separators).
type: string
bankCity:
description: The bank city.
type: string
bankLocationId:
description: The location id of the bank. The field value is `nil` in most cases.
type: string
bankName:
description: The name of the bank.
type: string
bic:
description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.'
type: string
countryCode:
description: |-
Country code where the bank is located.
A valid value is an ISO two-character country code (e.g. 'NL').
type: string
iban:
description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).'
type: string
ownerName:
description: |-
The name of the bank account holder.
If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example:
* χ12 is converted to ch12.
* üA is converted to euA.
* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.
After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example:
* John17 - allowed.
* J17 - allowed.
* 171 - not allowed.
* John-7 - allowed.
> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
type: string
taxId:
description: The bank account holder's tax ID.
type: string
Card:
properties:
cvc:
description: |-
The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as:
* CVV2/CVC2 length: 3 digits
* CID length: 4 digits
> If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server.
> This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).
> When this value is returned in a response, it is always empty because it is not stored.
maxLength: 20
minLength: 1
type: string
expiryMonth:
description: |-
The card expiry month.
Format: 2 digits, zero-padded for single digits. For example:
* 03 = March
* 11 = November
maxLength: 2
minLength: 1
type: string
expiryYear:
description: |-
The card expiry year.
Format: 4 digits. For example: 2020
maxLength: 4
minLength: 4
type: string
holderName:
description: 'The name of the cardholder, as printed on the card.'
maxLength: 50
minLength: 1
type: string
issueNumber:
description: The issue number of the card (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
number:
description: |-
The card number (4-19 characters). Do not use any separators.
When this value is returned in a response, only the last 4 digits of the card number are returned.
maxLength: 19
minLength: 4
type: string
startMonth:
description: The month component of the start date (for some UK debit cards only).
maxLength: 2
minLength: 1
type: string
startYear:
description: The year component of the start date (for some UK debit cards only).
maxLength: 4
minLength: 4
type: string
required:
- number
- expiryMonth
- expiryYear
- holderName
DisableRequest:
properties:
contract:
description: |-
Specify the contract if you only want to disable a specific use.
This field can be set to one of the following values, or to their combination (comma-separated):
* ONECLICK
* RECURRING
* PAYOUT
type: string
merchantAccount:
description: The merchant account identifier with which you want to process the transaction.
type: string
recurringDetailReference:
description: |-
The ID that uniquely identifies the recurring detail reference.
If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details.
type: string
shopperReference:
description: |-
The ID that uniquely identifies the shopper.
This `shopperReference` must be the same as the `shopperReference` used in the initial payment.
type: string
required:
- merchantAccount
- shopperReference
DisableResult:
properties:
response:
description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].'
type: string
Name:
properties:
firstName:
description: The first name.
type: string
gender:
description: |-
The gender.
>The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`.
enum:
- MALE
- FEMALE
- UNKNOWN
maxLength: 1
minLength: 1
type: string
infix:
description: |-
The name's infix, if applicable.
>A maximum length of twenty (20) characters is imposed.
type: string
lastName:
description: The last name.
type: string
required:
- firstName
- lastName
- gender
Recurring:
properties:
contract:
description: |-
The type of recurring contract to be used.
Possible values:
* `ONECLICK` Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).
* `RECURRING` Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).
* `ONECLICK,RECURRING` Payment details can be used regardless of whether the shopper is on your site or not.
* `PAYOUT` Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts).
enum:
- ONECLICK
- RECURRING
- PAYOUT
type: string
recurringDetailName:
description: A descriptive name for this detail.
type: string
recurringExpiry:
description: Date after which no further authorisations shall be performed. Only for 3D Secure 2.
format: date-time
type: string
recurringFrequency:
description: Minimum number of days between authorisations. Only for 3D Secure 2.
type: string
tokenService:
description: The name of the token service.
enum:
- VISATOKENSERVICE
- MCTOKENSERVICE
type: string
RecurringDetail:
properties:
additionalData:
description: |-
This field contains additional data, which may be returned in a particular response.
The additionalData object consists of entries, each of which includes the key and value.
type: object
alias:
description: |-
The alias of the credit card number.
Applies only to recurring contracts storing credit card details
type: string
aliasType:
description: |-
The alias type of the credit card number.
Applies only to recurring contracts storing credit card details.
type: string
bank:
description: A container for bank account data.
$ref: '#/components/schemas/BankAccount'
billingAddress:
description: The billing address.
$ref: '#/components/schemas/Address'
card:
description: A container for card data.
$ref: '#/components/schemas/Card'
contractTypes:
description: Types of recurring contracts.
items:
type: string
type: array
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
firstPspReference:
description: The `pspReference` of the first recurring payment that created the recurring detail.
type: string
name:
description: An optional descriptive name for this recurring detail.
type: string
paymentMethodVariant:
description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).'
type: string
recurringDetailReference:
description: The reference that uniquely identifies the recurring detail.
type: string
shopperName:
description: The name of the shopper.
$ref: '#/components/schemas/Name'
socialSecurityNumber:
description: A shopper's social security number (only in countries where it is legal to collect).
type: string
variant:
description: 'The payment method, such as “mc", "visa", "ideal", "paypal".'
type: string
required:
- recurringDetailReference
- variant
RecurringDetailsRequest:
properties:
merchantAccount:
description: The merchant account identifier you want to process the (transaction) request with.
type: string
recurring:
description: |-
A container for the type of a recurring contract to be retrieved.
The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract.
However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase.
$ref: '#/components/schemas/Recurring'
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
required:
- merchantAccount
- shopperReference
RecurringDetailsResult:
properties:
creationDate:
description: The date when the recurring details were created.
format: date-time
type: string
details:
description: Payment details stored for recurring payments.
items:
$ref: '#/components/schemas/RecurringDetail'
type: array
lastKnownShopperEmail:
description: The most recent email for this shopper (if available).
type: string
shopperReference:
description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID).
type: string
ScheduleAccountUpdaterRequest:
properties:
additionalData:
description: 'This field contains additional data, which may be required for a particular request.'
type: object
card:
description: |-
A container for credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.
$ref: '#/components/schemas/Card'
merchantAccount:
description: Account of the merchant.
type: string
reference:
description: A reference that merchants can apply for the call.
type: string
selectedRecurringDetailReference:
description: |-
The selected detail recurring reference.
Optional if `card` is provided.
type: string
shopperReference:
description: |-
The reference of the shopper that owns the recurring contract.
Optional if `card` is provided.
type: string
required:
- merchantAccount
- reference
ScheduleAccountUpdaterResult:
properties:
pspReference:
description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.
type: string
result:
description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.'
type: string
required:
- pspReference
- result

View File

@@ -0,0 +1,217 @@
openapi: 3.0.0
servers:
- url: 'https://pal-test.adyen.com/pal/services/TestCard/v1'
info:
version: '1'
title: Adyen Test Cards API
description: 'The Test Cards API provides endpoints for generating custom test card numbers. For more information, refer to [Custom test cards](https://docs.adyen.com/development-resources/test-cards/create-test-cards) documentation.'
termsOfService: 'https://www.adyen.com/legal/terms-and-conditions'
contact:
name: Adyen Support
url: 'https://support.adyen.com/'
email: support@adyen.com
x-groups:
- General
paths:
/createTestCardRanges:
post:
summary: Creates one or more test card ranges.
description: Creates one or more test card ranges.
x-groupName: General
x-sortIndex: 0
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTestCardRangesRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTestCardRangesResult'
description: OK - the request has succeeded.
'400':
description: Bad Request - a problem reading or understanding the request.
'401':
description: Unauthorized - authentication required.
'403':
description: Forbidden - insufficient permissions to process the request.
'422':
description: Unprocessable Entity - a request validation error.
'500':
description: Internal Server Error - the server could not process the request.
components:
schemas:
AvsAddress:
properties:
streetAddress:
description: |-
The street and house number of the address.
Example: 1 Infinite Loop, Cupertino.
type: string
zip:
description: |-
The zip or post code of the address.
Example: CA 95014
type: string
required:
- streetAddress
CreateTestCardRangesRequest:
properties:
accountCode:
description: 'The code of the account, for which the test card ranges should be created.'
type: string
accountTypeCode:
description: |-
The type of the account, for which the test card ranges should be created.
Permitted values:
* Company
* MerchantAccount
> These values are case-sensitive.
type: string
testCardRanges:
description: A list of test card ranges to create.
items:
$ref: '#/components/schemas/TestCardRange'
type: array
required:
- accountTypeCode
- accountCode
- testCardRanges
CreateTestCardRangesResult:
properties:
rangeCreationResults:
description: The results of the test card creation.
items:
$ref: '#/components/schemas/TestCardRangeCreationResult'
type: array
required:
- rangeCreationResults
TestCardRange:
properties:
address:
description: 'Contains the billing address of the card holder. The address details need to be AVS-compliant, which means that you need to provide at least street address.'
$ref: '#/components/schemas/AvsAddress'
cardHolderName:
description: 'The name of the card holder, as it appears on the card, for the test card range.'
type: string
cvc:
description: |-
The test card range security code.
Example: 123
type: string
expiryMonth:
description: |-
Expiry month for the test card range.
Allowed values:
* JANUARY
* FEBRUARY
* MARCH
* APRIL
* MAY
* JUNE
* JULY
* AUGUST
* SEPTEMBER
* OCTOBER
* NOVEMBER
* DECEMBER
enum:
- APRIL
- AUGUST
- DECEMBER
- FEBRUARY
- JANUARY
- JULY
- JUNE
- MARCH
- MAY
- NOVEMBER
- OCTOBER
- SEPTEMBER
type: string
expiryYear:
description: |-
Expiry year for the test card range.
Example: 2020
format: int32
type: integer
rangeEnd:
description: |-
The last test card number in the test card range (inclusive):
* Min 6, max 19 digits
* BIN compliant
Example: 5432 1234 1234 4321
type: string
rangeStart:
description: |-
The first test card number in the test card range (inclusive):
* Min 6, max 19 digits
* BIN compliant
Example: 5432 1234 1234 1234
type: string
threeDDirectoryServerResponse:
description: |-
3D Secure server response. It notifies whether the specified card holder is enrolled in a 3D Secure service. Possible values:
* Y (Authentication available)
* N (Card holder not enrolled/not participating)
* U (Unable to authenticate)
enum:
- 'N'
- U
- 'Y'
type: string
threeDPassword:
description: The password used for 3D Secure authentication.
type: string
threeDUsername:
description: The username used for 3D Secure authentication.
type: string
required:
- rangeStart
- rangeEnd
- expiryMonth
- expiryYear
- cardHolderName
TestCardRangeCreationResult:
properties:
cardNumberRangeEnd:
description: |-
The last test card number in the generated test card range.
Example: 5432 1234 1234 4321
type: string
cardNumberRangeStart:
description: |-
The first test card number in the generated test card range.
Example: 5432 1234 1234 1234
type: string
creationResultCode:
description: |-
Notification message. It informs about the outcome of the operation. Possible values:
* CREATED
* ALREADY_EXISTS
* ERROR
enum:
- ALREADY_EXISTS
- CREATED
- ERROR
type: string
message:
description: An optional information message about the result.
type: string
required:
- cardNumberRangeStart
- cardNumberRangeEnd
- creationResultCode