After Prepare, the user must prove they own the email before StarkFi allows a KYC session. This phase uses two calls: send OTP and verify OTP.Documentation Index
Fetch the complete documentation index at: https://docs.starkfi.io/llms.txt
Use this file to discover all available pages before exploring further.
Always call
POST /kyc/prepare for that email first. If the address is not registered for KYC, send OTP returns 404 user_not_found.1. Send verification code
Request
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Same address used in prepare. The service normalizes to lowercase for lookup. |
Example
Responses (send OTP)
201 — code sentstatus: missing_params — "email is required"
400 — already verified
status: email_already_verified — "Email is already verified"
404 — not registered for KYC
status: user_not_found — "User not found in whitelist"
500 — server error
status: server_error — "Server failed, try again later"
2. Confirm the code
Request
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Same email as send OTP. |
code | string | Yes | One-time code from the user’s inbox. |
Example
Responses (verify OTP)
200 — verifiedPOST /kyc/create/verify_public_kyc.
400 — missing fields
status: missing_params — "email and code are required"
400 — invalid or unusable code
status is one of: otp_invalid, otp_expired, otp_max_attemptsHuman-readable
message, for example:
Invalid codeCode expired, please request a new oneMax attempts reached, please request a new code
status: email_already_verified
404 — not registered
status: user_not_found
500 — server error
status: server_error
Flow in your product
User requests a code
Call send-otp after prepare. Show a “check your inbox” state; do not log the OTP in client analytics.
Email subject and template are controlled by StarkFi. If deliverability is an issue, work with StarkFi support for domain and inbox guidance.
Related
- Previous: Prepare
- Overview: Getting started
- Next: start KYC session —
POST /kyc/create/verify_public_kyc(dedicated guide can follow)
.png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)