diff --git a/json/RecurringService-v25.json b/json/RecurringService-v25.json index a9a77ec..d416941 100644 --- a/json/RecurringService-v25.json +++ b/json/RecurringService-v25.json @@ -9,8 +9,8 @@ "version" : "25", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v25/disable\n```", - "x-timestamp" : "2022-07-19T19:18:39Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v25/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v25/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", diff --git a/json/RecurringService-v30.json b/json/RecurringService-v30.json index d1880ef..1988326 100644 --- a/json/RecurringService-v30.json +++ b/json/RecurringService-v30.json @@ -9,8 +9,8 @@ "version" : "30", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v30/disable\n```", - "x-timestamp" : "2022-07-19T19:18:39Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v30/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v30/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", diff --git a/json/RecurringService-v40.json b/json/RecurringService-v40.json index 093ddb5..16abfe7 100644 --- a/json/RecurringService-v40.json +++ b/json/RecurringService-v40.json @@ -9,8 +9,8 @@ "version" : "40", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v40/disable\n```", - "x-timestamp" : "2022-07-19T19:18:39Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v40/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v40/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,100 @@ } ], "paths" : { + "/createPermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Create new permits linked to a recurring contract.", + "description" : "Create permits for a recurring contract, including support for defining restrictions.", + "x-addedInVersion" : "40", + "operationId" : "post-createPermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/disable" : { "post" : { "tags" : [ @@ -588,6 +682,50 @@ "holderName" ] }, + "CreatePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "permits" : { + "description" : "The permits to create for this recurring contract.", + "items" : { + "$ref" : "#/components/schemas/Permit" + }, + "type" : "array" + }, + "recurringDetailReference" : { + "description" : "The recurring contract the new permits will use.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperReference", + "recurringDetailReference", + "permits" + ] + }, + "CreatePermitResult" : { + "properties" : { + "permitResultList" : { + "description" : "List of new permits.", + "items" : { + "$ref" : "#/components/schemas/PermitResult" + }, + "type" : "array" + }, + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + } + } + }, "DisableRequest" : { "properties" : { "contract" : { @@ -715,6 +853,61 @@ } } }, + "Permit" : { + "properties" : { + "partnerId" : { + "description" : "Partner ID (when using the permit-per-partner token sharing model).", + "type" : "string" + }, + "profileReference" : { + "description" : "The profile to apply to this permit (when using the shared permits model).", + "type" : "string" + }, + "restriction" : { + "description" : "Permit level restriction overrides.", + "$ref" : "#/components/schemas/PermitRestriction" + }, + "resultKey" : { + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "validTillDate" : { + "description" : "The expiry date for this permit.", + "format" : "date-time", + "type" : "string" + } + } + }, + "PermitRestriction" : { + "properties" : { + "maxAmount" : { + "description" : "The total sum amount of one or more payments made using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleTransactionLimit" : { + "description" : "The amount of any single payment using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleUse" : { + "description" : "Only a single payment can be made using this permit if set to true, otherwise multiple payments are allowed.", + "type" : "boolean" + } + } + }, + "PermitResult" : { + "properties" : { + "resultKey" : { + "x-addedInVersion" : "32", + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "token" : { + "x-addedInVersion" : "32", + "description" : "The permit token which is used to make payments by the partner company.", + "type" : "string" + } + } + }, "Recurring" : { "properties" : { "contract" : { diff --git a/json/RecurringService-v49.json b/json/RecurringService-v49.json index bfa9f01..a3dcd8e 100644 --- a/json/RecurringService-v49.json +++ b/json/RecurringService-v49.json @@ -9,8 +9,8 @@ "version" : "49", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v49/disable\n```", - "x-timestamp" : "2022-08-25T17:24:58Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v49/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v49/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,100 @@ } ], "paths" : { + "/createPermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Create new permits linked to a recurring contract.", + "description" : "Create permits for a recurring contract, including support for defining restrictions.", + "x-addedInVersion" : "40", + "operationId" : "post-createPermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/disable" : { "post" : { "tags" : [ @@ -588,6 +682,50 @@ "holderName" ] }, + "CreatePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "permits" : { + "description" : "The permits to create for this recurring contract.", + "items" : { + "$ref" : "#/components/schemas/Permit" + }, + "type" : "array" + }, + "recurringDetailReference" : { + "description" : "The recurring contract the new permits will use.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperReference", + "recurringDetailReference", + "permits" + ] + }, + "CreatePermitResult" : { + "properties" : { + "permitResultList" : { + "description" : "List of new permits.", + "items" : { + "$ref" : "#/components/schemas/PermitResult" + }, + "type" : "array" + }, + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + } + } + }, "DisableRequest" : { "properties" : { "contract" : { @@ -715,6 +853,61 @@ } } }, + "Permit" : { + "properties" : { + "partnerId" : { + "description" : "Partner ID (when using the permit-per-partner token sharing model).", + "type" : "string" + }, + "profileReference" : { + "description" : "The profile to apply to this permit (when using the shared permits model).", + "type" : "string" + }, + "restriction" : { + "description" : "Permit level restriction overrides.", + "$ref" : "#/components/schemas/PermitRestriction" + }, + "resultKey" : { + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "validTillDate" : { + "description" : "The expiry date for this permit.", + "format" : "date-time", + "type" : "string" + } + } + }, + "PermitRestriction" : { + "properties" : { + "maxAmount" : { + "description" : "The total sum amount of one or more payments made using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleTransactionLimit" : { + "description" : "The amount of any single payment using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleUse" : { + "description" : "Only a single payment can be made using this permit if set to true, otherwise multiple payments are allowed.", + "type" : "boolean" + } + } + }, + "PermitResult" : { + "properties" : { + "resultKey" : { + "x-addedInVersion" : "32", + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "token" : { + "x-addedInVersion" : "32", + "description" : "The permit token which is used to make payments by the partner company.", + "type" : "string" + } + } + }, "Recurring" : { "properties" : { "contract" : { diff --git a/json/RecurringService-v67.json b/json/RecurringService-v67.json index b4920cb..c564de5 100644 --- a/json/RecurringService-v67.json +++ b/json/RecurringService-v67.json @@ -9,8 +9,8 @@ "version" : "67", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v67/disable\n```", - "x-timestamp" : "2022-08-25T17:24:58Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v67/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v67/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,100 @@ } ], "paths" : { + "/createPermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Create new permits linked to a recurring contract.", + "description" : "Create permits for a recurring contract, including support for defining restrictions.", + "x-addedInVersion" : "40", + "operationId" : "post-createPermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/disable" : { "post" : { "tags" : [ @@ -125,6 +219,100 @@ } } }, + "/disablePermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Disable an existing permit.", + "description" : "Disable a permit that was previously linked to a recurringDetailReference.", + "x-addedInVersion" : "61", + "operationId" : "post-disablePermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DisablePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DisablePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/listRecurringDetails" : { "post" : { "tags" : [ @@ -588,6 +776,78 @@ "holderName" ] }, + "CreatePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "permits" : { + "description" : "The permits to create for this recurring contract.", + "items" : { + "$ref" : "#/components/schemas/Permit" + }, + "type" : "array" + }, + "recurringDetailReference" : { + "description" : "The recurring contract the new permits will use.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperReference", + "recurringDetailReference", + "permits" + ] + }, + "CreatePermitResult" : { + "properties" : { + "permitResultList" : { + "description" : "List of new permits.", + "items" : { + "$ref" : "#/components/schemas/PermitResult" + }, + "type" : "array" + }, + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + } + } + }, + "DisablePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "token" : { + "description" : "The permit token to disable.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "token" + ] + }, + "DisablePermitResult" : { + "properties" : { + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "status" : { + "description" : "Status of the disable request.", + "type" : "string" + } + } + }, "DisableRequest" : { "properties" : { "contract" : { @@ -715,6 +975,61 @@ } } }, + "Permit" : { + "properties" : { + "partnerId" : { + "description" : "Partner ID (when using the permit-per-partner token sharing model).", + "type" : "string" + }, + "profileReference" : { + "description" : "The profile to apply to this permit (when using the shared permits model).", + "type" : "string" + }, + "restriction" : { + "description" : "Permit level restriction overrides.", + "$ref" : "#/components/schemas/PermitRestriction" + }, + "resultKey" : { + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "validTillDate" : { + "description" : "The expiry date for this permit.", + "format" : "date-time", + "type" : "string" + } + } + }, + "PermitRestriction" : { + "properties" : { + "maxAmount" : { + "description" : "The total sum amount of one or more payments made using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleTransactionLimit" : { + "description" : "The amount of any single payment using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleUse" : { + "description" : "Only a single payment can be made using this permit if set to true, otherwise multiple payments are allowed.", + "type" : "boolean" + } + } + }, + "PermitResult" : { + "properties" : { + "resultKey" : { + "x-addedInVersion" : "32", + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "token" : { + "x-addedInVersion" : "32", + "description" : "The permit token which is used to make payments by the partner company.", + "type" : "string" + } + } + }, "Recurring" : { "properties" : { "contract" : { diff --git a/json/RecurringService-v68.json b/json/RecurringService-v68.json index 230ab9a..102cf3d 100644 --- a/json/RecurringService-v68.json +++ b/json/RecurringService-v68.json @@ -9,8 +9,8 @@ "version" : "68", "x-publicVersion" : true, "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nTo 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/development-resources/api-credentials). Then use its credentials to authenticate your request, for example:\n\n```\ncurl\n-U \"ws@Company.YourCompany\":\"YourWsPassword\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nNote 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).\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v68/disable\n```", - "x-timestamp" : "2022-08-25T17:24:58Z", + "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.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v68/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v68/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.", + "x-timestamp" : "2022-09-26T15:20:41Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,100 @@ } ], "paths" : { + "/createPermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Create new permits linked to a recurring contract.", + "description" : "Create permits for a recurring contract, including support for defining restrictions.", + "x-addedInVersion" : "40", + "operationId" : "post-createPermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/disable" : { "post" : { "tags" : [ @@ -125,6 +219,100 @@ } } }, + "/disablePermit" : { + "post" : { + "tags" : [ + "General" + ], + "summary" : "Disable an existing permit.", + "description" : "Disable a permit that was previously linked to a recurringDetailReference.", + "x-addedInVersion" : "61", + "operationId" : "post-disablePermit", + "x-groupName" : "General", + "x-sortIndex" : 0, + "security" : [ + { + "BasicAuth" : [ + ] + }, + { + "ApiKeyAuth" : [ + ] + } + ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DisablePermitRequest" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DisablePermitResult" + } + } + }, + "description" : "OK - the request has succeeded." + }, + "400" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Bad Request - a problem reading or understanding the request." + }, + "401" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unauthorized - authentication required." + }, + "403" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Forbidden - insufficient permissions to process the request." + }, + "422" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Unprocessable Entity - a request validation error." + }, + "500" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ServiceError" + } + } + }, + "description" : "Internal Server Error - the server could not process the request." + } + } + } + }, "/listRecurringDetails" : { "post" : { "tags" : [ @@ -588,6 +776,78 @@ "holderName" ] }, + "CreatePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "permits" : { + "description" : "The permits to create for this recurring contract.", + "items" : { + "$ref" : "#/components/schemas/Permit" + }, + "type" : "array" + }, + "recurringDetailReference" : { + "description" : "The recurring contract the new permits will use.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperReference", + "recurringDetailReference", + "permits" + ] + }, + "CreatePermitResult" : { + "properties" : { + "permitResultList" : { + "description" : "List of new permits.", + "items" : { + "$ref" : "#/components/schemas/PermitResult" + }, + "type" : "array" + }, + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + } + } + }, + "DisablePermitRequest" : { + "properties" : { + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "token" : { + "description" : "The permit token to disable.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "token" + ] + }, + "DisablePermitResult" : { + "properties" : { + "pspReference" : { + "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "status" : { + "description" : "Status of the disable request.", + "type" : "string" + } + } + }, "DisableRequest" : { "properties" : { "contract" : { @@ -715,6 +975,61 @@ } } }, + "Permit" : { + "properties" : { + "partnerId" : { + "description" : "Partner ID (when using the permit-per-partner token sharing model).", + "type" : "string" + }, + "profileReference" : { + "description" : "The profile to apply to this permit (when using the shared permits model).", + "type" : "string" + }, + "restriction" : { + "description" : "Permit level restriction overrides.", + "$ref" : "#/components/schemas/PermitRestriction" + }, + "resultKey" : { + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "validTillDate" : { + "description" : "The expiry date for this permit.", + "format" : "date-time", + "type" : "string" + } + } + }, + "PermitRestriction" : { + "properties" : { + "maxAmount" : { + "description" : "The total sum amount of one or more payments made using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleTransactionLimit" : { + "description" : "The amount of any single payment using this permit may not exceed this amount if set.", + "$ref" : "#/components/schemas/Amount" + }, + "singleUse" : { + "description" : "Only a single payment can be made using this permit if set to true, otherwise multiple payments are allowed.", + "type" : "boolean" + } + } + }, + "PermitResult" : { + "properties" : { + "resultKey" : { + "x-addedInVersion" : "32", + "description" : "The key to link permit requests to permit results.", + "type" : "string" + }, + "token" : { + "x-addedInVersion" : "32", + "description" : "The permit token which is used to make payments by the partner company.", + "type" : "string" + } + } + }, "Recurring" : { "properties" : { "contract" : { diff --git a/yaml/RecurringService-v25.yaml b/yaml/RecurringService-v25.yaml index 8888178..f2509a8 100644 --- a/yaml/RecurringService-v25.yaml +++ b/yaml/RecurringService-v25.yaml @@ -5,51 +5,26 @@ info: version: '25' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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/v25/disable - - ```' - x-timestamp: '2022-07-19T19:18:39Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v25/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v25/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team diff --git a/yaml/RecurringService-v30.yaml b/yaml/RecurringService-v30.yaml index 92e4570..52d05ab 100644 --- a/yaml/RecurringService-v30.yaml +++ b/yaml/RecurringService-v30.yaml @@ -5,51 +5,26 @@ info: version: '30' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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 - - ```' - x-timestamp: '2022-07-19T19:18:39Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v30/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v30/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team diff --git a/yaml/RecurringService-v40.yaml b/yaml/RecurringService-v40.yaml index 0adcd41..546a4f4 100644 --- a/yaml/RecurringService-v40.yaml +++ b/yaml/RecurringService-v40.yaml @@ -5,51 +5,26 @@ info: version: '40' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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 - - ```' - x-timestamp: '2022-07-19T19:18:39Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v40/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v40/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -60,6 +35,62 @@ x-groups: tags: - name: General paths: + /createPermit: + post: + tags: + - General + summary: Create new permits linked to a recurring contract. + description: Create permits for a recurring contract, including support for + defining restrictions. + x-addedInVersion: '40' + operationId: post-createPermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /disable: post: tags: @@ -484,6 +515,40 @@ components: - expiryMonth - expiryYear - holderName + CreatePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + permits: + description: The permits to create for this recurring contract. + items: + $ref: '#/components/schemas/Permit' + type: array + recurringDetailReference: + description: The recurring contract the new permits will use. + type: string + shopperReference: + description: The shopper's reference to uniquely identify this shopper (e.g. + user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + - recurringDetailReference + - permits + CreatePermitResult: + properties: + permitResultList: + description: List of new permits. + items: + $ref: '#/components/schemas/PermitResult' + type: array + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string DisableRequest: properties: contract: @@ -609,6 +674,51 @@ components: description: This is the recurringDetailReference returned in the response when token was created type: string + Permit: + properties: + partnerId: + description: Partner ID (when using the permit-per-partner token sharing + model). + type: string + profileReference: + description: The profile to apply to this permit (when using the shared + permits model). + type: string + restriction: + description: Permit level restriction overrides. + $ref: '#/components/schemas/PermitRestriction' + resultKey: + description: The key to link permit requests to permit results. + type: string + validTillDate: + description: The expiry date for this permit. + format: date-time + type: string + PermitRestriction: + properties: + maxAmount: + description: The total sum amount of one or more payments made using this + permit may not exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleTransactionLimit: + description: The amount of any single payment using this permit may not + exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleUse: + description: Only a single payment can be made using this permit if set + to true, otherwise multiple payments are allowed. + type: boolean + PermitResult: + properties: + resultKey: + x-addedInVersion: '32' + description: The key to link permit requests to permit results. + type: string + token: + x-addedInVersion: '32' + description: The permit token which is used to make payments by the partner + company. + type: string Recurring: properties: contract: diff --git a/yaml/RecurringService-v49.yaml b/yaml/RecurringService-v49.yaml index 2615f18..e63f513 100644 --- a/yaml/RecurringService-v49.yaml +++ b/yaml/RecurringService-v49.yaml @@ -5,51 +5,26 @@ info: version: '49' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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 - - ```' - x-timestamp: '2022-08-25T17:24:58Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v49/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v49/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -60,6 +35,62 @@ x-groups: tags: - name: General paths: + /createPermit: + post: + tags: + - General + summary: Create new permits linked to a recurring contract. + description: Create permits for a recurring contract, including support for + defining restrictions. + x-addedInVersion: '40' + operationId: post-createPermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /disable: post: tags: @@ -484,6 +515,40 @@ components: - expiryMonth - expiryYear - holderName + CreatePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + permits: + description: The permits to create for this recurring contract. + items: + $ref: '#/components/schemas/Permit' + type: array + recurringDetailReference: + description: The recurring contract the new permits will use. + type: string + shopperReference: + description: The shopper's reference to uniquely identify this shopper (e.g. + user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + - recurringDetailReference + - permits + CreatePermitResult: + properties: + permitResultList: + description: List of new permits. + items: + $ref: '#/components/schemas/PermitResult' + type: array + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string DisableRequest: properties: contract: @@ -609,6 +674,51 @@ components: description: This is the recurringDetailReference returned in the response when token was created type: string + Permit: + properties: + partnerId: + description: Partner ID (when using the permit-per-partner token sharing + model). + type: string + profileReference: + description: The profile to apply to this permit (when using the shared + permits model). + type: string + restriction: + description: Permit level restriction overrides. + $ref: '#/components/schemas/PermitRestriction' + resultKey: + description: The key to link permit requests to permit results. + type: string + validTillDate: + description: The expiry date for this permit. + format: date-time + type: string + PermitRestriction: + properties: + maxAmount: + description: The total sum amount of one or more payments made using this + permit may not exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleTransactionLimit: + description: The amount of any single payment using this permit may not + exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleUse: + description: Only a single payment can be made using this permit if set + to true, otherwise multiple payments are allowed. + type: boolean + PermitResult: + properties: + resultKey: + x-addedInVersion: '32' + description: The key to link permit requests to permit results. + type: string + token: + x-addedInVersion: '32' + description: The permit token which is used to make payments by the partner + company. + type: string Recurring: properties: contract: diff --git a/yaml/RecurringService-v67.yaml b/yaml/RecurringService-v67.yaml index f4d103d..1d0edc7 100644 --- a/yaml/RecurringService-v67.yaml +++ b/yaml/RecurringService-v67.yaml @@ -5,51 +5,26 @@ info: version: '67' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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/v67/disable - - ```' - x-timestamp: '2022-08-25T17:24:58Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v67/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v67/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -60,6 +35,62 @@ x-groups: tags: - name: General paths: + /createPermit: + post: + tags: + - General + summary: Create new permits linked to a recurring contract. + description: Create permits for a recurring contract, including support for + defining restrictions. + x-addedInVersion: '40' + operationId: post-createPermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /disable: post: tags: @@ -121,6 +152,61 @@ paths: schema: $ref: '#/components/schemas/ServiceError' description: Internal Server Error - the server could not process the request. + /disablePermit: + post: + tags: + - General + summary: Disable an existing permit. + description: Disable a permit that was previously linked to a recurringDetailReference. + x-addedInVersion: '61' + operationId: post-disablePermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisablePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisablePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /listRecurringDetails: post: tags: @@ -484,6 +570,61 @@ components: - expiryMonth - expiryYear - holderName + CreatePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + permits: + description: The permits to create for this recurring contract. + items: + $ref: '#/components/schemas/Permit' + type: array + recurringDetailReference: + description: The recurring contract the new permits will use. + type: string + shopperReference: + description: The shopper's reference to uniquely identify this shopper (e.g. + user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + - recurringDetailReference + - permits + CreatePermitResult: + properties: + permitResultList: + description: List of new permits. + items: + $ref: '#/components/schemas/PermitResult' + type: array + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string + DisablePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + token: + description: The permit token to disable. + type: string + required: + - merchantAccount + - token + DisablePermitResult: + properties: + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string + status: + description: Status of the disable request. + type: string DisableRequest: properties: contract: @@ -609,6 +750,51 @@ components: description: This is the recurringDetailReference returned in the response when token was created type: string + Permit: + properties: + partnerId: + description: Partner ID (when using the permit-per-partner token sharing + model). + type: string + profileReference: + description: The profile to apply to this permit (when using the shared + permits model). + type: string + restriction: + description: Permit level restriction overrides. + $ref: '#/components/schemas/PermitRestriction' + resultKey: + description: The key to link permit requests to permit results. + type: string + validTillDate: + description: The expiry date for this permit. + format: date-time + type: string + PermitRestriction: + properties: + maxAmount: + description: The total sum amount of one or more payments made using this + permit may not exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleTransactionLimit: + description: The amount of any single payment using this permit may not + exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleUse: + description: Only a single payment can be made using this permit if set + to true, otherwise multiple payments are allowed. + type: boolean + PermitResult: + properties: + resultKey: + x-addedInVersion: '32' + description: The key to link permit requests to permit results. + type: string + token: + x-addedInVersion: '32' + description: The permit token which is used to make payments by the partner + company. + type: string Recurring: properties: contract: diff --git a/yaml/RecurringService-v68.yaml b/yaml/RecurringService-v68.yaml index e712bb9..07fa3d3 100644 --- a/yaml/RecurringService-v68.yaml +++ b/yaml/RecurringService-v68.yaml @@ -5,51 +5,26 @@ info: version: '68' x-publicVersion: true 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/online-payments/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/development-resources/api-credentials). 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](https://docs.adyen.com/development-resources/versioning) - using 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/v68/disable - - ```' - x-timestamp: '2022-08-25T17:24:58Z' + 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.\n\ + \nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n\ + ## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials)\ + \ to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header\ + \ with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type:\ + \ application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively,\ + \ you can use the username and password to connect to the API using basic authentication,\ + \ for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\"\ + \ \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring\ + \ API supports [versioning](https://docs.adyen.com/development-resources/versioning)\ + \ using a version suffix in the endpoint URL. This suffix has the following format:\ + \ \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v68/disable\n\ + ```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API\ + \ credential](https://docs.adyen.com/development-resources/api-credentials) from\ + \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ + \ unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v68/disable\n\ + ```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\ + \ **API URLs** > **Prefix**." + x-timestamp: '2022-09-26T15:20:41Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -60,6 +35,62 @@ x-groups: tags: - name: General paths: + /createPermit: + post: + tags: + - General + summary: Create new permits linked to a recurring contract. + description: Create permits for a recurring contract, including support for + defining restrictions. + x-addedInVersion: '40' + operationId: post-createPermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /disable: post: tags: @@ -121,6 +152,61 @@ paths: schema: $ref: '#/components/schemas/ServiceError' description: Internal Server Error - the server could not process the request. + /disablePermit: + post: + tags: + - General + summary: Disable an existing permit. + description: Disable a permit that was previously linked to a recurringDetailReference. + x-addedInVersion: '61' + operationId: post-disablePermit + x-groupName: General + x-sortIndex: 0 + security: + - BasicAuth: [] + - ApiKeyAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisablePermitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisablePermitResult' + description: OK - the request has succeeded. + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Bad Request - a problem reading or understanding the request. + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unauthorized - authentication required. + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Forbidden - insufficient permissions to process the request. + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Unprocessable Entity - a request validation error. + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceError' + description: Internal Server Error - the server could not process the request. /listRecurringDetails: post: tags: @@ -484,6 +570,61 @@ components: - expiryMonth - expiryYear - holderName + CreatePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + permits: + description: The permits to create for this recurring contract. + items: + $ref: '#/components/schemas/Permit' + type: array + recurringDetailReference: + description: The recurring contract the new permits will use. + type: string + shopperReference: + description: The shopper's reference to uniquely identify this shopper (e.g. + user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + - recurringDetailReference + - permits + CreatePermitResult: + properties: + permitResultList: + description: List of new permits. + items: + $ref: '#/components/schemas/PermitResult' + type: array + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string + DisablePermitRequest: + properties: + merchantAccount: + description: The merchant account identifier, with which you want to process + the transaction. + type: string + token: + description: The permit token to disable. + type: string + required: + - merchantAccount + - token + DisablePermitResult: + properties: + pspReference: + description: A unique reference associated with the request. This value + is globally unique; quote it when communicating with us about this request. + type: string + status: + description: Status of the disable request. + type: string DisableRequest: properties: contract: @@ -609,6 +750,51 @@ components: description: This is the recurringDetailReference returned in the response when token was created type: string + Permit: + properties: + partnerId: + description: Partner ID (when using the permit-per-partner token sharing + model). + type: string + profileReference: + description: The profile to apply to this permit (when using the shared + permits model). + type: string + restriction: + description: Permit level restriction overrides. + $ref: '#/components/schemas/PermitRestriction' + resultKey: + description: The key to link permit requests to permit results. + type: string + validTillDate: + description: The expiry date for this permit. + format: date-time + type: string + PermitRestriction: + properties: + maxAmount: + description: The total sum amount of one or more payments made using this + permit may not exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleTransactionLimit: + description: The amount of any single payment using this permit may not + exceed this amount if set. + $ref: '#/components/schemas/Amount' + singleUse: + description: Only a single payment can be made using this permit if set + to true, otherwise multiple payments are allowed. + type: boolean + PermitResult: + properties: + resultKey: + x-addedInVersion: '32' + description: The key to link permit requests to permit results. + type: string + token: + x-addedInVersion: '32' + description: The permit token which is used to make payments by the partner + company. + type: string Recurring: properties: contract: