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:
falsereceives events produced for your own account.truealso receives selected events that originate from accounts connected to your platform account. The top-level eventaccountfield 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. |

