How KYC Links Work
1
Generate KYC link
Create a unique KYC link for a user, optionally specifying which rails
require verification.
2
Present to user
Share the link with the user via email or redirect them to the KYC page.
3
User completes KYC
User fills out their personal information and uploads required documents.
4
Verification and redirect
HIFI verifies the information and redirects the user back to your
application.
Use Cases
KYC links support two primary workflows:Create New User with KYC
Generate a KYC link without providing a user ID. The link will:- Create a new HIFI user account
- Collect KYC information for specified rails
- Return the new user ID after completion
Submit KYC for Existing User
Generate a KYC link with a user ID to collect or update KYC information for an existing user. Best for: Adding new rails, updating information, or re-submitting after rejection.Creating KYC Links
Use the Generate KYC Link endpoint to create KYC links. Request:Type of user account –
INDIVIDUAL or BUSINESS. Required if creating a
new user.Existing user ID. Required if unlocking rails for an existing user.
Array of KYC rails to unlock –
USD, SOUTH_AMERICA_STANDARD,
AFRICA_GENERAL, AFRICA_NIGERIAURL to redirect to after KYC information is submitted (the userId will be
appended as a query parameter)
Email address to send the KYC link to (production only)
Template ID to use for the KYC link
For detailed field documentation, see the Generate KYC
Link API reference.
Implementation Options
Option 1: Redirect Flow
Redirect users to the KYC link URL for a fully hosted experience.redirectUrl with the user ID appended:
Option 2: Email Link
Have HIFI automatically email the KYC link to the user (production only).Production Only: The
recipientEmail feature is only available in
production environments for security reasons. In sandbox, you must manually
share the link.Handling KYC Completion
After users complete KYC, monitor their status and handle the redirect.Redirect URL Parameters
When users complete KYC, they’re redirected to yourredirectUrl with query parameters:
Monitoring KYC Status
Use webhooks to receive real-time KYC status updates:Rails and KYC Requirements
Different rails have different KYC requirements. See the Rails Overview for detailed information about each rail’s capabilities and KYC requirements.Multiple Rails: You can request KYC for multiple rails in a single link by
passing multiple rails in the
rails array. The user completes one form that
satisfies all requirements.Custom Templates
Brand the KYC page with your company logo and colors:- Contact Support: Request custom template creation
- Provide Branding: Share your logo and color scheme
- Receive Template ID: HIFI creates a template and provides the ID
- Use Template ID: Include
templateIdwhen generating links
Key Concepts
User Creation via KYC Link
User Creation via KYC Link
When you generate a KYC link without a
userId, the KYC flow will:- Create a new HIFI user account automatically
- Collect KYC information during the flow
- Return the new user ID via redirect URL
Updating Existing Users
Updating Existing Users
Generate a KYC link with a
userId to submit or update KYC for an existing user.Use cases:- Adding KYC for a new rail
- Updating expired documents
- Re-submitting after rejection
KYC Status States
KYC Status States
Users progress through several KYC statuses: - NOT_SUBMITTED: No KYC
information submitted yet - PENDING: KYC submitted and under review -
APPROVED: KYC verified and approved - REJECTED: KYC rejected (see
rejection reason) - EXPIRED: KYC documents expired (rare, annual review)
Subscribe to KYC webhooks to track status changes in real-time.
Session Tokens
Session Tokens
The
sessionToken in the kycLinkUrl can be used for programmatic KYC submission if you want to build your own KYC UI instead of using the hosted page. Contact support for documentation on this advanced use case.Getting Help
- 📧 Email: support@hifi.com
- 💬 Slack: Message us in our shared Slack channel
Related Resources
- Users - Understanding user accounts and KYC status
- Webhooks - Monitor KYC status changes in real-time
- Offramp Accounts - KYC is required for offramping
- API Reference - Complete endpoint documentation