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:
Status Description
INACTIVE No KYB submitted yet—call Submit KYC to begin verification INCOMPLETE Submitted data needs updates—fix flagged items and resubmit PENDING KYB submitted and is moving through automated compliance checks or bank onboarding MANUAL_REVIEW Compliance team manually reviewing before final decision RFI_PENDING Compliance requested additional information—check your compliance email ACTIVE Business passed compliance review and can use the USD rail REJECTED Permanently denied for USD rail—resubmission not permitted CONTACT_SUPPORT System 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.
Current KYB application status
Human-readable context for developers
Overall decision for the KYB submission (APPROVED, DECLINED, or empty while pending review).
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:
Screening outcome: APPROVED or DECLINED
Resubmission permission: RETRY (can resubmit) or FINAL (hard rejection). Only present when reviewAnswer is DECLINED.
Enumerated rejection reasons. Only present when reviewAnswer is DECLINED.
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.
Structured business data: legal name, registered address, registration number, tax identifiers, and other non-document metadata. Outcome of the automated compliance checks for the provided company attributes.
Responses to the compliance questionnaire (purpose of account, expected transaction volume, counterparties, source of funds). Approval state for the questionnaire answers. DECLINED responses include the reason and remediation comment.
Document verification for the legal presence requirements. Aggregate result for all submitted documents in this category.
List of every uploaded document that was reviewed. UUID for the document uploaded through Update KYC.
Document category such as INCORPORATION_CERT, INFORMATION_STATEMENT, or PROOF_OF_ADDRESS.
Optional qualifier like SINGLE_SIDE or FRONT_SIDE.
Outcome for the individual document; comments explain what to resubmit when declined.
Document verification for the ownership structure requirements. Aggregate result for all submitted documents in this category.
List of every uploaded document that was reviewed. UUID for the document uploaded through Update KYC.
Document category such as INCORPORATION_CERT, INFORMATION_STATEMENT, or PROOF_OF_ADDRESS.
Optional qualifier like SINGLE_SIDE or FRONT_SIDE.
Outcome for the individual document; comments explain what to resubmit when declined.
Document verification for the company details requirements. Aggregate result for all submitted documents in this category.
List of every uploaded document that was reviewed. UUID for the document uploaded through Update KYC.
Document category such as INCORPORATION_CERT, INFORMATION_STATEMENT, or PROOF_OF_ADDRESS.
Optional qualifier like SINGLE_SIDE or FRONT_SIDE.
Outcome for the individual document; comments explain what to resubmit when declined.
Document verification for the control structure requirements. Aggregate result for all submitted documents in this category.
List of every uploaded document that was reviewed. UUID for the document uploaded through Update KYC.
Document category such as INCORPORATION_CERT, INFORMATION_STATEMENT, or PROOF_OF_ADDRESS.
Optional qualifier like SINGLE_SIDE or FRONT_SIDE.
Outcome for the individual document; comments explain what to resubmit when declined.
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). Combined decision for the UBO set. If declined, consult each entry for remediation guidance.
One entry per Ultimate Beneficial Owner. UUID used to update the UBO’s information via Update KYC.
Current onboarding status for that UBO (ACTIVE, INCOMPLETE, etc.).
Contextual message for developers or support agents.
Decision for the specific UBO.
Nested verification categories (personalInfo, identity, proofOfAddress, questionnaire) following the individual KYC schema.
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" : ""
}
}
]
}
}
}
See all 84 lines
No KYB submission made yet. Call the Submit KYC endpoint to begin verification. {
"status" : "INACTIVE" ,
"message" : "The rail is not active." ,
"reviewResult" : {},
"details" : {}
}
Application is moving through automated compliance screening or bank onboarding. {
"status" : "PENDING" ,
"message" : "" ,
"reviewResult" : {},
"details" : {
...
}
}
See all 8 lines
Contact support if status doesn’t change within 3 days for business applicants.
Compliance team is manually reviewing the application. This typically follows PENDING when additional investigation is needed. {
"status" : "MANUAL_REVIEW" ,
"message" : "" ,
"reviewResult" : {},
"details" : {}
}
Contact support if status doesn’t change within 3 days.
Submitted data needs updates before verification can continue. Use the reviewResult in each compliance category to identify what needs fixing. {
"status" : "INCOMPLETE" ,
"message" : "" ,
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "UNFILLED_ID" ],
"comment" : ""
},
"details" : {
"companyInfo" : {
"reviewResult" : {
"reviewAnswer" : "APPROVED" ,
"reviewRejectType" : "" ,
"rejectReasons" : [],
"comment" : ""
}
},
"questionnaire" : {
"reviewResult" : {
"reviewAnswer" : "APPROVED" ,
"reviewRejectType" : "" ,
"rejectReasons" : [],
"comment" : ""
}
},
"legalPresence" : {
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "SCREENSHOTS" ],
"comment" : "Screenshots aren't accepted. Please upload a live photo of the document."
},
"details" : [ ... ]
},
"ownershipStructure" : {
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "SCREENSHOTS" ],
"comment" : "Screenshots aren't accepted. Please upload a live photo of the document."
},
"details" : [ ... ]
},
"companyDetails" : {
"reviewResult" : {
"reviewAnswer" : "APPROVED" ,
"reviewRejectType" : "" ,
"rejectReasons" : [],
"comment" : ""
},
"details" : [ ... ]
},
"controlStructure" : {
"reviewResult" : {
"reviewAnswer" : "APPROVED" ,
"reviewRejectType" : "" ,
"rejectReasons" : [],
"comment" : ""
},
"details" : [ ... ]
},
"ultimateBeneficialOwners" : {
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "SCREENSHOTS" ],
"comment" : ""
},
"details" : [
{
"id" : "74441b74-caab-5f74-8e24-3fcee83faac8" ,
"status" : "INCOMPLETE" ,
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "SCREENSHOTS" ],
"comment" : ""
},
"details" : {
"identity" : {
"reviewResult" : {
"reviewAnswer" : "DECLINED" ,
"reviewRejectType" : "RETRY" ,
"rejectReasons" : [ "SCREENSHOTS" ],
"comment" : "Screenshots aren't accepted. Please upload a live photo of the document."
}
}
}
}
]
}
}
}
See all 94 lines
How to resolve:
Check the reviewResult in each compliance category for DECLINED items
Read the comment field for specific guidance
For company data: Use Update KYC to update non-document information, or Update Document / Add Document to update documentation.
For UBO data: Update the specific UBO’s information using their id with Update UBO or Update Document / Add Document to update documentation.
Call Submit KYC to trigger a new review
Business compliance category mapping:
Category Contains
companyInfo Business name, address, registration number, tax ID questionnaire Source of funds and intended use responses legalPresence Legal presence documentation ownershipStructure Ownership structure documentation companyDetails Company details documentation controlStructure Control structure documentation ultimateBeneficialOwners Individual KYC for each UBO (see KYC Status )
For compliance reasons, detailed rejection information is only available for documentation—not for other categories. Each UBO follows the individual KYC structure detailed in the KYC Status guide . Compliance sent a Request for Information (RFI) to your compliance email asking for additional details about this business. {
"status" : "RFI_PENDING" ,
"message" : "" ,
"reviewResult" : {},
"details" : {}
}
Monitor your compliance inbox for RFI requests from @hifi.com
Business is permanently denied for the USD rail. Resubmission via API is not permitted. {
"status" : "REJECTED" ,
"message" : "" ,
"reviewResult" : {},
"details" : {}
}
Contact support if you believe this status is incorrect.
System couldn’t process the KYB or return the correct status. Contact HIFI support for resolution. {
"status" : "CONTACT_SUPPORT" ,
"message" : "" ,
"reviewResult" : {},
"details" : {}
}