Schema Example Improvements
Fixed validation issues in Customer API schema examples to ensure they comply with all validation rules and can be used directly by developers.Key Changes:- Updated examples to use valid enum values instead of invalid string literals
- Corrected date formats to match schema requirements (YYYY-MM-DD)
- Added missing conditional fields required by validation rules to OpenAPI documentation examples
Documentation Accuracy Improvements
Corrected field requirement documentation in the Compliance Requirements guide to accurately reflect the API schema.Key Changes:- Fixed
expectedAverageDailyBalancefield documentation: Changed from Optional to Required - Fixed
cashOnHandUsdfield documentation: Changed from Optional to Required - Updated
hasUsBankAccountfield documentation: Clarified that it’s required for non-US businesses and optional for US businesses
Documentation Enhancements
New Customer Enums Reference Added a dedicated Customer Enums page to the API Reference. This page provides a centralized, comprehensive list of all allowed values for enum fields in the Customer schema, including:- Business Classification codes
- Industry types
- Stock Exchange lists
- Regulatory bodies
- Control Person roles and document types
- Streamlined Layout: Combined “API Field” and “Condition” columns for better readability.
- Direct Links: Enum fields now link directly to their specific allowed values in the new Customer Enums reference.
- Unified Formats: Standardized table structures across all sections (KYB Documents, Business Form, etc.).
Date Validation Enhancements
Added comprehensive date validation rules to ensure data integrity and compliance:Terms of Service Acceptance
termsOfServiceAcceptance.date(string): Now validates that the acceptance date cannot be in the future. Must be in YYYY-MM-DD format.termsOfServiceAcceptance.isAuthenticated(boolean): Now required to betrue. Users must be authenticated when accepting terms of service.
Business Information
businessInformation.registeredDate(string): Now validates that the registration date cannot be in the future. Must be in YYYY-MM-DD format.
Control Person Information
controlPersons[].birthDate(string): Now validates that the birth date cannot be in the future.controlPersons[].identityInfo.documentIssueDate(string): Now validates that the document issue date cannot be in the future.controlPersons[].identityInfo.documentExpiryDate(string, optional): Now validates that the document expiry date must be today or in the future (cannot be in the past).
- Terms of service acceptance dates reflect actual acceptance times
- Business registration dates are historically accurate
- Control person birth dates are valid
- Identity document dates are logically consistent (issue date ≤ today ≤ expiry date)
⚠️ Breaking Change
This update introduces breaking changes to the Create Customer API. ThebusinessInformation object now includes many new required fields. Existing integrations using the Direct Onboarding flow (onboardingFlow: "direct") will need to be updated to include these new fields.New Business Information Fields
Added comprehensive new fields to thebusinessInformation object in the Create Customer API to support enhanced KYB/KYC compliance requirements:Business Classification
hasDBA(boolean): Indicates if the business operates under a DBA namebusinessTradeName(string, optional): The registered DBA name (required whenhasDBAistrue)isStockExchangeListed(boolean): Whether the company is publicly listedstockExchange(enum, optional): Stock exchange name (required whenisStockExchangeListedistrue)stockExchangeOther(string, optional): Custom stock exchange name (required whenstockExchangeisOther)tickerSymbol(string, optional): Company ticker symbol (required whenisStockExchangeListedistrue)entityTaxedAs(enum, optional): Tax classification (S-Corporation, C-Corporation, Partnership)taxClassification(string, optional): Additional tax classification informationdescribeIndustry(string, optional): Industry description (required whenindustryisOther)
Business Activity & Risk Profile
entityType(enum, optional): Type of financial entity (Bank, Insurance Company, Securities Broker, etc.)accountPurpose(enum): Purpose of the account with ConduitaccountPurposeDescription(string, optional): Description of goods/services (required whenaccountPurposeisPayments for Goods or Services)productsOrServices(array): List of products or services the company offershighRiskIndustry(enum): High-risk industry exposurehighRiskIndustryDetails(string, optional): Details about high-risk industry activities (required whenhighRiskIndustryis notNone)hasNestedFlows(boolean): Whether the company operates on behalf of third partiesnestedFlowDescription(string, optional): Description of third-party flows (required whenhasNestedFlowsistrue)certifiesOwnTreasuryUse(boolean): Certification that accounts will only be used for own treasury managementkeyGeographicBusinessCountries(array): ISO 3166-1 alpha-3 country codes where 20%+ of business is conductedhasAdvisor(boolean, optional): Whether the company has a financial or business advisorregulatorName(enum, optional): Regulatory authority name (required whenisFinancialInstitutionistrue)regulatoryAuthorityOther(string, optional): Custom regulatory authority (required whenregulatorNameisOther)regulatoryLicenseNumber(string, optional): License number or registration ID (required whenisFinancialInstitutionistrue)hasIndependentAmlAuditReport(object, optional): Independent AML audit report informationanswer(boolean): Whether company has an independent AML audit reportexplanation(string, optional): Explanation if no audit report (required whenanswerisfalseandisFinancialInstitutionistrue)timeline(string, optional): Timeline for obtaining audit report (required whenanswerisfalseandisFinancialInstitutionistrue)
flowOfFundsDescription(string, optional): Description of fund flow (required whenisFinancialInstitutionisfalse). Note: Financial institutions must upload a Flow of Funds document instead (see Compliance Requirements guide).
Transaction Volume, Financials & Operations
anticipatedMonthlyVolume(number): Anticipated average monthly transaction volume in USDexpectedAverageDailyBalance(number, optional): Expected average daily balance in USDanticipatedTransactionsVolume(number): Estimated number of transactions per monthusesBlockChainWallets(boolean): Whether the company will use blockchain wallet addressesblockchainWallets(array, optional): List of blockchain wallet addresses (required whenusesBlockChainWalletsistrue)walletAddress(string): Blockchain wallet addressassociatedPlatformType(enum): Platform type (exchange, custodian, platform, self_custodied)associatedPlatformName(string): Name of the exchange, custodian, or platform
sourceOfFunds(string): Primary source of fundsisGeneratingRevenues(boolean): Whether the company is currently generating revenuerevenueCoverage(enum, optional): Revenue coverage percentage (required whenisGeneratingRevenuesistrue)revenueCoverageExplanation(string, optional): Explanation for low revenue coverage (required whenrevenueCoverageisLess than 25% of expenses)hasInstitutionalInvestors(boolean): Whether the company has institutional investors (VC or PE)runwayDurationMonths(number): Financial runway duration in monthsrunwayDurationExplanation(string, optional): Explanation for financial runway (required whenrunwayDurationMonthsis less than 12)cashOnHandUsd(number, optional): Current cash on hand in USD
Non-US Onboarding Requirements
hasUsBankAccount(boolean, optional): Whether business has an existing US bank account (required for non-US businesses)deniedUsBankAccount(object, optional): Information about denied US bank account (required for non-US businesses)answer(boolean): Whether business has been denied a US bank accountexplanation(string, optional): Explanation if denied (required whenansweristrue)
businessAuditHistory(object, optional): Business audit history information (required for non-US businesses)answer(boolean): Whether business has audit historyexplanation(string, optional): Details if yes (required whenansweristrue)
ownersAuditHistory(object, optional): Owners audit history information (required for non-US businesses)answer(boolean): Whether owners have audit historyexplanation(string, optional): Details if yes (required whenansweristrue)
pepInvolved(object, optional): PEP involvement information (required for non-US businesses)answer(boolean): Whether any owner/director/officer is a PEPexplanation(string, optional): Details if yes (required whenansweristrue)
Terms of Service Acceptance
termsOfServiceAcceptance(object): Terms of service acceptance informationdate(string): Date of acceptance in YYYY-MM-DD format. Cannot be in the future.ipAddress(string): IP address of the user accepting termsisAuthenticated(boolean): Whether the user was authenticated when accepting. Must betrue.
API Improvements
- Type Safety: Fixed type compatibility issues where
undefinedvalues are now properly normalized tonullfor explanation fields in nested objects (deniedUsBankAccount,businessAuditHistory,ownersAuditHistory,pepInvolved,hasIndependentAmlAuditReport) - Conditional Validation: Enhanced validation rules to enforce field requirements based on conditional logic (e.g.,
regulatorNamerequired whenisFinancialInstitutionistrue) - ISO3 Country Codes: All country-related fields now strictly validate ISO 3166-1 alpha-3 format (e.g.,
USA,GBR,FRA)
Documentation Updates
- Compliance Requirements Guide: Renamed and expanded the Compliance Requirements guide.
- Added mandatory KYB documents (
SHAREHOLDER_REGISTRY,TERMS_OF_SERVICE). - Detailed specific requirements for Non-US Onboarding.
- Explicitly listed
PROOF_OF_ADDRESSand Liveness Check requirements forAUTHORIZED_REPRESENTATIVEroles.
- Added mandatory KYB documents (
- Webhooks Reference: Overhauled the Webhooks section.
- Added comprehensive payload examples for all transaction types (Offramp, Onramp, Deposit, Withdrawal, Conversion).
- Audited and documented all possible status values for Transactions and Counterparties.
- Centralized webhook examples to the developer section for better maintainability.
API Schema Improvements
- Conditional Validation: Updated
BusinessInformationSchemato makeregulatorNamerequired only whenisFinancialInstitutionistrue. - ISO3 Country Validation: Enhanced validation for
nationalityandcountryfields to strictly enforce ISO 3166-1 alpha-3 codes. - Schema Refactoring: Improved internal schema definitions to fix issues with partial updates on refined schemas.
- Sandbox API Visibility: Exposed simulation endpoints (Deposit, Compliance, KYB) in the main API reference for easier integration testing.
Customer API documentation updates
Updated the customer API documentation to include more detailed descriptions and summaries for the endpoints.Added examples for the request and response bodies for the Create Customer API for Direct Onboarding and Hosted Onboarding options.Added examples for the request and response bodies for the Upload KYB/KYC Documents API.Fixed bug that caused the KYB and KYC supported document enums not to be showing in the API Reference available options section.Liveness Check links only returned for authorized representative role
Liveness Check links will only be returned for control persons with theauthorized_representative role.Added authorized_representative role to the API Reference control person role enum.Sandbox URL update
Switched the sandbox API base URL in our documentation and API reference tohttps://api.sandbox.conduit.financial.Existing sandbox endpoints on prior hostnames remain supported so current integrations continue to work.
