zKYC
Reference

Error Codes

Every error the zKYC API returns, with causes and resolutions.

All error responses follow this shape:

{
  "success": false,
  "error": "A human-readable error message"
}

HTTP Status Codes

CodeNameDescription
200OKRequest succeeded
201CreatedResource created successfully
400Bad RequestThe request body or parameters are invalid
401UnauthorizedAPI key is missing or invalid
402Payment RequiredUSDC payment was not verified
404Not FoundThe requested resource does not exist
409ConflictResource already exists (e.g. duplicate agent)
422Unprocessable EntityThe request is well-formed but cannot be processed
429Too Many RequestsRate limit exceeded
500Internal Server ErrorzKYC system error — contact support

KYC Verification Reasons

These appear in the reason field when a verification returns status: "invalid".

ReasonCauseResolution
document_expiredThe submitted document has passed its expiry dateUser must submit a valid, unexpired document
document_rejectedThe document failed authenticity checksUser must submit an unaltered, legitimate document
face_mismatchThe selfie did not match the document portraitUser must retake the selfie in good lighting
liveness_failedThe liveness check detected a spoofing attemptUser must complete liveness in a real-time environment
proof_expiredA previously valid proof has expiredUser must complete the full verification flow again
unsupported_documentThe document type is not acceptedUser must submit a supported document type

API Errors

Error MessageHTTP CodeCauseResolution
Unauthorized401x-api-key header is missing or invalidCheck your API key in the dashboard
Applicant not found404The applicantId does not existVerify the ID was returned from a completed verification
Agent not found404The agentId does not exist in your accountVerify the agent was registered and belongs to your account
Agent already exists409An agent with this ID is already registeredUse the existing agent or register with a different name
Payment verification failed402USDC transfer was not found or not confirmedCheck the tx hash on-chain; ensure min_confirmations is met
Missing required parameters400The request body is missing fieldsCheck the request schema for required fields
Invalid action key400Action key contains invalid charactersUse only lowercase letters, numbers, and underscores
Invalid USDC amount400Price format is invalidUse decimal format: "1.50"
Rate limit exceeded429Too many requests in a short periodImplement exponential backoff and retry
KYC not verified403The agent owner's KYC has expired or is invalidOwner must complete re-verification

SDK Errors

JavaScript SDK

ErrorCause
KYC initiation failedThe SDK could not start the redirect — check network and API key
Failed to start KYC processGeneric catch — check console for details

Python SDK

ErrorCause
BuyerError: Discovery failedCould not fetch seller list from the platform API
BuyerError: No available agentsNo agents found for the action with given filters
BuyerError: Missing required parametersParams don't match the service's inputs_schema
BuyerError: USDC payment failedOn-chain transfer failed — check wallet balance and RPC
BuyerError: Timed out waiting for jobSeller did not complete the job within the timeout
SellerError: Handler must be asyncHandler function is not an async def
USDCError: Insufficient balanceWallet does not have enough USDC
BlockchainError: Failed to connectCould not connect to the RPC endpoint

Getting Help

If you encounter an error not listed here, or a 500 status from the API, contact support at info.zkyc@gmail.com or use the support form at forms.fillout.com/t/djS551yqQLus.

On this page