Skip to content
Ask the docs

Find answers across the QairoPay docs.

Type a question and we'll synthesize an answer from the docs with citations back to the source pages.

Event catalog

This is the canonical event list. The shape of data for each event matches the same resource shape returned by the corresponding GET endpoint in the API reference.

Pass events

EventWhen it firesNotable fields
pass.createdA pass is issued.data.pass
pass.installedThe holder adds the pass to a wallet for the first time.data.pass, data.pass.platform (apple/google)
pass.updatedAny field on the pass changes.data.pass, previous_attributes
pass.scannedA scanner reads the pass barcode or NFC payload.data.scan (scanner id, lat/long, verification result)
pass.revokedThe pass is revoked.data.pass.revoke_reason
pass.removedThe holder removes the pass from the wallet.data.pass

Pass template events

EventWhen it fires
pass_template.createdA template is created.
pass_template.updatedA template is edited; updates fan out to all issued passes.
pass_template.archivedA template is archived. No new issuance allowed.

Card events

EventWhen it firesNotable fields
card.createdA virtual or physical card is issued.data.card
card.shippedA physical card has been printed and handed off to the carrier.data.card.shipping.tracking_number
card.activatedThe cardholder activates the card.data.card
card.suspendedThe card is suspended (by you, the cardholder, or fraud rules).data.card.suspend_reason
card.resumedA suspended card is resumed.data.card
card.terminatedThe card is permanently terminated.data.card.terminate_reason

Transaction events

EventWhen it firesNotable fields
card.transaction.authorizedThe network requests an authorization. Fires before approval.data.transaction.merchant, data.transaction.amount_cents
card.transaction.declinedThe network or sponsor bank declined.data.transaction.decline_reason
card.transaction.capturedThe merchant has captured a previously authorized transaction.data.transaction
card.transaction.refundedA refund posted.data.transaction.refunds
card.transaction.reversedA previously captured transaction was reversed.data.transaction

Real-time authorization (opt-in)

If you opt into real-time authorization decisioning (Enterprise feature):

EventWhen it firesResponse budget
card.transaction.authorization_requestSynchronous webhook before the network response. Reply with { approve: true } or { approve: false, decline_reason: "..." }.1.5 seconds

If you don’t respond in time we fall back to the static spending controls.

Dispute events

EventWhen it fires
dispute.createdA dispute is filed.
dispute.updatedThe dispute moves between stages (needs_responsesubmittedwon / lost).
dispute.evidence_requiredThe sponsor bank needs more evidence by a deadline.

Cardholder / KYC events

EventWhen it fires
cardholder.createdA cardholder record is created.
cardholder.kyc.completedPersona has returned a verification result.
cardholder.kyc.requires_actionPersona has flagged the verification for manual review.
cardholder.sanctions.alertAn ongoing-monitoring sanctions or PEP hit fired. The cardholder is automatically frozen pending review.

Settlement and payout events

EventWhen it fires
settlement.scheduledA settlement is queued for the next netting cycle.
settlement.completedUSDC has landed in your treasury wallet on Aptos. The on-chain tx hash is in the payload.
settlement.failedThe on-ramp leg failed; manual review opened.
payout.createdA payout request was accepted.
payout.completedThe off-ramp fiat payout (or on-chain payout) has settled.
payout.failedThe payout was rejected or returned.

Program lifecycle

EventWhen it fires
program.activatedYour KYB and program setup completed; live issuance is now allowed.
program.suspendedA regulator, sponsor bank, or QairoPay risk action suspended issuance.
program.resumedSuspension lifted.

Promotions and configuration

EventWhen it fires
promotion.createdA sandbox → live (or vice versa) promotion was performed.
webhook_endpoint.disabledAn endpoint hit the retry-exhaustion threshold and was auto-disabled.
api_key.created / .revokedA key was created or revoked in the dashboard.

A note on payload stability

Within a given api_version, the shape of data for each event is stable. New optional fields may appear; required fields cannot disappear. When QairoPay ships a new API version, the version is pinned per-tenant — events keep arriving in the version you have pinned. See Versioning for how to bump safely.