Skip to main content

Event: cardholder.kyc.updated

Sent when a cardholder’s KYC verification status changes (e.g. approved or rejected).

Payload

{
  "cardholderId": "ch_abc123",
  "cardProgramId": "prog_def456",
  "kycStatus": "approved"
}
FieldTypeDescription
cardholderIdstringCardholder whose KYC status changed
cardProgramIdstringCard program the KYC was initiated for
kycStatusstringNew KYC status. One of approved, rejected, pending

Response

Your endpoint must return a 2xx status code within 30 seconds to acknowledge receipt. Any non-2xx response or timeout triggers the retry policy.
Status codeMeaning
200Event received and processed
202Event received, will process asynchronously
Any non-2xxDelivery failed — will retry

Example handler

app.post("/webhooks/contro", (req, res) => {
  const eventType = req.headers["x-contro-event"];

  if (eventType === "cardholder.kyc.updated") {
    const { cardholderId, kycStatus } = req.body;

    if (kycStatus === "approved") {
      // Cardholder is verified — you can now issue cards
    } else if (kycStatus === "rejected") {
      // Notify your user to retry or contact support
    }
  }

  res.status(200).send("OK");
});