Welcome to Xendit’s latest documentation. For legacy content, access the previous version here.

Payment sessions lifecycle

Prev Next

A payment session's status changes throughout its lifecycle, marking different stages of the payment or linking process.

Status

Description

Webhook event

Active

The Payment Session status will be ACTIVE immediately after creation. It remains active until it is successfully completed, expires (based on the expiry_date), or is manually canceled.

Completed

The status changes to COMPLETED when the payment or linking process (depending on the chosen flow) is successfully finished. If the user fails during the process, they can retry within the same session. During this state you will receive payment_session.completed webhook to identify you the state transition.

payment_session.completed

Expired

The status changes to EXPIRED when the expiry_date set during Payment Session creation is reached, and an expired Payment Session cannot be reactivated. During this state you will receive payment_session.expired webhook to identify you the state transition.

payment_session.expired

Canceled

If the Payment Session is manually canceled, the status changes to CANCELED immediately. The end user will no longer have access to the payment_link_url, and a canceled Payment Session cannot be reactivated.