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
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
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
1
User requests a code
Call send-otp after prepare. Show a “check your inbox” state; do not log the OTP in client analytics.
2
User enters the code
Call verify-otp with
email + code. On success, move to the KYC session step.3
Retries
If you receive
otp_expired or otp_max_attempts, call send-otp again to issue a fresh code (subject to your product rules and abuse limits).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)