Webhook notification that will be sent to your defined webhook url for updates to payment session status.
{
"event": "payment_session.completed",
"business_id": "661f87c614802d6c402cd82d",
"created": "2026-12-31T23:59:59Z",
"data": {
"payment_session_id": "ps-661f87c614802d6c402cd82d",
"created": "2026-12-30T23:59:59Z",
"updated": "2026-12-31T23:59:59Z",
"reference_id": "order_12345_PAY",
"customer_id": "cust-e2878b4c-d57e-4a2c-922d-c0313c2800a3",
"session_type": "PAY",
"allow_save_payment_method": "OPTIONAL",
"currency": "PHP",
"amount": 10000,
"country": "PH",
"mode": "PAYMENT_LINK",
"expires_at": "2027-12-31T23:59:59Z",
"locale": "en",
"description": "Insurance Plan Registration",
"success_return_url": "https://yourcompany.com/success/example_item=my_item",
"cancel_return_url": "https://yourcompany.com/cancel/example_item=my_item",
"status": "COMPLETED",
"payment_link_url": "https://xen.to/kGxPCi60",
"payment_token_id": "pt-661f87c614802d6c402cd82d",
"payment_request_id": "pr-661f87c614802d6c402cd82d",
"payment_id": "py-661f87c614802d6c402cd82d",
"business_id": "661f87c614802d6c402cd82d"
}
}{
"event": "payment_session.expired",
"business_id": "661f87c614802d6c402cd82d",
"created": "2021-12-31T23:59:59Z",
"data": {
"payment_session_id": "ps-661f87c614802d6c402cd82d",
"created": "2021-12-31T23:59:59Z",
"updated": "2021-12-31T23:59:59Z",
"reference_id": "order_12345_PAY",
"customer_id": "cust-e2878b4c-d57e-4a2c-922d-c0313c2800a3",
"session_type": "PAY",
"currency": "PHP",
"amount": 10000,
"country": "PH",
"mode": "PAYMENT_LINK",
"expires_at": "2021-12-31T23:59:59Z",
"locale": "en",
"description": "Insurance Plan Registration",
"success_return_url": "https://yourcompany.com/success/example_item=my_item",
"cancel_return_url": "https://yourcompany.com/cancel/example_item=my_item",
"status": "EXPIRED",
"payment_link_url": "https://xen.to/kGxPCi60"
}
}{
"event": "payment_session.completed",
"business_id": "661f87c614802d6c402cd82d",
"created": "2026-12-31T23:59:59Z",
"data": {
"payment_session_id": "ps-661f87c614802d6c402cd82d",
"created": "2026-12-30T23:59:59Z",
"updated": "2026-12-31T23:59:59Z",
"reference_id": "subscription_12345",
"customer_id": "cust-e2878b4c-d57e-4a2c-922d-c0313c2800a3",
"session_type": "SUBSCRIPTION",
"currency": "PHP",
"amount": 50000,
"country": "PH",
"mode": "PAYMENT_LINK",
"expires_at": "2027-12-31T23:59:59Z",
"locale": "en",
"description": "Monthly subscription plan",
"success_return_url": "https://yourcompany.com/success/example_item=my_item",
"cancel_return_url": "https://yourcompany.com/cancel/example_item=my_item",
"status": "COMPLETED",
"payment_link_url": "https://xen.to/kGxPCi60",
"payment_token_id": "pt-661f87c614802d6c402cd82d",
"payment_request_id": "pr-661f87c614802d6c402cd82d",
"payment_id": "py-661f87c614802d6c402cd82d",
"business_id": "661f87c614802d6c402cd82d"
}
}Payment session status webhook
Webhook event names for payment session status updates. Applies to all session types including SUBSCRIPTION.
Business ID of the merchant
Timestamp of webhook delivery attempt in ISO 8601 date-time format.
A unique identifier automatically generated by Xendit to represent an end customer. This ID can be used as a consistent reference across multiple transactions or payment activities for the same user. You can create a customer object in advance through the Create Customer API here: https://xendit-docs.document360.io/apidocs/create-customer-request
Your reference to uniquely identify the Payment Session. This is commonly used to identify your order or transaction.
A unique identifier for the Payment Session
Xendit Payment Request ID used to reference the payment made during this Session.
The use case for Payment Session. SAVE: save the payment details from a customer for future payments. PAY: collects a one-time payment from a customer. SUBSCRIPTION: register a subscription payment for your customer using Xendit Subscription product, see here https://docs.xendit.co/docs/subscriptions-overview. AUTHORIZATION: authorize a card payment for a future capture.
The frontend integration mode for Payment Session. PAYMENT_LINK: redirect the customer to the Xendit Hosted Checkout page. COMPONENTS: collect the payment details directly from the customer on your own page using Xendit Components. CARDS_SESSION_JS: collect payment details from customer with cards-session Javascript library. Only supported PAYMENT_LINK and CARDS_SESSION_JS as mode for now.
The status of the Payment Session.
ISO 8601 date-time format. By default the Session will expire 30 minutes after creation. We recommend you to keep Sessions short-lived and create a new Session again only when the customer is ready to make payment.
ISO 639-1 two-letter language code for Hosted Checkout page.
A custom description for the Session. This text will be displayed on the Xendit Hosted Checkout page.
Array of objects describing the item/s attached to the session.
Merchant provided identifier for the item
Type of item
Name of item
Net amount to be charged per unit
Number of units of this item in the basket
URL of the item. Must be HTTPS or HTTP
URL of the image of the item. Must be HTTPS or HTTP
Category for item
Sub-category for item
Description of item
Key-value entries for your custom data/information. You can specify up to 50 keys, with key names up to 40 characters and values up to 500 characters. This is commonly used for your internal reference or reconciliation purposes. Xendit will not use this data for any processing.
Specify the URL to redirect the customer after the session is completed or expired, or if the customer decide to stop the payment process. Must be HTTPS. For example: "https://yourcompany.com/example_item=my_example_item"
Specify the URL to redirect the customer after the session is completed or expired, or if the customer decide to stop the payment process. Must be HTTPS. For example: "https://yourcompany.com/example_item=my_example_item"
The URL for Xendit Hosted Checkout page. Redirect your customer to this URL to complete the payment.
Xendit Payment Token ID used to reference the saved payment details from the customer.
Xendit Payment ID used to reference the captured payment details from the customer.
Business ID of the merchant
key will be used for sessions flows with mode COMPONENT
Origins will be used for sessions flows with mode COMPONENT to validate CORS
OK