From ef766e07f5509cb3f385bbf8737caf4b05def116 Mon Sep 17 00:00:00 2001 From: Peng Ying Date: Wed, 18 Feb 2026 16:39:40 -0800 Subject: [PATCH] feat: adding external account validation schema --- mintlify/openapi.yaml | 33 +++++++++++++++++++ openapi.yaml | 33 +++++++++++++++++++ .../BeneficiaryVerificationStatus.yaml | 19 +++++++++++ .../BeneficiaryVerifiedData.yaml | 6 ++++ .../external_accounts/ExternalAccount.yaml | 6 ++++ 5 files changed, 97 insertions(+) create mode 100644 openapi/components/schemas/external_accounts/BeneficiaryVerificationStatus.yaml create mode 100644 openapi/components/schemas/external_accounts/BeneficiaryVerifiedData.yaml diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 72e6af96..60017431 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -5242,6 +5242,33 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe UsAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5725,6 +5752,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: diff --git a/openapi.yaml b/openapi.yaml index 72e6af96..60017431 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5242,6 +5242,33 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe UsAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5725,6 +5752,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: diff --git a/openapi/components/schemas/external_accounts/BeneficiaryVerificationStatus.yaml b/openapi/components/schemas/external_accounts/BeneficiaryVerificationStatus.yaml new file mode 100644 index 00000000..ab4442b3 --- /dev/null +++ b/openapi/components/schemas/external_accounts/BeneficiaryVerificationStatus.yaml @@ -0,0 +1,19 @@ +type: string +enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING +description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | diff --git a/openapi/components/schemas/external_accounts/BeneficiaryVerifiedData.yaml b/openapi/components/schemas/external_accounts/BeneficiaryVerifiedData.yaml new file mode 100644 index 00000000..688d729f --- /dev/null +++ b/openapi/components/schemas/external_accounts/BeneficiaryVerifiedData.yaml @@ -0,0 +1,6 @@ +type: object +properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe diff --git a/openapi/components/schemas/external_accounts/ExternalAccount.yaml b/openapi/components/schemas/external_accounts/ExternalAccount.yaml index 757d4f77..6d31d9a0 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccount.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccount.yaml @@ -34,5 +34,11 @@ allOf: False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: ./BeneficiaryVerificationStatus.yaml + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: ./BeneficiaryVerifiedData.yaml + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: ./ExternalAccountInfoOneOf.yaml