From a5983e09a461ff1b3c6148b89eccdbbfb7e8cf1b Mon Sep 17 00:00:00 2001 From: Adyen Automation Date: Wed, 19 Mar 2025 17:17:43 +0100 Subject: [PATCH] spec release --- json/BalancePlatformAcsNotification-v1.json | 50 +++++++++++++------ ...alancePlatformTransferNotification-v3.json | 11 ++++ ...alancePlatformTransferNotification-v4.json | 13 ++++- json/TransferService-v2.json | 1 + json/TransferService-v3.json | 10 ++++ json/TransferService-v4.json | 14 +++++- yaml/BalancePlatformAcsNotification-v1.yaml | 43 +++++++++++----- ...alancePlatformTransferNotification-v3.yaml | 13 +++++ ...alancePlatformTransferNotification-v4.yaml | 16 +++++- yaml/TransferService-v2.yaml | 1 + yaml/TransferService-v3.yaml | 12 +++++ yaml/TransferService-v4.yaml | 17 ++++++- 12 files changed, 168 insertions(+), 33 deletions(-) diff --git a/json/BalancePlatformAcsNotification-v1.json b/json/BalancePlatformAcsNotification-v1.json index 1ca22fe..27d6453 100644 --- a/json/BalancePlatformAcsNotification-v1.json +++ b/json/BalancePlatformAcsNotification-v1.json @@ -61,17 +61,6 @@ "200" : { "content" : { "application/json" : { - "examples" : { - "balancePlatform-authentication-created-authenticated-challenge" : { - "$ref" : "#/components/examples/WebhookAck" - }, - "balancePlatform-authentication-created-authenticated-frictionless" : { - "$ref" : "#/components/examples/WebhookAck" - }, - "balancePlatform-authentication-created-rejected" : { - "$ref" : "#/components/examples/WebhookAck" - } - }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -102,6 +91,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "post-balancePlatform.authentication.relayed" : { + "$ref" : "#/components/examples/post-balancePlatform.authentication.relayed-post-balancePlatform.authentication.relayed" + } + }, "schema" : { "$ref" : "#/components/schemas/RelayedAuthenticationRequest" } @@ -112,6 +106,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "post-balancePlatform.authentication.relayed" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/RelayedAuthenticationResponse" } @@ -474,10 +473,11 @@ "type" : "string" }, "flow" : { - "description" : "The flow used in the challenge. Possible values:\n\n* **OTP_SMS**: one-time password (OTP) flow\n* **OOB**: out-of-band (OOB) flow", + "description" : "The flow used in the challenge. Possible values:\n\n* **PWD_OTP_PHONE_FL**: one-time password (OTP) flow via SMS\n* **PWD_OTP_EMAIL_FL**: one-time password (OTP) flow via email\n* **OOB_TRIGGER_FL**: out-of-band (OOB) flow", "enum" : [ - "OTP_SMS", - "OOB" + "PWD_OTP_PHONE_FL", + "PWD_OTP_EMAIL_FL", + "OOB_TRIGGER_FL" ], "type" : "string" }, @@ -645,9 +645,11 @@ }, "examples" : { "WebhookAck" : { - "summary" : "Acknowledge Webhook", + "summary" : "Respond with your out-of-band authentication decision: \"proceed\" to continue, \"refused\" to refuse", "value" : { - "notificationResponse" : "[accepted]" + "authenticationDecision" : { + "status" : "proceed" + } } }, "post-balancePlatform.authentication.created-balancePlatform-authentication-created-authenticated-challenge" : { @@ -774,6 +776,22 @@ "timestamp" : "2022-12-22T15:42:03+01:00", "type" : "balancePlatform.authentication.created" } + }, + "post-balancePlatform.authentication.relayed-post-balancePlatform.authentication.relayed" : { + "summary" : "Out-of-band authentication relayed request webhook", + "description" : "Example webhook for an out-of-band authentication relayed request webhook", + "value" : { + "id" : "1ea64f8e-d1e1-4b9d-a3a2-3953e385b2c8", + "paymentInstrumentId" : "PI123ABCDEFGHIJKLMN45678", + "purchase" : { + "date" : "2025-03-06T15:17:55Z", + "merchantName" : "widgetsInc", + "originalAmount" : { + "currency" : "EUR", + "value" : 14548 + } + } + } } } } diff --git a/json/BalancePlatformTransferNotification-v3.json b/json/BalancePlatformTransferNotification-v3.json index 33abd2c..990d94d 100644 --- a/json/BalancePlatformTransferNotification-v3.json +++ b/json/BalancePlatformTransferNotification-v3.json @@ -1533,6 +1533,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -1815,6 +1816,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -2066,6 +2068,15 @@ "description" : "Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer.", "format" : "int32", "type" : "integer" + }, + "scaOnApproval" : { + "description" : "Shows the status of the Strong Customer Authentication (SCA) process.\n\nPossible values: **required**, **notApplicable**.", + "enum" : [ + "completed", + "notApplicable", + "required" + ], + "type" : "string" } }, "type" : "object" diff --git a/json/BalancePlatformTransferNotification-v4.json b/json/BalancePlatformTransferNotification-v4.json index bdc6d65..7b3ddee 100644 --- a/json/BalancePlatformTransferNotification-v4.json +++ b/json/BalancePlatformTransferNotification-v4.json @@ -1714,7 +1714,7 @@ }, "eventId" : { "x-addedInVersion" : "4", - "description" : "The event id listed under events, that triggered the notification.", + "description" : "The unique identifier of the latest transfer event. Included only when the `category` is **issuedCard**.", "type" : "string" }, "events" : { @@ -1753,6 +1753,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -2025,6 +2026,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -2266,6 +2268,15 @@ "description" : "Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer.", "format" : "int32", "type" : "integer" + }, + "scaOnApproval" : { + "description" : "Shows the status of the Strong Customer Authentication (SCA) process.\n\nPossible values: **required**, **notApplicable**.", + "enum" : [ + "completed", + "notApplicable", + "required" + ], + "type" : "string" } }, "type" : "object" diff --git a/json/TransferService-v2.json b/json/TransferService-v2.json index 9074dd2..c93ab15 100644 --- a/json/TransferService-v2.json +++ b/json/TransferService-v2.json @@ -1057,6 +1057,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", diff --git a/json/TransferService-v3.json b/json/TransferService-v3.json index 765efe0..eaf4667 100644 --- a/json/TransferService-v3.json +++ b/json/TransferService-v3.json @@ -2709,6 +2709,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -2978,6 +2979,15 @@ "description" : "Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer.", "format" : "int32", "type" : "integer" + }, + "scaOnApproval" : { + "description" : "Shows the status of the Strong Customer Authentication (SCA) process.\n\nPossible values: **required**, **notApplicable**.", + "enum" : [ + "completed", + "notApplicable", + "required" + ], + "type" : "string" } }, "type" : "object" diff --git a/json/TransferService-v4.json b/json/TransferService-v4.json index 0e2549a..f5b2a86 100644 --- a/json/TransferService-v4.json +++ b/json/TransferService-v4.json @@ -3612,6 +3612,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -3860,7 +3861,7 @@ }, "eventId" : { "x-addedInVersion" : "4", - "description" : "The event id listed under events, that triggered the notification.", + "description" : "The unique identifier of the latest transfer event. Included only when the `category` is **issuedCard**.", "type" : "string" }, "events" : { @@ -3899,6 +3900,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -4171,6 +4173,7 @@ "directDebitNotSupported", "error", "notEnoughBalance", + "pending", "pendingApproval", "pendingExecution", "refusedByCounterpartyBank", @@ -4504,6 +4507,15 @@ "description" : "Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer.", "format" : "int32", "type" : "integer" + }, + "scaOnApproval" : { + "description" : "Shows the status of the Strong Customer Authentication (SCA) process.\n\nPossible values: **required**, **notApplicable**.", + "enum" : [ + "completed", + "notApplicable", + "required" + ], + "type" : "string" } }, "type" : "object" diff --git a/yaml/BalancePlatformAcsNotification-v1.yaml b/yaml/BalancePlatformAcsNotification-v1.yaml index 4aabd83..cd03c0b 100644 --- a/yaml/BalancePlatformAcsNotification-v1.yaml +++ b/yaml/BalancePlatformAcsNotification-v1.yaml @@ -42,13 +42,6 @@ webhooks: '200': content: application/json: - examples: - balancePlatform-authentication-created-authenticated-challenge: - $ref: '#/components/examples/WebhookAck' - balancePlatform-authentication-created-authenticated-frictionless: - $ref: '#/components/examples/WebhookAck' - balancePlatform-authentication-created-rejected: - $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -76,12 +69,18 @@ webhooks: requestBody: content: application/json: + examples: + post-balancePlatform.authentication.relayed: + $ref: '#/components/examples/post-balancePlatform.authentication.relayed-post-balancePlatform.authentication.relayed' schema: $ref: '#/components/schemas/RelayedAuthenticationRequest' responses: '200': content: application/json: + examples: + post-balancePlatform.authentication.relayed: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/RelayedAuthenticationResponse' description: OK - the request has succeeded. @@ -470,12 +469,15 @@ components: description: 'The flow used in the challenge. Possible values: - * **OTP_SMS**: one-time password (OTP) flow + * **PWD_OTP_PHONE_FL**: one-time password (OTP) flow via SMS - * **OOB**: out-of-band (OOB) flow' + * **PWD_OTP_EMAIL_FL**: one-time password (OTP) flow via email + + * **OOB_TRIGGER_FL**: out-of-band (OOB) flow' enum: - - OTP_SMS - - OOB + - PWD_OTP_PHONE_FL + - PWD_OTP_EMAIL_FL + - OOB_TRIGGER_FL type: string lastInteraction: description: The last time of interaction with the challenge. @@ -600,9 +602,11 @@ components: type: http examples: WebhookAck: - summary: Acknowledge Webhook + summary: 'Respond with your out-of-band authentication decision: "proceed" to + continue, "refused" to refuse' value: - notificationResponse: '[accepted]' + authenticationDecision: + status: proceed post-balancePlatform.authentication.created-balancePlatform-authentication-created-authenticated-challenge: summary: Authentication successful (challenge flow) description: Example webhook for a successful authentication (challenge flow) @@ -709,3 +713,16 @@ components: environment: test timestamp: '2022-12-22T15:42:03+01:00' type: balancePlatform.authentication.created + post-balancePlatform.authentication.relayed-post-balancePlatform.authentication.relayed: + summary: Out-of-band authentication relayed request webhook + description: Example webhook for an out-of-band authentication relayed request + webhook + value: + id: 1ea64f8e-d1e1-4b9d-a3a2-3953e385b2c8 + paymentInstrumentId: PI123ABCDEFGHIJKLMN45678 + purchase: + date: '2025-03-06T15:17:55Z' + merchantName: widgetsInc + originalAmount: + currency: EUR + value: 14548 diff --git a/yaml/BalancePlatformTransferNotification-v3.yaml b/yaml/BalancePlatformTransferNotification-v3.yaml index 1f15388..b172ca2 100644 --- a/yaml/BalancePlatformTransferNotification-v3.yaml +++ b/yaml/BalancePlatformTransferNotification-v3.yaml @@ -1432,6 +1432,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -1701,6 +1702,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -1911,6 +1913,17 @@ components: required to process the transfer. format: int32 type: integer + scaOnApproval: + description: 'Shows the status of the Strong Customer Authentication (SCA) + process. + + + Possible values: **required**, **notApplicable**.' + enum: + - completed + - notApplicable + - required + type: string type: object UKLocalAccountIdentification: additionalProperties: false diff --git a/yaml/BalancePlatformTransferNotification-v4.yaml b/yaml/BalancePlatformTransferNotification-v4.yaml index bdfa44f..f009fa4 100644 --- a/yaml/BalancePlatformTransferNotification-v4.yaml +++ b/yaml/BalancePlatformTransferNotification-v4.yaml @@ -1544,7 +1544,8 @@ components: type: string eventId: x-addedInVersion: '4' - description: The event id listed under events, that triggered the notification. + description: The unique identifier of the latest transfer event. Included + only when the `category` is **issuedCard**. type: string events: x-addedInVersion: '3' @@ -1580,6 +1581,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -1833,6 +1835,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -2035,6 +2038,17 @@ components: required to process the transfer. format: int32 type: integer + scaOnApproval: + description: 'Shows the status of the Strong Customer Authentication (SCA) + process. + + + Possible values: **required**, **notApplicable**.' + enum: + - completed + - notApplicable + - required + type: string type: object UKLocalAccountIdentification: additionalProperties: false diff --git a/yaml/TransferService-v2.yaml b/yaml/TransferService-v2.yaml index 2b06dbd..a196112 100644 --- a/yaml/TransferService-v2.yaml +++ b/yaml/TransferService-v2.yaml @@ -969,6 +969,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank diff --git a/yaml/TransferService-v3.yaml b/yaml/TransferService-v3.yaml index 41567e0..1e35082 100644 --- a/yaml/TransferService-v3.yaml +++ b/yaml/TransferService-v3.yaml @@ -2240,6 +2240,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -2561,6 +2562,17 @@ components: required to process the transfer. format: int32 type: integer + scaOnApproval: + description: 'Shows the status of the Strong Customer Authentication (SCA) + process. + + + Possible values: **required**, **notApplicable**.' + enum: + - completed + - notApplicable + - required + type: string type: object TransferServiceRestServiceError: additionalProperties: false diff --git a/yaml/TransferService-v4.yaml b/yaml/TransferService-v4.yaml index 3fda6e8..617e4cf 100644 --- a/yaml/TransferService-v4.yaml +++ b/yaml/TransferService-v4.yaml @@ -3006,6 +3006,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -3249,7 +3250,8 @@ components: type: string eventId: x-addedInVersion: '4' - description: The event id listed under events, that triggered the notification. + description: The unique identifier of the latest transfer event. Included + only when the `category` is **issuedCard**. type: string events: x-addedInVersion: '3' @@ -3285,6 +3287,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -3538,6 +3541,7 @@ components: - directDebitNotSupported - error - notEnoughBalance + - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank @@ -3902,6 +3906,17 @@ components: required to process the transfer. format: int32 type: integer + scaOnApproval: + description: 'Shows the status of the Strong Customer Authentication (SCA) + process. + + + Possible values: **required**, **notApplicable**.' + enum: + - completed + - notApplicable + - required + type: string type: object TransferServiceRestServiceError: additionalProperties: false