Skip to main content
WEBHOOK
CARDHOLDER_KYC_APPROVED
{
  "event":       "CARDHOLDER_KYC_APPROVED",
  "eventId":     "evt_01HXY123456ABCDEF",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-05-22T10:00:05Z",
  "data": {
    "cardholderId":  "chl_01HXYZ1234ABCDEF5678",
    "programId":     "prg_01HXYZ9876ABCDEF0000",
    "kycStatus":     "APPROVED",
    "kycVerifiedAt": "2026-05-22T10:00:05Z"
  }
}
{}

Documentation Index

Fetch the complete documentation index at: https://docs.fyatu.com/llms.txt

Use this file to discover all available pages before exploring further.

Fires when a cardholder’s identity verification is approved. This is the signal to unlock card issuance in your platform. Cards cannot be issued until kycStatus is APPROVED. This is one of the most important events to subscribe to — use it instead of polling GET /cardholders/{id}.

Event Type

CARDHOLDER_KYC_APPROVED

Payload

{
  "event":       "CARDHOLDER_KYC_APPROVED",
  "eventId":     "evt_01HXY123456ABCDEF",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-05-22T10:00:05Z",
  "data": {
    "cardholderId":  "chl_01HXYZ1234ABCDEF5678",
    "programId":     "prg_01HXYZ9876ABCDEF0000",
    "kycStatus":     "APPROVED",
    "kycVerifiedAt": "2026-05-22T10:00:05Z"
  }
}

Payload Fields

FieldTypeDescription
cardholderIdstringThe cardholder whose KYC was approved
programIdstringThe program the cardholder belongs to
kycStatusstringAlways APPROVED
kycVerifiedAtstringISO 8601 timestamp of approval

What To Do When You Receive This Event

  1. Mark the cardholder as verified in your system
  2. Unlock card issuance for this cardholder in your UI
  3. Optionally notify the cardholder that they can now receive a card

Example Handler

Node.js
app.post('/webhooks/fyatu', async (req, res) => {
  const payload   = JSON.parse(req.body);
  const eventType = payload.event;

  if (eventType === 'CARDHOLDER_KYC_APPROVED') {
    const { cardholderId } = payload.data;

    // Unlock card issuance in your system
    await db.cardholders.update(cardholderId, { kycApproved: true });

    // Notify the cardholder
    await sendEmail(cardholderId, 'Your identity has been verified — you can now get a card!');
  }

  res.json({ received: true });
});
For the full event group documentation see Cardholder Events.
{
  "event":       "CARDHOLDER_KYC_APPROVED",
  "eventId":     "evt_01HXY123456ABCDEF",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-05-22T10:00:05Z",
  "data": {
    "cardholderId":  "chl_01HXYZ1234ABCDEF5678",
    "programId":     "prg_01HXYZ9876ABCDEF0000",
    "kycStatus":     "APPROVED",
    "kycVerifiedAt": "2026-05-22T10:00:05Z"
  }
}
{}

Authorizations

Authorization
string
header
required

API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.

Body

application/json
event
string
Example:

"CARDHOLDER_KYC_APPROVED"

eventId
string
businessId
string
environment
enum<string>
Available options:
LIVE,
SANDBOX
timestamp
string<date-time>
data
object

Response

200

Acknowledge the event.