> ## 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.

# Submit KYC

> Submit the user's current KYC data to unlock a specific rail. Any updates to the user's KYC data prior to submission should be made using the [Update KYC](https://docs.hifi.com/api-reference/kyc/update-kyc-information) endpoint.)      

The KYC data will only be submitted if all the required KYC fields for the rail are provided. If any required fields are missing, no submission will occur, and the user must supply the missing information using the [Update KYC](https://docs.hifi.com/api-reference/kyc/update-kyc-information) endpoint.

A successful submission is confirmed when the response includes a KYC status object. If no such object is returned, the submission did not occur.

For more details on required and optional KYC fields for unlocking each rail, visit our [KYC Rails Requirement page](https://docs.hifi.com/docs/rails/overview).
To learn more about KYC, our KYC endpoints, and an example flow for unlocking a rail, see our [KYC Overview page](https://docs.hifi.com/guides/usd-rail/submit-kyb).




## OpenAPI

````yaml https://production.hifi.com/api/v2/openapi.json post /v2/users/{userId}/kyc/submissions
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/submissions:
    post:
      tags:
        - Kyc
      summary: Submit KYC
      description: >
        Submit the user's current KYC data to unlock a specific rail. Any
        updates to the user's KYC data prior to submission should be made using
        the [Update
        KYC](https://docs.hifi.com/api-reference/kyc/update-kyc-information)
        endpoint.)      


        The KYC data will only be submitted if all the required KYC fields for
        the rail are provided. If any required fields are missing, no submission
        will occur, and the user must supply the missing information using the
        [Update
        KYC](https://docs.hifi.com/api-reference/kyc/update-kyc-information)
        endpoint.


        A successful submission is confirmed when the response includes a KYC
        status object. If no such object is returned, the submission did not
        occur.


        For more details on required and optional KYC fields for unlocking each
        rail, visit our [KYC Rails Requirement
        page](https://docs.hifi.com/docs/rails/overview).

        To learn more about KYC, our KYC endpoints, and an example flow for
        unlocking a rail, see our [KYC Overview
        page](https://docs.hifi.com/guides/usd-rail/submit-kyb).
      parameters:
        - $ref: '#/components/parameters/UserIdPathParameter'
      requestBody:
        $ref: '#/components/requestBodies/RailsBody'
      responses:
        '200':
          $ref: '#/components/responses/KycStatusSubmitResponse'
        '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:
    RailsBody:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Rails'
  responses:
    KycStatusSubmitResponse:
      description: Success
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/UsdRailKycSubmissionObject'
              - $ref: '#/components/schemas/SouthAmericaRailKycSubmissionObject'
              - $ref: '#/components/schemas/AfricaGeneralRailKycSubmissionObject'
              - $ref: '#/components/schemas/AfricaNigeriaRailKycSubmissionObject'
              - $ref: '#/components/schemas/GlobalNetworkRailKycSubmissionObject'
          examples:
            KycSubmissionObjectUsdExample:
              $ref: '#/components/examples/KycSubmissionObjectUsdExample'
            KycSubmissionObjectSouthAmericaStandardExample:
              $ref: >-
                #/components/examples/KycSubmissionObjectSouthAmericaStandardExample
            KycSubmissionObjectAfricaGeneralExample:
              $ref: '#/components/examples/KycSubmissionObjectAfricaGeneralExample'
            KycSubmissionObjectAfricaNigeriaExample:
              $ref: '#/components/examples/KycSubmissionObjectAfricaNigeriaExample'
            KycSubmissionObjectGlobalNetworkExample:
              $ref: '#/components/examples/KycSubmissionObjectGlobalNetworkExample'
    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:
    Rails:
      type: object
      properties:
        rails:
          $ref: '#/components/schemas/RailsEnum'
      required:
        - rails
    UsdRailKycSubmissionObject:
      type: object
      title: Kyc Submission Object (USD)
      properties:
        USD:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/KycStatusEnum'
            message:
              type: string
          required:
            - status
            - message
      required:
        - USD
    SouthAmericaRailKycSubmissionObject:
      type: object
      title: Kyc Submission Object (SOUTH_AMERICA_STANDARD)
      properties:
        SOUTH_AMERICA_STANDARD:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/KycStatusEnum'
            warnings:
              type: array
            message:
              type: string
            limit:
              type: object
              additionalProperties: false
            onRamp:
              type: object
              properties:
                brl:
                  type: object
                  properties:
                    pix:
                      $ref: '#/components/schemas/KycRailStatusObject'
            offRamp:
              type: object
              properties:
                brl:
                  type: object
                  properties:
                    pix:
                      $ref: '#/components/schemas/KycRailStatusObject'
                mxn:
                  type: object
                  properties:
                    spei:
                      $ref: '#/components/schemas/KycRailStatusObject'
                cop:
                  type: object
                  properties:
                    achCop:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ars:
                  type: object
                  properties:
                    transfers:
                      $ref: '#/components/schemas/KycRailStatusObject'
          required:
            - status
            - warnings
            - message
            - limit
            - onRamp
            - offRamp
      required:
        - SOUTH_AMERICA_STANDARD
    AfricaGeneralRailKycSubmissionObject:
      type: object
      title: Kyc Submission Object (AFRICA_GENERAL)
      properties:
        AFRICA_GENERAL:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/KycStatusEnum'
            warnings:
              type: array
            message:
              type: string
            onRamp:
              type: object
              properties:
                kes:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ghs:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                tzs:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ugx:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                bwp:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                xaf:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                mwk:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                rwf:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                zmw:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                xof:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
            offRamp:
              type: object
              properties:
                kes:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                zar:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ghs:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                tzs:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ugx:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                bwp:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                xaf:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                mwk:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                rwf:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                zmw:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
                xof:
                  type: object
                  properties:
                    momo:
                      $ref: '#/components/schemas/KycRailStatusObject'
          required:
            - status
            - warnings
            - message
            - onRamp
            - offRamp
      required:
        - AFRICA_GENERAL
    AfricaNigeriaRailKycSubmissionObject:
      type: object
      title: Kyc Submission Object (AFRICA_NIGERIA)
      properties:
        AFRICA_NIGERIA:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/KycStatusEnum'
            warnings:
              type: array
            message:
              type: string
            onRamp:
              type: object
              properties:
                ngn:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
            offRamp:
              type: object
              properties:
                ngn:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
          required:
            - status
            - warnings
            - message
            - onRamp
            - offRamp
      required:
        - AFRICA_NIGERIA
    GlobalNetworkRailKycSubmissionObject:
      type: object
      title: Kyc Submission Object (GLOBAL_NETWORK)
      properties:
        GLOBAL_NETWORK:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/KycStatusEnum'
            warnings:
              type: array
            message:
              type: string
            onRamp:
              type: object
              additionalProperties: false
            offRamp:
              type: object
              additionalProperties: false
              properties:
                brl:
                  type: object
                  properties:
                    pix:
                      $ref: '#/components/schemas/KycRailStatusObject'
                hkd:
                  type: object
                  properties:
                    wire:
                      $ref: '#/components/schemas/KycRailStatusObject'
                mxn:
                  type: object
                  properties:
                    spei:
                      $ref: '#/components/schemas/KycRailStatusObject'
                ngn:
                  type: object
                  properties:
                    bank:
                      $ref: '#/components/schemas/KycRailStatusObject'
          required:
            - status
            - warnings
            - message
            - onRamp
            - offRamp
      required:
        - GLOBAL_NETWORK
    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
    RailsEnum:
      type: string
      description: The type of rail.
      enum:
        - USD
        - SOUTH_AMERICA_STANDARD
        - AFRICA_GENERAL
        - AFRICA_NIGERIA
        - GLOBAL_NETWORK
        - USD_FIAT
    KycStatusEnum:
      type: string
      enum:
        - INACTIVE
        - CREATED
        - PENDING
        - INCOMPLETE
        - RFI_PENDING
        - ACTIVE
        - REJECTED
        - CONTACT_SUPPORT
      description: >
        Kyc Status

        - `INACTIVE`: No KYC submission has been made.

        - `CREATED`: KYC application has been submitted.

        - `PENDING`: Review in progress.

        - `RFI_PENDING`: An RFI (Request for Information) email has been sent
        and is pending user response.

        - `INCOMPLETE`: RFI or resubmission required.

        - `ACTIVE`: User approved and onboarded.

        - `REJECTED`: KYC application rejected.

        - `CONTACT_SUPPORT`: Unexpected issue encountered during KYC review.
    KycRailStatusObject:
      type: object
      properties:
        status:
          type: string
        warnings:
          type: array
        message:
          type: string
  examples:
    KycSubmissionObjectUsdExample:
      summary: KYC Submission Object (USD)
      value:
        USD:
          status: CREATED
          message: >-
            Your KYC application has been successfully created. We will review
            it shortly.
    KycSubmissionObjectSouthAmericaStandardExample:
      summary: KYC Submission Object (SOUTH_AMERICA_STANDARD)
      value:
        SOUTH_AMERICA_STANDARD:
          status: PENDING
          warnings: []
          message: ''
          limit: {}
          onRamp:
            brl:
              pix:
                status: PENDING
                warnings: []
                message: ''
          offRamp:
            brl:
              pix:
                status: PENDING
                warnings: []
                message: ''
            mxn:
              spei:
                status: PENDING
                warnings: []
                message: ''
            cop:
              achCop:
                status: PENDING
                warnings: []
                message: ''
            ars:
              transfers:
                status: PENDING
                warnings: []
                message: ''
    KycSubmissionObjectAfricaGeneralExample:
      summary: KYC Submission Object (AFRICA_GENERAL)
      value:
        AFRICA_GENERAL:
          status: PENDING
          warnings: []
          message: ''
          onRamp:
            kes:
              momo:
                status: PENDING
                warnings: []
                message: ''
            ghs:
              momo:
                status: PENDING
                warnings: []
                message: ''
            tzs:
              bank:
                status: PENDING
                warnings: []
                message: ''
            ugx:
              bank:
                status: PENDING
                warnings: []
                message: ''
            bwp:
              bank:
                status: PENDING
                warnings: []
                message: ''
            xaf:
              bank:
                status: PENDING
                warnings: []
                message: ''
              momo:
                status: PENDING
                warnings: []
                message: ''
            mwk:
              bank:
                status: PENDING
                warnings: []
                message: ''
              momo:
                status: PENDING
                warnings: []
                message: ''
            rwf:
              bank:
                status: PENDING
                warnings: []
                message: ''
            zmw:
              bank:
                status: PENDING
                warnings: []
                message: ''
              momo:
                status: PENDING
                warnings: []
                message: ''
            xof:
              momo:
                status: PENDING
                warnings: []
                message: ''
          offRamp:
            kes:
              bank:
                status: PENDING
                warnings: []
                message: ''
              momo:
                status: PENDING
                warnings: []
                message: ''
            zar:
              bank:
                status: PENDING
                warnings: []
                message: ''
            gns:
              momo:
                status: PENDING
                warnings: []
                message: ''
            tzs:
              momo:
                status: PENDING
                warnings: []
                message: ''
            ugx:
              momo:
                status: PENDING
                warnings: []
                message: ''
            bwp:
              momo:
                status: PENDING
                warnings: []
                message: ''
            xaf:
              momo:
                status: PENDING
                warnings: []
                message: ''
            mwk:
              momo:
                status: PENDING
                warnings: []
                message: ''
            rwf:
              momo:
                status: PENDING
                warnings: []
                message: ''
            zmw:
              momo:
                status: PENDING
                warnings: []
                message: ''
            xof:
              momo:
                status: PENDING
                warnings: []
                message: ''
    KycSubmissionObjectAfricaNigeriaExample:
      summary: KYC Submission Object (AFRICA_NIGERIA)
      value:
        AFRICA_NIGERIA:
          status: PENDING
          warnings: []
          message: ''
          onRamp:
            ngn:
              bank:
                status: PENDING
                warnings: []
                message: ''
          offRamp:
            ngn:
              bank:
                status: PENDING
                warnings: []
                message: ''
    KycSubmissionObjectGlobalNetworkExample:
      summary: KYC Submission Object (GLOBAL_NETWORK)
      value:
        GLOBAL_NETWORK:
          status: ACTIVE
          warnings: []
          message: ''
          onRamp: {}
          offRamp:
            brl:
              pix:
                status: ACTIVE
                warnings: []
                message: ''
            hkd:
              wire:
                status: ACTIVE
                warnings: []
                message: ''
            mxn:
              spei:
                status: ACTIVE
                warnings: []
                message: ''
            ngn:
              bank:
                status: ACTIVE
                warnings: []
                message: ''
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````