From cc81d29d12f6365f659ed5535cfb7914e4716af6 Mon Sep 17 00:00:00 2001 From: Victor Wu Date: Fri, 20 Mar 2026 16:54:23 -0700 Subject: [PATCH] [kyb] simplify business customer object --- mintlify/openapi.yaml | 209 ++++++++---------- openapi.yaml | 209 ++++++++---------- .../schemas/customers/BusinessCustomer.yaml | 4 + .../customers/BusinessCustomerFields.yaml | 4 - .../schemas/customers/BusinessInfo.yaml | 18 +- .../schemas/customers/BusinessInfoUpdate.yaml | 18 +- openapi/paths/customers/customers.yaml | 9 +- 7 files changed, 216 insertions(+), 255 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 9c478ede..a62ea101 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -297,11 +297,10 @@ paths: countriesOfOperation: - US businessType: FINTECH - purposeOfAccount: PAYMENTS - sourceOfFunds: OPERATING_REVENUE - expectedActivityVolumes: - monthlyTransactionCount: 100_TO_500 - monthlyTransactionVolume: 100K_TO_1M + purposeOfAccount: Payout to contractors + sourceOfFunds: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: 100_TO_500 + expectedMonthlyTransactionVolume: 100K_TO_1M expectedRecipientJurisdictions: - US - MX @@ -5207,54 +5206,6 @@ components: - ACCOMMODATION_AND_FOOD_SERVICES - OTHER_SERVICES - PUBLIC_ADMINISTRATION - PurposeOfAccount: - type: string - enum: - - PAYMENTS - - PAYROLL - - TREASURY - - TRADING - - LENDING - - COLLECTIONS - - OTHER - description: The intended purpose for using the Grid account - example: PAYMENTS - SourceOfFunds: - type: string - enum: - - OPERATING_REVENUE - - INVESTMENT_INCOME - - LOANS - - VENTURE_CAPITAL - - PERSONAL_SAVINGS - - DONATIONS - - OTHER - description: The primary source of funds for the business - example: OPERATING_REVENUE - ExpectedActivityVolumes: - type: object - description: Expected monthly transaction activity for the business - properties: - monthlyTransactionCount: - type: string - enum: - - LESS_THAN_10 - - 10_TO_100 - - 100_TO_500 - - 500_TO_1000 - - MORE_THAN_1000 - description: Expected number of transactions per month - example: 100_TO_500 - monthlyTransactionVolume: - type: string - enum: - - LESS_THAN_10K - - 10K_TO_100K - - 100K_TO_1M - - 1M_TO_10M - - MORE_THAN_10M - description: Expected total transaction volume per month in USD equivalent - example: 100K_TO_1M BusinessInfoUpdate: type: object description: Additional information for business entities @@ -5296,11 +5247,21 @@ components: businessType: $ref: '#/components/schemas/BusinessType' purposeOfAccount: - $ref: '#/components/schemas/PurposeOfAccount' + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: '#/components/schemas/SourceOfFunds' - expectedActivityVolumes: - $ref: '#/components/schemas/ExpectedActivityVolumes' + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: @@ -5308,60 +5269,6 @@ components: description: List of countries where the business expects to send payments (ISO 3166-1 alpha-2) example: - US - UltimateBeneficialOwner: - type: object - required: - - fullName - - individualType - properties: - fullName: - type: string - description: Individual's full name - example: John Michael Doe - emailAddress: - type: string - format: email - description: Email address of the individual - example: example@test.com - phoneNumber: - type: string - description: Phone number of the individual in E.164 format - example: '+5555555555' - pattern: ^\+[1-9]\d{1,14}$ - taxId: - type: string - description: Tax identification number of the individual. This could be a Social Security Number (SSN) for US individuals, Tax Identification Number (TIN) for non-US individuals, or a Passport Number. - example: EIN-987654321 - birthDate: - type: string - format: date - description: Date of birth in ISO 8601 format (YYYY-MM-DD) - example: '1990-01-15' - nationality: - type: string - description: Country code (ISO 3166-1 alpha-2) - example: US - address: - $ref: '#/components/schemas/Address' - individualType: - type: string - enum: - - DIRECTOR - - CONTROL_PERSON - - BUSINESS_POINT_OF_CONTACT - - TRUSTEE - - SETTLOR - - GENERAL_PARTNER - description: Type of individual in the corporation - example: DIRECTOR - percentageOwnership: - type: number - description: Percent of ownership when individual type is beneficial owner - example: 25 - title: - type: string - description: Title at company - example: CEO, COO, President BusinessCustomerFields: type: object required: @@ -5377,10 +5284,6 @@ components: $ref: '#/components/schemas/Address' businessInfo: $ref: '#/components/schemas/BusinessInfoUpdate' - beneficialOwners: - type: array - items: - $ref: '#/components/schemas/UltimateBeneficialOwner' BusinessInfo: type: object description: Additional information required for business entities @@ -5424,11 +5327,21 @@ components: businessType: $ref: '#/components/schemas/BusinessType' purposeOfAccount: - $ref: '#/components/schemas/PurposeOfAccount' + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: '#/components/schemas/SourceOfFunds' - expectedActivityVolumes: - $ref: '#/components/schemas/ExpectedActivityVolumes' + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: @@ -5436,6 +5349,60 @@ components: description: List of countries where the business expects to send payments (ISO 3166-1 alpha-2) example: - US + UltimateBeneficialOwner: + type: object + required: + - fullName + - individualType + properties: + fullName: + type: string + description: Individual's full name + example: John Michael Doe + emailAddress: + type: string + format: email + description: Email address of the individual + example: example@test.com + phoneNumber: + type: string + description: Phone number of the individual in E.164 format + example: '+5555555555' + pattern: ^\+[1-9]\d{1,14}$ + taxId: + type: string + description: Tax identification number of the individual. This could be a Social Security Number (SSN) for US individuals, Tax Identification Number (TIN) for non-US individuals, or a Passport Number. + example: EIN-987654321 + birthDate: + type: string + format: date + description: Date of birth in ISO 8601 format (YYYY-MM-DD) + example: '1990-01-15' + nationality: + type: string + description: Country code (ISO 3166-1 alpha-2) + example: US + address: + $ref: '#/components/schemas/Address' + individualType: + type: string + enum: + - DIRECTOR + - CONTROL_PERSON + - BUSINESS_POINT_OF_CONTACT + - TRUSTEE + - SETTLOR + - GENERAL_PARTNER + description: Type of individual in the corporation + example: DIRECTOR + percentageOwnership: + type: number + description: Percent of ownership when individual type is beneficial owner + example: 25 + title: + type: string + description: Title at company + example: CEO, COO, President BusinessCustomer: title: Business Customer allOf: @@ -5445,6 +5412,10 @@ components: properties: businessInfo: $ref: '#/components/schemas/BusinessInfo' + beneficialOwners: + type: array + items: + $ref: '#/components/schemas/UltimateBeneficialOwner' CustomerOneOf: oneOf: - $ref: '#/components/schemas/IndividualCustomer' diff --git a/openapi.yaml b/openapi.yaml index 9c478ede..a62ea101 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -297,11 +297,10 @@ paths: countriesOfOperation: - US businessType: FINTECH - purposeOfAccount: PAYMENTS - sourceOfFunds: OPERATING_REVENUE - expectedActivityVolumes: - monthlyTransactionCount: 100_TO_500 - monthlyTransactionVolume: 100K_TO_1M + purposeOfAccount: Payout to contractors + sourceOfFunds: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: 100_TO_500 + expectedMonthlyTransactionVolume: 100K_TO_1M expectedRecipientJurisdictions: - US - MX @@ -5207,54 +5206,6 @@ components: - ACCOMMODATION_AND_FOOD_SERVICES - OTHER_SERVICES - PUBLIC_ADMINISTRATION - PurposeOfAccount: - type: string - enum: - - PAYMENTS - - PAYROLL - - TREASURY - - TRADING - - LENDING - - COLLECTIONS - - OTHER - description: The intended purpose for using the Grid account - example: PAYMENTS - SourceOfFunds: - type: string - enum: - - OPERATING_REVENUE - - INVESTMENT_INCOME - - LOANS - - VENTURE_CAPITAL - - PERSONAL_SAVINGS - - DONATIONS - - OTHER - description: The primary source of funds for the business - example: OPERATING_REVENUE - ExpectedActivityVolumes: - type: object - description: Expected monthly transaction activity for the business - properties: - monthlyTransactionCount: - type: string - enum: - - LESS_THAN_10 - - 10_TO_100 - - 100_TO_500 - - 500_TO_1000 - - MORE_THAN_1000 - description: Expected number of transactions per month - example: 100_TO_500 - monthlyTransactionVolume: - type: string - enum: - - LESS_THAN_10K - - 10K_TO_100K - - 100K_TO_1M - - 1M_TO_10M - - MORE_THAN_10M - description: Expected total transaction volume per month in USD equivalent - example: 100K_TO_1M BusinessInfoUpdate: type: object description: Additional information for business entities @@ -5296,11 +5247,21 @@ components: businessType: $ref: '#/components/schemas/BusinessType' purposeOfAccount: - $ref: '#/components/schemas/PurposeOfAccount' + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: '#/components/schemas/SourceOfFunds' - expectedActivityVolumes: - $ref: '#/components/schemas/ExpectedActivityVolumes' + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: @@ -5308,60 +5269,6 @@ components: description: List of countries where the business expects to send payments (ISO 3166-1 alpha-2) example: - US - UltimateBeneficialOwner: - type: object - required: - - fullName - - individualType - properties: - fullName: - type: string - description: Individual's full name - example: John Michael Doe - emailAddress: - type: string - format: email - description: Email address of the individual - example: example@test.com - phoneNumber: - type: string - description: Phone number of the individual in E.164 format - example: '+5555555555' - pattern: ^\+[1-9]\d{1,14}$ - taxId: - type: string - description: Tax identification number of the individual. This could be a Social Security Number (SSN) for US individuals, Tax Identification Number (TIN) for non-US individuals, or a Passport Number. - example: EIN-987654321 - birthDate: - type: string - format: date - description: Date of birth in ISO 8601 format (YYYY-MM-DD) - example: '1990-01-15' - nationality: - type: string - description: Country code (ISO 3166-1 alpha-2) - example: US - address: - $ref: '#/components/schemas/Address' - individualType: - type: string - enum: - - DIRECTOR - - CONTROL_PERSON - - BUSINESS_POINT_OF_CONTACT - - TRUSTEE - - SETTLOR - - GENERAL_PARTNER - description: Type of individual in the corporation - example: DIRECTOR - percentageOwnership: - type: number - description: Percent of ownership when individual type is beneficial owner - example: 25 - title: - type: string - description: Title at company - example: CEO, COO, President BusinessCustomerFields: type: object required: @@ -5377,10 +5284,6 @@ components: $ref: '#/components/schemas/Address' businessInfo: $ref: '#/components/schemas/BusinessInfoUpdate' - beneficialOwners: - type: array - items: - $ref: '#/components/schemas/UltimateBeneficialOwner' BusinessInfo: type: object description: Additional information required for business entities @@ -5424,11 +5327,21 @@ components: businessType: $ref: '#/components/schemas/BusinessType' purposeOfAccount: - $ref: '#/components/schemas/PurposeOfAccount' + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: '#/components/schemas/SourceOfFunds' - expectedActivityVolumes: - $ref: '#/components/schemas/ExpectedActivityVolumes' + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: @@ -5436,6 +5349,60 @@ components: description: List of countries where the business expects to send payments (ISO 3166-1 alpha-2) example: - US + UltimateBeneficialOwner: + type: object + required: + - fullName + - individualType + properties: + fullName: + type: string + description: Individual's full name + example: John Michael Doe + emailAddress: + type: string + format: email + description: Email address of the individual + example: example@test.com + phoneNumber: + type: string + description: Phone number of the individual in E.164 format + example: '+5555555555' + pattern: ^\+[1-9]\d{1,14}$ + taxId: + type: string + description: Tax identification number of the individual. This could be a Social Security Number (SSN) for US individuals, Tax Identification Number (TIN) for non-US individuals, or a Passport Number. + example: EIN-987654321 + birthDate: + type: string + format: date + description: Date of birth in ISO 8601 format (YYYY-MM-DD) + example: '1990-01-15' + nationality: + type: string + description: Country code (ISO 3166-1 alpha-2) + example: US + address: + $ref: '#/components/schemas/Address' + individualType: + type: string + enum: + - DIRECTOR + - CONTROL_PERSON + - BUSINESS_POINT_OF_CONTACT + - TRUSTEE + - SETTLOR + - GENERAL_PARTNER + description: Type of individual in the corporation + example: DIRECTOR + percentageOwnership: + type: number + description: Percent of ownership when individual type is beneficial owner + example: 25 + title: + type: string + description: Title at company + example: CEO, COO, President BusinessCustomer: title: Business Customer allOf: @@ -5445,6 +5412,10 @@ components: properties: businessInfo: $ref: '#/components/schemas/BusinessInfo' + beneficialOwners: + type: array + items: + $ref: '#/components/schemas/UltimateBeneficialOwner' CustomerOneOf: oneOf: - $ref: '#/components/schemas/IndividualCustomer' diff --git a/openapi/components/schemas/customers/BusinessCustomer.yaml b/openapi/components/schemas/customers/BusinessCustomer.yaml index e436d383..5a198c1b 100644 --- a/openapi/components/schemas/customers/BusinessCustomer.yaml +++ b/openapi/components/schemas/customers/BusinessCustomer.yaml @@ -6,3 +6,7 @@ allOf: properties: businessInfo: $ref: ./BusinessInfo.yaml + beneficialOwners: + type: array + items: + $ref: ./UltimateBeneficialOwner.yaml diff --git a/openapi/components/schemas/customers/BusinessCustomerFields.yaml b/openapi/components/schemas/customers/BusinessCustomerFields.yaml index 65f3c2fa..d0ffaf4a 100644 --- a/openapi/components/schemas/customers/BusinessCustomerFields.yaml +++ b/openapi/components/schemas/customers/BusinessCustomerFields.yaml @@ -12,7 +12,3 @@ properties: $ref: ../common/Address.yaml businessInfo: $ref: ./BusinessInfoUpdate.yaml - beneficialOwners: - type: array - items: - $ref: ./UltimateBeneficialOwner.yaml diff --git a/openapi/components/schemas/customers/BusinessInfo.yaml b/openapi/components/schemas/customers/BusinessInfo.yaml index 7a8ef2cf..f4e3fcb3 100644 --- a/openapi/components/schemas/customers/BusinessInfo.yaml +++ b/openapi/components/schemas/customers/BusinessInfo.yaml @@ -40,11 +40,21 @@ properties: businessType: $ref: ./BusinessType.yaml purposeOfAccount: - $ref: ./PurposeOfAccount.yaml + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: ./SourceOfFunds.yaml - expectedActivityVolumes: - $ref: ./ExpectedActivityVolumes.yaml + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: diff --git a/openapi/components/schemas/customers/BusinessInfoUpdate.yaml b/openapi/components/schemas/customers/BusinessInfoUpdate.yaml index 1156e982..c488f875 100644 --- a/openapi/components/schemas/customers/BusinessInfoUpdate.yaml +++ b/openapi/components/schemas/customers/BusinessInfoUpdate.yaml @@ -38,11 +38,21 @@ properties: businessType: $ref: ./BusinessType.yaml purposeOfAccount: - $ref: ./PurposeOfAccount.yaml + type: string + description: The intended purpose for using the Grid account + example: Payout to contractors sourceOfFunds: - $ref: ./SourceOfFunds.yaml - expectedActivityVolumes: - $ref: ./ExpectedActivityVolumes.yaml + type: string + description: The primary source of funds for the business + example: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: + type: string + description: Expected number of transactions per month + example: 100_TO_500 + expectedMonthlyTransactionVolume: + type: string + description: Expected total transaction volume per month in USD equivalent + example: 100K_TO_1M expectedRecipientJurisdictions: type: array items: diff --git a/openapi/paths/customers/customers.yaml b/openapi/paths/customers/customers.yaml index fc6f1ec6..d1726db8 100644 --- a/openapi/paths/customers/customers.yaml +++ b/openapi/paths/customers/customers.yaml @@ -39,11 +39,10 @@ post: countriesOfOperation: - US businessType: FINTECH - purposeOfAccount: PAYMENTS - sourceOfFunds: OPERATING_REVENUE - expectedActivityVolumes: - monthlyTransactionCount: 100_TO_500 - monthlyTransactionVolume: 100K_TO_1M + purposeOfAccount: Payout to contractors + sourceOfFunds: Funds derived from customer payments for software services + expectedMonthlyTransactionCount: 100_TO_500 + expectedMonthlyTransactionVolume: 100K_TO_1M expectedRecipientJurisdictions: - US - MX