diff --git a/json/BalancePlatformNotificationService-v1.json b/json/BalancePlatformNotificationService-v1.json index 354f073..cbaf0c8 100644 --- a/json/BalancePlatformNotificationService-v1.json +++ b/json/BalancePlatformNotificationService-v1.json @@ -5,7 +5,7 @@ "x-publicVersion" : true, "title" : "Balance Platform Notification Webhooks", "description" : "Adyen sends notifications through webhooks to inform your system about events that occur in the balance platform. These events include, for example, a card user making a payment, or a merchant starting a refund. \nWhen an event occurs, Adyen makes an HTTP POST request to a URL on your server and includes the details of the event in the request body.\n\nYou can use the webhooks to build your implementation. For example, you can use this information to update balances in your own dashboards or to keep track of incoming funds.\n\nRefer to [Notification webhooks](https://docs.adyen.com/issuing/notification-webhooks) for more information.", - "x-timestamp" : "2022-04-20T09:24:21Z", + "x-timestamp" : "2022-08-04T10:19:26Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -43,6 +43,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-accountHolder-created" : { + "$ref" : "#/components/examples/post-balancePlatform.accountHolder.created-balancePlatform-accountHolder-created" + } + }, "schema" : { "$ref" : "#/components/schemas/AccountHolderNotificationRequest" } @@ -53,6 +58,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-accountHolder-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -82,6 +92,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-accountHolder-updated" : { + "$ref" : "#/components/examples/post-balancePlatform.accountHolder.updated-balancePlatform-accountHolder-updated" + } + }, "schema" : { "$ref" : "#/components/schemas/AccountHolderNotificationRequest" } @@ -92,6 +107,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-accountHolder-updated" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -121,6 +141,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-balanceAccount-created" : { + "$ref" : "#/components/examples/post-balancePlatform.balanceAccount.created-balancePlatform-balanceAccount-created" + } + }, "schema" : { "$ref" : "#/components/schemas/BalanceAccountNotificationRequest" } @@ -131,6 +156,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-balanceAccount-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -160,6 +190,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-created" : { + "$ref" : "#/components/examples/post-balancePlatform.balanceAccountSweep.created-balancePlatform-sweep-created" + } + }, "schema" : { "$ref" : "#/components/schemas/SweepConfigurationNotificationRequest" } @@ -170,6 +205,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -199,6 +239,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-deleted" : { + "$ref" : "#/components/examples/post-balancePlatform.balanceAccountSweep.deleted-balancePlatform-sweep-deleted" + } + }, "schema" : { "$ref" : "#/components/schemas/SweepConfigurationNotificationRequest" } @@ -209,6 +254,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-deleted" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -238,6 +288,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-updated" : { + "$ref" : "#/components/examples/post-balancePlatform.balanceAccountSweep.updated-balancePlatform-sweep-updated" + } + }, "schema" : { "$ref" : "#/components/schemas/SweepConfigurationNotificationRequest" } @@ -248,6 +303,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-sweep-updated" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -278,6 +338,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-incomingTransfer-created" : { + "$ref" : "#/components/examples/post-balancePlatform.incomingTransfer.created-balancePlatform-incomingTransfer-created" + } + }, "schema" : { "$ref" : "#/components/schemas/IncomingTransferNotificationRequest" } @@ -288,6 +353,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-incomingTransfer-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -318,6 +388,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-incomingTransfer-updated" : { + "$ref" : "#/components/examples/post-balancePlatform.incomingTransfer.updated-balancePlatform-incomingTransfer-updated" + } + }, "schema" : { "$ref" : "#/components/schemas/IncomingTransferNotificationRequest" } @@ -328,6 +403,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-incomingTransfer-updated" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -358,6 +438,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-outgoingTransfer-created" : { + "$ref" : "#/components/examples/post-balancePlatform.outgoingTransfer.created-balancePlatform-outgoingTransfer-created" + } + }, "schema" : { "$ref" : "#/components/schemas/OutgoingTransferNotificationRequest" } @@ -368,6 +453,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-outgoingTransfer-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -398,6 +488,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-outgoingTransfer-updated" : { + "$ref" : "#/components/examples/post-balancePlatform.outgoingTransfer.updated-balancePlatform-outgoingTransfer-updated" + } + }, "schema" : { "$ref" : "#/components/schemas/OutgoingTransferNotificationRequest" } @@ -408,6 +503,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-outgoingTransfer-updated" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -438,8 +538,22 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-payment-created-authorized" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-authorized" + }, + "balancePlatform-payment-created-funds-transfer" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-funds-transfer" + }, + "balancePlatform-payment-created-refund-requested" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-refund-requested" + }, + "balancePlatform-payment-created-rejected" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-rejected" + } + }, "schema" : { - "$ref" : "#/components/schemas/PaymentNotificationRequest2" + "$ref" : "#/components/schemas/PaymentNotificationRequest-2" } } } @@ -448,6 +562,20 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-payment-created-authorized" : { + "$ref" : "#/components/examples/WebhookAck" + }, + "balancePlatform-payment-created-funds-transfer" : { + "$ref" : "#/components/examples/WebhookAck" + }, + "balancePlatform-payment-created-refund-requested" : { + "$ref" : "#/components/examples/WebhookAck" + }, + "balancePlatform-payment-created-rejected" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -478,8 +606,19 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-payment-updated-expired" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-expired" + }, + "balancePlatform-payment-updated-partially-cancelled" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-cancelled" + }, + "balancePlatform-payment-updated-partially-expired" : { + "$ref" : "#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-expired" + } + }, "schema" : { - "$ref" : "#/components/schemas/PaymentNotificationRequest2" + "$ref" : "#/components/schemas/PaymentNotificationRequest-2" } } } @@ -488,6 +627,17 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-payment-updated-expired" : { + "$ref" : "#/components/examples/WebhookAck" + }, + "balancePlatform-payment-updated-partially-cancelled" : { + "$ref" : "#/components/examples/WebhookAck" + }, + "balancePlatform-payment-updated-partially-expired" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -517,6 +667,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-paymentInstrument-created" : { + "$ref" : "#/components/examples/post-balancePlatform.paymentInstrument.created-balancePlatform-paymentInstrument-created" + } + }, "schema" : { "$ref" : "#/components/schemas/PaymentNotificationRequest" } @@ -527,6 +682,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-paymentInstrument-created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -556,6 +716,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-paymentInstrument-updated" : { + "$ref" : "#/components/examples/post-balancePlatform.paymentInstrument.updated-balancePlatform-paymentInstrument-updated" + } + }, "schema" : { "$ref" : "#/components/schemas/PaymentNotificationRequest" } @@ -566,6 +731,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform-paymentInstrument-updated" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -595,6 +765,11 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform.report.created" : { + "$ref" : "#/components/examples/post-balancePlatform.report.created-balancePlatform.report.created" + } + }, "schema" : { "$ref" : "#/components/schemas/ReportNotificationRequest" } @@ -605,6 +780,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "balancePlatform.report.created" : { + "$ref" : "#/components/examples/WebhookAck" + } + }, "schema" : { "$ref" : "#/components/schemas/BalancePlatformNotificationResponse" } @@ -658,7 +838,7 @@ "type" : "string" }, "status" : { - "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Suspended**: The account holder is temporarily suspended. You can set the account back to active or close it permanently. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", + "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Inactive**: The account holder is temporarily inactive. You can set the account back to active or close it permanently. \n\n * **Suspended**: The account holder is permanently suspended by Adyen. This action cannot be undone. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", "enum" : [ "Active", "Closed", @@ -778,15 +958,17 @@ "Address" : { "properties" : { "city" : { - "description" : "The name of the city.", + "description" : "The name of the city. Maximum length: 3000 characters.", + "maxLength" : 3000, "type" : "string" }, "country" : { - "description" : "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.", + "description" : "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.\n> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.", "type" : "string" }, "houseNumberOrName" : { - "description" : "The number or name of the house.", + "description" : "The number or name of the house. Maximum length: 3000 characters.", + "maxLength" : 3000, "type" : "string" }, "postalCode" : { @@ -798,7 +980,8 @@ "type" : "string" }, "street" : { - "description" : "The name of the street. \n> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.", + "description" : "The name of the street. Maximum length: 3000 characters.\n> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.", + "maxLength" : 3000, "type" : "string" } }, @@ -985,6 +1168,17 @@ } } }, + "BankAccount" : { + "properties" : { + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + } + }, + "required" : [ + "iban" + ] + }, "BankAccountInfo" : { "properties" : { "address" : { @@ -997,7 +1191,7 @@ }, "ownerName" : { "description" : "The name of the bank account owner.", - "$ref" : "#/components/schemas/Name2" + "$ref" : "#/components/schemas/Name-2" } } }, @@ -1118,7 +1312,7 @@ "type" : "string" }, "cardholderName" : { - "description" : "The name of the card holder.\n Maximum length: 26 characters.", + "description" : "The name of the cardholder.\n Maximum length: 26 characters.", "maxLength" : 26, "type" : "string" }, @@ -1305,6 +1499,29 @@ } } }, + "CronSweepSchedule" : { + "additionalProperties" : false, + "properties" : { + "cronExpression" : { + "description" : "A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) that is used to set the sweep schedule. The schedule uses the time zone of the balance account. For example, **30 17 * * MON** schedules a sweep every Monday at 17:30.\n\nThe expression must have five values separated by a single space in the following order:\n\n* Minute: **0-59**\n\n* Hour: **0-23**\n\n* Day of the month: **1-31**\n\n* Month: **1-12** or **JAN-DEC**\n\n* Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**.\n\nThe following non-standard characters are supported: *****, **L**, **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for more examples.", + "type" : "string" + }, + "type" : { + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", + "enum" : [ + "daily", + "weekly", + "monthly", + "balance", + "cron" + ], + "type" : "string" + } + }, + "required" : [ + "cronExpression" + ] + }, "Expiry" : { "properties" : { "month" : { @@ -1480,7 +1697,7 @@ "lastName" ] }, - "Name2" : { + "Name-2" : { "properties" : { "firstName" : { "description" : "The first name.", @@ -1670,8 +1887,12 @@ "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument.", "type" : "string" }, + "bankAccount" : { + "description" : "Contains the business account details. Returned when you create a payment instrument with `type` **bankAccount**.", + "$ref" : "#/components/schemas/BankAccount" + }, "card" : { - "description" : "Contains information about the card payment instrument.", + "description" : "Contains information about the card payment instrument. Returned when you create a payment instrument with `type` **card**.", "$ref" : "#/components/schemas/Card" }, "description" : { @@ -1717,6 +1938,14 @@ { "description" : "The payment instrument is permanently closed. This action cannot be undone.", "value" : "Closed" + }, + { + "description" : "The payment instrument is suspended. Either because it was stolen or lost.", + "value" : "blocked" + }, + { + "description" : "The payment instrument is permanently closed. This action cannot be undone.", + "value" : "discarded" } ], "description" : "The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **Active** by default. However, there can be exceptions based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **Requested**.\n\nPossible values: \n\n * **Active**: The payment instrument is active and can be used to make payments. \n\n * **Requested**: The payment instrument has been requested. This state is applicable for physical cards. \n\n* **Inactive**: The payment instrument is inactive and cannot be used to make payments. \n\n * **Suspended**: The payment instrument is temporarily suspended and cannot be used to make payments. \n\n * **Closed**: The payment instrument is permanently closed. This action cannot be undone. \n\n* **Stolen** \n\n * **Lost**\n\n ", @@ -1727,13 +1956,16 @@ "Lost", "Requested", "Stolen", - "Suspended" + "Suspended", + "blocked", + "discarded" ], "type" : "string" }, "type" : { - "description" : "Type of payment instrument.\n\nPossible value: **card**. ", + "description" : "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ", "enum" : [ + "bankAccount", "card" ], "type" : "string" @@ -1884,7 +2116,7 @@ "data" ] }, - "PaymentNotificationRequest2" : { + "PaymentNotificationRequest-2" : { "properties" : { "data" : { "description" : "Contains event details.", @@ -2158,7 +2390,14 @@ }, "schedule" : { "description" : "The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account.", - "$ref" : "#/components/schemas/SweepSchedule" + "oneOf" : [ + { + "$ref" : "#/components/schemas/CronSweepSchedule" + }, + { + "$ref" : "#/components/schemas/SweepSchedule" + } + ] }, "status" : { "x-enum" : [ @@ -2261,13 +2500,24 @@ "description" : "The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**.\n\nThe sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances).", "type" : "string" }, + "description" : { + "description" : "The message that will be used in the sweep transfer's description body with a maximum length of 140 characters.\n\nIf the message is longer after replacing placeholders, the message will be cut off at 140 characters.", + "type" : "string" + }, "id" : { "description" : "The unique identifier of the sweep.", "type" : "string" }, "schedule" : { "description" : "The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account.", - "$ref" : "#/components/schemas/SweepSchedule" + "oneOf" : [ + { + "$ref" : "#/components/schemas/CronSweepSchedule" + }, + { + "$ref" : "#/components/schemas/SweepSchedule" + } + ] }, "status" : { "x-enum" : [ @@ -2333,14 +2583,16 @@ } }, "SweepSchedule" : { + "additionalProperties" : false, "properties" : { "type" : { - "description" : "The schedule type.\n\nPossible values:\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", "enum" : [ - "balance", "daily", + "weekly", "monthly", - "weekly" + "balance", + "cron" ], "type" : "string" } @@ -2539,7 +2791,8 @@ "description" : "The type of error.\n\n Possible values: **invalidInput**, **dataMissing**.", "enum" : [ "dataMissing", - "invalidInput" + "invalidInput", + "pendingStatus" ], "type" : "string" } @@ -2559,7 +2812,8 @@ "description" : "The type of error.\n\n Possible values: **invalidInput**, **dataMissing**.", "enum" : [ "dataMissing", - "invalidInput" + "invalidInput", + "pendingStatus" ], "type" : "string" }, @@ -2587,7 +2841,1048 @@ } }, "examples" : { - + "WebhookAck" : { + "summary" : "Acknowledge Webhook", + "value" : { + "notificationResponse" : "[accepted]" + } + }, + "post-balancePlatform.accountHolder.created-balancePlatform-accountHolder-created" : { + "summary" : "Account holder created", + "description" : "Example webhook when an account holder was created", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountHolder" : { + "contactDetails" : { + + }, + "description" : "Sam Hopper", + "legalEntityId" : "LE43319330319C8AYX89L2V59", + "reference" : "YOUR_REFERENCE-2412C", + "capabilities" : { + "issueCard" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "verificationStatus" : "pending" + }, + "receiveFromTransferInstrument" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "verificationStatus" : "pending" + }, + "sendToTransferInstrument" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "verificationStatus" : "pending" + }, + "sendToBalanceAccount" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "verificationStatus" : "pending" + }, + "receiveFromBalanceAccount" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "verificationStatus" : "pending" + } + }, + "id" : "AH32272223222B5CZW6QZ2V34", + "status" : "Active" + } + }, + "environment" : "test", + "type" : "balancePlatform.accountHolder.created" + } + }, + "post-balancePlatform.accountHolder.updated-balancePlatform-accountHolder-updated" : { + "summary" : "Account holder updated", + "description" : "Example webhook when an account holder was updated", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountHolder" : { + "description" : "Sam Hopper", + "legalEntityId" : "LE43319330319C8AYX89L2V59", + "reference" : "YOUR_REFERENCE-2412C", + "capabilities" : { + "sendToTransferInstrument" : { + "enabled" : "true", + "requested" : "true", + "allowed" : "false", + "problems" : [ + { + "entity" : { + "id" : "LE43319330319C8AYX89L2V59", + "type" : "LegalEntity" + }, + "verificationErrors" : [ + { + "code" : "2_8037", + "message" : "No bankStatement available to perform verification.", + "remediatingActions" : [ + { + "code" : "1_703", + "message" : "Upload a bank statement" + } + ], + "type" : "dataMissing" + } + ] + } + ], + "verificationStatus" : "invalid" + } + }, + "id" : "AH32272223222B5CZW6QZ2V34", + "status" : "Active" + } + }, + "environment" : "test", + "type" : "balancePlatform.accountHolder.updated" + } + }, + "post-balancePlatform.balanceAccount.created-balancePlatform-balanceAccount-created" : { + "summary" : "Balance account created", + "description" : "Example webhook when a balance account was created", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "balanceAccount" : { + "accountHolderId" : "AH3227C223222B5CZW72CCC73", + "defaultCurrencyCode" : "EUR", + "id" : "BA3227C223222B5CZW72VCC75", + "status" : "Active" + } + }, + "environment" : "test", + "type" : "balancePlatform.balanceAccount.created" + } + }, + "post-balancePlatform.balanceAccountSweep.created-balancePlatform-sweep-created" : { + "summary" : "Sweep created", + "description" : "Example webhook when a sweep was created", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountId" : "BA3227C223222B5FTD99V8GRS", + "sweep" : { + "id" : "SWPC4227C224555B5FTD2NT2JV4WN5", + "schedule" : { + "type" : "weekly" + }, + "status" : "active", + "targetAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "triggerAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "type" : "push", + "counterparty" : { + "balanceAccountId" : "BA32272223222B5FTD2KR6TJD" + }, + "currency" : "EUR" + } + }, + "environment" : "test", + "type" : "balancePlatform.balanceAccountSweep.created" + } + }, + "post-balancePlatform.balanceAccountSweep.deleted-balancePlatform-sweep-deleted" : { + "summary" : "Sweep deleted", + "description" : "Example webhook when a sweep was deleted", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountId" : "BA3227C223222B5FTD99V8GRS", + "sweep" : { + "id" : "SWPC4227C224555B5FTD2NT2JV4WN5", + "schedule" : { + "type" : "weekly" + }, + "status" : "active", + "targetAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "triggerAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "type" : "push", + "counterparty" : { + "balanceAccountId" : "BA32272223222B5FTD2KR6TJD" + }, + "currency" : "EUR" + } + }, + "environment" : "test", + "type" : "balancePlatform.balanceAccountSweep.deleted" + } + }, + "post-balancePlatform.balanceAccountSweep.updated-balancePlatform-sweep-updated" : { + "summary" : "Sweep updated", + "description" : "Example webhook when a sweep was updated", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountId" : "BA3227C223222B5FTD99V8GRS", + "sweep" : { + "id" : "SWPC4227C224555B5FTD2NT2JV4WN5", + "schedule" : { + "type" : "weekly" + }, + "status" : "inactive", + "targetAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "triggerAmount" : { + "currency" : "EUR", + "value" : 0 + }, + "type" : "push", + "counterparty" : { + "balanceAccountId" : "BA32272223222B5FTD2KR6TJD" + }, + "currency" : "EUR" + } + }, + "environment" : "test", + "type" : "balancePlatform.balanceAccountSweep.created" + } + }, + "post-balancePlatform.incomingTransfer.created-balancePlatform-incomingTransfer-created" : { + "summary" : "Pending incoming transfer", + "description" : "Example webhook when there is an incoming transfer", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-05-03T15:20:14+02:00", + "id" : "IZL6685QQEBKFOOY", + "accountHolder" : { + "description" : "S.Hopper", + "id" : "AH32272223222B5BBXP2Z8ZWS" + }, + "amount" : { + "currency" : "EUR", + "value" : 15000 + }, + "balanceAccount" : { + "description" : "S.Hopper - Main account", + "id" : "BA32272223222B5BQ3KWP86MW" + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 15000 + }, + "type" : "PendingIncomingTransfer" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : 15000 + }, + "paymentId" : "IZL6685QQEBKFON0", + "status" : "PendingIncomingTransfer" + }, + "environment" : "test", + "type" : "balancePlatform.incomingTransfer.created" + } + }, + "post-balancePlatform.incomingTransfer.updated-balancePlatform-incomingTransfer-updated" : { + "summary" : "Completed incoming transfer", + "description" : "Example webhook when an incoming transfer was completed and funds were settled", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-05-03T15:20:14+02:00", + "id" : "IZL6685QQEBKFOOY", + "accountHolder" : { + "description" : "Liable Accountholder", + "id" : "AH32272223222B5BBXP2Z8ZWS" + }, + "amount" : { + "currency" : "EUR", + "value" : 1500 + }, + "balanceAccount" : { + "description" : "second-account", + "id" : "BA32272223222B5BQ3KWP86MW" + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 1500 + }, + "type" : "IncomingTransfer" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : 1500 + }, + "paymentId" : "IZL6685QQEBKFON0", + "status" : "IncomingTransfer" + }, + "environment" : "test", + "type" : "balancePlatform.incomingTransfer.updated" + } + }, + "post-balancePlatform.outgoingTransfer.created-balancePlatform-outgoingTransfer-created" : { + "summary" : "Completed outgoing funds transfer", + "description" : "Example webhook when an outgoing funds transfer was completed", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-05-03T15:20:06+02:00", + "id" : "1W1UG35QQEBJLHZ8", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -1500 + }, + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -1500 + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : -1500 + }, + "type" : "OutgoingTransfer" + }, + "paymentId" : "1W1UG35QQEBJLHZ8", + "status" : "OutgoingTransfer", + "valueDate" : "2021-08-10T14:57:01+02:00" + }, + "environment" : "test", + "type" : "balancePlatform.outgoingTransfer.created" + } + }, + "post-balancePlatform.outgoingTransfer.updated-balancePlatform-outgoingTransfer-updated" : { + "summary" : "Outgoing funds transfer failed", + "description" : "Example webhook if an outgoing funds transfer failed", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-05-03T15:20:06+02:00", + "id" : "1W1UG35QQEBJLHZ8", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -1500 + }, + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -1500 + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : -1500 + }, + "type" : "OutgoingTransfer" + }, + "paymentId" : "1W1UG35QQEBJLHZ8", + "status" : "TransferFailed", + "valueDate" : "2021-08-10T14:57:01+02:00" + }, + "environment" : "test", + "type" : "balancePlatform.outgoingTransfer.updated" + } + }, + "post-balancePlatform.payment.created-balancePlatform-payment-created-authorized" : { + "summary" : "Payment authorized", + "description" : "Example webhook when a payment made with an Adyen-issued card was authorized", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-04-01T12:56:38+02:00", + "id" : "1W1UG35QDNNE694X", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -2000 + }, + "authCode" : "397402", + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "merchantData" : { + "mcc" : "7999", + "merchantId" : "526567789012346", + "nameLocation" : { + "city" : "Amsterdam", + "country" : "NLD", + "name" : "Store-ecom", + "rawData" : "Store-ecom Amsterdam NLD" + } + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : -2000 + }, + "type" : "Authorised" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -2000 + }, + "paymentInstrument" : { + "description" : "S.Hopper - card", + "id" : "PI32272223222B5CZW7BQ2V3T" + }, + "processingType" : "ecommerce", + "relayedAuthorisationData" : { + "metadata" : { + "key1" : "value1", + "key2" : "value2", + "key3" : "value3" + } + }, + "status" : "Authorised", + "transactionRulesResult" : { + "allRulesPassed" : "true" + }, + "validationResult" : [ + { + "result" : "valid", + "type" : "BalanceCheck" + }, + { + "result" : "valid", + "type" : "AccountLookup" + }, + { + "result" : "valid", + "type" : "RelayedAuthorisation" + }, + { + "result" : "valid", + "type" : "Screening" + }, + { + "result" : "valid", + "type" : "TransactionRules" + }, + { + "result" : "valid", + "type" : "TransactionValidation" + }, + { + "result" : "valid", + "type" : "PaymentInstrumentExpirationCheck" + }, + { + "result" : "valid", + "type" : "MaxAuthAmount" + }, + { + "result" : "valid", + "type" : "CVC2" + } + ] + }, + "environment" : "test", + "type" : "balancePlatform.payment.created" + } + }, + "post-balancePlatform.payment.created-balancePlatform-payment-created-funds-transfer" : { + "summary" : "Outgoing transfer requested", + "description" : "Example webhook when an outgoing transfer was requested", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-05-03T15:20:06+02:00", + "id" : "1W1UG35QQEBJLHZ8", + "accountHolder" : { + "description" : "Liable account holder", + "id" : "AH32272223222B59MTF7458DP", + "reference" : "Liable account holder" + }, + "amount" : { + "currency" : "EUR", + "value" : -15000 + }, + "balanceAccount" : { + "description" : "Liable balance account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : -15000 + }, + "type" : "Authorised" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -15000 + }, + "status" : "Authorised" + }, + "environment" : "test", + "type" : "balancePlatform.payment.created" + } + }, + "post-balancePlatform.payment.created-balancePlatform-payment-created-refund-requested" : { + "summary" : "Refund requested", + "description" : "Example webhook when your user requests a refund", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-04-13T13:35:17+02:00", + "id" : "IZMP115QIFI1EXZK", + "accountHolder" : { + "description" : "S. Hopper", + "id" : "AH32272223222B59MTF7458DP" + }, + "amount" : { + "currency" : "EUR", + "value" : 2000 + }, + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : 2000 + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 2000 + }, + "type" : "Authorised" + }, + "paymentInstrument" : { + "description" : "a test card", + "id" : "PI3227C223222B5BKTS5RC3D3" + }, + "status" : "Authorised" + }, + "environment" : "test", + "type" : "balancePlatform.payment.created" + } + }, + "post-balancePlatform.payment.created-balancePlatform-payment-created-rejected" : { + "summary" : "Payment declined", + "description" : "Example webhook when a payment made with an Adyen-issued card was declined", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-03-15T10:30:43+01:00", + "id" : "2L470J5Q6VVUAWGT", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -1000 + }, + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "merchantData" : { + "mcc" : "7999", + "merchantId" : "526567789012346", + "nameLocation" : { + "city" : "Amsterdam", + "country" : "NLD", + "name" : "Store-ecom", + "rawData" : "Store-ecom Amsterdam NLD" + } + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : -1000 + }, + "type" : "Refused" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -1000 + }, + "paymentInstrument" : { + "description" : "S.Hopper - card", + "id" : "PI32272223222B5CZW7BQ2V3T" + }, + "processingType" : "ecommerce", + "status" : "Refused", + "transactionRulesResult" : { + "allRulesPassed" : "false", + "failedTransactionRules" : [ + { + "reason" : "This event exceeds the maximum allowed number of transactions (1) in interval monthly", + "transactionRule" : { + "description" : "Allow 1 transactions per month", + "id" : "TR32272223222B5CSZ666CTKF", + "reference" : "myRule12345" + }, + "transactionRuleSource" : { + "id" : "PI3227C223222B5BKTS5RC3D3", + "type" : "PaymentInstrument" + } + } + ] + }, + "validationResult" : [ + { + "result" : "valid", + "type" : "MaxAuthAmount" + }, + { + "result" : "valid", + "type" : "CVC2" + }, + { + "result" : "valid", + "type" : "BalanceCheck" + }, + { + "result" : "valid", + "type" : "AccountLookup" + }, + { + "result" : "invalid", + "type" : "TransactionRules" + }, + { + "result" : "valid", + "type" : "TransactionValidation" + }, + { + "result" : "notApplicable", + "type" : "RelayedAuthorisation" + }, + { + "result" : "valid", + "type" : "PaymentInstrumentExpirationCheck" + }, + { + "result" : "valid", + "type" : "Screening" + } + ] + }, + "environment" : "test", + "type" : "balancePlatform.payment.created" + } + }, + "post-balancePlatform.payment.updated-balancePlatform-payment-updated-expired" : { + "summary" : "Payment authorization expired", + "description" : "Example webhook when a payment authorization expired", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-03-25T11:42:05+01:00", + "id" : "2L470J5QAVHDDZTW", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -2500 + }, + "authCode" : "995167", + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "merchantData" : { + "mcc" : "7999", + "merchantId" : "526567789012346", + "nameLocation" : { + "city" : "Amsterdam", + "country" : "NLD", + "name" : "Store-ecom", + "rawData" : "Store-ecom Amsterdam NLD" + } + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 2500 + }, + "type" : "Expired" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -2500 + }, + "paymentInstrument" : { + "description" : "S.Hopper - card", + "id" : "PI32272223222B5CZW7BQ2V3T" + }, + "processingType" : "ecommerce", + "relayedAuthorisationData" : { + "metadata" : { + "key1" : "value1", + "key2" : "value2", + "key3" : "value3" + } + }, + "status" : "Expired", + "transactionRulesResult" : { + "allRulesPassed" : "true" + }, + "validationResult" : [ + { + "result" : "valid", + "type" : "AccountLookup" + }, + { + "result" : "valid", + "type" : "PaymentInstrumentExpirationCheck" + }, + { + "result" : "valid", + "type" : "Screening" + }, + { + "result" : "valid", + "type" : "TransactionValidation" + }, + { + "result" : "valid", + "type" : "RelayedAuthorisation" + }, + { + "result" : "valid", + "type" : "BalanceCheck" + }, + { + "result" : "valid", + "type" : "CVC2" + }, + { + "result" : "valid", + "type" : "MaxAuthAmount" + }, + { + "result" : "valid", + "type" : "TransactionRules" + } + ] + }, + "environment" : "test", + "type" : "balancePlatform.payment.updated" + } + }, + "post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-cancelled" : { + "summary" : "Part of payment authorization cancelled", + "description" : "Example webhook when a part of the authorization was cancelled", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-03-25T11:42:05+01:00", + "id" : "2L470J5QAVHDDZTW", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -2500 + }, + "authCode" : "995167", + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "merchantData" : { + "mcc" : "7999", + "merchantId" : "526567789012346", + "nameLocation" : { + "city" : "Amsterdam", + "country" : "NLD", + "name" : "Store-ecom", + "rawData" : "Store-ecom Amsterdam NLD" + } + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 1200 + }, + "type" : "Expired" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -2500 + }, + "paymentInstrument" : { + "description" : "S.Hopper - card", + "id" : "PI32272223222B5CZW7BQ2V3T" + }, + "processingType" : "ecommerce", + "relayedAuthorisationData" : { + "metadata" : { + "key1" : "value1", + "key2" : "value2", + "key3" : "value3" + } + }, + "status" : "Expired", + "transactionRulesResult" : { + "allRulesPassed" : "true" + }, + "validationResult" : [ + { + "result" : "valid", + "type" : "AccountLookup" + }, + { + "result" : "valid", + "type" : "PaymentInstrumentExpirationCheck" + }, + { + "result" : "valid", + "type" : "Screening" + }, + { + "result" : "valid", + "type" : "TransactionValidation" + }, + { + "result" : "valid", + "type" : "RelayedAuthorisation" + }, + { + "result" : "valid", + "type" : "BalanceCheck" + }, + { + "result" : "valid", + "type" : "CVC2" + }, + { + "result" : "valid", + "type" : "MaxAuthAmount" + }, + { + "result" : "valid", + "type" : "TransactionRules" + } + ] + }, + "environment" : "test", + "type" : "balancePlatform.payment.updated" + } + }, + "post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-expired" : { + "summary" : "Part of payment authorization expired", + "description" : "Example webhook when a part of the authorization expired", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "creationDate" : "2021-03-25T11:42:05+01:00", + "id" : "2L470J5QAVHDDZTW", + "accountHolder" : { + "description" : "S.Hopper - Staff 123", + "id" : "AH32272223222B5CZW6QZ2V34" + }, + "amount" : { + "currency" : "EUR", + "value" : -2500 + }, + "authCode" : "995167", + "balanceAccount" : { + "description" : "My Balance Account", + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "merchantData" : { + "mcc" : "7999", + "merchantId" : "526567789012346", + "nameLocation" : { + "city" : "Amsterdam", + "country" : "NLD", + "name" : "Store-ecom", + "rawData" : "Store-ecom Amsterdam NLD" + } + }, + "modification" : { + "amount" : { + "currency" : "EUR", + "value" : 1200 + }, + "type" : "Expired" + }, + "originalAmount" : { + "currency" : "EUR", + "value" : -2500 + }, + "paymentInstrument" : { + "description" : "S.Hopper - card", + "id" : "PI32272223222B5CZW7BQ2V3T" + }, + "processingType" : "ecommerce", + "relayedAuthorisationData" : { + "metadata" : { + "key1" : "value1", + "key2" : "value2", + "key3" : "value3" + } + }, + "status" : "Expired", + "transactionRulesResult" : { + "allRulesPassed" : "true" + }, + "validationResult" : [ + { + "result" : "valid", + "type" : "AccountLookup" + }, + { + "result" : "valid", + "type" : "PaymentInstrumentExpirationCheck" + }, + { + "result" : "valid", + "type" : "Screening" + }, + { + "result" : "valid", + "type" : "TransactionValidation" + }, + { + "result" : "valid", + "type" : "RelayedAuthorisation" + }, + { + "result" : "valid", + "type" : "BalanceCheck" + }, + { + "result" : "valid", + "type" : "CVC2" + }, + { + "result" : "valid", + "type" : "MaxAuthAmount" + }, + { + "result" : "valid", + "type" : "TransactionRules" + } + ] + }, + "environment" : "test", + "type" : "balancePlatform.payment.updated" + } + }, + "post-balancePlatform.paymentInstrument.created-balancePlatform-paymentInstrument-created" : { + "summary" : "Card updated", + "description" : "Example webhook when a card was updated", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "paymentInstrument" : { + "balanceAccountId" : "BA3227C223222B5CZW72VCC75", + "description" : "S.Hopper - card", + "issuingCountryCode" : "GB", + "status" : "Suspended", + "type" : "card", + "card" : { + "cardholderName" : "Sam Hopper", + "formFactor" : "virtual", + "bin" : "555544", + "expiration" : { + "month" : "04", + "year" : "2024" + }, + "lastFour" : "2732" + }, + "id" : "PI32272223222B5CZW7BQ2V3T" + } + }, + "environment" : "test", + "type" : "balancePlatform.paymentInstrument.updated" + } + }, + "post-balancePlatform.paymentInstrument.updated-balancePlatform-paymentInstrument-updated" : { + "summary" : "Card created", + "description" : "Example webhook when a card was created", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "paymentInstrument" : { + "balanceAccountId" : "BA3227C223222B5CZW72VCC75", + "description" : "S.Hopper - card", + "issuingCountryCode" : "GB", + "status" : "Active", + "type" : "card", + "card" : { + "cardholderName" : "Sam Hopper", + "formFactor" : "virtual", + "bin" : "555544", + "expiration" : { + "month" : "04", + "year" : "2024" + }, + "lastFour" : "2732" + }, + "id" : "PI32272223222B5CZW7BQ2V3T" + } + }, + "environment" : "test", + "type" : "balancePlatform.paymentInstrument.created" + } + }, + "post-balancePlatform.report.created-balancePlatform.report.created" : { + "summary" : "Report created", + "description" : "Example webhook when a report was generated and is ready to be downloaded", + "value" : { + "data" : { + "balancePlatform" : "YOUR_BALANCE_PLATFORM", + "accountHolder" : { + "id" : "AH32272223222B59MTF7458DP" + }, + "balanceAccount" : { + "id" : "BA3227C223222B5B9SCR82TMV" + }, + "creationDate" : "2021-07-02T02:01:08+02:00", + "fileName" : "balanceplatform_payments_accounting_report_2021_07_01.csv", + "reportType" : "balanceplatform_payments_accounting_report", + "downloadUrl" : "https://balanceplatform-test.adyen.com/balanceplatform/.../.../.../balanceplatform_payments_accounting_report_2021_07_01.csv" + }, + "environment" : "test", + "type" : "balancePlatform.report.created" + } + } } } } \ No newline at end of file diff --git a/json/BalancePlatformService-v1.json b/json/BalancePlatformService-v1.json index abe88c1..9a09e80 100644 --- a/json/BalancePlatformService-v1.json +++ b/json/BalancePlatformService-v1.json @@ -8,9 +8,9 @@ "info" : { "version" : "1", "x-publicVersion" : true, - "title" : "Balance Platform Configuration API", - "description" : "The Balance Platform Configuration API enables you to create a platform where you can onboard users as account holders and create balance accounts, cards, and bank accounts.\n\nFor information about use cases, refer to [Adyen Issuing](https://docs.adyen.com/issuing).\n\n ## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Balance Platform Configuration 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://balanceplatform-api-test.adyen.com/bcl/v1\n```\n## Going live\nWhen going live, your Adyen contact will provide your API credential for the live environment. You can then use the API key or the username and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\nFor more information, refer to our [Going live documentation](https://docs.adyen.com/issuing/integration-checklist#going-live).", - "x-timestamp" : "2022-03-22T19:59:08Z", + "title" : "Configuration API", + "description" : "The Configuration API enables you to create a platform where you can onboard users as account holders and create balance accounts, cards, and bank accounts.\n\n## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Balance Platform Configuration 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://balanceplatform-api-test.adyen.com/bcl/v1\n```\n## Going live\nWhen going live, your Adyen contact will provide your API credential for the live environment. You can then use the API key or the username and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\n", + "x-timestamp" : "2022-08-01T08:48:30Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -65,7 +65,7 @@ "Account holders" ], "summary" : "Create an account holder", - "description" : "Creates an account holder that represents your user's entity within the balance platform.\n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).", + "description" : "Creates an account holder that represents your user's entity within the balance platform.\n\n", "x-addedInVersion" : "1", "operationId" : "post-accountHolders", "x-groupName" : "Account holders", @@ -99,8 +99,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-accountHolders-success-200" + "createAccountHolder" : { + "$ref" : "#/components/examples/post-accountHolders-createAccountHolder-200" } }, "schema" : { @@ -318,7 +318,7 @@ "Account holders" ], "summary" : "Update an account holder", - "description" : "Updates an account holder. When updating an account holder resource, note that:\n\n* If a parameter is not provided in the request, the parameter is left unchanged.\n\n* When updating any parameter in the `contactDetails` object, you must send all other existing `contactDetails` parameters.", + "description" : "Updates an account holder. When updating an account holder resource, note that:\n\n* If a parameter is not provided in the request, the parameter is left unchanged.", "x-addedInVersion" : "1", "operationId" : "patch-accountHolders-id", "x-groupName" : "Account holders", @@ -363,8 +363,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/patch-accountHolders-id-success-200" + "updateAccountHolderStatus" : { + "$ref" : "#/components/examples/patch-accountHolders-id-updateAccountHolderStatus-200" } }, "schema" : { @@ -604,7 +604,7 @@ "Balance accounts" ], "summary" : "Create a balance account", - "description" : "Creates a balance account that holds the funds of the associated account holder. \n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).", + "description" : "Creates a balance account that holds the funds of the associated account holder. \n\n", "x-addedInVersion" : "1", "operationId" : "post-balanceAccounts", "x-groupName" : "Balance accounts", @@ -638,8 +638,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-balanceAccounts-success-200" + "createBalanceAccount" : { + "$ref" : "#/components/examples/post-balanceAccounts-createBalanceAccount-200" } }, "schema" : { @@ -1405,7 +1405,7 @@ "Documents" ], "summary" : "Upload a document for verification checks", - "description" : "Uploads a document for verification checks.\n\n Adyen uses the information from the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities) to run automated verification checks. If these checks fail, you will be notified to provide additional documents. Adyen uses the documents to validate the identity of the individual or organization legal entity, or the legal entity's bank account details.\n\n You should only upload documents when Adyen requests additional information for the legal entity. For more information, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "Uploads a document for verification checks.\n\n Adyen uses the information from the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities) to run automated verification checks. If these checks fail, you will be notified to provide additional documents. Adyen uses the documents to validate the identity of the individual or organization legal entity, or the legal entity's bank account details.\n\n You should only upload documents when Adyen requests additional information for the legal entity.", "x-addedInVersion" : "1", "operationId" : "post-documents", "x-groupName" : "Documents", @@ -1792,7 +1792,7 @@ "Legal entities" ], "summary" : "Create a legal entity", - "description" : "Creates a legal entity. \n\nThis resource contains information about an individual or organization that will be onboarded in your balance platform. Adyen uses this information to perform verification checks as required by payment industry regulations. Adyen informs you of the verification results through webhooks or API responses. \n\nAfter the legal entity has passed the verification checks, you can issue a card to them. For more information, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "Creates a legal entity. \n\nThis resource contains information about an individual or organization that will be onboarded in your balance platform. Adyen uses this information to perform verification checks as required by payment industry regulations. Adyen informs you of the verification results through webhooks or API responses. \n\nAfter the legal entity has passed the verification checks, you can issue a card to them.", "x-addedInVersion" : "1", "operationId" : "post-legalEntities", "x-groupName" : "Legal entities", @@ -1810,6 +1810,17 @@ "requestBody" : { "content" : { "application/json" : { + "examples" : { + "post-createLegalEntityIndividual" : { + "$ref" : "#/components/examples/post-legalEntities-post-createLegalEntityIndividual" + }, + "post-createLegalEntityOrganization" : { + "$ref" : "#/components/examples/post-legalEntities-post-createLegalEntityOrganization" + }, + "post-createLegalEntitySoleProp" : { + "$ref" : "#/components/examples/post-legalEntities-post-createLegalEntitySoleProp" + } + }, "schema" : { "$ref" : "#/components/schemas/LegalEntityInfo" } @@ -2119,8 +2130,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-paymentInstrumentGroups-success-200" + "createPaymentInstrumentGroups" : { + "$ref" : "#/components/examples/post-paymentInstrumentGroups-createPaymentInstrumentGroups-200" } }, "schema" : { @@ -2466,7 +2477,7 @@ "Payment instruments" ], "summary" : "Create a payment instrument", - "description" : "Creates a payment instrument to issue either a physical or a virtual card to your user.\n\n For more information, refer to [Create cards](https://docs.adyen.com/issuing/create-cards).", + "description" : "Creates a payment instrument to issue a physical card, a virtual card, or a business account to your user.\n\n For more information, refer to [Issue cards](https://docs.adyen.com/issuing/create-cards) or [Issue business accounts](https://docs.adyen.com/marketplaces-and-platforms/business-accounts).", "x-addedInVersion" : "1", "operationId" : "post-paymentInstruments", "x-groupName" : "Payment instruments", @@ -2485,6 +2496,9 @@ "content" : { "application/json" : { "examples" : { + "createBusinessAccount" : { + "$ref" : "#/components/examples/post-paymentInstruments-createBusinessAccount" + }, "createPhysicalCard" : { "$ref" : "#/components/examples/post-paymentInstruments-createPhysicalCard" }, @@ -2503,8 +2517,14 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-paymentInstruments-success-200" + "createBusinessAccount" : { + "$ref" : "#/components/examples/post-paymentInstruments-createBusinessAccount-200" + }, + "createPhysicalCard" : { + "$ref" : "#/components/examples/post-paymentInstruments-createPhysicalCard-200" + }, + "createVirtualCard" : { + "$ref" : "#/components/examples/post-paymentInstruments-createVirtualCard-200" } }, "schema" : { @@ -2770,8 +2790,11 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/patch-paymentInstruments-id-success-200" + "updatePaymentInstrumentBalanceAccount" : { + "$ref" : "#/components/examples/patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount-200" + }, + "updatePaymentInstrumentStatus" : { + "$ref" : "#/components/examples/patch-paymentInstruments-id-updatePaymentInstrumentStatus-200" } }, "schema" : { @@ -2832,9 +2855,6 @@ "examples" : { "generic" : { "$ref" : "#/components/examples/generic-422" - }, - "invalidData" : { - "$ref" : "#/components/examples/patch-paymentInstruments-id-invalidData-422" } }, "schema" : { @@ -3028,8 +3048,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-transactionRules-success-200" + "createTransactionRule" : { + "$ref" : "#/components/examples/post-transactionRules-createTransactionRule-200" } }, "schema" : { @@ -3416,8 +3436,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/patch-transactionRules-transactionRuleId-success-200" + "updateTransactionRuleStatus" : { + "$ref" : "#/components/examples/patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200" } }, "schema" : { @@ -3923,7 +3943,7 @@ "type" : "string" }, "legalEntityId" : { - "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\nFor more information on how to create a legal entity, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\n", "type" : "string" }, "primaryBalanceAccount" : { @@ -3936,7 +3956,7 @@ "type" : "string" }, "status" : { - "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Suspended**: The account holder is temporarily suspended. You can set the account back to active or close it permanently. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", + "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Inactive**: The account holder is temporarily inactive. You can set the account back to active or close it permanently. \n\n * **Suspended**: The account holder is permanently suspended by Adyen. This action cannot be undone. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", "enum" : [ "Active", "Closed", @@ -4045,7 +4065,7 @@ "type" : "string" }, "legalEntityId" : { - "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\nFor more information on how to create a legal entity, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\n", "type" : "string" }, "reference" : { @@ -4062,18 +4082,20 @@ "legalEntityId" ] }, - "Address2" : { + "Address" : { "properties" : { "city" : { - "description" : "The name of the city.", + "description" : "The name of the city. Maximum length: 3000 characters.", + "maxLength" : 3000, "type" : "string" }, "country" : { - "description" : "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.", + "description" : "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.\n> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.", "type" : "string" }, "houseNumberOrName" : { - "description" : "The number or name of the house.", + "description" : "The number or name of the house. Maximum length: 3000 characters.", + "maxLength" : 3000, "type" : "string" }, "postalCode" : { @@ -4085,7 +4107,8 @@ "type" : "string" }, "street" : { - "description" : "The name of the street. \n> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.", + "description" : "The name of the street. Maximum length: 3000 characters.\n> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.", + "maxLength" : 3000, "type" : "string" } }, @@ -4097,6 +4120,37 @@ "country" ] }, + "Address-3" : { + "properties" : { + "city" : { + "description" : "The name of the city. Required if `stateOrProvince` is provided.\n\nIf you specify the city, you must also send `postalCode` and `street`.", + "type" : "string" + }, + "country" : { + "description" : "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.", + "type" : "string" + }, + "postalCode" : { + "description" : "Postal code. Required if `stateOrProvince` and/or `city` is provided.", + "type" : "string" + }, + "stateOrProvince" : { + "description" : "The two-letter ISO 3166-2 state or province code. For example, **CA** in the US. \n\nIf you specify the state or province, you must also send `city`, `postalCode`, and `street`.", + "type" : "string" + }, + "street" : { + "description" : "The name of the street, and the house or building number. Required if `stateOrProvince` and/or `city` is provided.", + "type" : "string" + }, + "street2" : { + "description" : "The apartment, unit, or suite number.", + "type" : "string" + } + }, + "required" : [ + "country" + ] + }, "Amount" : { "properties" : { "currency" : { @@ -4355,14 +4409,25 @@ "id" ] }, - "BankAccountInfo" : { + "BankAccount" : { + "properties" : { + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + } + }, + "required" : [ + "iban" + ] + }, + "BankAccountInfo-2" : { "properties" : { "accountNumber" : { - "description" : "The bank account number (without separators).\n\n When this is provided, the `bankCode` and `branchCode` are also required.", + "description" : "The bank account number (without separators).\n\n When this is provided, the `branchCode` is also required.", "type" : "string" }, "accountType" : { - "description" : "The type of bank account. Only applies to bank accounts held in the US. \n\nPossible values: **checking**, **savings**.", + "description" : "The type of bank account.", "type" : "string" }, "bankBicSwift" : { @@ -4374,7 +4439,7 @@ "type" : "string" }, "bankCode" : { - "description" : "The bank code of the banking institution with which the bank account is registered.\n\nRequired when you provide an `accountNumber`.", + "description" : "The bank code of the banking institution with which the bank account is registered.", "type" : "string" }, "bankName" : { @@ -4400,9 +4465,6 @@ "iban" : { "description" : "The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.", "type" : "string" - }, - "requestedVerificationCode" : { - "type" : "string" } }, "required" : [ @@ -4535,7 +4597,7 @@ "type" : "string" }, "cardholderName" : { - "description" : "The name of the card holder.\n Maximum length: 26 characters.", + "description" : "The name of the cardholder.\n Maximum length: 26 characters.", "maxLength" : 26, "type" : "string" }, @@ -4661,7 +4723,7 @@ "type" : "string" }, "cardholderName" : { - "description" : "The name of the card holder.\n Maximum length: 26 characters.", + "description" : "The name of the cardholder.\n Maximum length: 26 characters.", "maxLength" : 26, "type" : "string" }, @@ -4694,7 +4756,7 @@ "properties" : { "address" : { "description" : "The address of the contact.", - "$ref" : "#/components/schemas/Address2" + "$ref" : "#/components/schemas/Address" }, "email" : { "description" : "The e-mail address of the contact.", @@ -4706,7 +4768,7 @@ }, "name" : { "description" : "The name of the contact.", - "$ref" : "#/components/schemas/Name2" + "$ref" : "#/components/schemas/Name" }, "personalData" : { "description" : "Personal data of the contact.", @@ -4714,7 +4776,7 @@ }, "phoneNumber" : { "description" : "The phone number of the contact.", - "$ref" : "#/components/schemas/PhoneNumber2" + "$ref" : "#/components/schemas/PhoneNumber" }, "webAddress" : { "description" : "The URL of the website of the contact.", @@ -4726,7 +4788,7 @@ "properties" : { "address" : { "description" : "The address of the account holder.", - "$ref" : "#/components/schemas/Address2" + "$ref" : "#/components/schemas/Address" }, "email" : { "description" : "The email address of the account holder.", @@ -4747,6 +4809,29 @@ "address" ] }, + "CronSweepSchedule" : { + "additionalProperties" : false, + "properties" : { + "cronExpression" : { + "description" : "A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) that is used to set the sweep schedule. The schedule uses the time zone of the balance account. For example, **30 17 * * MON** schedules a sweep every Monday at 17:30.\n\nThe expression must have five values separated by a single space in the following order:\n\n* Minute: **0-59**\n\n* Hour: **0-23**\n\n* Day of the month: **1-31**\n\n* Month: **1-12** or **JAN-DEC**\n\n* Day of the week: **0-7** in which 0 or 7 is Sunday, or **MON-SUN**.\n\nThe following non-standard characters are supported: *****, **L**, **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for more examples.", + "type" : "string" + }, + "type" : { + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", + "enum" : [ + "daily", + "weekly", + "monthly", + "balance", + "cron" + ], + "type" : "string" + } + }, + "required" : [ + "cronExpression" + ] + }, "Document" : { "properties" : { "attachment" : { @@ -4779,6 +4864,7 @@ }, "id" : { "description" : "The unique identifier of the document.", + "readOnly" : true, "type" : "string" }, "issuerCountry" : { @@ -4799,10 +4885,10 @@ }, "owner" : { "description" : "Contains information about the resource that owns the document.", - "$ref" : "#/components/schemas/Entity" + "$ref" : "#/components/schemas/OwnerEntity" }, "type" : { - "description" : "Type of document, used when providing an ID number or uploading a document. The possible values depend on the legal entity `type`.\n\n* When providing ID numbers for individuals, the values can be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading documents:\n* For `type` **organization**, the values can be **proofOfAddress**, **registrationDocument**, or **taxDocument**. \n\n* For `type` **individual**, the values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**, or **proofOfResidency**.\n\n* Use **bankStatement** to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", + "description" : "Type of document, used when providing an ID number or uploading a document. The possible values depend on the legal entity type.\n\nWhen providing ID numbers:\n* For **individual**, the `type` values can be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading documents:\n* For **organization**, the `type` values can be **proofOfAddress**, **registrationDocument**, **taxDocument**, or **proofOfIndustry**. \n\n* For **individual**, the `type` values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**, **proofOfResidency**, or **proofOfIndustry**.\n\n* Use **bankStatement** to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", "enum" : [ "bankStatement", "driversLicense", @@ -4813,30 +4899,18 @@ "proofOfNationalIdNumber", "proofOfResidency", "registrationDocument", - "taxDocument" + "taxDocument", + "proofOfIndustry" ], "type" : "string" } }, "required" : [ "type", - "owner" - ] - }, - "Entity" : { - "properties" : { - "id" : { - "description" : "Unique identifier of the resource that owns the document. Depending on the entity `type`, this value can be the unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) or the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", - "type" : "string" - }, - "type" : { - "description" : "Type of resource that owns the document.\n\nPossible values: **legalEntity**, **bankAccount**.", - "type" : "string" - } - }, - "required" : [ - "id", - "type" + "description", + "owner", + "attachments", + "id" ] }, "EntityReference" : { @@ -4862,7 +4936,7 @@ "GenericEntityInfo" : { "properties" : { "entityAssociations" : { - "description" : "List of individual legal entities associated with the organization legal entity. \nFor example, ultimate business owners through ownership or control, or signatories. ", + "description" : "List of legal entities associated with the current legal entity.\nFor example, ultimate beneficial owners associated with an organization through ownership or control, or as signatories.", "items" : { "$ref" : "#/components/schemas/LegalEntityAssociation" }, @@ -4897,7 +4971,7 @@ "type" : "string" }, "nationalIdExempt" : { - "description" : "Applies only to individuals in the US. Set to **true** if the individual does not have an SSN. To verify their identity, Adyen will require them to [upload an ID document](https://docs.adyen.com/issuing/kyc-verification#upload-documents).", + "description" : "Applies only to individuals in the US. Set to **true** if the individual does not have an SSN. To verify their identity, Adyen will require them to upload an ID document.", "type" : "boolean" }, "number" : { @@ -4905,7 +4979,7 @@ "type" : "string" }, "type" : { - "description" : "Type of document, used when providing an ID number or uploading a document. The possible values depend on the legal entity `type`.\n\n* When providing ID numbers for individuals, the values can be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading documents:\n* For `type` **organization**, the values can be **proofOfAddress**, **registrationDocument**, or **taxDocument**. \n\n* For `type` **individual**, the values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**, or **proofOfResidency**.\n\n* Use **bankStatement** to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", + "description" : "Type of document, used when providing an ID number or uploading a document. The possible values depend on the legal entity type.\n\nWhen providing ID numbers:\n* For **individual**, the `type` values can be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading documents:\n* For **organization**, the `type` values can be **proofOfAddress**, **registrationDocument**, **taxDocument**, or **proofOfIndustry**. \n\n* For **individual**, the `type` values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**, **proofOfResidency**, or **proofOfIndustry**.\n\n* Use **bankStatement** to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", "enum" : [ "bankStatement", "driversLicense", @@ -4916,7 +4990,8 @@ "proofOfNationalIdNumber", "proofOfResidency", "registrationDocument", - "taxDocument" + "taxDocument", + "proofOfIndustry" ], "type" : "string" } @@ -4941,7 +5016,7 @@ }, "name" : { "description" : "The individual's name.", - "$ref" : "#/components/schemas/Name" + "$ref" : "#/components/schemas/Name-3" }, "nationality" : { "description" : "The individual's nationality.", @@ -4949,11 +5024,11 @@ }, "phone" : { "description" : "The phone number of the legal entity.", - "$ref" : "#/components/schemas/PhoneNumber" + "$ref" : "#/components/schemas/PhoneNumber-2" }, "residentialAddress" : { "description" : "The residential address of the individual.", - "$ref" : "#/components/schemas/Address" + "$ref" : "#/components/schemas/Address-3" }, "webData" : { "deprecated" : true, @@ -5016,6 +5091,7 @@ "documents" : { "deprecated" : true, "x-deprecatedInVersion" : "1", + "x-deprecatedMessage" : "Use the `documentDetails` array instead.", "description" : "List of documents uploaded for the legal entity.", "items" : { "$ref" : "#/components/schemas/EntityReference" @@ -5023,7 +5099,7 @@ "type" : "array" }, "entityAssociations" : { - "description" : "List of individual legal entities associated with the organization legal entity. \nFor example, ultimate business owners through ownership or control, or signatories. ", + "description" : "List of legal entities associated with the current legal entity.\nFor example, ultimate beneficial owners associated with an organization through ownership or control, or as signatories.", "items" : { "$ref" : "#/components/schemas/LegalEntityAssociation" }, @@ -5031,6 +5107,7 @@ }, "id" : { "description" : "The unique identifier of the legal entity.", + "readOnly" : true, "type" : "string" }, "individual" : { @@ -5041,6 +5118,11 @@ "description" : "Information about the organization. Required if `type` is **organization**.", "$ref" : "#/components/schemas/Organization" }, + "reference" : { + "description" : "Your reference for the legal entity, maximum 150 characters.", + "maxLength" : 150, + "type" : "string" + }, "transferInstruments" : { "description" : "List of transfer instruments owned by the legal entity.", "items" : { @@ -5049,27 +5131,46 @@ "type" : "array" }, "type" : { - "description" : "Type of legal entity.\n\n Possible values: **individual**, **organization**.", + "description" : "The type of legal entity.\n\n Possible values: **individual** or **organization**", "enum" : [ "individual", "organization" ], "type" : "string" } - } + }, + "required" : [ + "type", + "id" + ] }, "LegalEntityAssociation" : { "properties" : { + "associatorId" : { + "description" : "The unique identifier of another legal entity with which the `legalEntityId` is associated. When the `legalEntityId` is associated to legal entities other than the current one, the response returns all the associations.", + "readOnly" : true, + "type" : "string" + }, + "entityType" : { + "description" : "The legal entity type of associated legal entity. \n\nFor example, **organization**, **soleProprietorship** or **individual**. ", + "readOnly" : true, + "type" : "string" + }, "jobTitle" : { "description" : "The individual's job title if the `type` is **uboThroughControl** or **signatory**.", "type" : "string" }, "legalEntityId" : { - "description" : "The unique identifier of the individual [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/legalEntities__resParam_id) associated with the organization.", + "description" : "The unique identifier of the associated [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities__resParam_id).", + "type" : "string" + }, + "name" : { + "description" : "The name of the associated [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities__resParam_id).\n\n- For **individual**, `name.firstName` and `name.lastName`.\n- For **organization**, `legalName`.\n- For **soleProprietorship**, `name`.", + "readOnly" : true, "type" : "string" }, "type" : { - "description" : "Defines how the individual is associated with the organization. \n\nPossible values: **uboThroughOwnership**, **uboThroughControl**, **signatory**. ", + "description" : "Defines the relationship of the legal entity to the current legal entity. \n\nFor example, **uboThroughOwnership**, **uboThroughControl**, or **signatory**. ", "enum" : [ "signatory", "uboThroughControl", @@ -5086,7 +5187,7 @@ "LegalEntityInfo" : { "properties" : { "entityAssociations" : { - "description" : "List of individual legal entities associated with the organization legal entity. \nFor example, ultimate business owners through ownership or control, or signatories. ", + "description" : "List of legal entities associated with the current legal entity.\nFor example, ultimate beneficial owners associated with an organization through ownership or control, or as signatories.", "items" : { "$ref" : "#/components/schemas/LegalEntityAssociation" }, @@ -5100,8 +5201,13 @@ "description" : "Information about the organization. Required if `type` is **organization**.", "$ref" : "#/components/schemas/Organization" }, + "reference" : { + "description" : "Your reference for the legal entity, maximum 150 characters.", + "maxLength" : 150, + "type" : "string" + }, "type" : { - "description" : "Type of legal entity.\n\n Possible values: **individual**, **organization**.", + "description" : "The type of legal entity.\n\n Possible values: **individual** or **organization**", "enum" : [ "individual", "organization" @@ -5114,6 +5220,22 @@ ] }, "Name" : { + "properties" : { + "firstName" : { + "description" : "The first name.", + "type" : "string" + }, + "lastName" : { + "description" : "The last name.", + "type" : "string" + } + }, + "required" : [ + "firstName", + "lastName" + ] + }, + "Name-3" : { "properties" : { "firstName" : { "description" : "The individual's first name.", @@ -5133,22 +5255,6 @@ "lastName" ] }, - "Name2" : { - "properties" : { - "firstName" : { - "description" : "The first name.", - "type" : "string" - }, - "lastName" : { - "description" : "The last name.", - "type" : "string" - } - }, - "required" : [ - "firstName", - "lastName" - ] - }, "Organization" : { "properties" : { "description" : { @@ -5156,7 +5262,7 @@ "type" : "string" }, "doingBusinessAs" : { - "description" : "The organization's registered name, if different from the legal name.", + "description" : "The organization's trading name, if different from the registered legal name.", "type" : "string" }, "email" : { @@ -5169,15 +5275,15 @@ }, "phone" : { "description" : "The phone number of the legal entity.", - "$ref" : "#/components/schemas/PhoneNumber" + "$ref" : "#/components/schemas/PhoneNumber-2" }, "principalPlaceOfBusiness" : { "description" : "The address where the organization operates from. Provide this if the principal place of business is different from the `registeredAddress`.", - "$ref" : "#/components/schemas/Address" + "$ref" : "#/components/schemas/Address-3" }, "registeredAddress" : { "description" : "The address of the organization registered at their registrar (such as the Chamber of Commerce).", - "$ref" : "#/components/schemas/Address" + "$ref" : "#/components/schemas/Address-3" }, "registrationNumber" : { "description" : "The organization's registration number.", @@ -5187,6 +5293,10 @@ "description" : "Information about the organization's publicly traded stock. Provide this object only if `type` is **listedPublicCompany**.", "$ref" : "#/components/schemas/StockData" }, + "taxExempt" : { + "description" : "Indicates whether the legal entity is exempt from tax. When **true**, the `taxIdAbsenceReason` must be provided.\n\n", + "type" : "boolean" + }, "taxId" : { "description" : "The organization's tax identifier.", "type" : "string" @@ -5200,7 +5310,7 @@ "type" : "string" }, "type" : { - "description" : "Type of organization. \n\nPossible values: **associationIncorporated**, **governmentalOrganization**, **listedPublicCompany**,**nonProfit**, **partnershipIncorporated**, **privateCompany**.", + "description" : "Type of organization. \n\nPossible values: **associationIncorporated**, **governmentalOrganization**, **listedPublicCompany**, **nonProfit**, **partnershipIncorporated**, **privateCompany**.", "enum" : [ "associationIncorporated", "governmentalOrganization", @@ -5224,6 +5334,22 @@ "registeredAddress" ] }, + "OwnerEntity" : { + "properties" : { + "id" : { + "description" : "Unique identifier of the resource that owns the document. Depending on the entity `type`, this value can be the unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) or the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).", + "type" : "string" + }, + "type" : { + "description" : "Type of resource that owns the document.\n\nPossible values: **legalEntity**, **bankAccount**.", + "type" : "string" + } + }, + "required" : [ + "id", + "type" + ] + }, "PaginatedAccountHoldersResponse" : { "properties" : { "accountHolders" : { @@ -5302,8 +5428,12 @@ "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument.", "type" : "string" }, + "bankAccount" : { + "description" : "Contains the business account details. Returned when you create a payment instrument with `type` **bankAccount**.", + "$ref" : "#/components/schemas/BankAccount" + }, "card" : { - "description" : "Contains information about the card payment instrument.", + "description" : "Contains information about the card payment instrument. Returned when you create a payment instrument with `type` **card**.", "$ref" : "#/components/schemas/Card" }, "description" : { @@ -5349,6 +5479,14 @@ { "description" : "The payment instrument is permanently closed. This action cannot be undone.", "value" : "Closed" + }, + { + "description" : "The payment instrument is suspended. Either because it was stolen or lost.", + "value" : "blocked" + }, + { + "description" : "The payment instrument is permanently closed. This action cannot be undone.", + "value" : "discarded" } ], "description" : "The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **Active** by default. However, there can be exceptions based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **Requested**.\n\nPossible values: \n\n * **Active**: The payment instrument is active and can be used to make payments. \n\n * **Requested**: The payment instrument has been requested. This state is applicable for physical cards. \n\n* **Inactive**: The payment instrument is inactive and cannot be used to make payments. \n\n * **Suspended**: The payment instrument is temporarily suspended and cannot be used to make payments. \n\n * **Closed**: The payment instrument is permanently closed. This action cannot be undone. \n\n* **Stolen** \n\n * **Lost**\n\n ", @@ -5359,13 +5497,16 @@ "Lost", "Requested", "Stolen", - "Suspended" + "Suspended", + "blocked", + "discarded" ], "type" : "string" }, "type" : { - "description" : "Type of payment instrument.\n\nPossible value: **card**. ", + "description" : "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ", "enum" : [ + "bankAccount", "card" ], "type" : "string" @@ -5497,6 +5638,14 @@ { "description" : "The payment instrument is permanently closed. This action cannot be undone.", "value" : "Closed" + }, + { + "description" : "The payment instrument is suspended. Either because it was stolen or lost.", + "value" : "blocked" + }, + { + "description" : "The payment instrument is permanently closed. This action cannot be undone.", + "value" : "discarded" } ], "description" : "The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **Active** by default. However, there can be exceptions based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **Requested**.\n\nPossible values: \n\n * **Active**: The payment instrument is active and can be used to make payments. \n\n * **Requested**: The payment instrument has been requested. This state is applicable for physical cards. \n\n* **Inactive**: The payment instrument is inactive and cannot be used to make payments. \n\n * **Suspended**: The payment instrument is temporarily suspended and cannot be used to make payments. \n\n * **Closed**: The payment instrument is permanently closed. This action cannot be undone. \n\n* **Stolen** \n\n * **Lost**\n\n ", @@ -5507,13 +5656,16 @@ "Lost", "Requested", "Stolen", - "Suspended" + "Suspended", + "blocked", + "discarded" ], "type" : "string" }, "type" : { - "description" : "Type of payment instrument.\n\nPossible value: **card**. ", + "description" : "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ", "enum" : [ + "bankAccount", "card" ], "type" : "string" @@ -5567,6 +5719,14 @@ { "description" : "The payment instrument is permanently closed. This action cannot be undone.", "value" : "Closed" + }, + { + "description" : "The payment instrument is suspended. Either because it was stolen or lost.", + "value" : "blocked" + }, + { + "description" : "The payment instrument is permanently closed. This action cannot be undone.", + "value" : "discarded" } ], "description" : "The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **Active** by default. However, there can be exceptions based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **Requested**.\n\nPossible values: \n\n * **Active**: The payment instrument is active and can be used to make payments. \n\n * **Requested**: The payment instrument has been requested. This state is applicable for physical cards. \n\n* **Inactive**: The payment instrument is inactive and cannot be used to make payments. \n\n * **Suspended**: The payment instrument is temporarily suspended and cannot be used to make payments. \n\n * **Closed**: The payment instrument is permanently closed. This action cannot be undone. \n\n* **Stolen** \n\n * **Lost**\n\n ", @@ -5577,7 +5737,9 @@ "Lost", "Requested", "Stolen", - "Suspended" + "Suspended", + "blocked", + "discarded" ], "type" : "string" }, @@ -5626,26 +5788,6 @@ ] }, "PhoneNumber" : { - "properties" : { - "countryCode" : { - "description" : "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. For example, **US** or **NL**.", - "type" : "string" - }, - "number" : { - "description" : "The phone number.", - "type" : "string" - }, - "type" : { - "description" : "The type of phone number.\n Possible values: **mobile**, **landline**, **sip**, **fax.** ", - "type" : "string" - } - }, - "required" : [ - "type", - "number" - ] - }, - "PhoneNumber2" : { "properties" : { "phoneCountryCode" : { "description" : "The two-character ISO-3166-1 alpha-2 country code of the phone number.\nFor example, **US** or **NL**.", @@ -5671,6 +5813,26 @@ "phoneNumber" ] }, + "PhoneNumber-2" : { + "properties" : { + "countryCode" : { + "description" : "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. For example, **US** or **NL**.", + "type" : "string" + }, + "number" : { + "description" : "The phone number.", + "type" : "string" + }, + "type" : { + "description" : "The type of phone number.\n Possible values: **mobile**, **landline**, **sip**, **fax.** ", + "type" : "string" + } + }, + "required" : [ + "type", + "number" + ] + }, "RecurringDetail" : { "properties" : { "merchantAccount" : { @@ -5709,10 +5871,6 @@ "description" : "A code that identifies the problem type.", "type" : "string" }, - "errorType" : { - "description" : "A URI that identifies the problem type, pointing to human-readable documentation on this problem type.", - "type" : "string" - }, "instance" : { "description" : "A unique URI that identifies the specific occurrence of the problem.", "type" : "string" @@ -5740,10 +5898,14 @@ "title" : { "description" : "A short, human-readable summary of the problem type.", "type" : "string" + }, + "type" : { + "description" : "A URI that identifies the problem type, pointing to human-readable documentation on this problem type.", + "type" : "string" } }, "required" : [ - "errorType", + "type", "errorCode", "title", "detail", @@ -5794,7 +5956,12 @@ "SweepConfiguration" : { "properties" : { "balanceAccountId" : { - "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) that will be the source or destination of the balance sweep. This can only be used for periodic sweep schedules such as `schedule.type` **daily** or **monthly**.", + "description" : "The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).\n\n You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**.", + "type" : "string" + }, + "id" : { + "description" : "The unique identifier of the sweep.", + "readOnly" : true, "type" : "string" }, "merchantAccount" : { @@ -5803,7 +5970,32 @@ }, "schedule" : { "description" : "The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account.", - "$ref" : "#/components/schemas/SweepSchedule" + "oneOf" : [ + { + "$ref" : "#/components/schemas/CronSweepSchedule" + }, + { + "$ref" : "#/components/schemas/SweepSchedule" + } + ] + }, + "status" : { + "x-enum" : [ + { + "description" : "The sweep is enabled and funds will be pulled in or pushed out based on the defined configuration", + "value" : "active" + }, + { + "description" : "The sweep is disabled and cannot be triggered.", + "value" : "inactive" + } + ], + "description" : "The status of the sweep. If not provided, by default, this is set to **active**.\n\nPossible values: \n\n * **active**: the sweep is enabled and funds will be pulled in or pushed out based on the defined configuration. \n\n * **inactive**: the sweep is disabled and cannot be triggered. \n\n", + "enum" : [ + "active", + "inactive" + ], + "type" : "string" }, "sweepAmount" : { "description" : "The amount that must be pushed out or pulled in. You can configure either `sweepAmount` or `targetAmount`, not both.", @@ -5814,16 +6006,16 @@ "$ref" : "#/components/schemas/Amount" }, "transferInstrumentId" : { - "description" : "The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id) that will be the source or destination of the balance sweep. This can be used for periodic or instant sweep schedules.\n\nIf specified in combination with a merchant account, it instructs a direct debit from this instrument for the configured merchant account.", + "description" : "The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).\n\nYou can also use this in combination with a `merchantAccount` and a `type` **pull** to start a direct debit request from the source transfer instrument. To use this feature, reach out to your Adyen contact.", "type" : "string" }, "triggerAmount" : { - "description" : "The threshold amount that triggers the sweep. If not specified, the amount defaults to zero. The `triggerAmount` is evaluated according to the specified `schedule.type`.\n\n* For `type` **pull**, if the balance is less than or equal to the `triggerAmount`, funds are pulled in to the balance account.\n\n* For `type` **push**, if the balance is more than or equal to the `triggerAmount`, funds are pushed out of the balance account.", + "description" : "The threshold amount that triggers the sweep. If not provided, by default, the amount is set to zero. The `triggerAmount` is evaluated according to the specified `schedule.type`.\n\n* For `type` **pull**, if the balance is less than or equal to the `triggerAmount`, funds are pulled in to the balance account.\n\n* For `type` **push**, if the balance is more than or equal to the `triggerAmount`, funds are pushed out of the balance account.", "$ref" : "#/components/schemas/Amount" }, "type" : { "default" : "push", - "description" : "The direction of sweep.\n\nPossible values:\n\n * **push**: _Push funds out_ to a destination balance account or transfer instrument.\n\n * **pull**: _Pull funds in_ from a source merchant account, transfer instrument, or balance account. ", + "description" : "The direction of sweep, whether pushing out or pulling in funds to the balance account. If not provided, by default, this is set to **push**.\n\nPossible values:\n\n * **push**: _push out funds_ to a destination balance account or transfer instrument.\n\n * **pull**: _pull in funds_ from a source merchant account, transfer instrument, or balance account.", "enum" : [ "pull", "push" @@ -5832,19 +6024,21 @@ } }, "required" : [ - "schedule", - "type" + "id", + "schedule" ] }, "SweepSchedule" : { + "additionalProperties" : false, "properties" : { "type" : { - "description" : "The schedule type.\n\nPossible values:\n\n* **daily**: Push out funds daily at 07:00 AM CET.\n\n* **weekly**: Push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: Push out funds every 1st of the month at 07:00 AM CET.\n\n* **balance**: Only for sweeps of `type` **pull** and with a `merchantAccount` or `transferInstrument` source. Pull in funds instantly if the balance is less than or equal to the `triggerAmount`.", + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", "enum" : [ - "balance", "daily", + "weekly", "monthly", - "weekly" + "balance", + "cron" ], "type" : "string" } @@ -5888,7 +6082,6 @@ "manual", "ocr", "server", - "token", "unknown" ], "type" : "string" @@ -5932,7 +6125,6 @@ "ecommerce", "moto", "pos", - "purchaseWithCashback", "recurring", "token", "unknown" @@ -6032,7 +6224,6 @@ "manual", "ocr", "server", - "token", "unknown" ], "type" : "string" @@ -6072,7 +6263,6 @@ "ecommerce", "moto", "pos", - "purchaseWithCashback", "recurring", "token", "unknown" @@ -6175,31 +6365,22 @@ "properties" : { "bankAccount" : { "description" : "Contains information about the legal entity's bank account. Required when `type` is **bankAccount**.", - "$ref" : "#/components/schemas/BankAccountInfo" + "$ref" : "#/components/schemas/BankAccountInfo-2" + }, + "documents" : { + "deprecated" : true, + "x-deprecatedInVersion" : "1", + "description" : "List of documents uploaded for the transfer instrument.", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "type" : "array" }, "id" : { "description" : "The unique identifier of the transfer instrument.", + "readOnly" : true, "type" : "string" }, - "recurringDetail" : { - "description" : "Contains information about the legal entity's previously stored payment details. Required when `type` is **recurringDetail**.", - "$ref" : "#/components/schemas/RecurringDetail" - }, - "type" : { - "description" : "The type of transfer instrument.\n\nPossible values: **bankAccount**, **recurringDetail**.", - "type" : "string" - } - }, - "required" : [ - "type" - ] - }, - "TransferInstrumentInfo" : { - "properties" : { - "bankAccount" : { - "description" : "Contains information about the legal entity's bank account. Required when `type` is **bankAccount**.", - "$ref" : "#/components/schemas/BankAccountInfo" - }, "legalEntityId" : { "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) that owns the transfer instrument.", "type" : "string" @@ -6210,6 +6391,39 @@ }, "type" : { "description" : "The type of transfer instrument.\n\nPossible values: **bankAccount**, **recurringDetail**.", + "enum" : [ + "bankAccount", + "recurringDetail" + ], + "type" : "string" + } + }, + "required" : [ + "legalEntityId", + "type", + "id" + ] + }, + "TransferInstrumentInfo" : { + "properties" : { + "bankAccount" : { + "description" : "Contains information about the legal entity's bank account. Required when `type` is **bankAccount**.", + "$ref" : "#/components/schemas/BankAccountInfo-2" + }, + "legalEntityId" : { + "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) that owns the transfer instrument.", + "type" : "string" + }, + "recurringDetail" : { + "description" : "Contains information about the legal entity's previously stored payment details. Required when `type` is **recurringDetail**.", + "$ref" : "#/components/schemas/RecurringDetail" + }, + "type" : { + "description" : "The type of transfer instrument.\n\nPossible values: **bankAccount**, **recurringDetail**.", + "enum" : [ + "bankAccount", + "recurringDetail" + ], "type" : "string" } }, @@ -6281,24 +6495,29 @@ } }, "required" : [ - ] + ] }, "VoidResponse" : { }, "WebData" : { "properties" : { - "appAddress" : { - "deprecated" : true, - "description" : "The URL of the application.", - "type" : "string" - }, "webAddress" : { - "deprecated" : true, "description" : "The URL of the website.", "type" : "string" } } + }, + "WebDataExemption" : { + "properties" : { + "reason" : { + "description" : "The reason why the web data was not provided. Possible value: **noOnlinePresence**.", + "enum" : [ + "noOnlinePresence" + ], + "type" : "string" + } + } } }, "securitySchemes" : { @@ -6314,7 +6533,7 @@ }, "examples" : { "delete-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rule deleted", "description" : "Example response for successfully deleting a transaction rule", "value" : { "amount" : { @@ -6404,7 +6623,7 @@ } }, "get-accountHolders-id-balanceAccounts-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of balance accounts retrieved", "description" : "Example response when retrieving a list of balance accounts under an account holder", "value" : { "balanceAccounts" : [ @@ -6432,7 +6651,7 @@ } }, "get-accountHolders-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Account holder retrieved", "description" : "Example response when retrieving an account holder", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6456,7 +6675,7 @@ } }, "get-balanceAccounts-id-paymentInstruments-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of payment instruments retrieved", "description" : "Example response when retrieving a list of payment instruments under a balance account", "value" : { "hasNext" : "true", @@ -6504,8 +6723,8 @@ } }, "get-balanceAccounts-id-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response when retrieving a balance account", + "summary" : "Balance account details retrieved", + "description" : "Example response for retrieving a balance account", "value" : { "accountHolderId" : "AH32272223222B59K6RTQBFNZ", "defaultCurrencyCode" : "EUR", @@ -6527,7 +6746,7 @@ } }, "get-balancePlatforms-id-accountHolders-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of account holders retrieved", "description" : "Example response when retrieving a list of account holders under a balance platform", "value" : { "accountHolders" : [ @@ -6565,7 +6784,7 @@ } }, "get-balancePlatforms-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Balance platform retrieved", "description" : "Example response when retrieving a balance platform", "value" : { "id" : "YOUR_BALANCE_PLATFORM", @@ -6573,7 +6792,7 @@ } }, "get-paymentInstrumentGroups-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Payment instrument group retrieved", "description" : "Example response when retrieving a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6582,7 +6801,7 @@ } }, "get-paymentInstrumentGroups-id-transactionRules-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules for a payment instrument group retrieved", "description" : "Example response when retrieving a list of transaction rules applied to a payment instrument group", "value" : { "transactionRules" : [ @@ -6619,8 +6838,8 @@ } }, "get-paymentInstruments-id-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response when retrieving a payment instrument", + "summary" : "Payment instruments retrieved", + "description" : "Example response for retrieving payment instruments associated with a balance account", "value" : { "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", "description" : "S. Hopper - Main card", @@ -6644,7 +6863,7 @@ } }, "get-paymentInstruments-id-transactionRules-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules for a payment instrument retrieved", "description" : "Example response when retrieving a list of transaction rules applied to a payment instrument", "value" : { "transactionRules" : [ @@ -6681,7 +6900,7 @@ } }, "get-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules retrieved", "description" : "Example response when retrieving a transaction rule", "value" : { "transactionRule" : { @@ -6699,8 +6918,15 @@ } } }, - "patch-accountHolders-id-success-200" : { - "summary" : "Response code - 200 OK", + "patch-accountHolders-id-updateAccountHolderStatus" : { + "summary" : "Update the status of an account holder", + "description" : "Example request for updating the status of an account holder", + "value" : { + "status" : "Suspended" + } + }, + "patch-accountHolders-id-updateAccountHolderStatus-200" : { + "summary" : "Account holder status updated", "description" : "Example response for successfully updating the status of an account holder", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6723,28 +6949,48 @@ "status" : "Suspended" } }, - "patch-accountHolders-id-updateAccountHolderStatus" : { - "summary" : "Update the status of an account holder.", - "description" : "Example request for updating the status of an account holder", + "patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount" : { + "summary" : "Update the balance account linked to a payment instrument", + "description" : "Example request for updating the balance account of a payment instrument", + "value" : { + "balanceAccountId" : "BA32272223222B5CM82WL892M" + } + }, + "patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount-200" : { + "summary" : "Balance account updated", + "description" : "Example response for updating the balance account linked to a payment instrument", + "value" : { + "balanceAccountId" : "BA32272223222B5CM82WL892M", + "description" : "S. Hopper - Main card", + "issuingCountryCode" : "GB", + "status" : "Inactive", + "type" : "card", + "card" : { + "brand" : "mc", + "brandVariant" : "mcdebit", + "cardholderName" : "Simon Hopper", + "formFactor" : "virtual", + "bin" : "555544", + "expiration" : { + "month" : "01", + "year" : "2024" + }, + "lastFour" : "5785", + "number" : "************5785" + }, + "id" : "PI3227C223222B5CMD278FKGS" + } + }, + "patch-paymentInstruments-id-updatePaymentInstrumentStatus" : { + "summary" : "Update the status of a payment instrument", + "description" : "Example request for updating the status of a payment instrument", "value" : { "status" : "Suspended" } }, - "patch-paymentInstruments-id-invalidData-422" : { - "summary" : "Response code - 422 Unprocessable Entity", - "description" : "Example response for a failed request to update the balance account ID", - "value" : { - "type" : "https://docs.adyen.com/errors/general/invalid-field-value", - "title" : "Invalid Payment Instrument information provided", - "status" : 422, - "detail" : "The balanceAccountId can only be changed when the status is Inactive or Requested", - "requestId" : "1W1UI15PLVGC9V8O", - "errorCode" : "30_031" - } - }, - "patch-paymentInstruments-id-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example respones for successfully updating the status of a payment instrument", + "patch-paymentInstruments-id-updatePaymentInstrumentStatus-200" : { + "summary" : "Payment instrument status updated", + "description" : "Example response for updating the status of a payment instrument", "value" : { "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", "description" : "S. Hopper - Main card", @@ -6767,21 +7013,15 @@ "id" : "PI3227C223222B5CMD278FKGS" } }, - "patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount" : { - "summary" : "Update the balance account linked to a payment instrument.", - "description" : "Example request for updating the balance account of a payment instrument", + "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus" : { + "summary" : "Update the status of transaction rule", + "description" : "Example request for updating the status of a transaction rule", "value" : { - "balanceAccountId" : "BA32272223222B5CM82WL892M" + "status" : "inactive" } }, - "patch-paymentInstruments-id-updatePaymentInstrumentStatus" : { - "summary" : "Update the status of a payment instrument.", - "value" : { - "status" : "Suspended" - } - }, - "patch-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200" : { + "summary" : "Transaction rule status updated", "description" : "Example response for successfully updating the status of a transaction rule", "value" : { "description" : "Allow 5 transactions per month", @@ -6797,19 +7037,13 @@ "id" : "TR3227C223222B5B85CDV4DRS" } }, - "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus" : { - "summary" : "Update the status of transaction rule.", - "description" : "Example request for updating the status of a transaction rule", - "value" : { - "status" : "inactive" - } - }, "post-accountHolders-createAccountHolder" : { - "summary" : "Create an account holder.", + "summary" : "Create an account holder", "description" : "Example request for creating an account holder", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", "description" : "S.Hopper - Staff 123", + "legalEntityId" : "LE322KT223222D5FJ7THR293F", "contactDetails" : { "email" : "s.hopper@example.com", "phone" : { @@ -6826,9 +7060,8 @@ } } }, - "post-accountHolders-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response for successfully creating an account holder", + "post-accountHolders-createAccountHolder-200" : { + "summary" : "Account holder created", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", "contactDetails" : { @@ -6846,25 +7079,26 @@ } }, "description" : "S.Hopper - Staff 123", + "legalEntityId" : "LE322KT223222D5FJ7THR293F", "id" : "AH3227C223222B5CMD2SXFKGT", "status" : "Active" } }, "post-balanceAccounts-createBalanceAccount" : { - "summary" : "Create a balance account.", + "summary" : "Create a balance account", "description" : "Example request for creating a balance account", "value" : { "accountHolderId" : "AH32272223222B59K6ZKBBFNQ", "description" : "S.Hopper - Main balance account" } }, - "post-balanceAccounts-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response for successfully creating a balance account", + "post-balanceAccounts-createBalanceAccount-200" : { + "summary" : "Balance account created", + "description" : "Example response for creating a balance account", "value" : { "accountHolderId" : "AH32272223222B59K6ZKBBFNQ", "defaultCurrencyCode" : "EUR", - "description" : "S.Hopper - Main balance account", + "reference" : "S.Hopper - Main balance account", "balances" : [ { "available" : 0, @@ -6873,20 +7107,20 @@ "reserved" : 0 } ], - "id" : "BA3227C223222B5CMD38HFKGH", + "id" : "BA32272223222B59CZ3T52DKZ", "status" : "Active" } }, "post-paymentInstrumentGroups-createPaymentInstrumentGroups" : { - "summary" : "Create a payment instrument group.", + "summary" : "Create a payment instrument group", "description" : "Example request for creating a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", "txVariant" : "mc" } }, - "post-paymentInstrumentGroups-success-200" : { - "summary" : "Response code - 200 OK", + "post-paymentInstrumentGroups-createPaymentInstrumentGroups-200" : { + "summary" : "Payment instrument group created", "description" : "Example response for successfully creating a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6894,13 +7128,38 @@ "id" : "PG3227C223222B5CMD3FJFKGZ" } }, + "post-paymentInstruments-createBusinessAccount" : { + "summary" : "Create a business account", + "description" : "Example request for creating a business account", + "value" : { + "type" : "bankAccount", + "description" : "YOUR_DESCRIPTION", + "balanceAccountId" : "BA3227C223222B5CTBLR8BWJB", + "issuingCountryCode" : "NL" + } + }, + "post-paymentInstruments-createBusinessAccount-200" : { + "summary" : "Business account created", + "description" : "Example response for creating a business account", + "value" : { + "balanceAccountId" : "BA3227C223222B5CTBLR8BWJB", + "issuingCountryCode" : "NL", + "status" : "Active", + "type" : "bankAccount", + "bankAccount" : { + "iban" : "NL20ADYB2017000035" + }, + "id" : "PI322LJ223222B5DJS7CD9LWL" + } + }, "post-paymentInstruments-createPhysicalCard" : { "summary" : "Create a physical card", "description" : "Example request for creating a physical card", "value" : { "type" : "card", "issuingCountryCode" : "NL", - "balanceAccountId" : "BALANCE_ACCOUNT_ID", + "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", + "description" : "S.Hopper - Main card", "status" : "Inactive", "card" : { "formFactor" : "physical", @@ -6912,9 +7171,9 @@ "city" : "Amsterdam", "country" : "NL", "stateOrProvince" : "NH", - "street" : "Simon Carmiggeltstraat", - "houseNumberOrName" : "6-50", - "postalCode" : "1011DJ" + "street" : "Brannan Street", + "houseNumberOrName" : "274", + "postalCode" : "1020CD" }, "name" : { "firstName" : "Sam", @@ -6922,74 +7181,119 @@ } }, "configuration" : { - "configurationProfileId" : "YOUR_CONFIGURATION_PROFILE_ID" + "configurationProfileId" : "CP123AB45678C91ABCD2ABCDE" + } + } + } + }, + "post-paymentInstruments-createPhysicalCard-200" : { + "summary" : "Physical card created", + "description" : "Example response for creating a physical card", + "value" : { + "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", + "description" : "S. Hopper - Main card", + "issuingCountryCode" : "NL", + "status" : "Inactive", + "type" : "card", + "card" : { + "brand" : "mc", + "brandVariant" : "mcdebit", + "cardholderName" : "Sam Hopper", + "formFactor" : "physical", + "bin" : "555544", + "expiration" : { + "month" : "08", + "year" : "2024" }, - "expiry" : { - "month" : 8, - "year" : 2024 + "lastFour" : "2765", + "authentication" : { + "password" : "******", + "phone" : { + "number" : "+123456789", + "type" : "mobile" + } + }, + "deliveryContact" : { + "address" : { + "city" : "Amsterdam", + "country" : "NL", + "stateOrProvince" : "NH", + "street" : "Brannan Street", + "houseNumberOrName" : "274", + "postalCode" : "1020CD" + }, + "name" : { + "firstName" : "Sam", + "lastName" : "Hopper" + } + }, + "configuration" : { + "configurationProfileId" : "CP123AB45678C91ABCD2ABCDE" } }, - "description" : "S.Hopper - Main card" + "id" : "PI3227C223222B5BPCMFXD2XG" } }, "post-paymentInstruments-createVirtualCard" : { - "summary" : "Create a virtual card.", + "summary" : "Create a virtual card", "description" : "Example request for creating a virtual card", "value" : { "type" : "card", "description" : "S. Hopper - Main card", "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", - "issuingCountryCode" : "GB", + "issuingCountryCode" : "NL", "card" : { - "cardholderName" : "Simon Hopper", + "cardholderName" : "Sam Hopper", "brand" : "mc", "brandVariant" : "mcdebit", "formFactor" : "virtual" } } }, - "post-paymentInstruments-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response for successfully creating a virtual card", + "post-paymentInstruments-createVirtualCard-200" : { + "summary" : "Virtual card created", + "description" : "Example response for creating a virtual card", "value" : { "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", - "description" : "S. Hopper - Main card", - "issuingCountryCode" : "GB", + "description" : "S.Hopper - Virtual card", + "issuingCountryCode" : "NL", "status" : "Active", "type" : "card", "card" : { "brand" : "mc", "brandVariant" : "mcdebit", - "cardholderName" : "Simon Hopper", + "cardholderName" : "Sam Hopper", "formFactor" : "virtual", "bin" : "555544", - "cvc" : "873", + "cvc" : "613", "expiration" : { - "month" : "01", - "year" : "2024" + "month" : "03", + "year" : "2025" }, - "lastFour" : "3548" + "lastFour" : "9883", + "number" : "5555444411209883" }, - "id" : "PI32272223222B5CMD3MQ3HXX" + "id" : "PI32272223222B5FR7Z5CFDW4" } }, "post-transactionRules-createTransactionRule" : { - "summary" : "Create a transaction rule.", + "summary" : "Create a transaction rule", "value" : { - "description" : "Allow 5 transactions per month", + "description" : "Allow transactions only from NL", + "reference" : "YOUR_REFERENCE_1738A", + "paymentInstrumentId" : "PI32272223222B5CTBLWC6W2X", + "type" : "allowList", + "countries" : [ + "NL" + ], + "status" : "active", "interval" : { - "type" : "monthly" - }, - "maxTransactions" : 5, - "paymentInstrumentId" : "PI3227C223222B59KGTXP884R", - "reference" : "myRule12345", - "startDate" : "2021-01-21T12:46:35.476629Z", - "status" : "inactive", - "type" : "velocity" + "type" : "perTransaction" + } } }, - "post-transactionRules-success-200" : { - "summary" : "Response code - 200 OK", + "post-transactionRules-createTransactionRule-200" : { + "summary" : "Transaction rule created", "description" : "Example response for successfully creating a transaction rule", "value" : { "description" : "Allow 5 transactions per month", diff --git a/json/BalancePlatformService-v2.json b/json/BalancePlatformService-v2.json index eb118d2..0f5b31a 100644 --- a/json/BalancePlatformService-v2.json +++ b/json/BalancePlatformService-v2.json @@ -8,9 +8,9 @@ "info" : { "version" : "2", "x-publicVersion" : true, - "title" : "Balance Platform Configuration API", - "description" : "The Balance Platform Configuration API enables you to create a platform where you can onboard users as account holders and create balance accounts, cards, and bank accounts.\n\nFor information about use cases, refer to [Adyen Issuing](https://docs.adyen.com/issuing).\n\n ## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Balance Platform Configuration 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://balanceplatform-api-test.adyen.com/bcl/v1\n```\n## Going live\nWhen going live, your Adyen contact will provide your API credential for the live environment. You can then use the API key or the username and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\nFor more information, refer to our [Going live documentation](https://docs.adyen.com/issuing/integration-checklist#going-live).", - "x-timestamp" : "2022-05-06T17:19:23Z", + "title" : "Configuration API", + "description" : "The Configuration API enables you to create a platform where you can onboard your users as account holders and create balance accounts, cards, and business accounts.\n\n## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Configuration 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://balanceplatform-api-test.adyen.com/bcl/v1\n```\n## Going live\nWhen going live, your Adyen contact will provide your API credential for the live environment. You can then use the API key or the username and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\n", + "x-timestamp" : "2022-07-28T15:32:11Z", "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions", "contact" : { "name" : "Adyen Developer Experience team", @@ -53,7 +53,7 @@ "Account holders" ], "summary" : "Create an account holder", - "description" : "Creates an account holder that represents your user's entity within the balance platform.\n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).", + "description" : "Creates an account holder linked to a [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities).\n\n", "x-addedInVersion" : "1", "operationId" : "post-accountHolders", "x-groupName" : "Account holders", @@ -306,7 +306,7 @@ "Account holders" ], "summary" : "Update an account holder", - "description" : "Updates an account holder. When updating an account holder resource, note that:\n\n* If a parameter is not provided in the request, the parameter is left unchanged.\n\n* When updating any parameter in the `contactDetails` object, you must send all other existing `contactDetails` parameters.", + "description" : "Updates an account holder. When updating an account holder resource, if a parameter is not provided in the request, it is left unchanged.", "x-addedInVersion" : "1", "operationId" : "patch-accountHolders-id", "x-groupName" : "Account holders", @@ -351,8 +351,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/patch-accountHolders-id-success-200" + "updateAccountHolderStatus" : { + "$ref" : "#/components/examples/patch-accountHolders-id-updateAccountHolderStatus-200" } }, "schema" : { @@ -446,7 +446,7 @@ "Account holders" ], "summary" : "Get all balance accounts of an account holder", - "description" : "Returns a paginated list of balance accounts associated with an account holder. To fetch multiple pages, use the query parameters. \n\nFor example, to limit the page to 5 balance accounts and skip the first 10, use `/accountHolders/{id}/balanceAccounts?limit=5&offset=10`.", + "description" : "Returns a paginated list of the balance accounts associated with an account holder. To fetch multiple pages, use the query parameters. \n\nFor example, to limit the page to 5 balance accounts and skip the first 10, use `/accountHolders/{id}/balanceAccounts?limit=5&offset=10`.", "x-addedInVersion" : "1", "operationId" : "get-accountHolders-id-balanceAccounts", "x-groupName" : "Account holders", @@ -592,7 +592,7 @@ "Balance accounts" ], "summary" : "Create a balance account", - "description" : "Creates a balance account that holds the funds of the associated account holder. \n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).", + "description" : "Creates a balance account that holds the funds of the associated account holder. \n\n", "x-addedInVersion" : "1", "operationId" : "post-balanceAccounts", "x-groupName" : "Balance accounts", @@ -2120,8 +2120,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-paymentInstrumentGroups-success-200" + "createPaymentInstrumentGroups" : { + "$ref" : "#/components/examples/post-paymentInstrumentGroups-createPaymentInstrumentGroups-200" } }, "schema" : { @@ -2215,7 +2215,7 @@ "Payment instrument groups" ], "summary" : "Get a payment instrument group", - "description" : "Returns a payment instrument group.", + "description" : "Returns the details of a payment instrument group.", "x-addedInVersion" : "1", "operationId" : "get-paymentInstrumentGroups-id", "x-groupName" : "Payment instrument groups", @@ -2467,7 +2467,7 @@ "Payment instruments" ], "summary" : "Create a payment instrument", - "description" : "Creates a payment instrument to issue either a physical or a virtual card to your user.\n\n For more information, refer to [Create cards](https://docs.adyen.com/issuing/create-cards).", + "description" : "Creates a payment instrument to issue a physical card, a virtual card, or a business account to your user.\n\n For more information, refer to [Issue cards](https://docs.adyen.com/issuing/create-cards) or [Issue business accounts](https://docs.adyen.com/marketplaces-and-platforms/business-accounts).", "x-addedInVersion" : "1", "operationId" : "post-paymentInstruments", "x-groupName" : "Payment instruments", @@ -2486,6 +2486,9 @@ "content" : { "application/json" : { "examples" : { + "createBusinessAccount" : { + "$ref" : "#/components/examples/post-paymentInstruments-createBusinessAccount" + }, "createPhysicalCard" : { "$ref" : "#/components/examples/post-paymentInstruments-createPhysicalCard" }, @@ -2504,8 +2507,14 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/post-paymentInstruments-success-200" + "createBusinessAccount" : { + "$ref" : "#/components/examples/post-paymentInstruments-createBusinessAccount-200" + }, + "createPhysicalCard" : { + "$ref" : "#/components/examples/post-paymentInstruments-createPhysicalCard-200" + }, + "createVirtualCard" : { + "$ref" : "#/components/examples/post-paymentInstruments-createVirtualCard-200" } }, "schema" : { @@ -2599,7 +2608,7 @@ "Payment instruments" ], "summary" : "Get a payment instrument", - "description" : "Returns a payment instrument.", + "description" : "Returns the details of a payment instrument.", "x-addedInVersion" : "1", "operationId" : "get-paymentInstruments-id", "x-groupName" : "Payment instruments", @@ -3266,7 +3275,7 @@ "Transaction rules" ], "summary" : "Get a transaction rule", - "description" : "Returns a transaction rule.", + "description" : "Returns the details of a transaction rule.", "x-addedInVersion" : "1", "operationId" : "get-transactionRules-transactionRuleId", "x-groupName" : "Transaction rules", @@ -3435,8 +3444,8 @@ "content" : { "application/json" : { "examples" : { - "success" : { - "$ref" : "#/components/examples/patch-transactionRules-transactionRuleId-success-200" + "updateTransactionRuleStatus" : { + "$ref" : "#/components/examples/patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200" } }, "schema" : { @@ -3555,7 +3564,7 @@ "type" : "string" }, "legalEntityId" : { - "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\nFor more information on how to create a legal entity, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\n", "type" : "string" }, "primaryBalanceAccount" : { @@ -3568,7 +3577,7 @@ "type" : "string" }, "status" : { - "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Suspended**: The account holder is temporarily suspended. You can set the account back to active or close it permanently. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", + "description" : "The status of the account holder.\n\nPossible values: \n\n * **Active**: The account holder is active. This is the default status when creating an account holder. \n\n * **Inactive**: The account holder is temporarily inactive. You can set the account back to active or close it permanently. \n\n * **Suspended**: The account holder is permanently suspended by Adyen. This action cannot be undone. \n\n* **Closed**: The account holder is permanently deactivated. This action cannot be undone.", "enum" : [ "active", "closed", @@ -3677,7 +3686,7 @@ "type" : "string" }, "legalEntityId" : { - "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\nFor more information on how to create a legal entity, refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification).", + "description" : "The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) associated with the account holder. Adyen performs a verification process against the legal entity of the account holder.\n\n", "type" : "string" }, "reference" : { @@ -3748,7 +3757,7 @@ "country" ] }, - "Address2" : { + "Address-2" : { "properties" : { "city" : { "description" : "The name of the city.", @@ -4009,6 +4018,17 @@ "hasNext" ] }, + "BankAccount" : { + "properties" : { + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + } + }, + "required" : [ + "iban" + ] + }, "BrandVariantsRestriction" : { "properties" : { "operation" : { @@ -4144,7 +4164,7 @@ "type" : "string" }, "cardholderName" : { - "description" : "The name of the card holder.\n Maximum length: 26 characters.", + "description" : "The name of the cardholder.\n Maximum length: 26 characters.", "maxLength" : 26, "type" : "string" }, @@ -4271,7 +4291,7 @@ "type" : "string" }, "cardholderName" : { - "description" : "The name of the card holder.\n Maximum length: 26 characters.", + "description" : "The name of the cardholder.\n Maximum length: 26 characters.", "maxLength" : 26, "type" : "string" }, @@ -4344,11 +4364,34 @@ "operation" ] }, + "CronSweepSchedule" : { + "additionalProperties" : false, + "properties" : { + "cronExpression" : { + "description" : "A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) that is used to set the sweep schedule. The schedule uses the time zone of the balance account. For example, **30 17 * * MON** schedules a sweep every Monday at 17:30.\n\nThe expression must have five values separated by a single space in the following order:\n\n* Minute: **0-59**\n\n* Hour: **0-23**\n\n* Day of the month: **1-31**\n\n* Month: **1-12** or **JAN-DEC**\n\n* Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**.\n\nThe following non-standard characters are supported: *****, **L**, **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for more examples.", + "type" : "string" + }, + "type" : { + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", + "enum" : [ + "daily", + "weekly", + "monthly", + "balance", + "cron" + ], + "type" : "string" + } + }, + "required" : [ + "cronExpression" + ] + }, "DeliveryContact" : { "properties" : { "address" : { "description" : "The address of the contact.", - "$ref" : "#/components/schemas/Address2" + "$ref" : "#/components/schemas/Address-2" }, "email" : { "description" : "The email address of the contact.", @@ -4370,7 +4413,11 @@ "description" : "The URL of the contact's website.", "type" : "string" } - } + }, + "required" : [ + "name", + "address" + ] }, "DifferentCurrenciesRestriction" : { "properties" : { @@ -4414,7 +4461,7 @@ "type" : "string" }, "value" : { - "description" : "List of point-of-sale entry modes.\n\nPossible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **token**, **server**, **barcode**, **ocr**.\n\n", + "description" : "List of point-of-sale entry modes.\n\nPossible values: **barcode**, **chip**, **cof**, **contactless**, **magstripe**, **manual**, **ocr**, **server**.\n\n", "items" : { "enum" : [ "barcode", @@ -4425,7 +4472,6 @@ "manual", "ocr", "server", - "token", "unknown" ], "type" : "string" @@ -4666,8 +4712,12 @@ "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument.", "type" : "string" }, + "bankAccount" : { + "description" : "Contains the business account details. Returned when you create a payment instrument with `type` **bankAccount**.", + "$ref" : "#/components/schemas/BankAccount" + }, "card" : { - "description" : "Contains information about the card payment instrument.", + "description" : "Contains information about the card payment instrument. Returned when you create a payment instrument with `type` **card**.", "$ref" : "#/components/schemas/Card" }, "description" : { @@ -4736,8 +4786,9 @@ "type" : "string" }, "type" : { - "description" : "Type of payment instrument.\n\nPossible value: **card**. ", + "description" : "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ", "enum" : [ + "bankAccount", "card" ], "type" : "string" @@ -4892,8 +4943,9 @@ "type" : "string" }, "type" : { - "description" : "Type of payment instrument.\n\nPossible value: **card**. ", + "description" : "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ", "enum" : [ + "bankAccount", "card" ], "type" : "string" @@ -5017,7 +5069,7 @@ "type" : "string" }, "value" : { - "description" : "List of processing types.\n\nPossible values: **atmWithdraw**, **pos**, **ecommerce**, **moto**, **recurring**, **balanceInquiry**.\n\n", + "description" : "List of processing types.\n\nPossible values: **atmWithdraw**, **balanceInquiry**, **ecommerce**, **moto**, **pos**, **recurring**, **token**.\n\n", "items" : { "enum" : [ "atmWithdraw", @@ -5025,7 +5077,6 @@ "ecommerce", "moto", "pos", - "purchaseWithCashback", "recurring", "token", "unknown" @@ -5061,10 +5112,6 @@ "description" : "A code that identifies the problem type.", "type" : "string" }, - "errorType" : { - "description" : "A URI that identifies the problem type, pointing to human-readable documentation on this problem type.", - "type" : "string" - }, "instance" : { "description" : "A unique URI that identifies the specific occurrence of the problem.", "type" : "string" @@ -5092,10 +5139,14 @@ "title" : { "description" : "A short, human-readable summary of the problem type.", "type" : "string" + }, + "type" : { + "description" : "A URI that identifies the problem type, pointing to human-readable documentation on this problem type.", + "type" : "string" } }, "required" : [ - "errorType", + "type", "errorCode", "title", "detail", @@ -5112,6 +5163,10 @@ "description" : "The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**.\n\nThe sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances).", "type" : "string" }, + "description" : { + "description" : "The message that will be used in the sweep transfer's description body with a maximum length of 140 characters.\n\nIf the message is longer after replacing placeholders, the message will be cut off at 140 characters.", + "type" : "string" + }, "id" : { "description" : "The unique identifier of the sweep.", "readOnly" : true, @@ -5119,7 +5174,14 @@ }, "schedule" : { "description" : "The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account.", - "$ref" : "#/components/schemas/SweepSchedule" + "oneOf" : [ + { + "$ref" : "#/components/schemas/CronSweepSchedule" + }, + { + "$ref" : "#/components/schemas/SweepSchedule" + } + ] }, "status" : { "x-enum" : [ @@ -5185,14 +5247,16 @@ } }, "SweepSchedule" : { + "additionalProperties" : false, "properties" : { "type" : { - "description" : "The schedule type.\n\nPossible values:\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", + "description" : "The schedule type.\n\nPossible values:\n\n* **cron**: push out funds based on a cron expression.\n\n* **daily**: push out funds daily at 07:00 AM CET.\n\n* **weekly**: push out funds every Monday at 07:00 AM CET.\n\n* **monthly**: push out funds every first of the month at 07:00 AM CET.\n\n* **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.", "enum" : [ "daily", "weekly", "monthly", - "balance" + "balance", + "cron" ], "type" : "string" } @@ -5645,6 +5709,9 @@ }, "required" : [ ] + }, + "void" : { + } }, "securitySchemes" : { @@ -5660,7 +5727,7 @@ }, "examples" : { "delete-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rule deleted", "description" : "Example response for successfully deleting a transaction rule", "value" : { "amount" : { @@ -5750,7 +5817,7 @@ } }, "get-accountHolders-id-balanceAccounts-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of balance accounts retrieved", "description" : "Example response when retrieving a list of balance accounts under an account holder", "value" : { "balanceAccounts" : [ @@ -5778,7 +5845,7 @@ } }, "get-accountHolders-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Account holder retrieved", "description" : "Example response when retrieving an account holder", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -5856,7 +5923,7 @@ } }, "get-balanceAccounts-id-paymentInstruments-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of payment instruments retrieved", "description" : "Example response when retrieving a list of payment instruments under a balance account", "value" : { "hasNext" : "true", @@ -5922,7 +5989,7 @@ } }, "get-balancePlatforms-id-accountHolders-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "List of account holders retrieved", "description" : "Example response when retrieving a list of account holders under a balance platform", "value" : { "accountHolders" : [ @@ -5960,7 +6027,7 @@ } }, "get-balancePlatforms-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Balance platform retrieved", "description" : "Example response when retrieving a balance platform", "value" : { "id" : "YOUR_BALANCE_PLATFORM", @@ -5968,7 +6035,7 @@ } }, "get-paymentInstrumentGroups-id-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Payment instrument group retrieved", "description" : "Example response when retrieving a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -5977,7 +6044,7 @@ } }, "get-paymentInstrumentGroups-id-transactionRules-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules for a payment instrument group retrieved", "description" : "Example response when retrieving a list of transaction rules applied to a payment instrument group", "value" : { "transactionRules" : [ @@ -6039,7 +6106,7 @@ } }, "get-paymentInstruments-id-transactionRules-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules for a payment instrument retrieved", "description" : "Example response when retrieving a list of transaction rules applied to a payment instrument", "value" : { "transactionRules" : [ @@ -6076,7 +6143,7 @@ } }, "get-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "summary" : "Transaction rules retrieved", "description" : "Example response when retrieving a transaction rule", "value" : { "transactionRule" : { @@ -6094,8 +6161,15 @@ } } }, - "patch-accountHolders-id-success-200" : { - "summary" : "Response code - 200 OK", + "patch-accountHolders-id-updateAccountHolderStatus" : { + "summary" : "Update the status of an account holder", + "description" : "Example request for updating the status of an account holder", + "value" : { + "status" : "Suspended" + } + }, + "patch-accountHolders-id-updateAccountHolderStatus-200" : { + "summary" : "Account holder status updated", "description" : "Example response for successfully updating the status of an account holder", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6118,13 +6192,6 @@ "status" : "Suspended" } }, - "patch-accountHolders-id-updateAccountHolderStatus" : { - "summary" : "Update the status of an account holder.", - "description" : "Example request for updating the status of an account holder", - "value" : { - "status" : "Suspended" - } - }, "patch-balanceAccounts-balanceAccountId-sweeps-sweepId-updateSweep-status" : { "summary" : "Update the status of a sweep", "description" : "Example request for updating a sweep", @@ -6216,8 +6283,15 @@ "id" : "PI3227C223222B5CMD278FKGS" } }, - "patch-transactionRules-transactionRuleId-success-200" : { - "summary" : "Response code - 200 OK", + "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus" : { + "summary" : "Update the status of transaction rule", + "description" : "Example request for updating the status of a transaction rule", + "value" : { + "status" : "inactive" + } + }, + "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200" : { + "summary" : "Transaction rule status updated", "description" : "Example response for successfully updating the status of a transaction rule", "value" : { "description" : "Allow 5 transactions per month", @@ -6233,13 +6307,6 @@ "id" : "TR3227C223222B5B85CDV4DRS" } }, - "patch-transactionRules-transactionRuleId-updateTransactionRuleStatus" : { - "summary" : "Update the status of transaction rule.", - "description" : "Example request for updating the status of a transaction rule", - "value" : { - "status" : "inactive" - } - }, "post-accountHolders-createAccountHolder" : { "summary" : "Create an account holder", "description" : "Example request for creating an account holder", @@ -6393,15 +6460,15 @@ } }, "post-paymentInstrumentGroups-createPaymentInstrumentGroups" : { - "summary" : "Create a payment instrument group.", + "summary" : "Create a payment instrument group", "description" : "Example request for creating a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", "txVariant" : "mc" } }, - "post-paymentInstrumentGroups-success-200" : { - "summary" : "Response code - 200 OK", + "post-paymentInstrumentGroups-createPaymentInstrumentGroups-200" : { + "summary" : "Payment instrument group created", "description" : "Example response for successfully creating a payment instrument group", "value" : { "balancePlatform" : "YOUR_BALANCE_PLATFORM", @@ -6409,13 +6476,38 @@ "id" : "PG3227C223222B5CMD3FJFKGZ" } }, + "post-paymentInstruments-createBusinessAccount" : { + "summary" : "Create a business account", + "description" : "Example request for creating a business account", + "value" : { + "type" : "bankAccount", + "description" : "YOUR_DESCRIPTION", + "balanceAccountId" : "BA3227C223222B5CTBLR8BWJB", + "issuingCountryCode" : "NL" + } + }, + "post-paymentInstruments-createBusinessAccount-200" : { + "summary" : "Business account created", + "description" : "Example response for creating a business account", + "value" : { + "balanceAccountId" : "BA3227C223222B5CTBLR8BWJB", + "issuingCountryCode" : "NL", + "status" : "Active", + "type" : "bankAccount", + "bankAccount" : { + "iban" : "NL20ADYB2017000035" + }, + "id" : "PI322LJ223222B5DJS7CD9LWL" + } + }, "post-paymentInstruments-createPhysicalCard" : { "summary" : "Create a physical card", "description" : "Example request for creating a physical card", "value" : { "type" : "card", "issuingCountryCode" : "NL", - "balanceAccountId" : "BALANCE_ACCOUNT_ID", + "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", + "description" : "S.Hopper - Main card", "status" : "Inactive", "card" : { "formFactor" : "physical", @@ -6427,9 +6519,9 @@ "city" : "Amsterdam", "country" : "NL", "stateOrProvince" : "NH", - "street" : "Simon Carmiggeltstraat", - "houseNumberOrName" : "6-50", - "postalCode" : "1011DJ" + "street" : "Brannan Street", + "houseNumberOrName" : "274", + "postalCode" : "1020CD" }, "name" : { "firstName" : "Sam", @@ -6437,55 +6529,99 @@ } }, "configuration" : { - "configurationProfileId" : "YOUR_CONFIGURATION_PROFILE_ID" + "configurationProfileId" : "CP123AB45678C91ABCD2ABCDE" + } + } + } + }, + "post-paymentInstruments-createPhysicalCard-200" : { + "summary" : "Physical card created", + "description" : "Example response for creating a physical card", + "value" : { + "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", + "description" : "S. Hopper - Main card", + "issuingCountryCode" : "NL", + "status" : "Inactive", + "type" : "card", + "card" : { + "brand" : "mc", + "brandVariant" : "mcdebit", + "cardholderName" : "Sam Hopper", + "formFactor" : "physical", + "bin" : "555544", + "expiration" : { + "month" : "08", + "year" : "2024" }, - "expiry" : { - "month" : 8, - "year" : 2024 + "lastFour" : "2765", + "authentication" : { + "password" : "******", + "phone" : { + "number" : "+123456789", + "type" : "mobile" + } + }, + "deliveryContact" : { + "address" : { + "city" : "Amsterdam", + "country" : "NL", + "stateOrProvince" : "NH", + "street" : "Brannan Street", + "houseNumberOrName" : "274", + "postalCode" : "1020CD" + }, + "name" : { + "firstName" : "Sam", + "lastName" : "Hopper" + } + }, + "configuration" : { + "configurationProfileId" : "CP123AB45678C91ABCD2ABCDE" } }, - "description" : "S.Hopper - Main card" + "id" : "PI3227C223222B5BPCMFXD2XG" } }, "post-paymentInstruments-createVirtualCard" : { - "summary" : "Create a virtual card.", + "summary" : "Create a virtual card", "description" : "Example request for creating a virtual card", "value" : { "type" : "card", "description" : "S. Hopper - Main card", "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", - "issuingCountryCode" : "GB", + "issuingCountryCode" : "NL", "card" : { - "cardholderName" : "Simon Hopper", + "cardholderName" : "Sam Hopper", "brand" : "mc", "brandVariant" : "mcdebit", "formFactor" : "virtual" } } }, - "post-paymentInstruments-success-200" : { - "summary" : "Response code - 200 OK", - "description" : "Example response for successfully creating a virtual card", + "post-paymentInstruments-createVirtualCard-200" : { + "summary" : "Virtual card created", + "description" : "Example response for creating a virtual card", "value" : { "balanceAccountId" : "BA32272223222B59CZ3T52DKZ", - "description" : "S. Hopper - Main card", - "issuingCountryCode" : "GB", + "description" : "S.Hopper - Virtual card", + "issuingCountryCode" : "NL", "status" : "Active", "type" : "card", "card" : { "brand" : "mc", "brandVariant" : "mcdebit", - "cardholderName" : "Simon Hopper", + "cardholderName" : "Sam Hopper", "formFactor" : "virtual", "bin" : "555544", - "cvc" : "873", + "cvc" : "613", "expiration" : { - "month" : "01", - "year" : "2024" + "month" : "03", + "year" : "2025" }, - "lastFour" : "3548" + "lastFour" : "9883", + "number" : "5555444411209883" }, - "id" : "PI32272223222B5CMD3MQ3HXX" + "id" : "PI32272223222B5FR7Z5CFDW4" } }, "post-transactionRules-createTransactionRuleAllowPos" : { diff --git a/yaml/BalancePlatformNotificationService-v1.yaml b/yaml/BalancePlatformNotificationService-v1.yaml index 22d25ed..c270f86 100644 --- a/yaml/BalancePlatformNotificationService-v1.yaml +++ b/yaml/BalancePlatformNotificationService-v1.yaml @@ -12,7 +12,7 @@ info: \ balances in your own dashboards or to keep track of incoming funds.\n\nRefer\ \ to [Notification webhooks](https://docs.adyen.com/issuing/notification-webhooks)\ \ for more information." - x-timestamp: '2022-04-20T09:24:21Z' + x-timestamp: '2022-08-04T10:19:26Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -42,12 +42,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-accountHolder-created: + $ref: '#/components/examples/post-balancePlatform.accountHolder.created-balancePlatform-accountHolder-created' schema: $ref: '#/components/schemas/AccountHolderNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-accountHolder-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -66,12 +72,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-accountHolder-updated: + $ref: '#/components/examples/post-balancePlatform.accountHolder.updated-balancePlatform-accountHolder-updated' schema: $ref: '#/components/schemas/AccountHolderNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-accountHolder-updated: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -90,12 +102,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-balanceAccount-created: + $ref: '#/components/examples/post-balancePlatform.balanceAccount.created-balancePlatform-balanceAccount-created' schema: $ref: '#/components/schemas/BalanceAccountNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-balanceAccount-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -113,12 +131,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-sweep-created: + $ref: '#/components/examples/post-balancePlatform.balanceAccountSweep.created-balancePlatform-sweep-created' schema: $ref: '#/components/schemas/SweepConfigurationNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-sweep-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -136,12 +160,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-sweep-deleted: + $ref: '#/components/examples/post-balancePlatform.balanceAccountSweep.deleted-balancePlatform-sweep-deleted' schema: $ref: '#/components/schemas/SweepConfigurationNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-sweep-deleted: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -159,12 +189,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-sweep-updated: + $ref: '#/components/examples/post-balancePlatform.balanceAccountSweep.updated-balancePlatform-sweep-updated' schema: $ref: '#/components/schemas/SweepConfigurationNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-sweep-updated: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -194,12 +230,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-incomingTransfer-created: + $ref: '#/components/examples/post-balancePlatform.incomingTransfer.created-balancePlatform-incomingTransfer-created' schema: $ref: '#/components/schemas/IncomingTransferNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-incomingTransfer-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -223,12 +265,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-incomingTransfer-updated: + $ref: '#/components/examples/post-balancePlatform.incomingTransfer.updated-balancePlatform-incomingTransfer-updated' schema: $ref: '#/components/schemas/IncomingTransferNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-incomingTransfer-updated: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -252,12 +300,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-outgoingTransfer-created: + $ref: '#/components/examples/post-balancePlatform.outgoingTransfer.created-balancePlatform-outgoingTransfer-created' schema: $ref: '#/components/schemas/OutgoingTransferNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-outgoingTransfer-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -282,12 +336,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-outgoingTransfer-updated: + $ref: '#/components/examples/post-balancePlatform.outgoingTransfer.updated-balancePlatform-outgoingTransfer-updated' schema: $ref: '#/components/schemas/OutgoingTransferNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-outgoingTransfer-updated: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -319,12 +379,30 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-payment-created-authorized: + $ref: '#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-authorized' + balancePlatform-payment-created-funds-transfer: + $ref: '#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-funds-transfer' + balancePlatform-payment-created-refund-requested: + $ref: '#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-refund-requested' + balancePlatform-payment-created-rejected: + $ref: '#/components/examples/post-balancePlatform.payment.created-balancePlatform-payment-created-rejected' schema: - $ref: '#/components/schemas/PaymentNotificationRequest2' + $ref: '#/components/schemas/PaymentNotificationRequest-2' responses: '200': content: application/json: + examples: + balancePlatform-payment-created-authorized: + $ref: '#/components/examples/WebhookAck' + balancePlatform-payment-created-funds-transfer: + $ref: '#/components/examples/WebhookAck' + balancePlatform-payment-created-refund-requested: + $ref: '#/components/examples/WebhookAck' + balancePlatform-payment-created-rejected: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -345,12 +423,26 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-payment-updated-expired: + $ref: '#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-expired' + balancePlatform-payment-updated-partially-cancelled: + $ref: '#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-cancelled' + balancePlatform-payment-updated-partially-expired: + $ref: '#/components/examples/post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-expired' schema: - $ref: '#/components/schemas/PaymentNotificationRequest2' + $ref: '#/components/schemas/PaymentNotificationRequest-2' responses: '200': content: application/json: + examples: + balancePlatform-payment-updated-expired: + $ref: '#/components/examples/WebhookAck' + balancePlatform-payment-updated-partially-cancelled: + $ref: '#/components/examples/WebhookAck' + balancePlatform-payment-updated-partially-expired: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -371,12 +463,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-paymentInstrument-created: + $ref: '#/components/examples/post-balancePlatform.paymentInstrument.created-balancePlatform-paymentInstrument-created' schema: $ref: '#/components/schemas/PaymentNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-paymentInstrument-created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -395,12 +493,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform-paymentInstrument-updated: + $ref: '#/components/examples/post-balancePlatform.paymentInstrument.updated-balancePlatform-paymentInstrument-updated' schema: $ref: '#/components/schemas/PaymentNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform-paymentInstrument-updated: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -424,12 +528,18 @@ webhooks: requestBody: content: application/json: + examples: + balancePlatform.report.created: + $ref: '#/components/examples/post-balancePlatform.report.created-balancePlatform.report.created' schema: $ref: '#/components/schemas/ReportNotificationRequest' responses: '200': content: application/json: + examples: + balancePlatform.report.created: + $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. @@ -482,10 +592,12 @@ components: status: description: "The status of the account holder.\n\nPossible values: \n\n\ \ * **Active**: The account holder is active. This is the default status\ - \ when creating an account holder. \n\n * **Suspended**: The account holder\ - \ is temporarily suspended. You can set the account back to active or\ - \ close it permanently. \n\n* **Closed**: The account holder is permanently\ - \ deactivated. This action cannot be undone." + \ when creating an account holder. \n\n * **Inactive**: The account holder\ + \ is temporarily inactive. You can set the account back to active or close\ + \ it permanently. \n\n * **Suspended**: The account holder is permanently\ + \ suspended by Adyen. This action cannot be undone. \n\n* **Closed**:\ + \ The account holder is permanently deactivated. This action cannot be\ + \ undone." enum: - Active - Closed @@ -617,14 +729,19 @@ components: Address: properties: city: - description: The name of the city. + description: 'The name of the city. Maximum length: 3000 characters.' + maxLength: 3000 type: string country: - description: The two-character ISO-3166-1 alpha-2 country code. For example, + description: 'The two-character ISO-3166-1 alpha-2 country code. For example, **US**. + + > If you don''t know the country or are not collecting the country from + the shopper, provide `country` as `ZZ`.' type: string houseNumberOrName: - description: The number or name of the house. + description: 'The number or name of the house. Maximum length: 3000 characters.' + maxLength: 3000 type: string postalCode: description: A maximum of five digits for an address in the US, or a maximum @@ -637,8 +754,11 @@ components: > Required for the US and Canada.' type: string street: - description: "The name of the street. \n> The house number should not be\ - \ included in this field; it should be separately provided via `houseNumberOrName`." + description: 'The name of the street. Maximum length: 3000 characters. + + > The house number should not be included in this field; it should be + separately provided via `houseNumberOrName`.' + maxLength: 3000 type: string required: - street @@ -818,6 +938,14 @@ components: description: Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/issuing/notification-webhooks#accept-notifications). type: string + BankAccount: + properties: + iban: + description: The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) + (IBAN). + type: string + required: + - iban BankAccountInfo: properties: address: @@ -829,7 +957,7 @@ components: type: string ownerName: description: The name of the bank account owner. - $ref: '#/components/schemas/Name2' + $ref: '#/components/schemas/Name-2' BulkAddress: properties: city: @@ -939,7 +1067,7 @@ components: relevant to your integration. Examples: **visadebit**, **mcprepaid**.' type: string cardholderName: - description: "The name of the card holder.\n Maximum length: 26 characters." + description: "The name of the cardholder.\n Maximum length: 26 characters." maxLength: 26 type: string configuration: @@ -1111,6 +1239,70 @@ components: transferInstrumentId: description: Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). type: string + CronSweepSchedule: + additionalProperties: false + properties: + cronExpression: + description: 'A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) + that is used to set the sweep schedule. The schedule uses the time zone + of the balance account. For example, **30 17 * * MON** schedules a sweep + every Monday at 17:30. + + + The expression must have five values separated by a single space in the + following order: + + + * Minute: **0-59** + + + * Hour: **0-23** + + + * Day of the month: **1-31** + + + * Month: **1-12** or **JAN-DEC** + + + * Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**. + + + The following non-standard characters are supported: *****, **L**, + **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for + more examples.' + type: string + type: + description: 'The schedule type. + + + Possible values: + + + * **cron**: push out funds based on a cron expression. + + + * **daily**: push out funds daily at 07:00 AM CET. + + + * **weekly**: push out funds every Monday at 07:00 AM CET. + + + * **monthly**: push out funds every first of the month at 07:00 AM CET. + + + * **balance**: pull in funds instantly if the balance is less than or + equal to the `triggerAmount`. You can only use this for sweeps of `type` + **pull** and when the source is a `merchantAccount` or `transferInstrument`.' + enum: + - daily + - weekly + - monthly + - balance + - cron + type: string + required: + - cronExpression Expiry: properties: month: @@ -1261,7 +1453,7 @@ components: required: - firstName - lastName - Name2: + Name-2: properties: firstName: description: The first name. @@ -1450,8 +1642,13 @@ components: description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument. type: string + bankAccount: + description: Contains the business account details. Returned when you create + a payment instrument with `type` **bankAccount**. + $ref: '#/components/schemas/BankAccount' card: - description: Contains information about the card payment instrument. + description: Contains information about the card payment instrument. Returned + when you create a payment instrument with `type` **card**. $ref: '#/components/schemas/Card' description: description: Your description for the payment instrument, maximum 300 characters. @@ -1490,6 +1687,12 @@ components: - description: The payment instrument is permanently closed. This action cannot be undone. value: Closed + - description: The payment instrument is suspended. Either because it was + stolen or lost. + value: blocked + - description: The payment instrument is permanently closed. This action + cannot be undone. + value: discarded description: "The status of the payment instrument. If a status is not specified\ \ when creating a payment instrument, it is set to **Active** by default.\ \ However, there can be exceptions based on the `card.formFactor` and\ @@ -1511,13 +1714,16 @@ components: - Requested - Stolen - Suspended + - blocked + - discarded type: string type: description: 'Type of payment instrument. - Possible value: **card**. ' + Possible value: **card**, **bankAccount**. ' enum: + - bankAccount - card type: string required: @@ -1657,7 +1863,7 @@ components: - environment - type - data - PaymentNotificationRequest2: + PaymentNotificationRequest-2: properties: data: description: Contains event details. @@ -1889,7 +2095,9 @@ components: description: The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account. - $ref: '#/components/schemas/SweepSchedule' + oneOf: + - $ref: '#/components/schemas/CronSweepSchedule' + - $ref: '#/components/schemas/SweepSchedule' status: x-enum: - description: The sweep is enabled and funds will be pulled in or pushed @@ -2004,6 +2212,14 @@ components: The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances).' type: string + description: + description: 'The message that will be used in the sweep transfer''s description + body with a maximum length of 140 characters. + + + If the message is longer after replacing placeholders, the message will + be cut off at 140 characters.' + type: string id: description: The unique identifier of the sweep. type: string @@ -2011,7 +2227,9 @@ components: description: The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account. - $ref: '#/components/schemas/SweepSchedule' + oneOf: + - $ref: '#/components/schemas/CronSweepSchedule' + - $ref: '#/components/schemas/SweepSchedule' status: x-enum: - description: The sweep is enabled and funds will be pulled in or pushed @@ -2090,6 +2308,7 @@ components: To use this feature, reach out to your Adyen contact.' type: string SweepSchedule: + additionalProperties: false properties: type: description: 'The schedule type. @@ -2098,6 +2317,9 @@ components: Possible values: + * **cron**: push out funds based on a cron expression. + + * **daily**: push out funds daily at 07:00 AM CET. @@ -2111,10 +2333,11 @@ components: equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`.' enum: - - balance - daily - - monthly - weekly + - monthly + - balance + - cron type: string TransactionEventViolation: properties: @@ -2319,6 +2542,7 @@ components: enum: - dataMissing - invalidInput + - pendingStatus type: string VerificationError-recursive: properties: @@ -2334,6 +2558,7 @@ components: enum: - dataMissing - invalidInput + - pendingStatus type: string remediatingActions: description: Contains the actions that you can take to resolve the verification @@ -2350,4 +2575,748 @@ components: BasicAuth: scheme: basic type: http - examples: {} + examples: + WebhookAck: + summary: Acknowledge Webhook + value: + notificationResponse: '[accepted]' + post-balancePlatform.accountHolder.created-balancePlatform-accountHolder-created: + summary: Account holder created + description: Example webhook when an account holder was created + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountHolder: + contactDetails: {} + description: Sam Hopper + legalEntityId: LE43319330319C8AYX89L2V59 + reference: YOUR_REFERENCE-2412C + capabilities: + issueCard: + enabled: 'true' + requested: 'true' + allowed: 'false' + verificationStatus: pending + receiveFromTransferInstrument: + enabled: 'true' + requested: 'true' + allowed: 'false' + verificationStatus: pending + sendToTransferInstrument: + enabled: 'true' + requested: 'true' + allowed: 'false' + verificationStatus: pending + sendToBalanceAccount: + enabled: 'true' + requested: 'true' + allowed: 'false' + verificationStatus: pending + receiveFromBalanceAccount: + enabled: 'true' + requested: 'true' + allowed: 'false' + verificationStatus: pending + id: AH32272223222B5CZW6QZ2V34 + status: Active + environment: test + type: balancePlatform.accountHolder.created + post-balancePlatform.accountHolder.updated-balancePlatform-accountHolder-updated: + summary: Account holder updated + description: Example webhook when an account holder was updated + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountHolder: + description: Sam Hopper + legalEntityId: LE43319330319C8AYX89L2V59 + reference: YOUR_REFERENCE-2412C + capabilities: + sendToTransferInstrument: + enabled: 'true' + requested: 'true' + allowed: 'false' + problems: + - entity: + id: LE43319330319C8AYX89L2V59 + type: LegalEntity + verificationErrors: + - code: '2_8037' + message: No bankStatement available to perform verification. + remediatingActions: + - code: '1_703' + message: Upload a bank statement + type: dataMissing + verificationStatus: invalid + id: AH32272223222B5CZW6QZ2V34 + status: Active + environment: test + type: balancePlatform.accountHolder.updated + post-balancePlatform.balanceAccount.created-balancePlatform-balanceAccount-created: + summary: Balance account created + description: Example webhook when a balance account was created + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + balanceAccount: + accountHolderId: AH3227C223222B5CZW72CCC73 + defaultCurrencyCode: EUR + id: BA3227C223222B5CZW72VCC75 + status: Active + environment: test + type: balancePlatform.balanceAccount.created + post-balancePlatform.balanceAccountSweep.created-balancePlatform-sweep-created: + summary: Sweep created + description: Example webhook when a sweep was created + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountId: BA3227C223222B5FTD99V8GRS + sweep: + id: SWPC4227C224555B5FTD2NT2JV4WN5 + schedule: + type: weekly + status: active + targetAmount: + currency: EUR + value: 0 + triggerAmount: + currency: EUR + value: 0 + type: push + counterparty: + balanceAccountId: BA32272223222B5FTD2KR6TJD + currency: EUR + environment: test + type: balancePlatform.balanceAccountSweep.created + post-balancePlatform.balanceAccountSweep.deleted-balancePlatform-sweep-deleted: + summary: Sweep deleted + description: Example webhook when a sweep was deleted + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountId: BA3227C223222B5FTD99V8GRS + sweep: + id: SWPC4227C224555B5FTD2NT2JV4WN5 + schedule: + type: weekly + status: active + targetAmount: + currency: EUR + value: 0 + triggerAmount: + currency: EUR + value: 0 + type: push + counterparty: + balanceAccountId: BA32272223222B5FTD2KR6TJD + currency: EUR + environment: test + type: balancePlatform.balanceAccountSweep.deleted + post-balancePlatform.balanceAccountSweep.updated-balancePlatform-sweep-updated: + summary: Sweep updated + description: Example webhook when a sweep was updated + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountId: BA3227C223222B5FTD99V8GRS + sweep: + id: SWPC4227C224555B5FTD2NT2JV4WN5 + schedule: + type: weekly + status: inactive + targetAmount: + currency: EUR + value: 0 + triggerAmount: + currency: EUR + value: 0 + type: push + counterparty: + balanceAccountId: BA32272223222B5FTD2KR6TJD + currency: EUR + environment: test + type: balancePlatform.balanceAccountSweep.created + post-balancePlatform.incomingTransfer.created-balancePlatform-incomingTransfer-created: + summary: Pending incoming transfer + description: Example webhook when there is an incoming transfer + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-05-03T15:20:14+02:00' + id: IZL6685QQEBKFOOY + accountHolder: + description: S.Hopper + id: AH32272223222B5BBXP2Z8ZWS + amount: + currency: EUR + value: 15000 + balanceAccount: + description: S.Hopper - Main account + id: BA32272223222B5BQ3KWP86MW + modification: + amount: + currency: EUR + value: 15000 + type: PendingIncomingTransfer + originalAmount: + currency: EUR + value: 15000 + paymentId: IZL6685QQEBKFON0 + status: PendingIncomingTransfer + environment: test + type: balancePlatform.incomingTransfer.created + post-balancePlatform.incomingTransfer.updated-balancePlatform-incomingTransfer-updated: + summary: Completed incoming transfer + description: Example webhook when an incoming transfer was completed and funds + were settled + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-05-03T15:20:14+02:00' + id: IZL6685QQEBKFOOY + accountHolder: + description: Liable Accountholder + id: AH32272223222B5BBXP2Z8ZWS + amount: + currency: EUR + value: 1500 + balanceAccount: + description: second-account + id: BA32272223222B5BQ3KWP86MW + modification: + amount: + currency: EUR + value: 1500 + type: IncomingTransfer + originalAmount: + currency: EUR + value: 1500 + paymentId: IZL6685QQEBKFON0 + status: IncomingTransfer + environment: test + type: balancePlatform.incomingTransfer.updated + post-balancePlatform.outgoingTransfer.created-balancePlatform-outgoingTransfer-created: + summary: Completed outgoing funds transfer + description: Example webhook when an outgoing funds transfer was completed + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-05-03T15:20:06+02:00' + id: 1W1UG35QQEBJLHZ8 + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -1500 + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + originalAmount: + currency: EUR + value: -1500 + modification: + amount: + currency: EUR + value: -1500 + type: OutgoingTransfer + paymentId: 1W1UG35QQEBJLHZ8 + status: OutgoingTransfer + valueDate: '2021-08-10T14:57:01+02:00' + environment: test + type: balancePlatform.outgoingTransfer.created + post-balancePlatform.outgoingTransfer.updated-balancePlatform-outgoingTransfer-updated: + summary: Outgoing funds transfer failed + description: Example webhook if an outgoing funds transfer failed + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-05-03T15:20:06+02:00' + id: 1W1UG35QQEBJLHZ8 + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -1500 + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + originalAmount: + currency: EUR + value: -1500 + modification: + amount: + currency: EUR + value: -1500 + type: OutgoingTransfer + paymentId: 1W1UG35QQEBJLHZ8 + status: TransferFailed + valueDate: '2021-08-10T14:57:01+02:00' + environment: test + type: balancePlatform.outgoingTransfer.updated + post-balancePlatform.payment.created-balancePlatform-payment-created-authorized: + summary: Payment authorized + description: Example webhook when a payment made with an Adyen-issued card was + authorized + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-04-01T12:56:38+02:00' + id: 1W1UG35QDNNE694X + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -2000 + authCode: '397402' + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + merchantData: + mcc: '7999' + merchantId: '526567789012346' + nameLocation: + city: Amsterdam + country: NLD + name: Store-ecom + rawData: Store-ecom Amsterdam NLD + modification: + amount: + currency: EUR + value: -2000 + type: Authorised + originalAmount: + currency: EUR + value: -2000 + paymentInstrument: + description: S.Hopper - card + id: PI32272223222B5CZW7BQ2V3T + processingType: ecommerce + relayedAuthorisationData: + metadata: + key1: value1 + key2: value2 + key3: value3 + status: Authorised + transactionRulesResult: + allRulesPassed: 'true' + validationResult: + - result: valid + type: BalanceCheck + - result: valid + type: AccountLookup + - result: valid + type: RelayedAuthorisation + - result: valid + type: Screening + - result: valid + type: TransactionRules + - result: valid + type: TransactionValidation + - result: valid + type: PaymentInstrumentExpirationCheck + - result: valid + type: MaxAuthAmount + - result: valid + type: CVC2 + environment: test + type: balancePlatform.payment.created + post-balancePlatform.payment.created-balancePlatform-payment-created-funds-transfer: + summary: Outgoing transfer requested + description: Example webhook when an outgoing transfer was requested + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-05-03T15:20:06+02:00' + id: 1W1UG35QQEBJLHZ8 + accountHolder: + description: Liable account holder + id: AH32272223222B59MTF7458DP + reference: Liable account holder + amount: + currency: EUR + value: -15000 + balanceAccount: + description: Liable balance account + id: BA3227C223222B5B9SCR82TMV + modification: + amount: + currency: EUR + value: -15000 + type: Authorised + originalAmount: + currency: EUR + value: -15000 + status: Authorised + environment: test + type: balancePlatform.payment.created + post-balancePlatform.payment.created-balancePlatform-payment-created-refund-requested: + summary: Refund requested + description: Example webhook when your user requests a refund + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-04-13T13:35:17+02:00' + id: IZMP115QIFI1EXZK + accountHolder: + description: S. Hopper + id: AH32272223222B59MTF7458DP + amount: + currency: EUR + value: 2000 + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + originalAmount: + currency: EUR + value: 2000 + modification: + amount: + currency: EUR + value: 2000 + type: Authorised + paymentInstrument: + description: a test card + id: PI3227C223222B5BKTS5RC3D3 + status: Authorised + environment: test + type: balancePlatform.payment.created + post-balancePlatform.payment.created-balancePlatform-payment-created-rejected: + summary: Payment declined + description: Example webhook when a payment made with an Adyen-issued card was + declined + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-03-15T10:30:43+01:00' + id: 2L470J5Q6VVUAWGT + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -1000 + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + merchantData: + mcc: '7999' + merchantId: '526567789012346' + nameLocation: + city: Amsterdam + country: NLD + name: Store-ecom + rawData: Store-ecom Amsterdam NLD + modification: + amount: + currency: EUR + value: -1000 + type: Refused + originalAmount: + currency: EUR + value: -1000 + paymentInstrument: + description: S.Hopper - card + id: PI32272223222B5CZW7BQ2V3T + processingType: ecommerce + status: Refused + transactionRulesResult: + allRulesPassed: 'false' + failedTransactionRules: + - reason: This event exceeds the maximum allowed number of transactions + (1) in interval monthly + transactionRule: + description: Allow 1 transactions per month + id: TR32272223222B5CSZ666CTKF + reference: myRule12345 + transactionRuleSource: + id: PI3227C223222B5BKTS5RC3D3 + type: PaymentInstrument + validationResult: + - result: valid + type: MaxAuthAmount + - result: valid + type: CVC2 + - result: valid + type: BalanceCheck + - result: valid + type: AccountLookup + - result: invalid + type: TransactionRules + - result: valid + type: TransactionValidation + - result: notApplicable + type: RelayedAuthorisation + - result: valid + type: PaymentInstrumentExpirationCheck + - result: valid + type: Screening + environment: test + type: balancePlatform.payment.created + post-balancePlatform.payment.updated-balancePlatform-payment-updated-expired: + summary: Payment authorization expired + description: Example webhook when a payment authorization expired + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-03-25T11:42:05+01:00' + id: 2L470J5QAVHDDZTW + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -2500 + authCode: '995167' + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + merchantData: + mcc: '7999' + merchantId: '526567789012346' + nameLocation: + city: Amsterdam + country: NLD + name: Store-ecom + rawData: Store-ecom Amsterdam NLD + modification: + amount: + currency: EUR + value: 2500 + type: Expired + originalAmount: + currency: EUR + value: -2500 + paymentInstrument: + description: S.Hopper - card + id: PI32272223222B5CZW7BQ2V3T + processingType: ecommerce + relayedAuthorisationData: + metadata: + key1: value1 + key2: value2 + key3: value3 + status: Expired + transactionRulesResult: + allRulesPassed: 'true' + validationResult: + - result: valid + type: AccountLookup + - result: valid + type: PaymentInstrumentExpirationCheck + - result: valid + type: Screening + - result: valid + type: TransactionValidation + - result: valid + type: RelayedAuthorisation + - result: valid + type: BalanceCheck + - result: valid + type: CVC2 + - result: valid + type: MaxAuthAmount + - result: valid + type: TransactionRules + environment: test + type: balancePlatform.payment.updated + post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-cancelled: + summary: Part of payment authorization cancelled + description: Example webhook when a part of the authorization was cancelled + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-03-25T11:42:05+01:00' + id: 2L470J5QAVHDDZTW + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -2500 + authCode: '995167' + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + merchantData: + mcc: '7999' + merchantId: '526567789012346' + nameLocation: + city: Amsterdam + country: NLD + name: Store-ecom + rawData: Store-ecom Amsterdam NLD + modification: + amount: + currency: EUR + value: 1200 + type: Expired + originalAmount: + currency: EUR + value: -2500 + paymentInstrument: + description: S.Hopper - card + id: PI32272223222B5CZW7BQ2V3T + processingType: ecommerce + relayedAuthorisationData: + metadata: + key1: value1 + key2: value2 + key3: value3 + status: Expired + transactionRulesResult: + allRulesPassed: 'true' + validationResult: + - result: valid + type: AccountLookup + - result: valid + type: PaymentInstrumentExpirationCheck + - result: valid + type: Screening + - result: valid + type: TransactionValidation + - result: valid + type: RelayedAuthorisation + - result: valid + type: BalanceCheck + - result: valid + type: CVC2 + - result: valid + type: MaxAuthAmount + - result: valid + type: TransactionRules + environment: test + type: balancePlatform.payment.updated + post-balancePlatform.payment.updated-balancePlatform-payment-updated-partially-expired: + summary: Part of payment authorization expired + description: Example webhook when a part of the authorization expired + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + creationDate: '2021-03-25T11:42:05+01:00' + id: 2L470J5QAVHDDZTW + accountHolder: + description: S.Hopper - Staff 123 + id: AH32272223222B5CZW6QZ2V34 + amount: + currency: EUR + value: -2500 + authCode: '995167' + balanceAccount: + description: My Balance Account + id: BA3227C223222B5B9SCR82TMV + merchantData: + mcc: '7999' + merchantId: '526567789012346' + nameLocation: + city: Amsterdam + country: NLD + name: Store-ecom + rawData: Store-ecom Amsterdam NLD + modification: + amount: + currency: EUR + value: 1200 + type: Expired + originalAmount: + currency: EUR + value: -2500 + paymentInstrument: + description: S.Hopper - card + id: PI32272223222B5CZW7BQ2V3T + processingType: ecommerce + relayedAuthorisationData: + metadata: + key1: value1 + key2: value2 + key3: value3 + status: Expired + transactionRulesResult: + allRulesPassed: 'true' + validationResult: + - result: valid + type: AccountLookup + - result: valid + type: PaymentInstrumentExpirationCheck + - result: valid + type: Screening + - result: valid + type: TransactionValidation + - result: valid + type: RelayedAuthorisation + - result: valid + type: BalanceCheck + - result: valid + type: CVC2 + - result: valid + type: MaxAuthAmount + - result: valid + type: TransactionRules + environment: test + type: balancePlatform.payment.updated + post-balancePlatform.paymentInstrument.created-balancePlatform-paymentInstrument-created: + summary: Card updated + description: Example webhook when a card was updated + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + paymentInstrument: + balanceAccountId: BA3227C223222B5CZW72VCC75 + description: S.Hopper - card + issuingCountryCode: GB + status: Suspended + type: card + card: + cardholderName: Sam Hopper + formFactor: virtual + bin: '555544' + expiration: + month: '04' + year: '2024' + lastFour: '2732' + id: PI32272223222B5CZW7BQ2V3T + environment: test + type: balancePlatform.paymentInstrument.updated + post-balancePlatform.paymentInstrument.updated-balancePlatform-paymentInstrument-updated: + summary: Card created + description: Example webhook when a card was created + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + paymentInstrument: + balanceAccountId: BA3227C223222B5CZW72VCC75 + description: S.Hopper - card + issuingCountryCode: GB + status: Active + type: card + card: + cardholderName: Sam Hopper + formFactor: virtual + bin: '555544' + expiration: + month: '04' + year: '2024' + lastFour: '2732' + id: PI32272223222B5CZW7BQ2V3T + environment: test + type: balancePlatform.paymentInstrument.created + post-balancePlatform.report.created-balancePlatform.report.created: + summary: Report created + description: Example webhook when a report was generated and is ready to be + downloaded + value: + data: + balancePlatform: YOUR_BALANCE_PLATFORM + accountHolder: + id: AH32272223222B59MTF7458DP + balanceAccount: + id: BA3227C223222B5B9SCR82TMV + creationDate: '2021-07-02T02:01:08+02:00' + fileName: balanceplatform_payments_accounting_report_2021_07_01.csv + reportType: balanceplatform_payments_accounting_report + downloadUrl: https://balanceplatform-test.adyen.com/balanceplatform/.../.../.../balanceplatform_payments_accounting_report_2021_07_01.csv + environment: test + type: balancePlatform.report.created diff --git a/yaml/BalancePlatformService-v1.yaml b/yaml/BalancePlatformService-v1.yaml index 9114acc..9368da0 100644 --- a/yaml/BalancePlatformService-v1.yaml +++ b/yaml/BalancePlatformService-v1.yaml @@ -4,26 +4,24 @@ servers: info: version: '1' x-publicVersion: true - title: Balance Platform Configuration API - description: "The Balance Platform Configuration API enables you to create a platform\ - \ where you can onboard users as account holders and create balance accounts,\ - \ cards, and bank accounts.\n\nFor information about use cases, refer to [Adyen\ - \ Issuing](https://docs.adyen.com/issuing).\n\n ## Authentication\nYour Adyen\ - \ contact will provide your API credential and an API key. To connect to the API,\ - \ add an `X-API-Key` header with the API key as the value, for example:\n\n ```\n\ - curl\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-H \"Content-Type:\ - \ application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\"\ - \ \\\n...\n```\n## Versioning\nThe Balance Platform Configuration API supports\ - \ [versioning](https://docs.adyen.com/development-resources/versioning) using\ - \ a version suffix in the endpoint URL. This suffix has the following format:\ + title: Configuration API + description: "The Configuration API enables you to create a platform where you can\ + \ onboard users as account holders and create balance accounts, cards, and bank\ + \ accounts.\n\n## Authentication\nYour Adyen contact will provide your API credential\ + \ and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\"\ + :\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Balance Platform Configuration\ + \ 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://balanceplatform-api-test.adyen.com/bcl/v1\n\ ```\n## Going live\nWhen going live, your Adyen contact will provide your API\ \ credential for the live environment. You can then use the API key or the username\ \ and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\ - \nFor more information, refer to our [Going live documentation](https://docs.adyen.com/issuing/integration-checklist#going-live)." - x-timestamp: '2022-03-22T19:59:08Z' + \n" + x-timestamp: '2022-08-01T08:48:30Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -59,7 +57,7 @@ paths: within the balance platform. - For more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).' + ' x-addedInVersion: '1' operationId: post-accountHolders x-groupName: Account holders @@ -80,8 +78,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-accountHolders-success-200' + createAccountHolder: + $ref: '#/components/examples/post-accountHolders-createAccountHolder-200' schema: $ref: '#/components/schemas/AccountHolder' description: OK - the request has succeeded. @@ -213,11 +211,7 @@ paths: note that: - * If a parameter is not provided in the request, the parameter is left unchanged. - - - * When updating any parameter in the `contactDetails` object, you must send - all other existing `contactDetails` parameters.' + * If a parameter is not provided in the request, the parameter is left unchanged.' x-addedInVersion: '1' operationId: patch-accountHolders-id x-groupName: Account holders @@ -245,8 +239,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/patch-accountHolders-id-success-200' + updateAccountHolderStatus: + $ref: '#/components/examples/patch-accountHolders-id-updateAccountHolderStatus-200' schema: $ref: '#/components/schemas/AccountHolder' description: OK - the request has succeeded. @@ -394,7 +388,7 @@ paths: - Balance accounts summary: Create a balance account description: "Creates a balance account that holds the funds of the associated\ - \ account holder. \n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts)." + \ account holder. \n\n" x-addedInVersion: '1' operationId: post-balanceAccounts x-groupName: Balance accounts @@ -415,8 +409,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-balanceAccounts-success-200' + createBalanceAccount: + $ref: '#/components/examples/post-balanceAccounts-createBalanceAccount-200' schema: $ref: '#/components/schemas/BalanceAccount' description: OK - the request has succeeded. @@ -888,8 +882,7 @@ paths: \ notified to provide additional documents. Adyen uses the documents to validate\ \ the identity of the individual or organization legal entity, or the legal\ \ entity's bank account details.\n\n You should only upload documents when\ - \ Adyen requests additional information for the legal entity. For more information,\ - \ refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification)." + \ Adyen requests additional information for the legal entity." x-addedInVersion: '1' operationId: post-documents x-groupName: Documents @@ -1123,8 +1116,7 @@ paths: \ platform. Adyen uses this information to perform verification checks as\ \ required by payment industry regulations. Adyen informs you of the verification\ \ results through webhooks or API responses. \n\nAfter the legal entity has\ - \ passed the verification checks, you can issue a card to them. For more information,\ - \ refer to [Onboard and verify account holders](https://docs.adyen.com/issuing/kyc-verification)." + \ passed the verification checks, you can issue a card to them." x-addedInVersion: '1' operationId: post-legalEntities x-groupName: Legal entities @@ -1135,6 +1127,13 @@ paths: requestBody: content: application/json: + examples: + post-createLegalEntityIndividual: + $ref: '#/components/examples/post-legalEntities-post-createLegalEntityIndividual' + post-createLegalEntityOrganization: + $ref: '#/components/examples/post-legalEntities-post-createLegalEntityOrganization' + post-createLegalEntitySoleProp: + $ref: '#/components/examples/post-legalEntities-post-createLegalEntitySoleProp' schema: $ref: '#/components/schemas/LegalEntityInfo' responses: @@ -1323,8 +1322,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-paymentInstrumentGroups-success-200' + createPaymentInstrumentGroups: + $ref: '#/components/examples/post-paymentInstrumentGroups-createPaymentInstrumentGroups-200' schema: $ref: '#/components/schemas/PaymentInstrumentGroup' description: OK - the request has succeeded. @@ -1529,8 +1528,10 @@ paths: tags: - Payment instruments summary: Create a payment instrument - description: "Creates a payment instrument to issue either a physical or a virtual\ - \ card to your user.\n\n For more information, refer to [Create cards](https://docs.adyen.com/issuing/create-cards)." + description: "Creates a payment instrument to issue a physical card, a virtual\ + \ card, or a business account to your user.\n\n For more information, refer\ + \ to [Issue cards](https://docs.adyen.com/issuing/create-cards) or [Issue\ + \ business accounts](https://docs.adyen.com/marketplaces-and-platforms/business-accounts)." x-addedInVersion: '1' operationId: post-paymentInstruments x-groupName: Payment instruments @@ -1542,6 +1543,8 @@ paths: content: application/json: examples: + createBusinessAccount: + $ref: '#/components/examples/post-paymentInstruments-createBusinessAccount' createPhysicalCard: $ref: '#/components/examples/post-paymentInstruments-createPhysicalCard' createVirtualCard: @@ -1553,8 +1556,12 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-paymentInstruments-success-200' + createBusinessAccount: + $ref: '#/components/examples/post-paymentInstruments-createBusinessAccount-200' + createPhysicalCard: + $ref: '#/components/examples/post-paymentInstruments-createPhysicalCard-200' + createVirtualCard: + $ref: '#/components/examples/post-paymentInstruments-createVirtualCard-200' schema: $ref: '#/components/schemas/PaymentInstrument' description: OK - the request has succeeded. @@ -1714,8 +1721,10 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/patch-paymentInstruments-id-success-200' + updatePaymentInstrumentBalanceAccount: + $ref: '#/components/examples/patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount-200' + updatePaymentInstrumentStatus: + $ref: '#/components/examples/patch-paymentInstruments-id-updatePaymentInstrumentStatus-200' schema: $ref: '#/components/schemas/PaymentInstrument' description: OK - the request has succeeded. @@ -1752,8 +1761,6 @@ paths: examples: generic: $ref: '#/components/examples/generic-422' - invalidData: - $ref: '#/components/examples/patch-paymentInstruments-id-invalidData-422' schema: $ref: '#/components/schemas/RestServiceError' description: Unprocessable Entity - a request validation error. @@ -1874,8 +1881,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-transactionRules-success-200' + createTransactionRule: + $ref: '#/components/examples/post-transactionRules-createTransactionRule-200' schema: $ref: '#/components/schemas/TransactionRule' description: OK - the request has succeeded. @@ -2109,8 +2116,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/patch-transactionRules-transactionRuleId-success-200' + updateTransactionRuleStatus: + $ref: '#/components/examples/patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200' schema: $ref: '#/components/schemas/TransactionRule' description: OK - the request has succeeded. @@ -2428,8 +2435,7 @@ components: against the legal entity of the account holder. - For more information on how to create a legal entity, refer to [Onboard - and verify account holders](https://docs.adyen.com/issuing/kyc-verification).' + ' type: string primaryBalanceAccount: description: The ID of the account holder's primary balance account. By @@ -2444,10 +2450,12 @@ components: status: description: "The status of the account holder.\n\nPossible values: \n\n\ \ * **Active**: The account holder is active. This is the default status\ - \ when creating an account holder. \n\n * **Suspended**: The account holder\ - \ is temporarily suspended. You can set the account back to active or\ - \ close it permanently. \n\n* **Closed**: The account holder is permanently\ - \ deactivated. This action cannot be undone." + \ when creating an account holder. \n\n * **Inactive**: The account holder\ + \ is temporarily inactive. You can set the account back to active or close\ + \ it permanently. \n\n * **Suspended**: The account holder is permanently\ + \ suspended by Adyen. This action cannot be undone. \n\n* **Closed**:\ + \ The account holder is permanently deactivated. This action cannot be\ + \ undone." enum: - Active - Closed @@ -2580,8 +2588,7 @@ components: against the legal entity of the account holder. - For more information on how to create a legal entity, refer to [Onboard - and verify account holders](https://docs.adyen.com/issuing/kyc-verification).' + ' type: string reference: description: Your reference for the account holder, maximum 150 characters. @@ -2596,17 +2603,22 @@ components: type: string required: - legalEntityId - Address2: + Address: properties: city: - description: The name of the city. + description: 'The name of the city. Maximum length: 3000 characters.' + maxLength: 3000 type: string country: - description: The two-character ISO-3166-1 alpha-2 country code. For example, + description: 'The two-character ISO-3166-1 alpha-2 country code. For example, **US**. + + > If you don''t know the country or are not collecting the country from + the shopper, provide `country` as `ZZ`.' type: string houseNumberOrName: - description: The number or name of the house. + description: 'The number or name of the house. Maximum length: 3000 characters.' + maxLength: 3000 type: string postalCode: description: A maximum of five digits for an address in the US, or a maximum @@ -2619,8 +2631,11 @@ components: > Required for the US and Canada.' type: string street: - description: "The name of the street. \n> The house number should not be\ - \ included in this field; it should be separately provided via `houseNumberOrName`." + description: 'The name of the street. Maximum length: 3000 characters. + + > The house number should not be included in this field; it should be + separately provided via `houseNumberOrName`.' + maxLength: 3000 type: string required: - street @@ -2628,6 +2643,36 @@ components: - city - postalCode - country + Address-3: + properties: + city: + description: 'The name of the city. Required if `stateOrProvince` is provided. + + + If you specify the city, you must also send `postalCode` and `street`.' + type: string + country: + description: The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + country code. + type: string + postalCode: + description: Postal code. Required if `stateOrProvince` and/or `city` is + provided. + type: string + stateOrProvince: + description: "The two-letter ISO 3166-2 state or province code. For example,\ + \ **CA** in the US. \n\nIf you specify the state or province, you must\ + \ also send `city`, `postalCode`, and `street`." + type: string + street: + description: The name of the street, and the house or building number. Required + if `stateOrProvince` and/or `city` is provided. + type: string + street2: + description: The apartment, unit, or suite number. + type: string + required: + - country Amount: properties: currency: @@ -2907,15 +2952,22 @@ components: type: string required: - id - BankAccountInfo: + BankAccount: + properties: + iban: + description: The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) + (IBAN). + type: string + required: + - iban + BankAccountInfo-2: properties: accountNumber: description: "The bank account number (without separators).\n\n When this\ - \ is provided, the `bankCode` and `branchCode` are also required." + \ is provided, the `branchCode` is also required." type: string accountType: - description: "The type of bank account. Only applies to bank accounts held\ - \ in the US. \n\nPossible values: **checking**, **savings**." + description: The type of bank account. type: string bankBicSwift: description: The bank's BIC or SWIFT code. @@ -2924,11 +2976,8 @@ components: description: The city where the bank is located. type: string bankCode: - description: 'The bank code of the banking institution with which the bank + description: The bank code of the banking institution with which the bank account is registered. - - - Required when you provide an `accountNumber`.' type: string bankName: description: The name of the banking institution where the bank account @@ -2955,8 +3004,6 @@ components: description: The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard. type: string - requestedVerificationCode: - type: string required: - countryCode - currencyCode @@ -3074,7 +3121,7 @@ components: relevant to your integration. Examples: **visadebit**, **mcprepaid**.' type: string cardholderName: - description: "The name of the card holder.\n Maximum length: 26 characters." + description: "The name of the cardholder.\n Maximum length: 26 characters." maxLength: 26 type: string configuration: @@ -3210,7 +3257,7 @@ components: relevant to your integration. Examples: **visadebit**, **mcprepaid**.' type: string cardholderName: - description: "The name of the card holder.\n Maximum length: 26 characters." + description: "The name of the cardholder.\n Maximum length: 26 characters." maxLength: 26 type: string configuration: @@ -3239,7 +3286,7 @@ components: properties: address: description: The address of the contact. - $ref: '#/components/schemas/Address2' + $ref: '#/components/schemas/Address' email: description: The e-mail address of the contact. type: string @@ -3251,13 +3298,13 @@ components: type: string name: description: The name of the contact. - $ref: '#/components/schemas/Name2' + $ref: '#/components/schemas/Name' personalData: description: Personal data of the contact. $ref: '#/components/schemas/PersonalData' phoneNumber: description: The phone number of the contact. - $ref: '#/components/schemas/PhoneNumber2' + $ref: '#/components/schemas/PhoneNumber' webAddress: description: The URL of the website of the contact. type: string @@ -3265,7 +3312,7 @@ components: properties: address: description: The address of the account holder. - $ref: '#/components/schemas/Address2' + $ref: '#/components/schemas/Address' email: description: The email address of the account holder. type: string @@ -3279,6 +3326,70 @@ components: - email - phone - address + CronSweepSchedule: + additionalProperties: false + properties: + cronExpression: + description: 'A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) + that is used to set the sweep schedule. The schedule uses the time zone + of the balance account. For example, **30 17 * * MON** schedules a sweep + every Monday at 17:30. + + + The expression must have five values separated by a single space in the + following order: + + + * Minute: **0-59** + + + * Hour: **0-23** + + + * Day of the month: **1-31** + + + * Month: **1-12** or **JAN-DEC** + + + * Day of the week: **0-7** in which 0 or 7 is Sunday, or **MON-SUN**. + + + The following non-standard characters are supported: *****, **L**, + **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for + more examples.' + type: string + type: + description: 'The schedule type. + + + Possible values: + + + * **cron**: push out funds based on a cron expression. + + + * **daily**: push out funds daily at 07:00 AM CET. + + + * **weekly**: push out funds every Monday at 07:00 AM CET. + + + * **monthly**: push out funds every first of the month at 07:00 AM CET. + + + * **balance**: pull in funds instantly if the balance is less than or + equal to the `triggerAmount`. You can only use this for sweeps of `type` + **pull** and when the source is a `merchantAccount` or `transferInstrument`.' + enum: + - daily + - weekly + - monthly + - balance + - cron + type: string + required: + - cronExpression Document: properties: attachment: @@ -3306,6 +3417,7 @@ components: type: string id: description: The unique identifier of the document. + readOnly: true type: string issuerCountry: deprecated: true @@ -3323,17 +3435,18 @@ components: type: string owner: description: Contains information about the resource that owns the document. - $ref: '#/components/schemas/Entity' + $ref: '#/components/schemas/OwnerEntity' type: description: "Type of document, used when providing an ID number or uploading\ - \ a document. The possible values depend on the legal entity `type`.\n\ - \n* When providing ID numbers for individuals, the values can be **driversLicense**,\ - \ **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading\ - \ documents:\n* For `type` **organization**, the values can be **proofOfAddress**,\ - \ **registrationDocument**, or **taxDocument**. \n\n* For `type` **individual**,\ - \ the values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**,\ - \ or **proofOfResidency**.\n\n* Use **bankStatement** to upload documents\ - \ for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id)." + \ a document. The possible values depend on the legal entity type.\n\n\ + When providing ID numbers:\n* For **individual**, the `type` values can\ + \ be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\ + \nWhen uploading documents:\n* For **organization**, the `type` values\ + \ can be **proofOfAddress**, **registrationDocument**, **taxDocument**,\ + \ or **proofOfIndustry**. \n\n* For **individual**, the `type` values\ + \ can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**,\ + \ **proofOfResidency**, or **proofOfIndustry**.\n\n* Use **bankStatement**\ + \ to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id)." enum: - bankStatement - driversLicense @@ -3345,27 +3458,14 @@ components: - proofOfResidency - registrationDocument - taxDocument + - proofOfIndustry type: string required: - type + - description - owner - Entity: - properties: - id: - description: Unique identifier of the resource that owns the document. Depending - on the entity `type`, this value can be the unique identifier of the [legal - entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) - or the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). - type: string - type: - description: 'Type of resource that owns the document. - - - Possible values: **legalEntity**, **bankAccount**.' - type: string - required: + - attachments - id - - type EntityReference: properties: id: @@ -3382,9 +3482,10 @@ components: GenericEntityInfo: properties: entityAssociations: - description: "List of individual legal entities associated with the organization\ - \ legal entity. \nFor example, ultimate business owners through ownership\ - \ or control, or signatories. " + description: 'List of legal entities associated with the current legal entity. + + For example, ultimate beneficial owners associated with an organization + through ownership or control, or as signatories.' items: $ref: '#/components/schemas/LegalEntityAssociation' type: array @@ -3413,21 +3514,22 @@ components: nationalIdExempt: description: Applies only to individuals in the US. Set to **true** if the individual does not have an SSN. To verify their identity, Adyen will - require them to [upload an ID document](https://docs.adyen.com/issuing/kyc-verification#upload-documents). + require them to upload an ID document. type: boolean number: description: The number in the document. type: string type: description: "Type of document, used when providing an ID number or uploading\ - \ a document. The possible values depend on the legal entity `type`.\n\ - \n* When providing ID numbers for individuals, the values can be **driversLicense**,\ - \ **identityCard**, **nationalIdNumber**, or **passport**.\n\nWhen uploading\ - \ documents:\n* For `type` **organization**, the values can be **proofOfAddress**,\ - \ **registrationDocument**, or **taxDocument**. \n\n* For `type` **individual**,\ - \ the values can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**,\ - \ or **proofOfResidency**.\n\n* Use **bankStatement** to upload documents\ - \ for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id)." + \ a document. The possible values depend on the legal entity type.\n\n\ + When providing ID numbers:\n* For **individual**, the `type` values can\ + \ be **driversLicense**, **identityCard**, **nationalIdNumber**, or **passport**.\n\ + \nWhen uploading documents:\n* For **organization**, the `type` values\ + \ can be **proofOfAddress**, **registrationDocument**, **taxDocument**,\ + \ or **proofOfIndustry**. \n\n* For **individual**, the `type` values\ + \ can be **identityCard**, **driversLicense**, **proofOfNationalIdNumber**,\ + \ **proofOfResidency**, or **proofOfIndustry**.\n\n* Use **bankStatement**\ + \ to upload documents for a [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id)." enum: - bankStatement - driversLicense @@ -3439,6 +3541,7 @@ components: - proofOfResidency - registrationDocument - taxDocument + - proofOfIndustry type: string required: - type @@ -3455,16 +3558,16 @@ components: $ref: '#/components/schemas/IdentificationData' name: description: The individual's name. - $ref: '#/components/schemas/Name' + $ref: '#/components/schemas/Name-3' nationality: description: The individual's nationality. type: string phone: description: The phone number of the legal entity. - $ref: '#/components/schemas/PhoneNumber' + $ref: '#/components/schemas/PhoneNumber-2' residentialAddress: description: The residential address of the individual. - $ref: '#/components/schemas/Address' + $ref: '#/components/schemas/Address-3' webData: deprecated: true x-deprecatedInVersion: '1' @@ -3507,19 +3610,22 @@ components: documents: deprecated: true x-deprecatedInVersion: '1' + x-deprecatedMessage: Use the `documentDetails` array instead. description: List of documents uploaded for the legal entity. items: $ref: '#/components/schemas/EntityReference' type: array entityAssociations: - description: "List of individual legal entities associated with the organization\ - \ legal entity. \nFor example, ultimate business owners through ownership\ - \ or control, or signatories. " + description: 'List of legal entities associated with the current legal entity. + + For example, ultimate beneficial owners associated with an organization + through ownership or control, or as signatories.' items: $ref: '#/components/schemas/LegalEntityAssociation' type: array id: description: The unique identifier of the legal entity. + readOnly: true type: string individual: description: Information about the individual. Required if `type` is **individual**. @@ -3527,32 +3633,61 @@ components: organization: description: Information about the organization. Required if `type` is **organization**. $ref: '#/components/schemas/Organization' + reference: + description: Your reference for the legal entity, maximum 150 characters. + maxLength: 150 + type: string transferInstruments: description: List of transfer instruments owned by the legal entity. items: $ref: '#/components/schemas/EntityReference' type: array type: - description: "Type of legal entity.\n\n Possible values: **individual**,\ - \ **organization**." + description: "The type of legal entity.\n\n Possible values: **individual**\ + \ or **organization**" enum: - individual - organization type: string + required: + - type + - id LegalEntityAssociation: properties: + associatorId: + description: The unique identifier of another legal entity with which the + `legalEntityId` is associated. When the `legalEntityId` is associated + to legal entities other than the current one, the response returns all + the associations. + readOnly: true + type: string + entityType: + description: "The legal entity type of associated legal entity. \n\nFor\ + \ example, **organization**, **soleProprietorship** or **individual**. " + readOnly: true + type: string jobTitle: description: The individual's job title if the `type` is **uboThroughControl** or **signatory**. type: string legalEntityId: - description: The unique identifier of the individual [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/legalEntities__resParam_id) - associated with the organization. + description: The unique identifier of the associated [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities__resParam_id). + type: string + name: + description: 'The name of the associated [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities__resParam_id). + + + - For **individual**, `name.firstName` and `name.lastName`. + + - For **organization**, `legalName`. + + - For **soleProprietorship**, `name`.' + readOnly: true type: string type: - description: "Defines how the individual is associated with the organization.\ - \ \n\nPossible values: **uboThroughOwnership**, **uboThroughControl**,\ - \ **signatory**. " + description: "Defines the relationship of the legal entity to the current\ + \ legal entity. \n\nFor example, **uboThroughOwnership**, **uboThroughControl**,\ + \ or **signatory**. " enum: - signatory - uboThroughControl @@ -3564,9 +3699,10 @@ components: LegalEntityInfo: properties: entityAssociations: - description: "List of individual legal entities associated with the organization\ - \ legal entity. \nFor example, ultimate business owners through ownership\ - \ or control, or signatories. " + description: 'List of legal entities associated with the current legal entity. + + For example, ultimate beneficial owners associated with an organization + through ownership or control, or as signatories.' items: $ref: '#/components/schemas/LegalEntityAssociation' type: array @@ -3576,9 +3712,13 @@ components: organization: description: Information about the organization. Required if `type` is **organization**. $ref: '#/components/schemas/Organization' + reference: + description: Your reference for the legal entity, maximum 150 characters. + maxLength: 150 + type: string type: - description: "Type of legal entity.\n\n Possible values: **individual**,\ - \ **organization**." + description: "The type of legal entity.\n\n Possible values: **individual**\ + \ or **organization**" enum: - individual - organization @@ -3586,6 +3726,17 @@ components: required: - type Name: + properties: + firstName: + description: The first name. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + Name-3: properties: firstName: description: The individual's first name. @@ -3599,25 +3750,14 @@ components: required: - firstName - lastName - Name2: - properties: - firstName: - description: The first name. - type: string - lastName: - description: The last name. - type: string - required: - - firstName - - lastName Organization: properties: description: description: Your description for the organization. type: string doingBusinessAs: - description: The organization's registered name, if different from the legal - name. + description: The organization's trading name, if different from the registered + legal name. type: string email: description: The email address of the legal entity. @@ -3627,15 +3767,15 @@ components: type: string phone: description: The phone number of the legal entity. - $ref: '#/components/schemas/PhoneNumber' + $ref: '#/components/schemas/PhoneNumber-2' principalPlaceOfBusiness: description: The address where the organization operates from. Provide this if the principal place of business is different from the `registeredAddress`. - $ref: '#/components/schemas/Address' + $ref: '#/components/schemas/Address-3' registeredAddress: description: The address of the organization registered at their registrar (such as the Chamber of Commerce). - $ref: '#/components/schemas/Address' + $ref: '#/components/schemas/Address-3' registrationNumber: description: The organization's registration number. type: string @@ -3643,6 +3783,13 @@ components: description: Information about the organization's publicly traded stock. Provide this object only if `type` is **listedPublicCompany**. $ref: '#/components/schemas/StockData' + taxExempt: + description: 'Indicates whether the legal entity is exempt from tax. When + **true**, the `taxIdAbsenceReason` must be provided. + + + ' + type: boolean taxId: description: The organization's tax identifier. type: string @@ -3657,7 +3804,7 @@ components: type: string type: description: "Type of organization. \n\nPossible values: **associationIncorporated**,\ - \ **governmentalOrganization**, **listedPublicCompany**,**nonProfit**,\ + \ **governmentalOrganization**, **listedPublicCompany**, **nonProfit**,\ \ **partnershipIncorporated**, **privateCompany**." enum: - associationIncorporated @@ -3676,6 +3823,23 @@ components: - legalName - type - registeredAddress + OwnerEntity: + properties: + id: + description: Unique identifier of the resource that owns the document. Depending + on the entity `type`, this value can be the unique identifier of the [legal + entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) + or the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). + type: string + type: + description: 'Type of resource that owns the document. + + + Possible values: **legalEntity**, **bankAccount**.' + type: string + required: + - id + - type PaginatedAccountHoldersResponse: properties: accountHolders: @@ -3733,8 +3897,13 @@ components: description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument. type: string + bankAccount: + description: Contains the business account details. Returned when you create + a payment instrument with `type` **bankAccount**. + $ref: '#/components/schemas/BankAccount' card: - description: Contains information about the card payment instrument. + description: Contains information about the card payment instrument. Returned + when you create a payment instrument with `type` **card**. $ref: '#/components/schemas/Card' description: description: Your description for the payment instrument, maximum 300 characters. @@ -3773,6 +3942,12 @@ components: - description: The payment instrument is permanently closed. This action cannot be undone. value: Closed + - description: The payment instrument is suspended. Either because it was + stolen or lost. + value: blocked + - description: The payment instrument is permanently closed. This action + cannot be undone. + value: discarded description: "The status of the payment instrument. If a status is not specified\ \ when creating a payment instrument, it is set to **Active** by default.\ \ However, there can be exceptions based on the `card.formFactor` and\ @@ -3794,13 +3969,16 @@ components: - Requested - Stolen - Suspended + - blocked + - discarded type: string type: description: 'Type of payment instrument. - Possible value: **card**. ' + Possible value: **card**, **bankAccount**. ' enum: + - bankAccount - card type: string required: @@ -3909,6 +4087,12 @@ components: - description: The payment instrument is permanently closed. This action cannot be undone. value: Closed + - description: The payment instrument is suspended. Either because it was + stolen or lost. + value: blocked + - description: The payment instrument is permanently closed. This action + cannot be undone. + value: discarded description: "The status of the payment instrument. If a status is not specified\ \ when creating a payment instrument, it is set to **Active** by default.\ \ However, there can be exceptions based on the `card.formFactor` and\ @@ -3930,13 +4114,16 @@ components: - Requested - Stolen - Suspended + - blocked + - discarded type: string type: description: 'Type of payment instrument. - Possible value: **card**. ' + Possible value: **card**, **bankAccount**. ' enum: + - bankAccount - card type: string required: @@ -3979,6 +4166,12 @@ components: - description: The payment instrument is permanently closed. This action cannot be undone. value: Closed + - description: The payment instrument is suspended. Either because it was + stolen or lost. + value: blocked + - description: The payment instrument is permanently closed. This action + cannot be undone. + value: discarded description: "The status of the payment instrument. If a status is not specified\ \ when creating a payment instrument, it is set to **Active** by default.\ \ However, there can be exceptions based on the `card.formFactor` and\ @@ -4000,6 +4193,8 @@ components: - Requested - Stolen - Suspended + - blocked + - discarded type: string statusComment: description: Comment for the status of the payment instrument. @@ -4039,22 +4234,6 @@ components: - number - type PhoneNumber: - properties: - countryCode: - description: The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) - country code. For example, **US** or **NL**. - type: string - number: - description: The phone number. - type: string - type: - description: "The type of phone number.\n Possible values: **mobile**, **landline**,\ - \ **sip**, **fax.** " - type: string - required: - - type - - number - PhoneNumber2: properties: phoneCountryCode: description: 'The two-character ISO-3166-1 alpha-2 country code of the phone @@ -4080,6 +4259,22 @@ components: required: - phoneCountryCode - phoneNumber + PhoneNumber-2: + properties: + countryCode: + description: The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + country code. For example, **US** or **NL**. + type: string + number: + description: The phone number. + type: string + type: + description: "The type of phone number.\n Possible values: **mobile**, **landline**,\ + \ **sip**, **fax.** " + type: string + required: + - type + - number RecurringDetail: properties: merchantAccount: @@ -4109,10 +4304,6 @@ components: errorCode: description: A code that identifies the problem type. type: string - errorType: - description: A URI that identifies the problem type, pointing to human-readable - documentation on this problem type. - type: string instance: description: A unique URI that identifies the specific occurrence of the problem. @@ -4136,8 +4327,12 @@ components: title: description: A short, human-readable summary of the problem type. type: string + type: + description: A URI that identifies the problem type, pointing to human-readable + documentation on this problem type. + type: string required: - - errorType + - type - errorCode - title - detail @@ -4176,10 +4371,14 @@ components: SweepConfiguration: properties: balanceAccountId: - description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) - that will be the source or destination of the balance sweep. This can - only be used for periodic sweep schedules such as `schedule.type` **daily** - or **monthly**. + description: "The unique identifier of the destination or source [balance\ + \ account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).\n\ + \n You can only use this for periodic sweep schedules such as `schedule.type`\ + \ **daily** or **monthly**." + type: string + id: + description: The unique identifier of the sweep. + readOnly: true type: string merchantAccount: description: The merchant account that will be the source of funds. You @@ -4190,7 +4389,25 @@ components: description: The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account. - $ref: '#/components/schemas/SweepSchedule' + oneOf: + - $ref: '#/components/schemas/CronSweepSchedule' + - $ref: '#/components/schemas/SweepSchedule' + status: + x-enum: + - description: The sweep is enabled and funds will be pulled in or pushed + out based on the defined configuration + value: active + - description: The sweep is disabled and cannot be triggered. + value: inactive + description: "The status of the sweep. If not provided, by default, this\ + \ is set to **active**.\n\nPossible values: \n\n * **active**: the sweep\ + \ is enabled and funds will be pulled in or pushed out based on the defined\ + \ configuration. \n\n * **inactive**: the sweep is disabled and cannot\ + \ be triggered. \n\n" + enum: + - active + - inactive + type: string sweepAmount: description: The amount that must be pushed out or pulled in. You can configure either `sweepAmount` or `targetAmount`, not both. @@ -4201,18 +4418,18 @@ components: both. $ref: '#/components/schemas/Amount' transferInstrumentId: - description: 'The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id) - that will be the source or destination of the balance sweep. This can - be used for periodic or instant sweep schedules. + description: 'The unique identifier of the destination or source [transfer + instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). - If specified in combination with a merchant account, it instructs a direct - debit from this instrument for the configured merchant account.' + You can also use this in combination with a `merchantAccount` and a `type` + **pull** to start a direct debit request from the source transfer instrument. + To use this feature, reach out to your Adyen contact.' type: string triggerAmount: - description: 'The threshold amount that triggers the sweep. If not specified, - the amount defaults to zero. The `triggerAmount` is evaluated according - to the specified `schedule.type`. + description: 'The threshold amount that triggers the sweep. If not provided, + by default, the amount is set to zero. The `triggerAmount` is evaluated + according to the specified `schedule.type`. * For `type` **pull**, if the balance is less than or equal to the `triggerAmount`, @@ -4224,18 +4441,21 @@ components: $ref: '#/components/schemas/Amount' type: default: push - description: "The direction of sweep.\n\nPossible values:\n\n * **push**:\ - \ _Push funds out_ to a destination balance account or transfer instrument.\n\ - \n * **pull**: _Pull funds in_ from a source merchant account, transfer\ - \ instrument, or balance account. " + description: "The direction of sweep, whether pushing out or pulling in\ + \ funds to the balance account. If not provided, by default, this is set\ + \ to **push**.\n\nPossible values:\n\n * **push**: _push out funds_ to\ + \ a destination balance account or transfer instrument.\n\n * **pull**:\ + \ _pull in funds_ from a source merchant account, transfer instrument,\ + \ or balance account." enum: - pull - push type: string required: + - id - schedule - - type SweepSchedule: + additionalProperties: false properties: type: description: 'The schedule type. @@ -4244,23 +4464,27 @@ components: Possible values: - * **daily**: Push out funds daily at 07:00 AM CET. + * **cron**: push out funds based on a cron expression. - * **weekly**: Push out funds every Monday at 07:00 AM CET. + * **daily**: push out funds daily at 07:00 AM CET. - * **monthly**: Push out funds every 1st of the month at 07:00 AM CET. + * **weekly**: push out funds every Monday at 07:00 AM CET. - * **balance**: Only for sweeps of `type` **pull** and with a `merchantAccount` - or `transferInstrument` source. Pull in funds instantly if the balance - is less than or equal to the `triggerAmount`.' + * **monthly**: push out funds every first of the month at 07:00 AM CET. + + + * **balance**: pull in funds instantly if the balance is less than or + equal to the `triggerAmount`. You can only use this for sweeps of `type` + **pull** and when the source is a `merchantAccount` or `transferInstrument`.' enum: - - balance - daily - - monthly - weekly + - monthly + - balance + - cron type: string TransactionRule: properties: @@ -4306,7 +4530,6 @@ components: - manual - ocr - server - - token - unknown type: string type: array @@ -4348,7 +4571,6 @@ components: - ecommerce - moto - pos - - purchaseWithCashback - recurring - token - unknown @@ -4449,7 +4671,6 @@ components: - manual - ocr - server - - token - unknown type: string type: array @@ -4488,7 +4709,6 @@ components: - ecommerce - moto - pos - - purchaseWithCashback - recurring - token - unknown @@ -4582,28 +4802,18 @@ components: bankAccount: description: Contains information about the legal entity's bank account. Required when `type` is **bankAccount**. - $ref: '#/components/schemas/BankAccountInfo' + $ref: '#/components/schemas/BankAccountInfo-2' + documents: + deprecated: true + x-deprecatedInVersion: '1' + description: List of documents uploaded for the transfer instrument. + items: + $ref: '#/components/schemas/EntityReference' + type: array id: description: The unique identifier of the transfer instrument. + readOnly: true type: string - recurringDetail: - description: Contains information about the legal entity's previously stored - payment details. Required when `type` is **recurringDetail**. - $ref: '#/components/schemas/RecurringDetail' - type: - description: 'The type of transfer instrument. - - - Possible values: **bankAccount**, **recurringDetail**.' - type: string - required: - - type - TransferInstrumentInfo: - properties: - bankAccount: - description: Contains information about the legal entity's bank account. - Required when `type` is **bankAccount**. - $ref: '#/components/schemas/BankAccountInfo' legalEntityId: description: The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) that owns the transfer instrument. @@ -4617,6 +4827,36 @@ components: Possible values: **bankAccount**, **recurringDetail**.' + enum: + - bankAccount + - recurringDetail + type: string + required: + - legalEntityId + - type + - id + TransferInstrumentInfo: + properties: + bankAccount: + description: Contains information about the legal entity's bank account. + Required when `type` is **bankAccount**. + $ref: '#/components/schemas/BankAccountInfo-2' + legalEntityId: + description: The unique identifier of the [legal entity](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/legalEntities__resParam_id) + that owns the transfer instrument. + type: string + recurringDetail: + description: Contains information about the legal entity's previously stored + payment details. Required when `type` is **recurringDetail**. + $ref: '#/components/schemas/RecurringDetail' + type: + description: 'The type of transfer instrument. + + + Possible values: **bankAccount**, **recurringDetail**.' + enum: + - bankAccount + - recurringDetail type: string required: - legalEntityId @@ -4674,14 +4914,17 @@ components: VoidResponse: {} WebData: properties: - appAddress: - deprecated: true - description: The URL of the application. - type: string webAddress: - deprecated: true description: The URL of the website. type: string + WebDataExemption: + properties: + reason: + description: 'The reason why the web data was not provided. Possible value: + **noOnlinePresence**.' + enum: + - noOnlinePresence + type: string securitySchemes: ApiKeyAuth: in: header @@ -4692,7 +4935,7 @@ components: type: http examples: delete-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + summary: Transaction rule deleted description: Example response for successfully deleting a transaction rule value: amount: @@ -4765,7 +5008,7 @@ components: requestId: 1W1UHY5O2CONU4R7 errorCode: '99_500' get-accountHolders-id-balanceAccounts-success-200: - summary: Response code - 200 OK + summary: List of balance accounts retrieved description: Example response when retrieving a list of balance accounts under an account holder value: @@ -4785,7 +5028,7 @@ components: hasNext: true hasPrevious: false get-accountHolders-id-success-200: - summary: Response code - 200 OK + summary: Account holder retrieved description: Example response when retrieving an account holder value: balancePlatform: YOUR_BALANCE_PLATFORM @@ -4804,7 +5047,7 @@ components: id: AH32272223222B5CM4MWJ892H status: Active get-balanceAccounts-id-paymentInstruments-success-200: - summary: Response code - 200 OK + summary: List of payment instruments retrieved description: Example response when retrieving a list of payment instruments under a balance account value: @@ -4842,8 +5085,8 @@ components: number: '************8331' id: PI32272223222B59PXDGQDLSF get-balanceAccounts-id-success-200: - summary: Response code - 200 OK - description: Example response when retrieving a balance account + summary: Balance account details retrieved + description: Example response for retrieving a balance account value: accountHolderId: AH32272223222B59K6RTQBFNZ defaultCurrencyCode: EUR @@ -4857,7 +5100,7 @@ components: - id: PI32272223222B5BRM4FZ7J9J status: Active get-balancePlatforms-id-accountHolders-success-200: - summary: Response code - 200 OK + summary: List of account holders retrieved description: Example response when retrieving a list of account holders under a balance platform value: @@ -4885,20 +5128,20 @@ components: hasNext: 'true' hasPrevious: 'false' get-balancePlatforms-id-success-200: - summary: Response code - 200 OK + summary: Balance platform retrieved description: Example response when retrieving a balance platform value: id: YOUR_BALANCE_PLATFORM status: Active get-paymentInstrumentGroups-id-success-200: - summary: Response code - 200 OK + summary: Payment instrument group retrieved description: Example response when retrieving a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc id: PG3227C223222B5CMD3FJFKGZ get-paymentInstrumentGroups-id-transactionRules-success-200: - summary: Response code - 200 OK + summary: Transaction rules for a payment instrument group retrieved description: Example response when retrieving a list of transaction rules applied to a payment instrument group value: @@ -4926,8 +5169,9 @@ components: type: velocity id: TR32272223222B5CMDGT89F4F get-paymentInstruments-id-success-200: - summary: Response code - 200 OK - description: Example response when retrieving a payment instrument + summary: Payment instruments retrieved + description: Example response for retrieving payment instruments associated + with a balance account value: balanceAccountId: BA32272223222B59CZ3T52DKZ description: S. Hopper - Main card @@ -4947,7 +5191,7 @@ components: number: '************3548' id: PI32272223222B5CMD3MQ3HXX get-paymentInstruments-id-transactionRules-success-200: - summary: Response code - 200 OK + summary: Transaction rules for a payment instrument retrieved description: Example response when retrieving a list of transaction rules applied to a payment instrument value: @@ -4975,7 +5219,7 @@ components: type: velocity id: TR32272223222B5CMDGT89F4F get-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + summary: Transaction rules retrieved description: Example response when retrieving a transaction rule value: transactionRule: @@ -4989,8 +5233,13 @@ components: status: active type: velocity id: TR32272223222B5CMD3V73HXG - patch-accountHolders-id-success-200: - summary: Response code - 200 OK + patch-accountHolders-id-updateAccountHolderStatus: + summary: Update the status of an account holder + description: Example request for updating the status of an account holder + value: + status: Suspended + patch-accountHolders-id-updateAccountHolderStatus-200: + summary: Account holder status updated description: Example response for successfully updating the status of an account holder value: @@ -5009,27 +5258,41 @@ components: description: S.Hopper - Staff 123 id: AH32272223222B5CM4MWJ892H status: Suspended - patch-accountHolders-id-updateAccountHolderStatus: - summary: Update the status of an account holder. - description: Example request for updating the status of an account holder + patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount: + summary: Update the balance account linked to a payment instrument + description: Example request for updating the balance account of a payment instrument + value: + balanceAccountId: BA32272223222B5CM82WL892M + patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount-200: + summary: Balance account updated + description: Example response for updating the balance account linked to a payment + instrument + value: + balanceAccountId: BA32272223222B5CM82WL892M + description: S. Hopper - Main card + issuingCountryCode: GB + status: Inactive + type: card + card: + brand: mc + brandVariant: mcdebit + cardholderName: Simon Hopper + formFactor: virtual + bin: '555544' + expiration: + month: '01' + year: '2024' + lastFour: '5785' + number: '************5785' + id: PI3227C223222B5CMD278FKGS + patch-paymentInstruments-id-updatePaymentInstrumentStatus: + summary: Update the status of a payment instrument + description: Example request for updating the status of a payment instrument value: status: Suspended - patch-paymentInstruments-id-invalidData-422: - summary: Response code - 422 Unprocessable Entity - description: Example response for a failed request to update the balance account - ID - value: - type: https://docs.adyen.com/errors/general/invalid-field-value - title: Invalid Payment Instrument information provided - status: 422 - detail: The balanceAccountId can only be changed when the status is Inactive - or Requested - requestId: 1W1UI15PLVGC9V8O - errorCode: '30_031' - patch-paymentInstruments-id-success-200: - summary: Response code - 200 OK - description: Example respones for successfully updating the status of a payment - instrument + patch-paymentInstruments-id-updatePaymentInstrumentStatus-200: + summary: Payment instrument status updated + description: Example response for updating the status of a payment instrument value: balanceAccountId: BA32272223222B59CZ3T52DKZ description: S. Hopper - Main card @@ -5048,17 +5311,13 @@ components: lastFour: '5785' number: '************5785' id: PI3227C223222B5CMD278FKGS - patch-paymentInstruments-id-updatePaymentInstrumentBalanceAccount: - summary: Update the balance account linked to a payment instrument. - description: Example request for updating the balance account of a payment instrument + patch-transactionRules-transactionRuleId-updateTransactionRuleStatus: + summary: Update the status of transaction rule + description: Example request for updating the status of a transaction rule value: - balanceAccountId: BA32272223222B5CM82WL892M - patch-paymentInstruments-id-updatePaymentInstrumentStatus: - summary: Update the status of a payment instrument. - value: - status: Suspended - patch-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + status: inactive + patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200: + summary: Transaction rule status updated description: Example response for successfully updating the status of a transaction rule value: @@ -5072,17 +5331,13 @@ components: status: inactive type: velocity id: TR3227C223222B5B85CDV4DRS - patch-transactionRules-transactionRuleId-updateTransactionRuleStatus: - summary: Update the status of transaction rule. - description: Example request for updating the status of a transaction rule - value: - status: inactive post-accountHolders-createAccountHolder: - summary: Create an account holder. + summary: Create an account holder description: Example request for creating an account holder value: balancePlatform: YOUR_BALANCE_PLATFORM description: S.Hopper - Staff 123 + legalEntityId: LE322KT223222D5FJ7THR293F contactDetails: email: s.hopper@example.com phone: @@ -5094,9 +5349,8 @@ components: street: Brannan Street houseNumberOrName: '274' postalCode: 1020CD - post-accountHolders-success-200: - summary: Response code - 200 OK - description: Example response for successfully creating an account holder + post-accountHolders-createAccountHolder-200: + summary: Account holder created value: balancePlatform: YOUR_BALANCE_PLATFORM contactDetails: @@ -5111,49 +5365,70 @@ components: number: '+315551231234' type: Mobile description: S.Hopper - Staff 123 + legalEntityId: LE322KT223222D5FJ7THR293F id: AH3227C223222B5CMD2SXFKGT status: Active post-balanceAccounts-createBalanceAccount: - summary: Create a balance account. + summary: Create a balance account description: Example request for creating a balance account value: accountHolderId: AH32272223222B59K6ZKBBFNQ description: S.Hopper - Main balance account - post-balanceAccounts-success-200: - summary: Response code - 200 OK - description: Example response for successfully creating a balance account + post-balanceAccounts-createBalanceAccount-200: + summary: Balance account created + description: Example response for creating a balance account value: accountHolderId: AH32272223222B59K6ZKBBFNQ defaultCurrencyCode: EUR - description: S.Hopper - Main balance account + reference: S.Hopper - Main balance account balances: - available: 0 balance: 0 currency: EUR reserved: 0 - id: BA3227C223222B5CMD38HFKGH + id: BA32272223222B59CZ3T52DKZ status: Active post-paymentInstrumentGroups-createPaymentInstrumentGroups: - summary: Create a payment instrument group. + summary: Create a payment instrument group description: Example request for creating a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc - post-paymentInstrumentGroups-success-200: - summary: Response code - 200 OK + post-paymentInstrumentGroups-createPaymentInstrumentGroups-200: + summary: Payment instrument group created description: Example response for successfully creating a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc id: PG3227C223222B5CMD3FJFKGZ + post-paymentInstruments-createBusinessAccount: + summary: Create a business account + description: Example request for creating a business account + value: + type: bankAccount + description: YOUR_DESCRIPTION + balanceAccountId: BA3227C223222B5CTBLR8BWJB + issuingCountryCode: NL + post-paymentInstruments-createBusinessAccount-200: + summary: Business account created + description: Example response for creating a business account + value: + balanceAccountId: BA3227C223222B5CTBLR8BWJB + issuingCountryCode: NL + status: Active + type: bankAccount + bankAccount: + iban: NL20ADYB2017000035 + id: PI322LJ223222B5DJS7CD9LWL post-paymentInstruments-createPhysicalCard: summary: Create a physical card description: Example request for creating a physical card value: type: card issuingCountryCode: NL - balanceAccountId: BALANCE_ACCOUNT_ID + balanceAccountId: BA32272223222B59CZ3T52DKZ + description: S.Hopper - Main card status: Inactive card: formFactor: physical @@ -5165,66 +5440,101 @@ components: city: Amsterdam country: NL stateOrProvince: NH - street: Simon Carmiggeltstraat - houseNumberOrName: 6-50 - postalCode: 1011DJ + street: Brannan Street + houseNumberOrName: '274' + postalCode: 1020CD name: firstName: Sam lastName: Hopper configuration: - configurationProfileId: YOUR_CONFIGURATION_PROFILE_ID - expiry: - month: 8 - year: 2024 - description: S.Hopper - Main card + configurationProfileId: CP123AB45678C91ABCD2ABCDE + post-paymentInstruments-createPhysicalCard-200: + summary: Physical card created + description: Example response for creating a physical card + value: + balanceAccountId: BA32272223222B59CZ3T52DKZ + description: S. Hopper - Main card + issuingCountryCode: NL + status: Inactive + type: card + card: + brand: mc + brandVariant: mcdebit + cardholderName: Sam Hopper + formFactor: physical + bin: '555544' + expiration: + month: 08 + year: '2024' + lastFour: '2765' + authentication: + password: '******' + phone: + number: '+123456789' + type: mobile + deliveryContact: + address: + city: Amsterdam + country: NL + stateOrProvince: NH + street: Brannan Street + houseNumberOrName: '274' + postalCode: 1020CD + name: + firstName: Sam + lastName: Hopper + configuration: + configurationProfileId: CP123AB45678C91ABCD2ABCDE + id: PI3227C223222B5BPCMFXD2XG post-paymentInstruments-createVirtualCard: - summary: Create a virtual card. + summary: Create a virtual card description: Example request for creating a virtual card value: type: card description: S. Hopper - Main card balanceAccountId: BA32272223222B59CZ3T52DKZ - issuingCountryCode: GB + issuingCountryCode: NL card: - cardholderName: Simon Hopper + cardholderName: Sam Hopper brand: mc brandVariant: mcdebit formFactor: virtual - post-paymentInstruments-success-200: - summary: Response code - 200 OK - description: Example response for successfully creating a virtual card + post-paymentInstruments-createVirtualCard-200: + summary: Virtual card created + description: Example response for creating a virtual card value: balanceAccountId: BA32272223222B59CZ3T52DKZ - description: S. Hopper - Main card - issuingCountryCode: GB + description: S.Hopper - Virtual card + issuingCountryCode: NL status: Active type: card card: brand: mc brandVariant: mcdebit - cardholderName: Simon Hopper + cardholderName: Sam Hopper formFactor: virtual bin: '555544' - cvc: '873' + cvc: '613' expiration: - month: '01' - year: '2024' - lastFour: '3548' - id: PI32272223222B5CMD3MQ3HXX + month: '03' + year: '2025' + lastFour: '9883' + number: '5555444411209883' + id: PI32272223222B5FR7Z5CFDW4 post-transactionRules-createTransactionRule: - summary: Create a transaction rule. + summary: Create a transaction rule value: - description: Allow 5 transactions per month + description: Allow transactions only from NL + reference: YOUR_REFERENCE_1738A + paymentInstrumentId: PI32272223222B5CTBLWC6W2X + type: allowList + countries: + - NL + status: active interval: - type: monthly - maxTransactions: 5 - paymentInstrumentId: PI3227C223222B59KGTXP884R - reference: myRule12345 - startDate: '2021-01-21T12:46:35.476629Z' - status: inactive - type: velocity - post-transactionRules-success-200: - summary: Response code - 200 OK + type: perTransaction + post-transactionRules-createTransactionRule-200: + summary: Transaction rule created description: Example response for successfully creating a transaction rule value: description: Allow 5 transactions per month diff --git a/yaml/BalancePlatformService-v2.yaml b/yaml/BalancePlatformService-v2.yaml index 988da25..c75754e 100644 --- a/yaml/BalancePlatformService-v2.yaml +++ b/yaml/BalancePlatformService-v2.yaml @@ -4,26 +4,24 @@ servers: info: version: '2' x-publicVersion: true - title: Balance Platform Configuration API - description: "The Balance Platform Configuration API enables you to create a platform\ - \ where you can onboard users as account holders and create balance accounts,\ - \ cards, and bank accounts.\n\nFor information about use cases, refer to [Adyen\ - \ Issuing](https://docs.adyen.com/issuing).\n\n ## Authentication\nYour Adyen\ - \ contact will provide your API credential and an API key. To connect to the API,\ - \ add an `X-API-Key` header with the API key as the value, for example:\n\n ```\n\ - curl\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-H \"Content-Type:\ - \ application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\"\ - \ \\\n...\n```\n## Versioning\nThe Balance Platform Configuration API supports\ + title: Configuration API + description: "The Configuration API enables you to create a platform where you can\ + \ onboard your users as account holders and create balance accounts, cards, and\ + \ business accounts.\n\n## Authentication\nYour Adyen contact will provide your\ + \ API credential and an API key. To connect to the API, 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-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\"\ + :\"YOUR_WS_PASSWORD\" \\\n...\n```\n## Versioning\nThe Configuration 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://balanceplatform-api-test.adyen.com/bcl/v1\n\ ```\n## Going live\nWhen going live, your Adyen contact will provide your API\ \ credential for the live environment. You can then use the API key or the username\ \ and password to send requests to `https://balanceplatform-api-live.adyen.com/bcl/v1`.\n\ - \nFor more information, refer to our [Going live documentation](https://docs.adyen.com/issuing/integration-checklist#going-live)." - x-timestamp: '2022-05-06T17:19:23Z' + \n" + x-timestamp: '2022-07-28T15:32:11Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team @@ -49,11 +47,10 @@ paths: tags: - Account holders summary: Create an account holder - description: 'Creates an account holder that represents your user''s entity - within the balance platform. + description: 'Creates an account holder linked to a [legal entity](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/legalEntities). - For more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts).' + ' x-addedInVersion: '1' operationId: post-accountHolders x-groupName: Account holders @@ -203,15 +200,8 @@ paths: tags: - Account holders summary: Update an account holder - description: 'Updates an account holder. When updating an account holder resource, - note that: - - - * If a parameter is not provided in the request, the parameter is left unchanged. - - - * When updating any parameter in the `contactDetails` object, you must send - all other existing `contactDetails` parameters.' + description: Updates an account holder. When updating an account holder resource, + if a parameter is not provided in the request, it is left unchanged. x-addedInVersion: '1' operationId: patch-accountHolders-id x-groupName: Account holders @@ -239,8 +229,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/patch-accountHolders-id-success-200' + updateAccountHolderStatus: + $ref: '#/components/examples/patch-accountHolders-id-updateAccountHolderStatus-200' schema: $ref: '#/components/schemas/AccountHolder' description: OK - the request has succeeded. @@ -294,10 +284,10 @@ paths: tags: - Account holders summary: Get all balance accounts of an account holder - description: "Returns a paginated list of balance accounts associated with an\ - \ account holder. To fetch multiple pages, use the query parameters. \n\n\ - For example, to limit the page to 5 balance accounts and skip the first 10,\ - \ use `/accountHolders/{id}/balanceAccounts?limit=5&offset=10`." + description: "Returns a paginated list of the balance accounts associated with\ + \ an account holder. To fetch multiple pages, use the query parameters. \n\ + \nFor example, to limit the page to 5 balance accounts and skip the first\ + \ 10, use `/accountHolders/{id}/balanceAccounts?limit=5&offset=10`." x-addedInVersion: '1' operationId: get-accountHolders-id-balanceAccounts x-groupName: Account holders @@ -388,7 +378,7 @@ paths: - Balance accounts summary: Create a balance account description: "Creates a balance account that holds the funds of the associated\ - \ account holder. \n\nFor more information, refer to [Create accounts](https://docs.adyen.com/issuing/create-accounts)." + \ account holder. \n\n" x-addedInVersion: '1' operationId: post-balanceAccounts x-groupName: Balance accounts @@ -1328,8 +1318,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-paymentInstrumentGroups-success-200' + createPaymentInstrumentGroups: + $ref: '#/components/examples/post-paymentInstrumentGroups-createPaymentInstrumentGroups-200' schema: $ref: '#/components/schemas/PaymentInstrumentGroup' description: OK - the request has succeeded. @@ -1383,7 +1373,7 @@ paths: tags: - Payment instrument groups summary: Get a payment instrument group - description: Returns a payment instrument group. + description: Returns the details of a payment instrument group. x-addedInVersion: '1' operationId: get-paymentInstrumentGroups-id x-groupName: Payment instrument groups @@ -1534,8 +1524,10 @@ paths: tags: - Payment instruments summary: Create a payment instrument - description: "Creates a payment instrument to issue either a physical or a virtual\ - \ card to your user.\n\n For more information, refer to [Create cards](https://docs.adyen.com/issuing/create-cards)." + description: "Creates a payment instrument to issue a physical card, a virtual\ + \ card, or a business account to your user.\n\n For more information, refer\ + \ to [Issue cards](https://docs.adyen.com/issuing/create-cards) or [Issue\ + \ business accounts](https://docs.adyen.com/marketplaces-and-platforms/business-accounts)." x-addedInVersion: '1' operationId: post-paymentInstruments x-groupName: Payment instruments @@ -1547,6 +1539,8 @@ paths: content: application/json: examples: + createBusinessAccount: + $ref: '#/components/examples/post-paymentInstruments-createBusinessAccount' createPhysicalCard: $ref: '#/components/examples/post-paymentInstruments-createPhysicalCard' createVirtualCard: @@ -1558,8 +1552,12 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/post-paymentInstruments-success-200' + createBusinessAccount: + $ref: '#/components/examples/post-paymentInstruments-createBusinessAccount-200' + createPhysicalCard: + $ref: '#/components/examples/post-paymentInstruments-createPhysicalCard-200' + createVirtualCard: + $ref: '#/components/examples/post-paymentInstruments-createVirtualCard-200' schema: $ref: '#/components/schemas/PaymentInstrument' description: OK - the request has succeeded. @@ -1613,7 +1611,7 @@ paths: tags: - Payment instruments summary: Get a payment instrument - description: Returns a payment instrument. + description: Returns the details of a payment instrument. x-addedInVersion: '1' operationId: get-paymentInstruments-id x-groupName: Payment instruments @@ -2020,7 +2018,7 @@ paths: tags: - Transaction rules summary: Get a transaction rule - description: Returns a transaction rule. + description: Returns the details of a transaction rule. x-addedInVersion: '1' operationId: get-transactionRules-transactionRuleId x-groupName: Transaction rules @@ -2126,8 +2124,8 @@ paths: content: application/json: examples: - success: - $ref: '#/components/examples/patch-transactionRules-transactionRuleId-success-200' + updateTransactionRuleStatus: + $ref: '#/components/examples/patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200' schema: $ref: '#/components/schemas/TransactionRule' description: OK - the request has succeeded. @@ -2210,8 +2208,7 @@ components: against the legal entity of the account holder. - For more information on how to create a legal entity, refer to [Onboard - and verify account holders](https://docs.adyen.com/issuing/kyc-verification).' + ' type: string primaryBalanceAccount: description: The ID of the account holder's primary balance account. By @@ -2226,10 +2223,12 @@ components: status: description: "The status of the account holder.\n\nPossible values: \n\n\ \ * **Active**: The account holder is active. This is the default status\ - \ when creating an account holder. \n\n * **Suspended**: The account holder\ - \ is temporarily suspended. You can set the account back to active or\ - \ close it permanently. \n\n* **Closed**: The account holder is permanently\ - \ deactivated. This action cannot be undone." + \ when creating an account holder. \n\n * **Inactive**: The account holder\ + \ is temporarily inactive. You can set the account back to active or close\ + \ it permanently. \n\n * **Suspended**: The account holder is permanently\ + \ suspended by Adyen. This action cannot be undone. \n\n* **Closed**:\ + \ The account holder is permanently deactivated. This action cannot be\ + \ undone." enum: - active - closed @@ -2362,8 +2361,7 @@ components: against the legal entity of the account holder. - For more information on how to create a legal entity, refer to [Onboard - and verify account holders](https://docs.adyen.com/issuing/kyc-verification).' + ' type: string reference: description: Your reference for the account holder, maximum 150 characters. @@ -2429,7 +2427,7 @@ components: - city - postalCode - country - Address2: + Address-2: properties: city: description: The name of the city. @@ -2692,6 +2690,14 @@ components: - sweeps - hasPrevious - hasNext + BankAccount: + properties: + iban: + description: The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) + (IBAN). + type: string + required: + - iban BrandVariantsRestriction: properties: operation: @@ -2820,7 +2826,7 @@ components: relevant to your integration. Examples: **visadebit**, **mcprepaid**.' type: string cardholderName: - description: "The name of the card holder.\n Maximum length: 26 characters." + description: "The name of the cardholder.\n Maximum length: 26 characters." maxLength: 26 type: string configuration: @@ -2957,7 +2963,7 @@ components: relevant to your integration. Examples: **visadebit**, **mcprepaid**.' type: string cardholderName: - description: "The name of the card holder.\n Maximum length: 26 characters." + description: "The name of the cardholder.\n Maximum length: 26 characters." maxLength: 26 type: string configuration: @@ -3014,11 +3020,75 @@ components: type: array required: - operation + CronSweepSchedule: + additionalProperties: false + properties: + cronExpression: + description: 'A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) + that is used to set the sweep schedule. The schedule uses the time zone + of the balance account. For example, **30 17 * * MON** schedules a sweep + every Monday at 17:30. + + + The expression must have five values separated by a single space in the + following order: + + + * Minute: **0-59** + + + * Hour: **0-23** + + + * Day of the month: **1-31** + + + * Month: **1-12** or **JAN-DEC** + + + * Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**. + + + The following non-standard characters are supported: *****, **L**, + **#**, **W** and **/**. See [crontab guru](https://crontab.guru/) for + more examples.' + type: string + type: + description: 'The schedule type. + + + Possible values: + + + * **cron**: push out funds based on a cron expression. + + + * **daily**: push out funds daily at 07:00 AM CET. + + + * **weekly**: push out funds every Monday at 07:00 AM CET. + + + * **monthly**: push out funds every first of the month at 07:00 AM CET. + + + * **balance**: pull in funds instantly if the balance is less than or + equal to the `triggerAmount`. You can only use this for sweeps of `type` + **pull** and when the source is a `merchantAccount` or `transferInstrument`.' + enum: + - daily + - weekly + - monthly + - balance + - cron + type: string + required: + - cronExpression DeliveryContact: properties: address: description: The address of the contact. - $ref: '#/components/schemas/Address2' + $ref: '#/components/schemas/Address-2' email: description: The email address of the contact. type: string @@ -3037,6 +3107,9 @@ components: webAddress: description: The URL of the contact's website. type: string + required: + - name + - address DifferentCurrenciesRestriction: properties: operation: @@ -3093,8 +3166,8 @@ components: description: 'List of point-of-sale entry modes. - Possible values: **manual**, **chip**, **magstripe**, **contactless**, - **cof**, **token**, **server**, **barcode**, **ocr**. + Possible values: **barcode**, **chip**, **cof**, **contactless**, **magstripe**, + **manual**, **ocr**, **server**. ' @@ -3108,7 +3181,6 @@ components: - manual - ocr - server - - token - unknown type: string type: array @@ -3285,8 +3357,13 @@ components: description: The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument. type: string + bankAccount: + description: Contains the business account details. Returned when you create + a payment instrument with `type` **bankAccount**. + $ref: '#/components/schemas/BankAccount' card: - description: Contains information about the card payment instrument. + description: Contains information about the card payment instrument. Returned + when you create a payment instrument with `type` **card**. $ref: '#/components/schemas/Card' description: description: Your description for the payment instrument, maximum 300 characters. @@ -3363,8 +3440,9 @@ components: description: 'Type of payment instrument. - Possible value: **card**. ' + Possible value: **card**, **bankAccount**. ' enum: + - bankAccount - card type: string required: @@ -3511,8 +3589,9 @@ components: description: 'Type of payment instrument. - Possible value: **card**. ' + Possible value: **card**, **bankAccount**. ' enum: + - bankAccount - card type: string required: @@ -3639,8 +3718,8 @@ components: description: 'List of processing types. - Possible values: **atmWithdraw**, **pos**, **ecommerce**, **moto**, **recurring**, - **balanceInquiry**. + Possible values: **atmWithdraw**, **balanceInquiry**, **ecommerce**, **moto**, + **pos**, **recurring**, **token**. ' @@ -3651,7 +3730,6 @@ components: - ecommerce - moto - pos - - purchaseWithCashback - recurring - token - unknown @@ -3676,10 +3754,6 @@ components: errorCode: description: A code that identifies the problem type. type: string - errorType: - description: A URI that identifies the problem type, pointing to human-readable - documentation on this problem type. - type: string instance: description: A unique URI that identifies the specific occurrence of the problem. @@ -3703,8 +3777,12 @@ components: title: description: A short, human-readable summary of the problem type. type: string + type: + description: A URI that identifies the problem type, pointing to human-readable + documentation on this problem type. + type: string required: - - errorType + - type - errorCode - title - detail @@ -3726,6 +3804,14 @@ components: The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances).' type: string + description: + description: 'The message that will be used in the sweep transfer''s description + body with a maximum length of 140 characters. + + + If the message is longer after replacing placeholders, the message will + be cut off at 140 characters.' + type: string id: description: The unique identifier of the sweep. readOnly: true @@ -3734,7 +3820,9 @@ components: description: The schedule when the `triggerAmount` is evaluated. If the balance meets the threshold, funds are pushed out of or pulled in to the balance account. - $ref: '#/components/schemas/SweepSchedule' + oneOf: + - $ref: '#/components/schemas/CronSweepSchedule' + - $ref: '#/components/schemas/SweepSchedule' status: x-enum: - description: The sweep is enabled and funds will be pulled in or pushed @@ -3813,6 +3901,7 @@ components: To use this feature, reach out to your Adyen contact.' type: string SweepSchedule: + additionalProperties: false properties: type: description: 'The schedule type. @@ -3821,6 +3910,9 @@ components: Possible values: + * **cron**: push out funds based on a cron expression. + + * **daily**: push out funds daily at 07:00 AM CET. @@ -3838,6 +3930,7 @@ components: - weekly - monthly - balance + - cron type: string TimeOfDay: properties: @@ -4341,6 +4434,7 @@ components: $ref: '#/components/schemas/RemediatingAction' type: array required: [] + void: {} securitySchemes: ApiKeyAuth: in: header @@ -4351,7 +4445,7 @@ components: type: http examples: delete-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + summary: Transaction rule deleted description: Example response for successfully deleting a transaction rule value: amount: @@ -4424,7 +4518,7 @@ components: requestId: 1W1UHY5O2CONU4R7 errorCode: '99_500' get-accountHolders-id-balanceAccounts-success-200: - summary: Response code - 200 OK + summary: List of balance accounts retrieved description: Example response when retrieving a list of balance accounts under an account holder value: @@ -4444,7 +4538,7 @@ components: hasNext: true hasPrevious: false get-accountHolders-id-success-200: - summary: Response code - 200 OK + summary: Account holder retrieved description: Example response when retrieving an account holder value: balancePlatform: YOUR_BALANCE_PLATFORM @@ -4502,7 +4596,7 @@ components: balanceAccountId: BA32272223222B5FTD2KR6TJD currency: EUR get-balanceAccounts-id-paymentInstruments-success-200: - summary: Response code - 200 OK + summary: List of payment instruments retrieved description: Example response when retrieving a list of payment instruments under a balance account value: @@ -4553,7 +4647,7 @@ components: id: BA3227C223222B5BLP6JQC3FD status: Active get-balancePlatforms-id-accountHolders-success-200: - summary: Response code - 200 OK + summary: List of account holders retrieved description: Example response when retrieving a list of account holders under a balance platform value: @@ -4581,20 +4675,20 @@ components: hasNext: 'true' hasPrevious: 'false' get-balancePlatforms-id-success-200: - summary: Response code - 200 OK + summary: Balance platform retrieved description: Example response when retrieving a balance platform value: id: YOUR_BALANCE_PLATFORM status: Active get-paymentInstrumentGroups-id-success-200: - summary: Response code - 200 OK + summary: Payment instrument group retrieved description: Example response when retrieving a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc id: PG3227C223222B5CMD3FJFKGZ get-paymentInstrumentGroups-id-transactionRules-success-200: - summary: Response code - 200 OK + summary: Transaction rules for a payment instrument group retrieved description: Example response when retrieving a list of transaction rules applied to a payment instrument group value: @@ -4644,7 +4738,7 @@ components: number: '************3548' id: PI32272223222B5CMD3MQ3HXX get-paymentInstruments-id-transactionRules-success-200: - summary: Response code - 200 OK + summary: Transaction rules for a payment instrument retrieved description: Example response when retrieving a list of transaction rules applied to a payment instrument value: @@ -4672,7 +4766,7 @@ components: type: velocity id: TR32272223222B5CMDGT89F4F get-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + summary: Transaction rules retrieved description: Example response when retrieving a transaction rule value: transactionRule: @@ -4686,8 +4780,13 @@ components: status: active type: velocity id: TR32272223222B5CMD3V73HXG - patch-accountHolders-id-success-200: - summary: Response code - 200 OK + patch-accountHolders-id-updateAccountHolderStatus: + summary: Update the status of an account holder + description: Example request for updating the status of an account holder + value: + status: Suspended + patch-accountHolders-id-updateAccountHolderStatus-200: + summary: Account holder status updated description: Example response for successfully updating the status of an account holder value: @@ -4706,11 +4805,6 @@ components: description: S.Hopper - Staff 123 id: AH32272223222B5CM4MWJ892H status: Suspended - patch-accountHolders-id-updateAccountHolderStatus: - summary: Update the status of an account holder. - description: Example request for updating the status of an account holder - value: - status: Suspended patch-balanceAccounts-balanceAccountId-sweeps-sweepId-updateSweep-status: summary: Update the status of a sweep description: Example request for updating a sweep @@ -4784,8 +4878,13 @@ components: lastFour: '5785' number: '************5785' id: PI3227C223222B5CMD278FKGS - patch-transactionRules-transactionRuleId-success-200: - summary: Response code - 200 OK + patch-transactionRules-transactionRuleId-updateTransactionRuleStatus: + summary: Update the status of transaction rule + description: Example request for updating the status of a transaction rule + value: + status: inactive + patch-transactionRules-transactionRuleId-updateTransactionRuleStatus-200: + summary: Transaction rule status updated description: Example response for successfully updating the status of a transaction rule value: @@ -4799,11 +4898,6 @@ components: status: inactive type: velocity id: TR3227C223222B5B85CDV4DRS - patch-transactionRules-transactionRuleId-updateTransactionRuleStatus: - summary: Update the status of transaction rule. - description: Example request for updating the status of a transaction rule - value: - status: inactive post-accountHolders-createAccountHolder: summary: Create an account holder description: Example request for creating an account holder @@ -4920,26 +5014,46 @@ components: id: BA32272223222B59CZ3T52DKZ status: active post-paymentInstrumentGroups-createPaymentInstrumentGroups: - summary: Create a payment instrument group. + summary: Create a payment instrument group description: Example request for creating a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc - post-paymentInstrumentGroups-success-200: - summary: Response code - 200 OK + post-paymentInstrumentGroups-createPaymentInstrumentGroups-200: + summary: Payment instrument group created description: Example response for successfully creating a payment instrument group value: balancePlatform: YOUR_BALANCE_PLATFORM txVariant: mc id: PG3227C223222B5CMD3FJFKGZ + post-paymentInstruments-createBusinessAccount: + summary: Create a business account + description: Example request for creating a business account + value: + type: bankAccount + description: YOUR_DESCRIPTION + balanceAccountId: BA3227C223222B5CTBLR8BWJB + issuingCountryCode: NL + post-paymentInstruments-createBusinessAccount-200: + summary: Business account created + description: Example response for creating a business account + value: + balanceAccountId: BA3227C223222B5CTBLR8BWJB + issuingCountryCode: NL + status: Active + type: bankAccount + bankAccount: + iban: NL20ADYB2017000035 + id: PI322LJ223222B5DJS7CD9LWL post-paymentInstruments-createPhysicalCard: summary: Create a physical card description: Example request for creating a physical card value: type: card issuingCountryCode: NL - balanceAccountId: BALANCE_ACCOUNT_ID + balanceAccountId: BA32272223222B59CZ3T52DKZ + description: S.Hopper - Main card status: Inactive card: formFactor: physical @@ -4951,52 +5065,87 @@ components: city: Amsterdam country: NL stateOrProvince: NH - street: Simon Carmiggeltstraat - houseNumberOrName: 6-50 - postalCode: 1011DJ + street: Brannan Street + houseNumberOrName: '274' + postalCode: 1020CD name: firstName: Sam lastName: Hopper configuration: - configurationProfileId: YOUR_CONFIGURATION_PROFILE_ID - expiry: - month: 8 - year: 2024 - description: S.Hopper - Main card + configurationProfileId: CP123AB45678C91ABCD2ABCDE + post-paymentInstruments-createPhysicalCard-200: + summary: Physical card created + description: Example response for creating a physical card + value: + balanceAccountId: BA32272223222B59CZ3T52DKZ + description: S. Hopper - Main card + issuingCountryCode: NL + status: Inactive + type: card + card: + brand: mc + brandVariant: mcdebit + cardholderName: Sam Hopper + formFactor: physical + bin: '555544' + expiration: + month: 08 + year: '2024' + lastFour: '2765' + authentication: + password: '******' + phone: + number: '+123456789' + type: mobile + deliveryContact: + address: + city: Amsterdam + country: NL + stateOrProvince: NH + street: Brannan Street + houseNumberOrName: '274' + postalCode: 1020CD + name: + firstName: Sam + lastName: Hopper + configuration: + configurationProfileId: CP123AB45678C91ABCD2ABCDE + id: PI3227C223222B5BPCMFXD2XG post-paymentInstruments-createVirtualCard: - summary: Create a virtual card. + summary: Create a virtual card description: Example request for creating a virtual card value: type: card description: S. Hopper - Main card balanceAccountId: BA32272223222B59CZ3T52DKZ - issuingCountryCode: GB + issuingCountryCode: NL card: - cardholderName: Simon Hopper + cardholderName: Sam Hopper brand: mc brandVariant: mcdebit formFactor: virtual - post-paymentInstruments-success-200: - summary: Response code - 200 OK - description: Example response for successfully creating a virtual card + post-paymentInstruments-createVirtualCard-200: + summary: Virtual card created + description: Example response for creating a virtual card value: balanceAccountId: BA32272223222B59CZ3T52DKZ - description: S. Hopper - Main card - issuingCountryCode: GB + description: S.Hopper - Virtual card + issuingCountryCode: NL status: Active type: card card: brand: mc brandVariant: mcdebit - cardholderName: Simon Hopper + cardholderName: Sam Hopper formFactor: virtual bin: '555544' - cvc: '873' + cvc: '613' expiration: - month: '01' - year: '2024' - lastFour: '3548' - id: PI32272223222B5CMD3MQ3HXX + month: '03' + year: '2025' + lastFour: '9883' + number: '5555444411209883' + id: PI32272223222B5FR7Z5CFDW4 post-transactionRules-createTransactionRuleAllowPos: summary: Allow only point-of-sale transactions description: Example request to allow only point-of-sale transactions