From e376b48df46bb9a9571a3123907b95fa34345a0e Mon Sep 17 00:00:00 2001 From: Adyen Automation Date: Thu, 12 Jan 2023 08:36:34 +0000 Subject: [PATCH] spec release --- json/RecurringService-v25.json | 8 +- json/RecurringService-v30.json | 8 +- json/RecurringService-v40.json | 202 +++++++++++++++++++- json/RecurringService-v49.json | 202 +++++++++++++++++++- json/RecurringService-v67.json | 325 ++++++++++++++++++++++++++++++++- json/RecurringService-v68.json | 325 ++++++++++++++++++++++++++++++++- yaml/RecurringService-v25.yaml | 8 +- yaml/RecurringService-v30.yaml | 8 +- yaml/RecurringService-v40.yaml | 144 ++++++++++++++- yaml/RecurringService-v49.yaml | 144 ++++++++++++++- yaml/RecurringService-v67.yaml | 221 +++++++++++++++++++++- yaml/RecurringService-v68.yaml | 221 +++++++++++++++++++++- 12 files changed, 1756 insertions(+), 60 deletions(-) diff --git a/json/RecurringService-v25.json b/json/RecurringService-v25.json index 490e52a..a127d38 100644 --- a/json/RecurringService-v25.json +++ b/json/RecurringService-v25.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-02T17:27:08Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -235,7 +235,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +340,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,8 +586,6 @@ } }, "required" : [ - "number", - "expiryMonth", "expiryYear", "holderName" ] diff --git a/json/RecurringService-v30.json b/json/RecurringService-v30.json index af5ce59..66235a2 100644 --- a/json/RecurringService-v30.json +++ b/json/RecurringService-v30.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-02T17:27:08Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -235,7 +235,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +340,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,8 +586,6 @@ } }, "required" : [ - "number", - "expiryMonth", "expiryYear", "holderName" ] diff --git a/json/RecurringService-v40.json b/json/RecurringService-v40.json index b636b01..eda6b1d 100644 --- a/json/RecurringService-v40.json +++ b/json/RecurringService-v40.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-10T17:26:09Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,101 @@ } ], "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, + "x-methodName" : "createNewPermitsLinkedToRecurringContract", + "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" : [ @@ -235,7 +330,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +435,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,12 +681,54 @@ } }, "required" : [ - "number", - "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" : { @@ -719,6 +856,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 d537771..661e41b 100644 --- a/json/RecurringService-v49.json +++ b/json/RecurringService-v49.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-10T17:26:09Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,101 @@ } ], "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, + "x-methodName" : "createNewPermitsLinkedToRecurringContract", + "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" : [ @@ -235,7 +330,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +435,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,12 +681,54 @@ } }, "required" : [ - "number", - "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" : { @@ -719,6 +856,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 41d01fb..c422689 100644 --- a/json/RecurringService-v67.json +++ b/json/RecurringService-v67.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-10T17:26:09Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,101 @@ } ], "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, + "x-methodName" : "createNewPermitsLinkedToRecurringContract", + "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" : [ @@ -126,6 +221,101 @@ } } }, + "/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, + "x-methodName" : "disableExistingPermit", + "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" : [ @@ -235,7 +425,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +530,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,12 +776,82 @@ } }, "required" : [ - "number", - "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" : { @@ -719,6 +979,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 e6dade2..32c953f 100644 --- a/json/RecurringService-v68.json +++ b/json/RecurringService-v68.json @@ -10,7 +10,7 @@ "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\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-11-28T11:27:24Z", + "x-timestamp" : "2023-01-10T17:26:09Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -27,6 +27,101 @@ } ], "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, + "x-methodName" : "createNewPermitsLinkedToRecurringContract", + "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" : [ @@ -126,6 +221,101 @@ } } }, + "/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, + "x-methodName" : "disableExistingPermit", + "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" : [ @@ -235,7 +425,7 @@ "operationId" : "post-notifyShopper", "x-groupName" : "General", "x-sortIndex" : 4, - "x-methodName" : "askIssuerToNotifyTheShopper", + "x-methodName" : "askIssuerToNotifyShopper", "security" : [ { "BasicAuth" : [ @@ -340,7 +530,7 @@ "operationId" : "post-scheduleAccountUpdater", "x-groupName" : "General", "x-sortIndex" : 3, - "x-methodName" : "scheduleRunningTheAccountUpdater", + "x-methodName" : "scheduleRunningAccountUpdater", "security" : [ { "BasicAuth" : [ @@ -586,12 +776,82 @@ } }, "required" : [ - "number", - "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" : { @@ -719,6 +979,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 7ebab59..87d628c 100644 --- a/yaml/RecurringService-v25.yaml +++ b/yaml/RecurringService-v25.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-02T17:27:08Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -172,7 +172,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +240,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,8 +459,6 @@ components: minLength: 4 type: string required: - - number - - expiryMonth - expiryYear - holderName DisableRequest: diff --git a/yaml/RecurringService-v30.yaml b/yaml/RecurringService-v30.yaml index 3e107c1..c17afd3 100644 --- a/yaml/RecurringService-v30.yaml +++ b/yaml/RecurringService-v30.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-02T17:27:08Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -172,7 +172,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +240,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,8 +459,6 @@ components: minLength: 4 type: string required: - - number - - expiryMonth - expiryYear - holderName DisableRequest: diff --git a/yaml/RecurringService-v40.yaml b/yaml/RecurringService-v40.yaml index b6808a4..7bd4f1d 100644 --- a/yaml/RecurringService-v40.yaml +++ b/yaml/RecurringService-v40.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-10T17:26:09Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -35,6 +35,63 @@ 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 + x-methodName: createNewPermitsLinkedToRecurringContract + 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: @@ -172,7 +229,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +297,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,10 +516,42 @@ components: minLength: 4 type: string required: - - number - - 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: @@ -588,6 +677,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 b25d3d2..dd4eb22 100644 --- a/yaml/RecurringService-v49.yaml +++ b/yaml/RecurringService-v49.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-10T17:26:09Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -35,6 +35,63 @@ 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 + x-methodName: createNewPermitsLinkedToRecurringContract + 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: @@ -172,7 +229,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +297,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,10 +516,42 @@ components: minLength: 4 type: string required: - - number - - 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: @@ -588,6 +677,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 88493be..4c62be5 100644 --- a/yaml/RecurringService-v67.yaml +++ b/yaml/RecurringService-v67.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-10T17:26:09Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -35,6 +35,63 @@ 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 + x-methodName: createNewPermitsLinkedToRecurringContract + 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: @@ -97,6 +154,62 @@ 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 + x-methodName: disableExistingPermit + 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: @@ -172,7 +285,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +353,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,10 +572,63 @@ components: minLength: 4 type: string required: - - number - - 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: @@ -588,6 +754,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 f6e12ae..a458561 100644 --- a/yaml/RecurringService-v68.yaml +++ b/yaml/RecurringService-v68.yaml @@ -24,7 +24,7 @@ info: \ 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-11-28T11:27:24Z' + x-timestamp: '2023-01-10T17:26:09Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -35,6 +35,63 @@ 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 + x-methodName: createNewPermitsLinkedToRecurringContract + 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: @@ -97,6 +154,62 @@ 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 + x-methodName: disableExistingPermit + 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: @@ -172,7 +285,7 @@ paths: operationId: post-notifyShopper x-groupName: General x-sortIndex: 4 - x-methodName: askIssuerToNotifyTheShopper + x-methodName: askIssuerToNotifyShopper security: - BasicAuth: [] - ApiKeyAuth: [] @@ -240,7 +353,7 @@ paths: operationId: post-scheduleAccountUpdater x-groupName: General x-sortIndex: 3 - x-methodName: scheduleRunningTheAccountUpdater + x-methodName: scheduleRunningAccountUpdater security: - BasicAuth: [] - ApiKeyAuth: [] @@ -459,10 +572,63 @@ components: minLength: 4 type: string required: - - number - - 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: @@ -588,6 +754,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: