Skip to content

Event reference

Every event type Baiyar can send, when it is sent and its scope.


Event When Scope
payment.created A payment was created (API, dashboard or checkout). project
payment.succeeded The payment was paid. late: true when it was paid after it had failed or expired. project
payment.failed The payment failed after its last allowed attempt, or was cancelled. project
payment.expired The payment expired unpaid. project
payment.settled The provider settled the payment; the money moved to your available balance. project
payment.unsettled A settlement was taken back by operations: the money moved from your available balance back to pending and the payment waits to settle again (it is held until operations lift the hold). data.object.settlement_status is awaiting again. project
payment.reversed A paid payment was taken back: the provider reversed it (for example Singapay refunded the settled transaction from the balance) or Baiyar operations did. The payment stays paid; data.object.reversal holds the amount and reversed_at. Your balance is reduced by what you received for it and can end below zero. Baiyar refunds nobody; the payer is a matter between you and them. project
payment.reversal_cancelled The provider cancelled its reversal: data.object.reversal is null again and the money is back in your balance. project
payment.anomaly Something about a payment did not add up (amount mismatch, paid twice, settlement mismatch). A warning: no action is required. data.object.anomaly holds code and detail. project
payment.attempt.created A new attempt started, for example the payer chose another method at checkout. project
payment.attempt.failed One attempt failed or expired but the payment can still be paid another way. project
payment_link.created A payment link was created. project
payment_link.cancelled The link was cancelled. project
payment_link.expired The link ran past its expiry time, without having been paid. project
payment_link.completed A single-use link was paid, or a link used up its max_uses. project
payment_link.limit_reached The daily limit of your account level closed a payment method of the link for the rest of the day (sent once per link per day, Jakarta time). data.object.limit.methods lists them. project
invoice.issued An invoice was issued: its pay link exists and, in live, the customer was mailed. project
invoice.paid An invoice was paid in full. project
invoice.voided An issued invoice was taken back. project
project.created A project was created. project
project.updated A project was changed; data.previous_attributes holds the old values. project
project.activated A project was switched on. project
project.deactivated A project was switched off, by you or by operations. project
project.payment_methods_changed The payment methods of a project were changed. project
project.live_requested A project was sent for review to go live. project
project.live_approved A project was approved for live. project
project.live_revision_requested Review asked for changes before the project can go live (or took an approval back). project
api_key.created An API key was created. A merchant key reaches merchant endpoints only. The secret is never sent. project / account
api_key.rotated A key was rotated; replaced_key_id and previous_key_valid_until are in the object. project / account
api_key.revoked A key was revoked. project / account
webhook_endpoint.created An endpoint was registered. account (merchant endpoints)
webhook_endpoint.updated An endpoint was changed; data.previous_attributes holds the old values. account (merchant endpoints)
webhook_endpoint.deleted An endpoint was deleted. account (merchant endpoints)
webhook_endpoint.secret_rotated An endpoint’s signing secret was replaced (the secret is never sent). account (merchant endpoints)
webhook_endpoint.disabled An endpoint was switched off after repeated failures. account (merchant endpoints)
webhook.test Sent when you press Test on an endpoint. the endpoint

Payment events carry a payment object. payment_link.* events carry a payment link object and its url; invoice.* events carry an invoice and its url. The invoice status is open, paid or void, depending on the event. The webhook_endpoint.disabled object contains { id, scope, project_id, url, status, disabled_reason, consecutive_failures }.

Webhooks do not report changes to verification, account level, business information, bank accounts, capabilities or balance. Those updates appear in email and the dashboard. Subscribe to payment.settled to track payment settlement.