Skip to main content
To check where a business’s verification stands, diagnose issues, and confirm when they’re ready to use a rail, use the KYC Status endpoint. This guide focuses on interpreting the business-specific response.
Read the KYC Status guide first—it explains the compliance screening structure without Ultimate Beneficial Owners.
This guide focuses on the USD rail. Requirements and response structure differ for other rails—see the API Reference for complete details.

Status Overview

Business KYB applications move through the same statuses as individual KYC:
StatusDescription
INACTIVENo KYB submitted yet—call Submit KYC to begin verification
INCOMPLETESubmitted data needs updates—fix flagged items and resubmit
PENDINGKYB 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
ACTIVEBusiness 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 a business applicant remains in PENDING or MANUAL_REVIEW for more than 3 days.

Response Structure

Top-Level Fields

The KYB status response has the same top-level structure as individual KYC, but with business-specific compliance categories in the details object.
status
string
Current KYB application status
message
string
Human-readable context for developers
reviewResult
object
Overall decision for the KYB submission (APPROVED, DECLINED, or empty while pending review).
details
object
Breakdown of business compliance categories and review results

Review Result

Each compliance category includes a reviewResult object with a general summary of the compliance review outcome. The same schema is used for the top-level reviewResult field:
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 information category. Every category includes a reviewResult, and some categories provide additional nested data.
companyInfo
object
Structured business data: legal name, registered address, registration number, tax identifiers, and other non-document metadata.
questionnaire
object
Responses to the compliance questionnaire (purpose of account, expected transaction volume, counterparties, source of funds).
Document verification for the legal presence requirements.
ownershipStructure
object
Document verification for the ownership structure requirements.
companyDetails
object
Document verification for the company details requirements.
controlStructure
object
Document verification for the control structure requirements.
ultimateBeneficialOwners
object
Aggregated status for all UBOs. It contains a category-level reviewResult and a details array with one entry per UBO. Each UBO entry mirrors the individual KYC structure described in the KYC Status guide (personal info, identity documents, proof of address, questionnaire).

Response Breakdown

  • ACTIVE
  • INACTIVE
  • PENDING
  • MANUAL_REVIEW
  • INCOMPLETE
  • RFI_PENDING
  • REJECTED
  • CONTACT_SUPPORT
Business 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": {
    "companyInfo": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      }
    },
    "questionnaire": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      }
    },
    "legalPresence": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [...]
    },
	"ownershipStructure": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [...]
    },
	"companyDetails": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [...]
    },
	"controlStructure": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [...]
    },
    "ultimateBeneficialOwners": {
      "reviewResult": {
        "reviewAnswer": "APPROVED",
        "reviewRejectType": "",
        "rejectReasons": [],
        "comment": ""
      },
      "details": [
        {
          "id": "74441b74-caab-5f74-8e24-3fcee83faac8",
          "status": "ACTIVE",
          "reviewResult": {
            "reviewAnswer": "APPROVED",
            "reviewRejectType": "",
            "rejectReasons": [],
            "comment": ""
          }
        }
      ]
    }
  }
}