Bakkt Accounts API

Accounts are used to represent users that use the platform's services.

OpenAPI Specification

bakkt-accounts-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bakkt Crypto Solutions Accounts API
  version: '2.0'
  description: The Bakkt Crypto Solutions API is a REST-based API that provides a platform for clients, so their investors can purchase, hold, sell, and transfer digital assets. Clients must have authorization to use the APIs, secure endpoints, and facilities to ensure safe, fast execution and tracking of orders. Users must specify all date and time units using epoch time in UTC. The URL path includes a version number to indicate major versions which retain backward compatibility to other URLs with the same version prefix. This document is reconstructed by the API Evangelist enrichment pipeline from the per-endpoint OpenAPI fragments Bakkt publishes on its ReadMe developer hub (bakkt.readme.io); it merges the Crypto Solutions (/apex-crypto/api/v2) and Fiat/Partner (/partner/v1) endpoint families.
  termsOfService: https://bakkt.com/user-agreement
  contact:
    name: Bakkt User Account Agreement
    url: https://bakkt.com/user-agreement
servers:
- url: https://api.bakkt.com
  description: Bakkt API gateway (dedicated per-client, IP-whitelisted; base paths /apex-crypto/api/v2 and /partner/v1)
tags:
- description: Accounts are used to represent users that use the platform's services.
  name: Accounts
paths:
  /apex-crypto/api/v2/accounts:
    post:
      description: Use this endpoint to create new investor accounts. The client must provide an account ID that uniquely identifies the investor from other investors on the client's platform.
      operationId: createAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountRequest'
        description: The account request must provide the required, basic jurisdiction and biographical information about the investor to enable the investor to participate in crypto asset transactions. Bakkt validates the provided information.
        required: true
      responses:
        '200':
          description: This response returns the newly created account for this investor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '422':
          description: This response returns a validation failure with additional details about specific sections of the request that failed validation in both machine-readable and developer-friendly messages tied to fields by name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrors'
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: Create a New User Account
      tags:
      - Accounts
  /apex-crypto/api/v2/accounts/{clientAccountId}:
    get:
      description: This endpoint retrieves an investor account provided the client's unique account ID.
      operationId: getAccount
      parameters:
      - description: A unique account ID originally provided by the client system when the account was created
        in: path
        name: clientAccountId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: This response returns the latest account information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: Retrieves Accounts by Account ID
      tags:
      - Accounts
  /apex-crypto/api/v2/accounts/{clientAccountId}/status:
    get:
      description: This endpoint retrieves an investor account trading status provided the client's unique account ID.
      operationId: getAccountStatus
      parameters:
      - description: A unique account ID originally provided by the client system when the account was created
        in: path
        name: clientAccountId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: This response returns the latest account status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountOpeningStatus'
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: Retrieves account status by Account ID
      tags:
      - Accounts
  /apex-crypto/api/v2/accounts/kycTransferRecovery/{clientAccountId}:
    post:
      description: Use this endpoing to recover KYC's that are transferred
      operationId: kycTransferRecovery
      parameters:
      - description: A unique account ID originally provided by the client system when the account was created
        in: path
        name: clientAccountId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KycTransferRecoveryRequest'
        description: The account transfer recovery request must provide the shared token
        required: true
      responses:
        '200':
          description: If transfer recovery request triggered successfully, this call returns the text "success."
          content:
            application/json:
              schema:
                type: string
        '422':
          description: This response returns a validation failure with additional details about the failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrors'
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: KYC transfer recovery request
      tags:
      - Accounts
  /apex-crypto/api/v2/accounts/triggerKYBScreening/{clientAccountId}:
    post:
      description: Use this endpoint to trigger a KYB screening on input account.
      operationId: triggerKYBScreening
      parameters:
      - description: A unique account ID originally provided by the client system when the account was created
        in: path
        name: clientAccountId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: If KYB has been triggered successfully, this call returns the text "success."
          content:
            application/json:
              schema:
                type: string
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: Trigger KYB Screening on Account
      tags:
      - Accounts
  /apex-crypto/api/v2/accounts/settlementMethod/update:
    post:
      description: Use this endpoint to update settlement method on input account.
      operationId: updateAccountSettlement
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountSettlementRequest'
        description: The account settlement request must provide unique account ID and desired settlement method it needs to be updated to
        required: true
      responses:
        '200':
          description: Response should return status of update and input request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountSettlementResponse'
        '422':
          description: This response returns a validation failure with additional details about the failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrors'
        default:
          description: This response returns if the system encounters an unexpected error while handling this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      summary: Update Settlement Method on Account
      tags:
      - Accounts
