Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/hifi-kyc-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Hifi Account Kyc 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: Kyc
description: Kyc endpoints
paths:
/v2/users/{userId}/kyc:
post:
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.hifibridge.com/docs/compliance/regions) for supported regions.
'
tags:
- Kyc
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'
get:
summary: Retrieve KYC information
description: 'Get the KYC information the user currently holds.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
responses:
'200':
$ref: '#/components/responses/KycObjectResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/requirements:
get:
summary: Retrieve KYC requirements
description: "Get the required and optional KYC fields for a specific rail, along with any invalid KYC fields currently held by the user for unlocking the rail.\n\nThe Get KYC Requirements endpoint provides a comprehensive list of required and optional KYC fields needed to initiate a KYC submission (the same set of info available in our [Compliance Guide](https://docs.hifibridge.com/docs/rails/overview)). \nAdditionally, it identifies any invalid fields in the user's current KYC data that need to be updated before submission. This is particularly useful for pre-filling KYC forms and addressing issues proactively.\n\nThis endpoint is intended **only** for use **before** KYC submission. After submitting KYC data, use the [Retrieve KYC status](https://docs.hifibridge.com/api-reference/kyc/retrieve-kyc-status) endpoint to check the submission status and further identify any fields that may still require updates.\n"
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/RailsTypeParameter'
responses:
'200':
$ref: '#/components/responses/KycRequirementResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/submissions:
post:
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.hifibridge.com/api-reference/kyc/update-kyc-information) endpoint.) \n\nThe 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.\n\nA successful submission is confirmed when the response includes a KYC status object. If no such object is returned, the submission did not occur.\n\nFor 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).\nTo 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).\n"
tags:
- Kyc
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'
/v2/users/{userId}/kyc/status:
get:
summary: Retrieve KYC status
description: "Get the user's latest KYC status for a specific rail after a KYC submission. If no KYC submission has been made for the rail, it will have an `INACTIVE` status.\n\nThe Get KYC Status endpoint provides the current KYC status of a rail, including details on any invalid or incomplete fields that may require updates. \nTo address any invalid or incomplete fields, use the [Update KYC endpoint](https://docs.hifibridge.com/api-reference/kyc/update-kyc-information), and then resubmit the data using the [Submit KYC endpoint](https://docs.hifibridge.com/api-reference/kyc/submit-kyc).\n"
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/RailsTypeOptionalParameter'
responses:
'200':
$ref: '#/components/responses/KycStatusResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/kyc/status:
get:
summary: List all KYC statuses
description: 'List all KYC statuses based on the provided filters.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdOptionalParameter'
- $ref: '#/components/parameters/UserNameParameter'
- $ref: '#/components/parameters/UserEmailV2Parameter'
- $ref: '#/components/parameters/RailsTypeOptionalParameter'
- $ref: '#/components/parameters/KycStatusArrayOptionalParameter'
- $ref: '#/components/parameters/LimitParameter'
- $ref: '#/components/parameters/CreatedBeforeParameter'
- $ref: '#/components/parameters/CreatedAfterParameter'
responses:
'200':
$ref: '#/components/responses/AllKycStatusesResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/kyc-link:
post:
summary: Generate a KYC link
description: 'Generate a KYC link to create a user, unlock rails for a user, or submit KYC for a user.
This endpoint allows you to generate a HIFI-hosted KYC link that can be shared with users to collect their KYC information. The collected data can be used for User Creation, KYC Submission, or unlocking KYC rails for the user.
'
tags:
- Kyc
requestBody:
$ref: '#/components/requestBodies/KycLinkBody'
responses:
'200':
$ref: '#/components/responses/KycLinkResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/ubos:
post:
summary: Add a UBO
description: 'Add a UBO to the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
requestBody:
$ref: '#/components/requestBodies/AddUboBody'
responses:
'200':
$ref: '#/components/responses/UboObjectResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
get:
summary: List all UBOs
description: 'Get all UBOs associated with the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
responses:
'200':
$ref: '#/components/responses/UboObjectAllRecordsResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/ubos/{uboId}:
post:
summary: Update a UBO
description: 'Update a UBO for the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/UboIdPathParameter'
requestBody:
$ref: '#/components/requestBodies/UpdateUboBody'
responses:
'200':
$ref: '#/components/responses/UboObjectResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
get:
summary: Retrieve a UBO
description: 'Get a specific UBO associated with the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/UboIdPathParameter'
responses:
'200':
$ref: '#/components/responses/UboObjectResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/documents:
post:
summary: Add documents
description: 'Add documents to the user''s KYC.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
requestBody:
$ref: '#/components/requestBodies/AddDocumentBody'
responses:
'200':
$ref: '#/components/responses/DocumentObjectAllRecordsResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
get:
summary: List all documents
description: 'Get all documents associated with the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
responses:
'200':
$ref: '#/components/responses/DocumentObjectAllRecordsResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
/v2/users/{userId}/kyc/documents/{documentId}:
post:
summary: Update a document
description: 'Update a document for the user.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/DocumentIdPathParameter'
requestBody:
$ref: '#/components/requestBodies/UpdateDocumentBody'
responses:
'200':
$ref: '#/components/responses/DocumentObjectResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'500':
$ref: '#/components/responses/InternalServerErrorResponse'
get:
summary: Retrieve a document
description: 'Get a specific document associated with the user or ubo.
'
tags:
- Kyc
parameters:
- $ref: '#/components/parameters/UserIdPathParameter'
- $ref: '#/components/parameters/DocumentIdPathParameter'
responses:
'200':
$ref: '#/components/responses/DocumentObjectResponse'
'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
RailsTypeOptionalParameter:
name: rails
in: query
schema:
$ref: '#/components/schemas/RailsEnum'
description: The type of rail.
required: false
UserIdOptionalParameter:
name: userId
in: query
schema:
type: string
description: The user ID.
required: false
CreatedAfterParameter:
name: createdAfter
in: query
schema:
type: string
format: date
description: 'ISO format: YYYY-MM-DD'
required: false
RailsTypeParameter:
name: rails
in: query
schema:
$ref: '#/components/schemas/RailsEnum'
required: true
CreatedBeforeParameter:
name: createdBefore
in: query
schema:
type: string
format: date
description: 'ISO format: YYYY-MM-DD'
required: false
UserNameParameter:
name: userName
in: query
schema:
type: string
required: false
DocumentIdPathParameter:
name: documentId
in: path
schema:
type: string
description: The ID of the document.
required: true
UboIdPathParameter:
name: uboId
in: path
schema:
type: string
description: The ID of the Ultimate Beneficial Owner (UBO).
required: true
LimitParameter:
name: limit
in: query
schema:
type: string
minimum: 1
maximum: 100
description: default to 10, maximum to 100
required: false
KycStatusArrayOptionalParameter:
name: status
in: query
schema:
type: array
items:
$ref: '#/components/schemas/KycStatusEnum'
minItems: 1
description: The statuses of the KYC.
required: false
UserEmailV2Parameter:
name: userEmail
in: query
schema:
type: string
required: false
schemas:
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.
'
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:
type: object
description: Address of the user.
$ref: '#/components/schemas/Address'
dateOfBirth:
type: string
description: Date of birth in format yyyy-mm-dd.
format: date
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
'
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:
type: object
description: Address of the user.
$ref: '#/components/schemas/Address'
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. \nThree-letter alpha-3 country code as defined in the ISO 3166-1 spec.\n"
taxIdentificationNumber:
type: string
description: "Taxpayer identification number that is unique to each taxpayer.\nFor individual US customers, SSN should be used. \nFor business US customers, EIN should be used.\n"
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. \n\n(See [here](https://docs.hifibridge.com/docs/compliance/regions) for the list of unsupported countries/states.)\n"
format: ipv4
govIdType:
type: string
enum:
- PASSPORT
- ID_CARD
- DRIVERS
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.hifibridge.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:
type: object
title: Source of Funds and Expected Use Questionnaire
description: Source of Funds and Expected Use Questionnaire
$ref: '#/components/schemas/SofEuKycQuestionnaire'
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. \n\nLook up the purpose code [here](https://docs.hifibridge.com/docs/compliance/references/account-purposes).\n"
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.hifibridge.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
'
USDRailBusinessDocReqOptObject:
type: object
title: Document Group Requirements (Business)
properties:
legalPresence:
$ref: '#/components/schemas/DocGroupRequirementObject'
ownershipStructure:
$ref: '#/components/schemas/DocGroupRequirementObject'
companyDetails:
$ref: '#/components/schemas/DocGroupRequirementObject'
controlStructure:
$ref: '#/components/schemas/DocGroupRequirementObject'
AllKycStatusesObject:
type: array
items:
type: object
properties:
user:
type: object
properties:
id:
type: string
format: uuid
type:
type: string
enum:
- individual
- business
name:
type: string
email:
type: string
format: email
rails:
$ref: '#/components/schemas/RailsEnum'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
status:
$ref: '#/components/schemas/KycStatusEnum'
ReviewDetailsBusinessObject:
type: object
title: Review Details Business Object
properties:
companyInfo:
$ref: '#/components/schemas/VerificationStatusObject'
companyDocuments:
$ref: '#/components/schemas/DocumentVerificationStatusObject'
questionnaire:
$ref: '#/components/schemas/VerificationStatusObject'
ultimateBeneficialOwners:
type: object
properties:
reviewResult:
$ref: '#/components/schemas/ReviewResultObject'
details:
type: array
items:
allOf:
- type: object
properties:
id:
type: string
format: uuid
description: UBO ID.
- $ref: '#/components/schemas/UsdRailIndividualKycStatusObject'
DocumentVerificationStatusObject:
type: object
title: Document Verification Status
properties:
reviewResult:
$ref: '#/components/schemas/ReviewResultObject'
details:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
type:
type: string
description: Document type.
subType:
type: string
description: Document subType.
reviewResult:
$ref: '#/components/schemas/ReviewResultObject'
KycBusinessObject:
type: object
title: KYC Object (Business)
# --- truncated at 32 KB (144 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hifi/refs/heads/main/openapi/hifi-kyc-api-openapi.yml