Webhook Event Catalogue

Use this catalogue to choose the exact event identifiers that a Paypercut Webhook Endpoint receives. You can configure an endpoint in the Merchant Dashboard or with the Webhooks API.

Pass each identifier exactly as shown in the endpoint's enabled_events array. Wildcards such as * are not accepted.

Every merchant can subscribe to every event in this catalogue. An event is delivered only when the corresponding resource and lifecycle transition occur for that account.

Configure an endpoint

Create one endpoint with the events your integration handles:

{
  "name": "Production payment events",
  "url": "https://example.com/webhooks/paypercut",
  "enabled_events": [
    "payment.succeeded",
    "payment.failed"
  ],
  "api_version": "v2",
  "connect": true
}

Payload version

api_version selects the payload schema delivered to the endpoint:

Version Use it when
v2 You are building a new integration. This is the recommended version and uses the current Checkout Session and Payment Intent resource shapes.
v1 An existing webhook handler depends on the legacy Checkout Session or Payment Intent payload shapes. Paypercut uses this version when api_version is omitted for backward compatibility.

Most other event types use the same resource shape in both versions.

The selected version applies to every event sent to that endpoint and is returned as api_version when you retrieve it. You cannot change it after creation; create another endpoint to use a different payload version.

Connected-Account Delivery

connect controls the account scope for every event selected on the endpoint:

  • false receives events produced for your own account.
  • true also receives selected events that originate from accounts connected to your platform account. The top-level event account field identifies the connected account that produced the event.

If you omit connect during creation, Paypercut uses false. The saved value is returned when you retrieve the endpoint.

You can change Connected-Account Delivery when updating an endpoint. Send an explicit true or false; omitting connect from an update preserves the endpoint's current setting.

{
  "url": "https://example.com/webhooks/paypercut",
  "enabled_events": [
    "payment.succeeded",
    "payment.failed"
  ],
  "connect": false
}

Event types

Checkout

Event identifier Sent when
checkout_session.completed A Checkout Session has been completed.

Payment

Event identifier Sent when
payment.succeeded A payment has succeeded.
payment.failed A payment has failed.

Payment Intent

Event identifier Sent when
payment_intent.authorized A Payment Intent has been authorized.
payment_intent.captured A Payment Intent has been captured.

Account

Event identifier Sent when
account.created An account has been created.
account.updated An account has been updated.
account.capability.requested A capability has been requested for an account.
account.capability.updated A capability has been updated for an account.
account.external_account.created An external account has been created for an account.
account.external_account.updated An external account has been updated for an account.

Person

Event identifier Sent when
person.created A person has been created.
person.updated A person has been updated.
person.deleted A person has been deleted.

Invoice

Event identifier Sent when
invoice.paid An invoice has been paid.
invoice.payment_failed Payment for an invoice has failed.

Tax Invoice

Event identifier Sent when
tax_invoice.finalized A tax invoice has been finalized.
tax_invoice.available A tax invoice is available.

Payout

Event identifier Sent when
payout.created A payout has been created.
payout.updated A payout has been updated.
payout.paid A payout has been paid.
payout.failed A payout has failed.
payout.canceled A payout has been canceled.

Identity Verification

Event identifier Sent when
identity.verification_session.created An identity verification session has been created.
identity.verification_session.processing An identity verification session is processing.
identity.verification_session.requires_input An identity verification session requires more input.
identity.verification_session.verified An identity verification session has been verified.
identity.verification_session.canceled An identity verification session has been canceled.
identity.verification_session.redacted An identity verification session has been redacted.