Skip to main content
Use the KYC Status endpoint to check where a user’s verification stands, diagnose issues, and confirm when they’re ready to use a rail.
This guide focuses on the USD rail. Requirements and response structure differ for other rails—see the API Reference for complete details.

Status Overview

StatusDescription
INACTIVENo KYC submitted yet—call Submit KYC to begin verification
INCOMPLETESubmitted data needs updates—fix flagged items and resubmit
PENDINGKYC submitted and is moving through automated compliance checks or bank onboarding
MANUAL_REVIEWCompliance team manually reviewing before final decision
RFI_PENDINGCompliance requested additional information—check your compliance email
ACTIVEUser passed compliance review and can use the USD rail
REJECTEDPermanently denied for USD rail—resubmission not permitted
CONTACT_SUPPORTSystem couldn’t confirm status—contact HIFI support
Contact support if an applicant remains in PENDING or MANUAL_REVIEW for more than 24 hours.

Response Structure

Top-Level Fields

The KYC status response contains four top-level fields:
status
string
Current KYC application status
message
string
Human-readable context for developers
reviewResult
object
Detailed screening outcome from the compliance engine
details
object
Breakdown of compliance categories and review results

Review Result

Each compliance category includes a reviewResult object with a general summary of the compliance review outcome:
reviewAnswer
string
Screening outcome: APPROVED or DECLINED
reviewRejectType
string
Resubmission permission: RETRY (can resubmit) or FINAL (hard rejection). Only present when reviewAnswer is DECLINED.
rejectReasons
array[string]
Enumerated rejection reasons. Only present when reviewAnswer is DECLINED.
comment
string
Human-readable explanation of the rejection. Only present when reviewAnswer is DECLINED.

Review Details

The details object returns the compliance review outcome for each KYC category. Every category includes a reviewResult, and documentation-based categories also expose the individual files that were reviewed.
personalInfo
object
Non-document information: name, address, date of birth, tax ID
identity
object
Government ID documentation review results
proofOfAddress
object
Proof of address documentation (if submitted)
questionnaire
object
Source of funds and intended use responses

Response Breakdown

  • ACTIVE
  • INACTIVE
  • PENDING
  • MANUAL_REVIEW
  • INCOMPLETE
  • RFI_PENDING
  • REJECTED
  • CONTACT_SUPPORT
User passed all compliance checks and completed bank onboarding. They can now use the USD rail.
{
  "status": "ACTIVE",
  "message": "",
  "reviewResult": {
    "reviewAnswer": "APPROVED",
    "reviewRejectType": "",
    "rejectReasons": [],
    "comment": ""
  },
  "details": {
    "identity": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [
        {
          "id": "989c9fae-9846-48e0-a5c1-2035e9cbd323",
          "type": "ID_CARD",
          "subType": "FRONT_SIDE",
          "reviewResult": {
            "reviewAnswer": "APPROVED",
            "reviewRejectType": "",
            "rejectReasons": [],
            "comment": ""
          }
        }
      ]
    },
    "questionnaire": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": []
    },
    "personalInfo": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": []
    }
  }
}