Skip to main content
POST
Initiate KYC Verification

Overview

Initiate an optional automated KYC (Know Your Customer) verification session for a cardholder. This creates a secure verification session where the cardholder completes identity document capture and liveness verification. KYC verification is not required for card issuance — you can issue cards to cardholders without completing KYC. Use this endpoint when you need to verify a cardholder’s identity for compliance or enhanced trust. This is the self-service KYC path where the cardholder completes verification themselves. If you already have the cardholder’s ID documents and want to submit them on their behalf, use Submit KYC Documents instead. The verification result is delivered asynchronously via webhook (cardholder.kyc_approved or cardholder.kyc_rejected).

Endpoint

Scope required: cardholders:write

Path Parameters

Request Body

No request body required.

How It Works

  1. Your app calls this endpoint to get a verification URL
  2. Redirect the cardholder to the verificationUrl
  3. The cardholder completes ID document capture and liveness verification
  4. FYATU sends a webhook to your app with the result (cardholder.kyc_approved or cardholder.kyc_rejected)

Verification Fee

A fee is charged per successful verification, based on your plan:
  • The fee is not charged upfront - no wallet hold or deduction when initiating verification
  • Added to your invoice only when verification is approved (successful)
  • Not charged when verification is declined, abandoned, or expires
  • The fee appears as a line item on your next monthly invoice

Prerequisites

  • Cardholder kycStatus must be UNSUBMITTED or REJECTED

Example Usage

Example Response

Success (201)

Session Already In Progress (200)

If a verification session is already active, the existing session is returned:

KYC Status Flow

Webhook Events

After the cardholder completes (or abandons) verification, you’ll receive one of these webhooks:

cardholder.kyc_approved

cardholder.kyc_rejected

Error Responses

Already Verified (409)

Invalid State (409)

Provider Error (503)

Store the verificationUrl and provide it to the cardholder. If the cardholder doesn’t complete verification, you can call this endpoint again to get a new session after the previous one expires.
The verification fee is only charged on successful verification and added to your next monthly invoice. If the cardholder abandons the session or verification fails, no fee is charged.

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth/token

Path Parameters

id
string
required

Unique cardholder identifier

Response

An active session already exists; the existing session is returned

success
boolean
Example:

true

status
integer
Example:

200

message
string
Example:

"KYC session already in progress"

data
object