---
title: "Submit KYC"
method: POST
path: "/v2/users/{userId}/kyc/submissions"
tags: ["Kyc"]
---

# Submit KYC

`POST /v2/users/{userId}/kyc/submissions`

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.hifibridge.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.hifibridge.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.hifibridge.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.hifibridge.com/guides/usd-rail/submit-kyb).

## Path parameters

- `userId` string, required

## Request body

- Rails
  - `rails` 'USD' | 'SOUTH_AMERICA_STANDARD' | 'AFRICA_GENERAL' | 'AFRICA_NIGERIA' | 'GLOBAL_NETWORK', required — The type of rail.

## Response `200`

Success

- union
  - UsdRailKycSubmissionObject
    - `USD` object, required
      - `status` 'INACTIVE' | 'CREATED' | 'PENDING' | 'INCOMPLETE' | 'RFI_PENDING' | 'ACTIVE' | 'REJECTED' | 'CONTACT_SUPPORT', required — 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.
      - `message` string, required
  - SouthAmericaRailKycSubmissionObject
    - `SOUTH_AMERICA_STANDARD` object, required
      - `status` 'INACTIVE' | 'CREATED' | 'PENDING' | 'INCOMPLETE' | 'RFI_PENDING' | 'ACTIVE' | 'REJECTED' | 'CONTACT_SUPPORT', required — 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.
      - `warnings` unknown[], required
        - unknown
      - `message` string, required
      - `limit` object, required
      - `onRamp` object, required
        - `brl` object
          - `pix` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
      - `offRamp` object, required
        - `brl` object
          - `pix` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `mxn` object
          - `spei` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `cop` object
          - `achCop` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ars` object
          - `transfers` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
  - AfricaGeneralRailKycSubmissionObject
    - `AFRICA_GENERAL` object, required
      - `status` 'INACTIVE' | 'CREATED' | 'PENDING' | 'INCOMPLETE' | 'RFI_PENDING' | 'ACTIVE' | 'REJECTED' | 'CONTACT_SUPPORT', required — 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.
      - `warnings` unknown[], required
        - unknown
      - `message` string, required
      - `onRamp` object, required
        - `kes` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ghs` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `tzs` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ugx` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `bwp` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `xaf` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `mwk` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `rwf` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `zmw` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `xof` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
      - `offRamp` object, required
        - `kes` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `zar` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ghs` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `tzs` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ugx` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `bwp` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `xaf` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `mwk` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `rwf` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `zmw` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `xof` object
          - `momo` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
  - AfricaNigeriaRailKycSubmissionObject
    - `AFRICA_NIGERIA` object, required
      - `status` 'INACTIVE' | 'CREATED' | 'PENDING' | 'INCOMPLETE' | 'RFI_PENDING' | 'ACTIVE' | 'REJECTED' | 'CONTACT_SUPPORT', required — 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.
      - `warnings` unknown[], required
        - unknown
      - `message` string, required
      - `onRamp` object, required
        - `ngn` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
      - `offRamp` object, required
        - `ngn` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
  - GlobalNetworkRailKycSubmissionObject
    - `GLOBAL_NETWORK` object, required
      - `status` 'INACTIVE' | 'CREATED' | 'PENDING' | 'INCOMPLETE' | 'RFI_PENDING' | 'ACTIVE' | 'REJECTED' | 'CONTACT_SUPPORT', required — 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.
      - `warnings` unknown[], required
        - unknown
      - `message` string, required
      - `onRamp` object, required
      - `offRamp` object, required
        - `brl` object
          - `pix` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `hkd` object
          - `wire` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `mxn` object
          - `spei` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string
        - `ngn` object
          - `bank` KycRailStatusObject
            - `status` string
            - `warnings` unknown[]
              - …
            - `message` string

## Other responses

- `401` — Unauthorized
- `404` — Resource not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/hifibridge/apis/hifi-api.md) · [All operations](https://skmtc.net/hifibridge/apis/hifi-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hifibridge/hifi-api/revisions/74d9e530fbea/schema)