components:
  schemas:
    RegistrationIndividual:
      type: object
    PartyRelationType:
      enum:
      - AUTHORIZED_AGENT
      - AUTHORIZED_MEMBER
      - AUTHORIZED_OWNER
      - BENEFICIAL_OWNER
      - BENEFICIARY
      - CUSTODIAN
      - EDUCATION_BENEFICIARY
      - EDUCATION_MANAGER
      - EXECUTOR
      - GUARDIAN_CONSERVATOR
      - INTERNAL_POWER_OF_ATTY
      - INITIAL_DEPOSITOR
      - JOINT_OWNER
      - MINOR_OWNER
      - PRIMARY_OWNER
      - POWER_OF_ATTY
      - SOLE_PROPRIETOR
      - TRADING_AUTHORITY
      - TREASURER
      - TRUSTEE
      - TRUSTED_CONTACT
      type: string
    Entity:
      description: Entity details
      properties:
        activeWalletAddress:
          description: Active crypto wallet address of the Entity
          example: e1847689-3047-477d-a46f-79ad0ce8dc14
          format: uuid
          type: string
          x-order: 0
        dailyNotionalTradingVolumeUsdRange:
          description: The Entity's expected daily trading volume
          enum:
          - UNDER_250K
          - FROM_250K_TO_500K
          - FROM_500K_TO_1M
          - FROM_1M_TO_2M
          - FROM_2M_TO_5M
          - FROM_5M_TO_10M
          - FROM_10M_TO_20M
          - FROM_20M_TO_50M
          - OVER_50M
          example: FROM_1M_TO_2M
          type: string
          x-order: 1
        dailyTransactionVolumeUsdRange:
          description: The Entity's expected daily transaction volume
          enum:
          - UNDER_250K
          - FROM_250K_TO_500K
          - FROM_500K_TO_1M
          - FROM_1M_TO_2M
          - FROM_2M_TO_5M
          - FROM_5M_TO_10M
          - FROM_10M_TO_20M
          - FROM_20M_TO_50M
          - OVER_50M
          example: FROM_1M_TO_2M
          type: string
          x-order: 2
        entityEmailAddress:
          description: The email of the Entity
          example: johnw@hightable.com
          format: email
          type: string
          x-order: 3
        entityFormationDate:
          description: The date of the Entity formation
          example: '2001-01-01'
          format: date
          type: string
          x-order: 4
        entityLegalName:
          description: The legal name of the Entity
          example: Cruickshank, Franecki and Swift
          maxLength: 100
          minLength: 1
          type: string
          x-order: 5
        entityOfferings:
          description: Products and services offered
          type: string
          x-order: 6
        entityPhoneNumber:
          description: Phone number in e.164 format
          example: '+1234567890'
          pattern: ^\+[1-9][0-9]{3,14}$
          type: string
          x-order: 7
        entityRegistrationStatus:
          description: Entity's registration status with a regulatory body
          enum:
          - CURRENTLY_REGISTERED
          - NOT_REGISTERED
          - REGISTRATION_IN_PROGRESS
          - NOT_APPLICABLE
          example: NOT_APPLICABLE
          type: string
          x-order: 8
        entityTaxId:
          description: The tax identifier for the Entity
          example: 098123456
          type: string
          x-order: 9
        entityType:
          description: Entity type
          enum:
          - CORPORATE
          - PARTNERSHIP
          - LLC
          - LIMITED_PARTNERSHIP
          - TRUST
          example: CORPORATE
          type: string
          x-order: 10
        firmAnnualNetIncome:
          description: The annual net income of the Entity
          enum:
          - UNDER_250K
          - FROM_250K_TO_500K
          - FROM_500K_TO_1M
          - FROM_1M_TO_2M
          - FROM_2M_TO_5M
          - FROM_5M_TO_10M
          - FROM_10M_TO_20M
          - FROM_20M_TO_50M
          - OVER_50M
          example: FROM_1M_TO_2M
          type: string
          x-order: 11
        firmLiquidNetWorthUsdRange:
          description: The liquid net worth of the Entity
          enum:
          - UNDER_250K
          - FROM_250K_TO_500K
          - FROM_500K_TO_1M
          - FROM_1M_TO_2M
          - FROM_2M_TO_5M
          - FROM_5M_TO_10M
          - FROM_10M_TO_20M
          - FROM_20M_TO_50M
          - OVER_50M
          example: FROM_1M_TO_2M
          type: string
          x-order: 12
        firmTotalNetWorthUsdRange:
          description: The total net worth of the Entity
          enum:
          - UNDER_250K
          - FROM_250K_TO_500K
          - FROM_500K_TO_1M
          - FROM_1M_TO_2M
          - FROM_2M_TO_5M
          - FROM_5M_TO_10M
          - FROM_10M_TO_20M
          - FROM_20M_TO_50M
          - OVER_50M
          example: FROM_1M_TO_2M
          type: string
          x-order: 13
        investmentExperience:
          description: Entity's level of investment experience prior to account creation
          enum:
          - NONE
          - LIMITED
          - GOOD
          - EXTENSIVE
          type: string
          x-order: 14
        investmentObjective:
          description: Entity's primary objective for investment account
          enum:
          - BALANCED
          - CAPITAL_PRESERVATION
          - GROWTH
          - INCOME
          - SPECULATION
          - OTHER
          type: string
          x-order: 15
        operatingAddress:
          $ref: '#/components/schemas/Address'
        operatingCountries:
          description: 3 letter country code as per ISO 3166 Alpha-3
          example:
          - USA
          items:
            description: 3 letter country code as per ISO 3166 Alpha-3
            enum:
            - AND
            - ARE
            - AFG
            - ATG
            - AIA
            - ALB
            - ARM
            - AGO
            - ATA
            - ARG
            - ASM
            - AUT
            - AUS
            - ABW
            - ALA
            - AZE
            - BIH
            - BRB
            - BGD
            - BEL
            - BFA
            - BGR
            - BHR
            - BDI
            - BEN
            - BLM
            - BMU
            - BRN
            - BOL
            - BES
            - BRA
            - BHS
            - BTN
            - BVT
            - BWA
            - BLR
            - BLZ
            - CAN
            - CCK
            - COD
            - CAF
            - COG
            - CHE
            - CIV
            - COK
            - CHL
            - CMR
            - CHN
            - COL
            - CRI
            - CUB
            - CPV
            - CUW
            - CXR
            - CYP
            - CZE
            - DEU
            - DJI
            - DNK
            - DMA
            - DOM
            - DZA
            - ECU
            - EST
            - EGY
            - ESH
            - ERI
            - ESP
            - ETH
            - FIN
            - FJI
            - FLK
            - FSM
            - FRO
            - FRA
            - GAB
            - GBR
            - GRD
            - GEO
            - GUF
            - GGY
            - GHA
            - GIB
            - GRL
            - GMB
            - GIN
            - GLP
            - GNQ
            - GRC
            - SGS
            - GTM
            - GUM
            - GNB
            - GUY
            - HKG
            - HMD
            - HND
            - HRV
            - HTI
            - HUN
            - IDN
            - IRL
            - ISR
            - IMN
            - IND
            - IOT
            - IRQ
            - IRN
            - ISL
            - ITA
            - JEY
            - JAM
            - JOR
            - JPN
            - KEN
            - KGZ
            - KHM
            - KIR
            - COM
            - KNA
            - PRK
            - KOR
            - KWT
            - CYM
            - KAZ
            - LAO
            - LBN
            - LCA
            - LIE
            - LKA
            - LBR
            - LSO
            - LTU
            - LUX
            - LVA
            - LBY
            - MAR
            - MCO
            - MDA
            - MNE
            - MAF
            - MDG
            - MHL
            - MKD
            - MLI
            - MMR
            - MNG
            - MAC
            - MNP
            - MTQ
            - MRT
            - MSR
            - MLT
            - MUS
            - MDV
            - MWI
            - MEX
            - MYS
            - MOZ
            - NAM
            - NCL
            - NER
            - NFK
            - NGA
            - NIC
            - NLD
            - NOR
            - NPL
            - NRU
            - NIU
            - NZL
            - OMN
            - PAN
            - PER
            - PYF
            - PNG
            - PHL
            - PAK
            - POL
            - SPM
            - PCN
            - PRI
            - PSE
            - PRT
            - PLW
            - PRY
            - QAT
            - REU
            - ROU
            - SRB
            - RUS
            - RWA
            - SAU
            - SLB
            - SYC
            - SDN
            - SWE
            - SGP
            - SHN
            - SVN
            - SJM
            - SVK
            - SLE
            - SMR
            - SEN
            - SOM
            - SUR
            - SSD
            - STP
            - SLV
            - SXM
            - SYR
            - SWZ
            - TCA
            - TCD
            - ATF
            - TGO
            - THA
            - TJK
            - TKL
            - TLS
            - TKM
            - TUN
            - TON
            - TUR
            - TTO
            - TUV
            - TWN
            - TZA
            - UKR
            - UGA
            - UMI
            - USA
            - URY
            - UZB
            - VAT
            - VCT
            - VEN
            - VGB
            - VIR
            - VNM
            - VUT
            - WLF
            - WSM
            - YEM
            - MYT
            - ZAF
            - ZMB
            - ZWE
            example: USA
            type: string
          type: array
          x-order: 17
        operatingIndustry:
          description: The Nature of Business (industry) of the Entity
          type: string
          x-order: 18
        registeredAddress:
          $ref: '#/components/schemas/Address'
        sourceOfCurrency:
          description: Source of virtual currency
          type: string
          x-order: 20
        sourceOfFunds:
          description: Source of fiat funds
          type: string
          x-order: 21
        subjectToAMLRegulations:
          description: Whether the Entity is subject to AML regulations
          example: true
          type: boolean
          x-order: 22
      required:
      - entityEmailAddress
      - entityLegalName
      - entityPhoneNumber
      - entityTaxId
      - entityType
      - operatingAddress
      - operatingIndustry
      - registeredAddress
      type: object
    LiquidityNeeds:
      description: Importance of liquidity for the customer
      enum:
      - VERY_IMPORTANT
      - SOMEWHAT_IMPORTANT
      - NOT_IMPORTANT
      type: string
    Owner:
      properties:
        agreements:
          items:
            $ref: '#/components/schemas/Agreement'
          type: array
          x-order: 8
        clientOwnerId:
          description: Client provided unique owner id (required when multiple owners are present or national id is specified)
          type: string
          x-order: 1
        emailAddress:
          description: Customer's contact email
          format: email
          type: string
          x-order: 3
        identity:
          $ref: '#/components/schemas/Identity'
        identityId:
          description: DEPRECATED.
          type: string
          x-order: 5
        mailingAddress:
          $ref: '#/components/schemas/Address'
        ownerId:
          description: Bakkt owner identifier
          format: uuid
          type: string
          x-order: 0
        phoneNumber:
          description: Customer's contact phone number (Should be in compacted E.164 format, eg UK (+44) 1234 123456 becomes +441234123456)
          type: string
          x-order: 2
        role:
          $ref: '#/components/schemas/PartyRelationType'
      required:
      - emailAddress
      - mailingAddress
      - role
      - identity
      - agreements
      type: object
    AccountOpeningStatus:
      properties:
        canTradeCrypto:
          type: boolean
          x-order: 0
        cipClearanceState:
          $ref: '#/components/schemas/CIPClearanceState'
        settlementMethod:
          $ref: '#/components/schemas/SettlementMethod'
      required:
      - canTradeCrypto
      - cipClearanceState
      - settlementMethod
      type: object
    VerificationResults:
      properties:
        addressVerified:
          description: Indicates if the customer's address has been verified
          type: boolean
          x-order: 5
        dateOfBirthVerified:
          description: Indicates if the customer's DOB has been verified
          type: boolean
          x-order: 7
        executionDate:
          description: The date the KYC was performed
          format: date
          type: string
          x-order: 3
        externalCaseId:
          description: Client-generated unique identifier associated with the KYC results for the appropriate case
          type: string
          x-order: 2
        identityVerificationResultId:
          type: string
          x-order: 0
        manualOverride:
          description: Indicates account failed vendor verification but has been manually reviewed and approved
          type: boolean
          x-order: 8
        manualOverrideApprover:
          description: Individual who approved the override
          type: string
          x-order: 10
        manualOverrideReason:
          description: Reason for account approval override
          type: string
          x-order: 9
        nameVerified:
          description: Indicates if the customer's name has been verified
          type: boolean
          x-order: 4
        taxIdVerified:
          description: Indicates if the customer's taxId has been verified
          type: boolean
          x-order: 6
        vendorName:
          description: If client is providing KYC information, this section will be filled out with the relevant details. Note that individual client implementations will vary.
          type: string
          x-order: 1
      required:
      - addressVerified
      - dateOfBirthVerified
      - executionDate
      - externalCaseId
      - nameVerified
      - taxIdVerified
      - vendorName
      type: object
    InvestmentObjective:
      description: Customer's primary objective for investment account
      enum:
      - BALANCED
      - CAPITAL_PRESERVATION
      - GROWTH
      - INCOME
      - SPECULATION
      - OTHER
      type: string
    Enrollments:
      description: DEPRECATED.
      properties:
        registrationIndividual:
          $ref: '#/components/schemas/RegistrationIndividual'
      required:
      - registrationIndividual
      type: object
    AccountRequest:
      properties:
        accountType:
          description: Customer account type
          enum:
          - INDIVIDUAL
          - CUSTODIAL
          - ENTITY_PERSONAL_TRUST
          - ENTITY
          type: string
          x-order: 2
        clientAccountId:
          description: Client-specified unique identifier for the account (clientAccountId)
          type: string
          x-order: 1
        enrollments:
          $ref: '#/components/schemas/Enrollments'
        entity:
          $ref: '#/components/schemas/Entity'
        id:
          description: DEPRECATED. Please use clientAccountId
          type: string
          x-order: 0
        investmentProfile:
          $ref: '#/components/schemas/InvestmentProfile'
        owners:
          items:
            $ref: '#/components/schemas/Owner'
          minimum: 1
          type: array
          x-order: 5
        settlementMethod:
          description: Method of settlement for the customer account
          enum:
          - BAKKT_TPJ
          - NET_SETTLEMENT
          type: string
          x-order: 8
        shareToken:
          description: The share token field will contain a Sumsub token. If the user is designated for this specific KYC flow, this token must be passed.
          type: string
          x-order: 9
        trustedContacts:
          items:
            $ref: '#/components/schemas/TrustedContact'
          type: array
          x-order: 6
      required:
      - clientAccountId
      - owners
      type: object
    MaritalStatus:
      description: Customer's marital status
      enum:
      - SINGLE
      - MARRIED
      - DIVORCED
      - WIDOWED
      type: string
    AccountSettlementRequest:
      properties:
        accountId:
          description: client-specified unique identifier for the account
          type: string
          x-order: 0
        settlementMethod:
          description: Settlement Method tied to Account
          enum:
          - NET_SETTLEMENT
          - BAKKT_TPJ
          type: string
          x-order: 1
      required:
      - accountId
      - settlementMethod
      type: object
    AccountSettlementResponse:
      properties:
        request:
          $ref: '#/components/schemas/AccountSettlementRequest'
        status:
          description: status tied to account settlement update
          enum:
          - COMPLETE
          - FAILED
          type: string
          x-order: 1
      required:
      - request
      - status
      type: object
    SettlementMethod:
      description: Settlement Method tied to Account
      enum:
      - NET_SETTLEMENT
      - NO_SETTLEMENT
      - BAKKT_TPJ
      - APEX_TPJ
      type: string
    TaxIdType:
      description: Used for tax reporting
      enum:
      - SSN
      - ITIN
      - EIN
      - NATIONAL_ID
      type: string
    Disclosures:
      properties:
        controlPersonCompanySymbols:
          description: Stock symbols of publicly traded companies for which the detailed customer is listed as a control person; comma separated
          type: string
          x-order: 0
        finraAssociatedEntities:
          description: Names of the FINRA-associated entities or FINRA-regulated broker dealers; comma separated
          type: string
          x-order: 1
        lastScreenedDate:
          description: Date the account owner was last screened for CDD data
          format: date-time
          type: string
          x-order: 6
        ofacSanctioned:
          description: Customer's OFAC sanction status
          enum:
          - UNKNOWN
          - POSSIBLE
          - EXACT
          - NO_MATCH
          type: string
          x-order: 5
          nullable: true
        politicallyExposed:
          description: Customer's political exposure status
          enum:
          - UNKNOWN
          - POSSIBLE
          - EXACT
          - NO_MATCH
          type: string
          x-order: 4
          nullable: true
        politicallyExposedImmediateFamilyNames:
          description: (Full) names of politically exposed family members including parent, child, spouse, cousin, etc.; comma separated
          type: string
          x-order: 3
        politicallyExposedOrganizations:
          description: Names of the politically exposed organization(s); comma separated
          type: string
          x-order: 2
      type: object
    USDRange:
      enum:
      - UNDER_25K
      - FROM_25K_TO_50K
      - FROM_50K_TO_100K
      - FROM_100K_TO_200K
      - FROM_200K_TO_300K
      - FROM_300K_TO_500K
      - FROM_500K_TO_1M
      - FROM_1M_TO_5M
      - OVER_5M
      type: string
    InvestmentExperience:
      description: Customer's level of investment experience prior to account creation
      enum:
      - NONE
      - LIMITED
      - GOOD
      - EXTENSIVE
      type: string
    Agreement:
      properties:
        eSignedDate:
          description: Date of electronic signature of the agreement
          format: date-time
          type: string
          x-order: 3
        name:
          description: Name of the agreement document
          type: string
          x-order: 0
        text:
          description: Text containing the body of the agreement document
          type: string
          x-order: 2
        version:
          description: Agreement document version
          type: string
          x-order: 1
      required:
      - name
      - version
      type: object
    CIPClearanceState:
      description: '<br/>`PENDING` - The CIP check is waiting to be processed <br/>`IN_PROGRESS` - The CIP check is being processed <br/>`ACCEPTED` - The CIP check result was good <br/>`INDETERMINATE` - The CIP check result was indeterminate. Customer should review and update their account information <br/>`REJECTED` - The CIP check result was rejected. Customer should review and update their account information <br/>`FAILED` - The CIP check could not be processed. Please contact us to resolve this issue

        '
      enum:
      - PENDING
      - IN_PROGRESS
      - ACCEPTED
      - INDETERMINATE
      - REJECTED
      - FAILED
      type: string
    RequestStatus:
      description: Status of a request, where the request is a long running operation
      enum:
      - PENDING
      - ACCEPTED
      - IN_PROGRESS
      - REJECTED
      - CANCELLED
      - COMPLETE
      type: string
    TrustedContact:
      properties:
        emailAddress:
          description: The trusted contact's email address
          format: email
          type: string
          x-order: 4
        familyName:
          description: The trusted contact's family (typically last) name
          type: string
          x-order: 2
        givenName:
          description: The trusted contact's given (typically first) name
          type: string
          x-order: 0
        mailingAddress:
          $ref: '#/components/schemas/Address'
        middleNames:
          description: The trusted contact's middle name(s). Space or comma separated.
          type: string
          x-order: 1
        phoneNumber:
          description: The trusted contact's phone number
          type: string
          x-order: 3
      required:
      - givenName
      - familyName
      type: object
    InvestmentProfile:
      properties:
        accountGoals:
          $ref: '#/components/schemas/AccountGoals'
        customerProfile:
          $ref: '#/components/schemas/CustomerProfile'
      required:
      - accountGoals
      - customerProfile
      type: object
    ValidationErrors:
      properties:
        code:
          description: This code represents an HTTP style error code. Error codes in the 4xx range indicates errors made in the way the client made the request. Error codes in the 5xx range indicates errors that the Apex Crypto system encountered in handling the request.
          format: int32
          type: integer
        message:
          description: This error message provides a summary of the count of the validations that failed. Details about a field-level falure are provided in the validationErrors field.
          type: string
        validationErrors:
          description: The individual validation errors encountered in processing the client request. Each error should contain detail about a specific field-level validation that failed, the rejected value, and a message indicating the nature of the failure to aid in presentation to e

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bakkt/refs/heads/main/openapi/bakkt-accounts-api-openapi.yml