Webhook events list
Kulipa produces event details that can be relayed to notify you about activities in your account.
Whenever an event occurs, Kulipa creates a new Event
entity. A singular API call might lead to the inception of several events. For instance, blocking a card results in event like card.blocked
.
By defining webhook endpoints in your Kulipa profile, you grant Kulipa the capability to autonomously dispatch Event entities via POST requests to the webhook endpoint anchored in your system.
Once your webhook endpoint receives the Event
, your system can execute backend operations
(such as, sending a notification to the end user regarding payment with their card).
Event Entity
The Event entity dispatched to your webhook endpoint offers a snapshot of the altered entity.
List of events
Common event payload schema
These event fields will be present on any Kulipa event
eventTargetId: string, // uuid of the related object (e.g. card, cardAuthorization)
eventId: string, // uuid of the webhook event
eventName: string // Event enum list below
// For user events and anything associated (cards, transactions, ...), a userId will also be provided.
userId: string // User associated with this event (format is `usr-<uuid>`)
cardAuthorization.confirmed
Occurs whenever a payment with a card is confirmed.
A hold is placed on the relevant funds, but the transaction is still not final.
Suggested use : Display a notification to the user about a pending payment or refund
Schema:
{
...Common event fields
merchantName: string, // Merchant name
merchantMcc: string, // Merchant category code
amount: number, // 2 decimals number
currency: string, // Iso 4217 currency codes
type: 'payment' | 'refund'
}
cardAuthorization.rejected
Occurs whenever a payment with a card is rejected.
Suggested use : Display a notification to the user
Schema:
{
...CommonEventFields,
merchantName: string, // Merchant name
merchantMcc: string, // Merchant category code
amount: number, // 2 decimals number
currency: string,// Iso 4217 currency codes
type: 'payment'
declineReasonCode: 'insufficientFund' | 'failedControl' | 'notActive' | 'incremental' | 'other', // Decline reason code
}
card.created
A card has been created for the user.
Suggested use : If a card was not created in the app recently, display a warning notification to the user.
Schema:
{
...CommonEventFields,
}
card.frozen
A user's card has been frozen.
Suggested use : If a card was not frozen in the app recently, display a warning notification to the user.
Schema:
{
...CommonEventFields,
}
card.unfrozen
A user's card has been unfrozen.
Suggested use : If a card was not unfrozen in the app recently, display a warning notification to the user.
Schema:
{
...CommonEventFields,
}
user.created
A new user has been created in the system.
Suggested use : If this is not expected, escalate to your support team.
Schema:
{
...CommonEventFields,
}
To be elaborated further
cardAuthorization.oobRequested
An OOB 3DS request has been sent - the user would need to respond to it in order to confirm the transaction.
(OOB 3DS is a second factor in-app authorization for online transactions)
Suggested use : Display a notification to the user asking them to confirm their transaction.
card.revoked
A user's card has been revoked.
Suggested use : If a card was not revoked (cancelled) in the app recently, display a warning notification to the user.
kyc.created
A new KYC request has been created for the user.
Suggested use : If this is not expected, escalate to your support team.
kyc.verified
The user's KYC has been verified successfully.
Suggested use : Display a notification guiding the user to create a card.
kyc.declined
The user's KYC request has been declined. Depending on the payload, a follow-on KYC needs to happen, or the user simply
cannot open a Kulipa account at this time.
Suggested use : Display a notification to the user.
kyc.expired
The user's KYC request has expired and in order to proceed with it, it must be renewed.
Suggested use : Contact Kulipa support.
kyc.revoked
The user's KYC request has been revoked. This means the KYC request has been closed prior to completion.
Suggested use : Contact Kulipa support.
user.limitApproaching
The user's spend limit (across all cards) is almost reached, and as a result some card transactions might be declined.
Suggested use : Display a notification to the user
wallet.lowAvailableBalance
The available balance in the user's wallet is very low and card transactions might be declined as a result.
Suggested use : Display a notification to the user
Events without a user ID attached
webhookSubscription.created
A webhook subscription has been created in the system. This event is provided in order to alert in case this is not expected.
Suggested use : If this is not expected, escalate to your support team.
webhookSubscription.verified
A webhook subscription has been verified (activated) in the system. This event is provided in order to alert in case this is not expected.
Suggested use : If this is not expected, escalate to your support team.
webhookSubscription.deleted
A webhook subscription has been deleted in the system. This event is provided in order to alert in case this is not expected.
Suggested use : If this is not expected, escalate to your support team.
webhookSubscription.updated
A webhook subscription has been updated in the system. This event is provided in order to alert in case this is not expected.
Suggested use : If this is not expected, escalate to your support team.
webhookSubscription.disabled
A webhook subscription has been disabled in the system. This event is provided in order to alert in case this is not expected.
Suggested use : If this is not expected, escalate to your support team.