From fdc9c56bc3a2c2c26d934e12d09f2a01e72a2f4f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 31 Jul 2026 21:44:01 +0000 Subject: [PATCH 1/3] feat: add optional ownershipType to external account schema Adds an optional `ownershipType` field to `BaseExternalAccountInfo`, backed by a new `OwnershipType` enum with `FIRST_PARTY` and `THIRD_PARTY` values, so external accounts can indicate whether they belong to the customer themselves or to a third party. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GAqqDX3oY33G7LcHNv5T2J --- mintlify/openapi.yaml | 9 +++++++++ openapi.yaml | 9 +++++++++ .../external_accounts/BaseExternalAccountInfo.yaml | 2 ++ .../schemas/external_accounts/OwnershipType.yaml | 8 ++++++++ 4 files changed, 28 insertions(+) create mode 100644 openapi/components/schemas/external_accounts/OwnershipType.yaml diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index a6069a95d..2b1df09e6 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -16768,6 +16768,13 @@ components: - CNY_ACCOUNT description: Type of external account or wallet example: AED_ACCOUNT + OwnershipType: + type: string + enum: + - FIRST_PARTY + - THIRD_PARTY + description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) + example: FIRST_PARTY BaseExternalAccountInfo: type: object required: @@ -16775,6 +16782,8 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' + ownershipType: + $ref: '#/components/schemas/OwnershipType' AedBeneficiary: title: Individual Beneficiary type: object diff --git a/openapi.yaml b/openapi.yaml index a6069a95d..2b1df09e6 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -16768,6 +16768,13 @@ components: - CNY_ACCOUNT description: Type of external account or wallet example: AED_ACCOUNT + OwnershipType: + type: string + enum: + - FIRST_PARTY + - THIRD_PARTY + description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) + example: FIRST_PARTY BaseExternalAccountInfo: type: object required: @@ -16775,6 +16782,8 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' + ownershipType: + $ref: '#/components/schemas/OwnershipType' AedBeneficiary: title: Individual Beneficiary type: object diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index aacc9a92a..2911fbafb 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -4,3 +4,5 @@ required: properties: accountType: $ref: ./ExternalAccountType.yaml + ownershipType: + $ref: ./OwnershipType.yaml diff --git a/openapi/components/schemas/external_accounts/OwnershipType.yaml b/openapi/components/schemas/external_accounts/OwnershipType.yaml new file mode 100644 index 000000000..e2b6bce03 --- /dev/null +++ b/openapi/components/schemas/external_accounts/OwnershipType.yaml @@ -0,0 +1,8 @@ +type: string +enum: + - FIRST_PARTY + - THIRD_PARTY +description: >- + Whether the external account belongs to the customer themselves (first party) + or to someone else (third party) +example: FIRST_PARTY From 12d8142c735e3ec7219b900f5bc9ed89a5b50f77 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 31 Jul 2026 21:57:49 +0000 Subject: [PATCH 2/3] refactor: move ownershipType to ExternalAccount and ExternalAccountCreateRequest Relocate the optional ownershipType field from BaseExternalAccountInfo (inside the accountInfo oneOf) to the top-level ExternalAccount resource and ExternalAccountCreateRequest, alongside the other resource-level fields like customerId and currency. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GAqqDX3oY33G7LcHNv5T2J --- mintlify/openapi.yaml | 20 ++++++++++--------- openapi.yaml | 20 ++++++++++--------- .../BaseExternalAccountInfo.yaml | 2 -- .../external_accounts/ExternalAccount.yaml | 2 ++ .../ExternalAccountCreateRequest.yaml | 2 ++ 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 2b1df09e6..27abff724 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -16690,6 +16690,13 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + OwnershipType: + type: string + enum: + - FIRST_PARTY + - THIRD_PARTY + description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) + example: FIRST_PARTY BeneficiaryVerificationStatus: type: string enum: @@ -16768,13 +16775,6 @@ components: - CNY_ACCOUNT description: Type of external account or wallet example: AED_ACCOUNT - OwnershipType: - type: string - enum: - - FIRST_PARTY - - THIRD_PARTY - description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) - example: FIRST_PARTY BaseExternalAccountInfo: type: object required: @@ -16782,8 +16782,6 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' - ownershipType: - $ref: '#/components/schemas/OwnershipType' AedBeneficiary: title: Individual Beneficiary type: object @@ -19069,6 +19067,8 @@ components: type: string description: Optional platform-specific identifier for this account example: acc_123456789 + ownershipType: + $ref: '#/components/schemas/OwnershipType' currency: type: string description: The ISO 4217 currency code @@ -19981,6 +19981,8 @@ components: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: '#/components/schemas/OwnershipType' defaultUmaDepositAccount: type: boolean description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. diff --git a/openapi.yaml b/openapi.yaml index 2b1df09e6..27abff724 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -16690,6 +16690,13 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + OwnershipType: + type: string + enum: + - FIRST_PARTY + - THIRD_PARTY + description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) + example: FIRST_PARTY BeneficiaryVerificationStatus: type: string enum: @@ -16768,13 +16775,6 @@ components: - CNY_ACCOUNT description: Type of external account or wallet example: AED_ACCOUNT - OwnershipType: - type: string - enum: - - FIRST_PARTY - - THIRD_PARTY - description: Whether the external account belongs to the customer themselves (first party) or to someone else (third party) - example: FIRST_PARTY BaseExternalAccountInfo: type: object required: @@ -16782,8 +16782,6 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' - ownershipType: - $ref: '#/components/schemas/OwnershipType' AedBeneficiary: title: Individual Beneficiary type: object @@ -19069,6 +19067,8 @@ components: type: string description: Optional platform-specific identifier for this account example: acc_123456789 + ownershipType: + $ref: '#/components/schemas/OwnershipType' currency: type: string description: The ISO 4217 currency code @@ -19981,6 +19981,8 @@ components: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: '#/components/schemas/OwnershipType' defaultUmaDepositAccount: type: boolean description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index 2911fbafb..aacc9a92a 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -4,5 +4,3 @@ required: properties: accountType: $ref: ./ExternalAccountType.yaml - ownershipType: - $ref: ./OwnershipType.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccount.yaml b/openapi/components/schemas/external_accounts/ExternalAccount.yaml index 6d31d9a06..08449b833 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccount.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccount.yaml @@ -22,6 +22,8 @@ allOf: type: string description: Optional platform-specific identifier for this account example: acc_123456789 + ownershipType: + $ref: ./OwnershipType.yaml currency: type: string description: The ISO 4217 currency code diff --git a/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml b/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml index c8977658a..b97ace94c 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml @@ -18,6 +18,8 @@ allOf: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: ./OwnershipType.yaml defaultUmaDepositAccount: type: boolean description: >- From 05d7ec932e9d79d8c1ef51a8c3b8e2c0d44db455 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 31 Jul 2026 22:01:30 +0000 Subject: [PATCH 3/3] feat: add ownershipType to PlatformExternalAccountCreateRequest Make ownershipType settable on platform-owned external account creation as well, matching ExternalAccountCreateRequest. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GAqqDX3oY33G7LcHNv5T2J --- mintlify/openapi.yaml | 2 ++ openapi.yaml | 2 ++ .../external_accounts/PlatformExternalAccountCreateRequest.yaml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 27abff724..8bda073a6 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -20003,6 +20003,8 @@ components: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: '#/components/schemas/OwnershipType' accountInfo: $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' BeneficialOwnerListResponse: diff --git a/openapi.yaml b/openapi.yaml index 27abff724..8bda073a6 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -20003,6 +20003,8 @@ components: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: '#/components/schemas/OwnershipType' accountInfo: $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' BeneficialOwnerListResponse: diff --git a/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml b/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml index 27e26f51f..c0ab2b25d 100644 --- a/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml +++ b/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml @@ -11,5 +11,7 @@ properties: type: string description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 + ownershipType: + $ref: ./OwnershipType.yaml accountInfo: $ref: ./ExternalAccountCreateInfoOneOf.yaml