> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hifi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update KYC information

> Update the user's KYC information.

The Update KYC endpoint allows you to add or modify the user's existing KYC data. This is the only endpoint available for making changes to the user's KYC information.

HIFI does not provide services to users or businesses from sanctioned and high-risk regions or unsupported US states. See [here](https://docs.hifi.com/docs/compliance/regions) for supported regions.




## OpenAPI

````yaml https://production.hifi.com/api/v2/openapi.json post /v2/users/{userId}/kyc
openapi: 3.0.0
info:
  title: Hifi API
  version: 2.0.0
  description: API documentation for Hifi
servers:
  - url: https://production.hifibridge.com
    description: Production server
  - url: https://sandbox.hifibridge.com
    description: Sandbox server
security:
  - bearerAuth: []
tags:
  - name: Common
    description: Common endpoints
  - name: User
    description: User endpoints
  - name: Kyc
    description: Kyc endpoints
  - name: Wallet
    description: Wallet endpoints
  - name: Account
    description: Account endpoints
  - name: External Account
    description: External Account endpoints for managing beneficiary bank accounts
  - name: Fiat Account
    description: Fiat Account endpoints
  - name: Virtual Account
    description: Virtual Account endpoints
  - name: Onramp
    description: Onramp endpoints
  - name: Offramp
    description: Offramp endpoints
  - name: Orchestration Address
    description: >-
      Orchestration Address endpoints — persistent on-chain wallets that
      automatically off-ramp incoming stablecoin deposits to a USD bank account
  - name: Crypto Transfer
    description: Crypto Transfer endpoints
  - name: Cross-Chain Bridge
    description: Cross-Chain Bridge endpoints
  - name: Token Swap
    description: Token Swap endpoints
  - name: Canton Offers
    description: Canton Offers endpoints
  - name: Transfer Rules
    description: Transfer approval rules and configuration
  - name: Transfer Approvals
    description: Transfer approval workflow and admin actions
  - name: File
    description: File endpoints
  - name: Reporting
    description: Reporting and metrics endpoints
paths:
  /v2/users/{userId}/kyc:
    post:
      tags:
        - Kyc
      summary: Update KYC information
      description: >
        Update the user's KYC information.


        The Update KYC endpoint allows you to add or modify the user's existing
        KYC data. This is the only endpoint available for making changes to the
        user's KYC information.


        HIFI does not provide services to users or businesses from sanctioned
        and high-risk regions or unsupported US states. See
        [here](https://docs.hifi.com/docs/compliance/regions) for supported
        regions.
      parameters:
        - $ref: '#/components/parameters/UserIdPathParameter'
      requestBody:
        $ref: '#/components/requestBodies/KycUpdateBody'
      responses:
        '200':
          $ref: '#/components/responses/KycObjectResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  parameters:
    UserIdPathParameter:
      name: userId
      in: path
      schema:
        type: string
      description: ID of the user
      required: true
  requestBodies:
    KycUpdateBody:
      required: true
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/IndividualKycUpdate'
              - $ref: '#/components/schemas/BusinessKycUpdate'
  responses:
    KycObjectResponse:
      description: Success
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/KycIndividualObject'
              - $ref: '#/components/schemas/KycBusinessObject'
          examples:
            KycObjectIndividualExample:
              $ref: '#/components/examples/KycObjectIndividualExample'
            KycObjectBusinessExample:
              $ref: '#/components/examples/KycObjectBusinessExample'
    UnauthorizedResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    NotFoundResponse:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
    InternalServerErrorResponse:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  schemas:
    IndividualKycUpdate:
      type: object
      title: Update Individual User KYC
      properties:
        firstName:
          type: string
        firstNameLocal:
          type: string
          description: first name in local language.
        middleName:
          type: string
        middleNameLocal:
          type: string
          description: middle name in local language.
        lastName:
          type: string
        lastNameLocal:
          type: string
          description: last name in local language.
        nationality:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        email:
          type: string
          description: E-mail address for compliance-related communications.
          format: email
        phone:
          type: string
          description: Phone number in E.164 format "+12223334444".
        address:
          $ref: '#/components/schemas/Address'
          type: object
          description: Address of the user.
        dateOfBirth:
          type: string
          format: date
          description: Date of birth in format yyyy-mm-dd.
        countryOfBirth:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        stateOfBirth:
          type: string
          description: >-
            The state, region, district, county or another territorial entity of
            birth inside a country, if applicable.
        placeOfBirth:
          type: string
          description: >-
            User place of birth. This can be a city, a town or another
            settlement type.
        gender:
          type: string
          enum:
            - M
            - F
        country:
          type: string
          description: >
            User country. This is usually a country of the last uploaded ID
            document, and it may differ from the country of birth. 

            Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        taxIdentificationNumber:
          type: string
          description: |
            Taxpayer identification number that is unique to each taxpayer.
            For individual US customers, SSN should be used. 
            For business US customers, EIN should be used.
        taxResidenceCountry:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        ipAddress:
          type: string
          description: >
            IP address of the user. 


            (See [here](https://docs.hifi.com/docs/compliance/regions) for the
            list of unsupported countries/states.)
          format: ipv4
        govIdType:
          type: string
          enum:
            - PASSPORT
            - ID_CARD
            - DRIVERS
            - RESIDENCE_PERMIT
        govIdFrontUrl:
          type: string
          description: >
            URL or Base64 encoded string of the front of the user's government
            issued ID.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        govIdBackUrl:
          type: string
          description: >
            URL or Base64 encoded string of the back of the user's government
            issued ID.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        govIdCountry:
          type: string
          description: >
            Alpha-3 country code of the provided government id as defined in the
            ISO 3166-1 spec. Note that the government ID may be different from
            the 'country' above.
        govIdNumber:
          type: string
        govIdIssuanceDate:
          type: string
          format: date
          description: The issue date of the Gov ID document in format yyyy-mm-dd.
        govIdExpirationDate:
          type: string
          format: date
          description: |
            The expiry date of the Gov ID document in format yyyy-mm-dd.
        govIdIssuanceAuthority:
          type: string
          description: Issuing authority of the Gov ID document.
        govIdHandHoldUrl:
          type: string
          description: >
            URL or Base64 encoded string of image of the user holding their
            government issued ID next to their face.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        proofOfAddressType:
          type: string
          enum:
            - UTILITY_BILL
            - BANK_STATEMENT
            - RENTAL_AGREEMENT
            - TAX_DOCUMENT
        proofOfAddressUrl:
          type: string
          description: >
            URL or Base64 encoded string of the file of the proof of address.


            (See [here](https://docs.hifi.com/docs/compliance/regions) for the
            list of unsupported countries/states.)


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        sofEuQuestionnaire:
          $ref: '#/components/schemas/SofEuKycQuestionnaire'
          type: object
          title: Source of Funds and Expected Use Questionnaire
          description: Source of Funds and Expected Use Questionnaire
        idType:
          type: string
          enum:
            - PASSPORT
            - ID_CARD
            - DRIVERS
            - NIN
        idNumber:
          type: string
        additionalIdType:
          type: string
          description: |
            Required only for "AFRICA_NIGERIA" rail and must be "BVN" type:
        additionalIdNumber:
          type: string
          description: |
            Required only for "AFRICA_NIGERIA" rail and must be the BVN number.
        purpose:
          type: array
          description: >
            The purposes for unlocking this rail. Multiple values can be put
            into an array. Only required for `MULTI_CURRENCY_ACCOUNT` rail. 


            Look up the purpose code
            [here](https://docs.hifi.com/docs/compliance/references/account-purposes).
        productServiceCategory:
          type: string
          description: >
            The category of the product or service the user is in. Only required
            for `MULTI_CURRENCY_ACCOUNT` rail.


            Look up the product and service category code
            [here](https://docs.hifi.com/docs/compliance/references/product-service-categories).
        supplementaryInfo:
          type: string
          description: >
            This field allows the inclusion of additional textual information or
            context that may be relevant to the KYC process.
        supplementaryUrl:
          type: string
          description: >
            This field is designed to contain supplementary documents or files
            that can be uploaded as part of the KYC process.


            URL or Base64 encoded string of the file of the supplementary
            information.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
    BusinessKycUpdate:
      type: object
      title: Update Business User KYC
      properties:
        businessName:
          type: string
          description: The full legal name of the business.
        businessNameLocal:
          type: string
          description: |
            The full legal name of the business in the local language.
        alternativeNames:
          type: array
          description: Alternative names of the business.
          items:
            type: string
        businessDescription:
          type: string
        businessIndustry:
          type: string
          description: >-
            The industry in which this business operates. Click
            [here](https://docs.hifi.com/docs/compliance/references/business-industries)
            for the complete list of valid industries and codes.
        businessType:
          type: string
          description: >-
            The type of business structure that most closely matches the
            business customer.
          enum:
            - cooperative
            - s_corporation
            - b_corporation
            - c_corporation
            - close_corporation
            - nonprofit_corporation
            - general_partnership
            - limited_partnership
            - limited_liability_company
            - other
            - sole_proprietorship
            - trust
        email:
          type: string
          description: Email address for compliance-related communications.
          format: email
        phone:
          type: string
          description: Phone number in E.164 format "+12223334444".
        taxIdentificationNumberType:
          type: string
          description: Company tax id type
          enum:
            - EIN
            - SSN
            - VAT
            - TIN
            - UTR
        taxIdentificationNumber:
          type: string
          description: Company tax number. US businesses should provide EIN.
        registrationNumber:
          type: string
          description: Business Registration Number.
        leiNumber:
          type: string
          description: >
            Legal Entity Identifier (LEI) is a 20-character alphanumeric code
            that uniquely identifies a legal entity participating in financial
            transactions.

            LEI is required for businesses based in the European Economic Area
            (EEA) and Switzerland.
        formationDate:
          type: string
          description: Company formation date.
          format: date
        incorporationDate:
          type: string
          format: date
          description: Date of incorporation in format yyyy-mm-dd.
        incorporationCountry:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        incorporationState:
          type: string
        website:
          type: string
        address:
          $ref: '#/components/schemas/Address'
          type: object
          description: Company office address.
        registeredAddress:
          $ref: '#/components/schemas/Address'
          type: object
          description: >-
            The official registered office address of the business as filed with
            the relevant authority.
        postalAddress:
          $ref: '#/components/schemas/Address'
          type: object
          description: Business postal address.
        ipAddress:
          type: string
          description: >
            IP address of the user.


            (See [here](https://docs.hifi.com/docs/compliance/regions) for the
            list of unsupported countries/states.)
          format: ipv4
        sourceOfFunds:
          type: string
          description: >-
            The source of funds for the business, e.g. profits, income, venture
            capital, etc.
        transmitsCustomerFunds:
          type: boolean
          description: True if the business transmits funds on behalf of its customers.
        complianceScreeningExplanation:
          type: string
          description: >
            Required if transmitsCustomerFunds is true. An explanation of types
            of compliance screening (KYC, KYB, or AML) the customer performs
            before transmitting funds on behalf of its customers.
        daoStatus:
          type: boolean
          description: >-
            Whether the business is a DAO (Decentralized Autonomous
            Organization)
        proofOfAddressType:
          type: string
          enum:
            - UTILITY_BILL
            - BANK_STATEMENT
            - RENTAL_AGREEMENT
            - TAX_DOCUMENT
        proofOfAddressUrl:
          type: string
          description: >
            URL or Base64 encoded string of the proof of address that ties the
            owner's name to the provided address. Typically a utility bill or
            bank statement.

            Required for businesses registered or operating in the EEA (European
            Economic Area).

            Utility bills and bank statements are recommended for proof of
            address.


            (See [here](https://docs.hifi.com/docs/compliance/regions) for the
            list of unsupported countries/states.)


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        formationDocUrl:
          type: string
          description: |
            URL or Base64 encoded string of the formation documentation. 

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        proofOfOwnershipUrl:
          type: string
          description: |
            URL or Base64 encoded string of the ownership documentation.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        certificateOfRegistrationDocType:
          type: string
          description: Type of the certificate of registration doc.
          enum:
            - ACRA
            - GST
            - MSME
            - CERTIFICATE_OF_REGISTRATION
        certificateOfRegistrationDocUrl:
          type: string
          description: |
            URL or Base64 encoded string of the certificate of registration.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        certificateNumber:
          type: string
          description: >
            A unique number that identifies the business. This is usually the
            number shown on the certificate of registration.
        businessRegistrationDocUrl:
          type: string
          description: >
            URL or Base64 encoded string of the business registration document.
            For business based in HKG only.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        licenseExpirationDate:
          type: string
          format: date
          description: Expiry date of company license in format yyyy-mm-dd.
        certificateOfIncorporationDocUrl:
          type: string
          description: >
            URL or Base64 encoded string of the certificate of incorporation.
            For business based in HKG only.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        incorporationNumber:
          type: string
          description: Certificate of Incorporation Number.
        controlScheme:
          type: string
        shareStructureUrl:
          type: string
          description: |
            URL or Base64 encoded string of of the shareholder structure file.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        constitutionOrAnnualReportUrl:
          type: string
          description: >
            URL or Base64 encoded string of the company constitution or annual
            report


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        articlesOfAssociationUrl:
          type: string
          description: |
            URL or Base64 encoded string of the articles of association.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        uboDeclarationUrl:
          type: string
          description: >
            URL or Base64 encoded string of the UBO (Ultimate Beneficial Owner)
            declaration.


            *Maximum file size 3MB and minimum file size 10KB


            *If the file is base64 encoded, it must start with "data:"


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        partnershipMinsOfMeetingUrl:
          type: string
          description: >
            URL or Base64 encoded string of the Partnership Meeting Minutes. For
            PARTNERSHIP business only.


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        partnershipDeedUrl:
          type: string
          description: |
            URL of the Partnership Agreement. For PARTNERSHIP business only.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        certificateOfIncumbencyUrl:
          type: string
          description: |
            URL or Base64 encoded string of the Certificate of Incumbency.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        organizationStructureUrl:
          type: string
          description: |
            URL or Base64 encoded string of the Organization Structure.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        sourceOfFundsUrl:
          type: string
          description: |
            URL or Base64 encoded string of the source of fund document.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        flowOfFundsUrl:
          type: string
          description: |
            URL or Base64 encoded string of the flow of funds document.

            *Maximum file size 3MB and minimum file size 10KB

            *If the file is base64 encoded, it must start with "data:"

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        purpose:
          type: array
          description: >
            The purposes for unlocking this rail. Multiple values can be put
            into an array. Only required for `MULTI_CURRENCY_ACCOUNT` rail. 


            Look up the purpose code
            [here](https://docs.hifi.com/docs/compliance/references/account-purposes).
          items:
            type: string
            enum:
              - PAY_SUPPLIERS
              - PAY_SERVICE_PROVIDERS
              - GOODS_MERCHANDISE_COMMODITIES
              - FREELANCERS_CONTRACTORS_PAYROLL
              - FINANCIAL_SERVICES_LOANS_INVESTMENTS
              - TAX_REGULATORY_FEES
              - LEGAL_SERVICES
              - OPERATIONAL_EXPENSES
              - SUBSCRIPTIONS
              - TRAVEL_RELATED_EXPENSES
              - INSURANCE
              - ADVERTISING_MARKETING_EXPENSES
              - EQUIPMENT_MACHINERY
              - TECHNOLOGY_SERVICES
              - EDUCATION_RELATED_EXPENSES
              - TREASURY_PAYMENTS
              - FX_SERVICES
              - OTHER
              - ONLINE_MARKETPLACE_TRADING
              - OFFLINE_TRADING
        productServiceCategory:
          type: string
          description: >
            The category of the product or service the user is in. 


            Look up the product and service category code
            [here](https://docs.hifi.com/docs/compliance/references/product-service-categories).
        tradeName:
          type: string
          description: >
            Enterprise trading name. This information is only required if the
            customer’s business `purpose` includes `OFFLINE`.
        exportCountry:
          type: string
          description: >
            Export country. This information is only required if the customer’s
            business `purpose` includes `OFFLINE`.
        tradeType:
          type: string
          description: >
            Trade type. This information is only required if the customer’s
            business `purpose` includes `OFFLINE`.

            Look up export item category codes
            [here](https://docs.hifi.com/docs/compliance/references/export-categories).
        supplementaryInfo:
          type: string
          description: >
            This field allows the inclusion of additional textual information or
            context that may be relevant to the KYC process.
        supplementaryUrl:
          type: string
          description: >
            This field is designed to contain supplementary documents or files
            that can be uploaded as part of the KYC process.


            URL or Base64 encoded string of the file of the supplementary
            information.


            *If the file is base64 encoded, it must start with "data:"


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        sofEuQuestionnaire:
          $ref: '#/components/schemas/SofEuKybQuestionnaire'
          type: object
          title: Source of Funds and Expected Use Questionnaire
          description: Source of Funds and Expected Use Questionnaire
        ultimateBeneficialOwners:
          type: array
          description: >
            List of ultimate beneficial owners (UBOs) of the business. This list
            will replace any existing UBOs.


            Note: This field is deprecated and will be removed in the future. To
            add or update a specific UBO, please use the UBO-specific endpoints
            instead.
          deprecated: true
          items:
            $ref: '#/components/schemas/UltimateBeneficialOwner'
    KycIndividualObject:
      type: object
      title: KYC Object (Individual)
      properties:
        userId:
          type: string
          format: uuid
        kycInfo:
          type: object
          properties:
            type:
              type: string
              enum:
                - individual
            firstName:
              type: string
            firstNameLocal:
              type: string
            middleName:
              type: string
            middleNameLocal:
              type: string
            lastName:
              type: string
            lastNameLocal:
              type: string
            nationality:
              type: string
            email:
              type: string
              format: email
            phone:
              type: string
            address:
              $ref: '#/components/schemas/Address'
              type: object
            dateOfBirth:
              type: string
            countryOfBirth:
              type: string
            stateOfBirth:
              type: string
            placeOfBirth:
              type: string
            gender:
              type: string
            country:
              type: string
            taxIdentificationNumber:
              type: string
            taxResidenceCountry:
              type: string
            govIdType:
              type: string
            govIdFrontUrl:
              type: string
            govIdBackUrl:
              type: string
            govIdCountry:
              type: string
            govIdNumber:
              type: string
            govIdIssuanceDate:
              type: string
            govIdExpirationDate:
              type: string
            govIdIssuanceAuthority:
              type: string
            govIdHandHoldUrl:
              type: string
            proofOfAddressType:
              type: string
            proofOfAddressUrl:
              type: string
            sofEuQuestionnaire:
              $ref: '#/components/schemas/SofEuKycQuestionnaire'
              type: object
            ipAddress:
              type: string
            idType:
              type: string
            idNumber:
              type: string
            additionalIdType:
              type: string
            additionalIdNumber:
              type: string
            purpose:
              type: string
            productServiceCategory:
              type: string
            supplementaryInfo:
              type: string
            supplementaryUrl:
              type: string
            documents:
              type: array
              items:
                $ref: '#/components/schemas/DocumentObject'
    KycBusinessObject:
      type: object
      title: KYC Object (Business)
      properties:
        userId:
          type: string
          format: uuid
        kycInfo:
          type: object
          properties:
            type:
              type: string
              enum:
                - business
            businessName:
              type: string
            businessNameLocal:
              type: string
            alternativeNames:
              type: array
              items:
                type: string
            businessDescription:
              type: string
            email:
              type: string
              format: email
            phone:
              type: string
            sourceOfFunds:
              type: string
            businessType:
              type: string
            businessIndustry:
              type: string
            website:
              type: string
            address:
              $ref: '#/components/schemas/Address'
              type: object
            registeredAddress:
              $ref: '#/components/schemas/Address'
              type: object
            postalAddress:
              $ref: '#/components/schemas/Address'
              type: object
            taxIdentificationNumberType:
              type: string
            taxIdentificationNumber:
              type: string
            leiNumber:
              type: string
            daoStatus:
              type: boolean
            transmitsCustomerFunds:
              type: boolean
            formationDate:
              type: string
            ipAddress:
              type: string
              format: ipv4
            formationDocUrl:
              type: string
            proofOfOwnershipUrl:
              type: string
            complianceScreeningExplanation:
              type: string
            ultimateBeneficialOwners:
              type: array
              items:
                $ref: '#/components/schemas/UboObject'
            proofOfAddressType:
              type: string
            proofOfAddressUrl:
              type: string
            certificateOfRegistrationDocType:
              type: string
            certificateOfRegistrationDocUrl:
              type: string
            certificateNumber:
              type: string
            businessRegistrationDocUrl:
              type: string
            registrationNumber:
              type: string
            licenseExpirationDate:
              type: string
            certificateOfIncorporationDocUrl:
              type: string
            incorporationNumber:
              type: string
            incorporationDate:
              type: string
            incorporationCountry:
              type: string
            incorporationState:
              type: string
            controlScheme:
              type: string
            shareStructureUrl:
              type: string
            constitutionOrAnnualReportUrl:
              type: string
            articlesOfAssociationUrl:
              type: string
            uboDeclarationUrl:
              type: string
            partnershipMinsOfMeetingUrl:
              type: string
            partnershipDeedUrl:
              type: string
            certificateOfIncumbencyUrl:
              type: string
            sourceOfFundsUrl:
              type: string
            organizationStructureUrl:
              type: string
            flowOfFundsUrl:
              type: string
            purpose:
              type: string
            productServiceCategory:
              type: string
            tradeName:
              type: string
            exportCountry:
              type: string
            tradeType:
              type: string
            sofEuQuestionnaire:
              $ref: '#/components/schemas/SofEuKybQuestionnaire'
              type: object
            supplementaryInfo:
              type: string
            supplementaryUrl:
              type: string
            documents:
              type: array
              items:
                $ref: '#/components/schemas/DocumentObject'
    Unauthorized:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
    InternalServerError:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
    Address:
      type: object
      properties:
        addressLine1:
          type: string
        addressLine2:
          type: string
        city:
          type: string
        stateProvinceRegion:
          type: string
          description: >
            The second part of the [ISO 3166-2 subdivision
            code](https://en.wikipedia.org/wiki/ISO_3166-2). This must be
            provided if the country has subdivisions.


            An ISO 3166-2 code consists of two parts, separated by a hyphen
            (`-`):
              1. The first part is the ISO 3166-1 alpha-2 code of the country (e.g., `US`, `CA`, `BR`);
              2. The second part is a string of up to three alphanumeric characters representing a specific subdivision (e.g., state, province). This is typically based on national standards or developed by ISO.

              Only provide the second part of the code (e.g., `CA` for California in `US-CA`, or `SP` for São Paulo in `BR-SP`).
        postalCode:
          type: string
          description: Must be supplied for countries that use postal codes.
        country:
          type: string
          description: >-
            Three-letter alpha-3 country code as defined in the [ISO 3166-1
            spec](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3).
      required:
        - addressLine1
        - city
        - stateProvinceRegion
        - postalCode
        - country
    SofEuKycQuestionnaire:
      type: object
      properties:
        actingAsIntermediary:
          type: boolean
          description: Is the customer acting as an intermediary for a third party?
        employmentStatus:
          type: string
          description: What is the customer's current employment status?
          enum:
            - employed
            - homemaker
            - retired
            - self_employed
            - student
            - unemployed
        expectedMonthlyPayments:
          type: string
          description: >-
            What is the expected monthly volume of payments the customer will be
            sending or receiving?
          enum:
            - '0_4999'
            - '5000_9999'
            - '10000_49999'
            - 50000_plus
        mostRecentOccupation:
          type: string
          description: >
            What is the customer's most recent occupation? Specify the relevant
            alphanumeric occupation code. 

            See the
            [list](https://docs.hifi.com/docs/compliance/references/occupations)
            of occupations for the complete list of valid occupations and codes.
        primaryPurpose:
          type: string
          description: What is the primary purpose of the customer's account?
          enum:
            - charitable_donations
            - ecommerce_retail_payments
            - investment_purposes
            - operating_a_company
            - payments_to_friends_or_family_abroad
            - personal_or_living_expenses
            - protect_wealth
            - purchase_goods_and_services
            - receive_payment_for_freelancing
            - receive_salary
            - other
        primaryPurposeOther:
          type: string
          description: Required if the primary purpose is 'other'.
        sourceOfFunds:
          type: string
          description: What is the source of funds for the customer's account?
          enum:
            - company_funds
            - ecommerce_reseller
            - gambling_proceeds
            - gifts
            - government_benefits
            - inheritance
            - investments_loans
            - pension_retirement
            - salary
            - sale_of_assets_real_estate
            - savings
            - someone_elses_funds
    SofEuKybQuestionnaire:
      type: object
      properties:
        estimatedAnnualRevenueUsd:
          type: string
          description: Estimated annual revenue in USD.
          enum:
            - '0_99999'
            - '100000_999999'
            - '1000000_9999999'
            - '10000000_49999999'
            - '50000000_249999999'
            - 250000000_plus
        expectedMonthlyPaymentsUsd:
          type: string
          description: Expected monthly payments in USD.
        operatesInProhibitedCountries:
          type: boolean
          deprecated: true
        primaryPurpose:
          type: string
          description: What is the primary purpose of the business account?
          enum:
            - charitable_donations
            - ecommerce_retail_payments
            - investment_purposes
            - other
            - payments_to_friends_or_family_abroad
            - payroll
            - personal_or_living_expenses
            - protect_wealth
            - purchase_goods_and_services
            - receive_payments_for_goods_and_services
            - tax_optimization
            - third_party_money_transmission
            - treasury_management
        primaryPurposeOther:
          type: string
          description: Required if the primary purpose is 'other'.
        highRiskActivities:
          type: array
          description: List of high-risk activities the business is involved in.
          items:
            type: string
            enum:
              - none_of_the_above
              - adult_entertainment
              - gambling
              - hold_client_funds
              - investment_services
              - lending_banking
              - marijuana_or_related_services
              - money_services
              - operate_foreign_exchange_virtual_currencies_brokerage_otc
              - safe_deposit_box_rentals
              - third_party_payment_processing
              - weapons_firearms_and_explosives
        sourceOfFunds:
          type: string
          description: What is the source of funds for the business account?
          enum:
            - business_loans
            - grants
            - inter_company_funds
            - investment_proceeds
            - legal_settlement
            - owners_capital
            - pension_retirement
            - sale_of_assets
            - sales_of_goods_and_services
            - tax_refund
            - third_party_funds
            - treasury_reserves
        sourceOfFundsDescription:
          type: string
          description: Description of the source of funds for the business' account.
        transmitsCustomerFunds:
          type: boolean
          description: >
            Specifies whether the business directly receives, holds, or sends
            customer funds to another party on behalf of its users. 

            A value of true means the business is acting as a money transmitter
            and is subject to money transmission regulations in addition to
            general money service obligations.
        transmitsCustomerFundsDescription:
          type: string
          description: >
            Describes whether and how the business actively transmits customer
            funds. i.e., moves money from one party to another on behalf of a
            customer (e.g., sending, remitting, or transferring funds). 

            This field should clarify the money-transmission activity performed.
        customerFundsDescription:
          type: string
          description: >
            Describes the nature of the customer funds handled by the business.
            This field explains the characteristics of the funds rather than the
            act of transmitting them.
        conductsMoneyServices:
          type: boolean
          description: >
            Indicates whether the business is engaged in providing money
            services as a line of business (e.g., money transmission, currency
            exchange, or other regulated financial activities). 

            A value of true means the business is considered a Money Services
            Business (MSB) under applicable regulations and may be subject to
            AML, KYC, and licensing requirements.
    UltimateBeneficialOwner:
      type: object
      properties:
        role:
          type: string
          deprecated: true
          description: The role of the ubo in the business.
          enum:
            - OWNER_OR_OPERATOR
            - PARTNER
            - UBO
            - DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP
            - AGENT_OR_AUTHORISED_PERSON
        roles:
          type: array
          description: The roles of the ubo in the business.
          items:
            type: string
            enum:
              - UBO
              - DIRECTOR
              - REPRESENTATIVE
              - SHAREHOLDER
        businessTitle:
          type: string
          description: Agent or authorised person‘s job title.
        firstName:
          type: string
          description: first name in local language.
        firstNameLocal:
          type: string
        middleName:
          type: string
        middleNameLocal:
          type: string
          description: middle name in local language.
        lastName:
          type: string
        lastNameLocal:
          type: string
          description: last name in local language.
        nationality:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        email:
          type: string
          format: email
        phone:
          type: string
        address:
          $ref: '#/components/schemas/Address'
          type: object
          description: Address of the user.
        dateOfBirth:
          type: string
          format: date
          description: Date of birth in format yyyy-mm-dd.
        countryOfBirth:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        stateOfBirth:
          type: string
        placeOfBirth:
          type: string
        gender:
          type: string
          enum:
            - M
            - F
        taxIdentificationNumber:
          type: string
          description: >-
            For US owners, SSN should be used. For non-US individual owners, a
            national ID is preferred where applicable; however, a tax ID can
            also be used as an alternative.
        taxResidenceCountry:
          type: string
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
        govIdType:
          type: string
          enum:
            - PASSPORT
            - ID_CARD
            - DRIVERS
        govIdCountry:
          type: string
          description: >-
            Three-letter alpha-3 country code of the submitted government id as
            defined in the ISO 3166-1 spec.
        govIdNumber:
          type: string
        govIdFrontUrl:
          type: string
          description: >
            URL or Base64 encoded string of the front of the user's government
            issued ID.


            *If the file is base64 encoded, it must start with "data:"


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        govIdBackUrl:
          type: string
          description: >
            URL or Base64 encoded string of the back of the user's government
            issued ID.


            *If the file is base64 encoded, it must start with "data:"


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        govIdIssuanceDate:
          type: string
          format: date
          description: The issue date of the Gov ID document in format yyyy-mm-dd.
        govIdExpirationDate:
          type: string
          format: date
          description: The expiry date of the Gov ID document in format yyyy-mm-dd.
        govIdIssuanceAuthority:
          type: string
          description: Issuing authority of the Gov ID document.
        proofOfAddressType:
          type: string
          enum:
            - UTILITY_BILL
            - BANK_STATEMENT
            - RENTAL_AGREEMENT
            - TAX_DOCUMENT
        proofOfAddressUrl:
          type: string
          description: |
            URL or Base64 encoded string of the file of the proof of address.

            *If the file is base64 encoded, it must start with "data:"

            *Maximum file size 3MB and minimum file size 10KB

            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        authLetterUrl:
          type: string
          description: >
            URL or Base64 encoded string of the authorization letter that the
            authorised person can act on behalf of the business.


            *If the file is base64 encoded, it must start with "data:"


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
        shareProportion:
          type: number
          description: >
            Percentage of shares owned (greater than or equal to 25%), only for
            UBOs.
        hasOwnership:
          type: boolean
          description: True if the person has at least 25% ownership of the business.
        hasControl:
          type: boolean
          description: >-
            True if the person has a significant responsibility to control,
            manage, or direct the activities of the business. At least one of
            the ultimateBeneficialOwners needs to have this set to true.
        isSigner:
          type: boolean
          description: >-
            True if the person can authorize transactions on behalf of the
            business. At least one of the ultimateBeneficialOwners needs to have
            this set to true.
        relationshipEstablishedAt:
          type: string
          format: date
          description: >-
            The date that the ultimateBeneficialOwners first became an owner,
            control person, or signer for the business in format yyyy-mm-dd.
        supplementaryInfo:
          type: string
          description: >
            This field allows the inclusion of additional textual information or
            context that may be relevant to the KYC process.
        supplementaryUrl:
          type: string
          description: >
            This field is designed to contain supplementary documents or files
            that can be uploaded as part of the KYC process.


            URL or Base64 encoded string of the file of the supplementary
            information.


            *If the file is base64 encoded, it must start with "data:"


            *Maximum file size 3MB and minimum file size 10KB


            *Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif
    DocumentObject:
      type: object
      title: Document Object
      properties:
        type:
          type: string
        subType:
          type: string
        issuedCountry:
          type: string
        issuedDate:
          type: string
          format: date
        expiryDate:
          type: string
          format: date
        number:
          type: string
        description:
          type: string
        url:
          type: string
          deprecated: true
        fileId:
          type: string
        uboId:
          type: string
    UboObject:
      type: object
      title: UBO Object
      allOf:
        - $ref: '#/components/schemas/UboAdd'
    UboAdd:
      type: object
      title: Add UBO
      allOf:
        - $ref: '#/components/schemas/UltimateBeneficialOwner'
      required:
        - roles
        - firstName
        - lastName
  examples:
    KycObjectIndividualExample:
      summary: KYC Object (Individual)
      value:
        userId: 35dbc7ea-2877-4a70-add6-b5458289df23
        kycInfo:
          type: individual
          firstName: John
          firstNameLocal: Lil John
          middleName: null
          middleNameLocal: null
          lastName: Doe
          lastNameLocal: null
          nationality: USA
          email: example@gmail.com
          phone: '+12223334444'
          address:
            addressLine1: 123 Main St
            addressLine2: null
            city: San Francisco
            stateProvinceRegion: CA
            postalCode: '94105'
            country: USA
          dateOfBirth: '1990-01-01'
          countryOfBirth: USA
          stateOfBirth: NY
          placeOfBirth: null
          taxIdentificationNumber: '123456789'
          taxResidenceCountry: USA
          govIdType: PASSPORT
          govIdNumber: '123456789'
          govIdFrontUrl: https://example.com
          govIdBackUrl: https://example.com
          govIdCountry: USA
          govIdIssuanceDate: '2020-01-01'
          govIdExpirationDate: '2027-01-01'
          govIdIssuanceAuthority: null
          govIdHandHoldUrl: https://example.com
          proofOfAddressType: UTILITY_BILL
          proofOfAddressUrl: https://example.com
          sofEuQuestionnaire: null
          ipAddress: 108.28.159.21
          idType: NIN
          idNumber: '123456789'
          additionalIdType: null
          additionalIdNumber: null
          purpose: null
          productServiceCategory: null
          supplementaryInfo: null
          supplementaryUrl: null
          documents: []
    KycObjectBusinessExample:
      summary: KYC Object (Business)
      value:
        userId: 35dbc7ea-2877-4a70-add6-b5458289df23
        kycInfo:
          type: business
          businessName: Example Inc
          businessNameLocal: null
          businessDescription: Example business description
          email: example@example.com
          phone: '+12223334444'
          sourceOfFunds: income
          businessType: s_corporation
          businessIndustry: '111110'
          website: example.com
          address:
            addressLine1: 123 Main St
            addressLine2: null
            city: San Francisco
            stateProvinceRegion: CA
            postalCode: '94105'
            country: USA
          taxIdentificationNumberType: EIN
          taxIdentificationNumber: '123456789'
          leiNumber: null,
          daoStatus: false
          transmitsCustomerFunds: false
          formationDocUrl: https://example.com
          proofOfOwnershipUrl: https://example.com
          proofOfAddressType: UTILITY_BILL
          proofOfAddressUrl: https://example.com
          formationDate: '2020-01-01'
          ipAddress: 108.28.159.21
          complianceScreeningExplanation: null
          certificateOfRegistrationDocType: CERTIFICATE_OF_REGISTRATION
          certificateOfRegistrationDocUrl: https://example.com
          certificateNumber: '123456789'
          registrationNumber: '349182744'
          registeredAddress:
            addressLine1: 123 Main St
            addressLine2: null
            city: San Francisco
            stateProvinceRegion: CA
            postalCode: '94105'
            country: USA
          postalAddress:
            addressLine1: 123 Main St
            addressLine2: null
            city: San Francisco
            stateProvinceRegion: CA
            postalCode: '94105'
            country: USA
          alternativeNames: null
          certificateIncorporationDocUrl: https://example.com
          incorporationNumber: '123456789'
          incorporationDate: '2020-01-01'
          incorporationCountry: USA
          incorporationState: NY
          controlScheme: ''
          businessRegistrationDocUrl: https://example.com
          licenseExpirationDate: '2027-01-01'
          productServiceCategory: KC02001001
          shareStructureUrl: https://example.com
          constitutionOrAnnualReportUrl: https://example.com
          articlesOfAssociationUrl: https://example.com
          uboDeclarationUrl: https://example.com
          partnershipMinsOfMeetingUrl: null
          partnershipDeedUrl: null
          certificateOfIncumbencyUrl: null
          flowOfFundsUrl: null
          sourceOfFundsUrl: null
          purpose: PAY_SUPPLIERS
          tradeName: null
          exportCountry: null
          tradeType: null
          supplementaryInfo: null
          supplementaryUrl: null
          dueDiligenceForm: null
          organizationStructureUrl: null
          sofEuQuestionnaire:
            primaryPurpose: investment_purposes
            sourceOfFunds: investment_proceeds
            highRiskActivities:
              - none_of_the_above
            conductsMoneyServices: false
            transmitsCustomerFunds: false
            customerFundsDescription: na
            estimatedAnnualRevenueUsd: '10000000_49999999'
            expectedMonthlyPaymentsUsd: '100000'
            operatesInProhibitedCountries: false
          documents:
            - id: aafddd61-ed30-48bd-b122-bdc3aed54ac2
              type: INCORPORATION_CERT
              subType: SINGLE_SIDE
              issuedCountry: USA
              issuedDate: '2022-01-04T00:00:00+00:00'
              expiryDate: '2030-01-04T00:00:00+00:00'
              number: '837473233'
              url: https://example.com
              fileID: null
              description: null
              uboId: null
          ultimateBeneficialOwners:
            - id: 03aef9fa-0e58-4f42-a22f-46de619b42e0
              role: OWNER_OR_OPERATOR
              roles:
                - UBO
                - DIRECTOR
              businessTitle: CEO
              firstName: John
              firstNameLocal: John
              middleName: null
              middleNameLocal: null
              lastName: Doe
              lastNameLocal: John
              nationality: USA
              email: example@gmail.com
              phone: '+12223334444'
              address:
                addressLine1: 123 Main St
                addressLine2: null
                city: San Francisco
                stateProvinceRegion: CA
                postalCode: '94105'
                country: USA
              dateOfBirth: '1990-01-01'
              countryOfBirth: USA
              stateOfBirth: null
              placeOfBirth: null
              gender: M
              country: USA
              taxIdentificationNumber: '123456789'
              taxResidenceCountry: USA
              ipAddress: null
              hasOwnership: true
              hasControl: true
              isSigner: true
              relationshipEstablishedAt: '2020-01-01'
              govIdCountry: USA
              govIdType: PASSPORT
              govIdNumber: '123456789'
              govIdFrontUrl: https://example.com
              govIdBackUrl: https://example.com
              govIdIssuanceDate: '2020-01-01'
              govIdExpirationDate: '2027-01-01'
              govIdIssuanceAuthority: null
              proofOfAddressType: UTILITY_BILL
              proofOfAddressUrl: https://example.com
              authLetterUrl: https://example.com
              shareProportion: 25
              supplementaryInfo: null
              supplementaryUrl: null
              documents: []
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````