Skip to main content

Understanding the Payment Flow

The Purse system is designed to orchestrate and simplify online payments. Whether you're dealing with cards, wallets, gift cards, or split payments, the process remains consistent and fully traceable.

This page walks you through the main stages of a payment lifecycle, highlighting the objects created and how they interact.

It all starts with a Client Session

Before any transaction can begin, a Client Session must be created.
This object acts as the order data referential: it holds the amount, the order, the customer info, and the merchant’s preferences.

Once the session is created, the merchant presents the payment options to the customer, through a widget, a redirect, or a custom interface.

  • When the customer selects and confirms a method, the session is submitted, and the payment process begins.
Client Session

For more technical details, refer to the Client Session Reference section.

Payment takes the lead

When the session is submitted, a Payment object is created.
This is the core object in the system: it records the method selected, the amount processed, and all future actions (like refunds or captures).

The payment also includes advanced information such as:

  • Authorization result
  • Split configuration (if several methods are used)
  • Status and amounts breakdown
  • Links to related operations (via HATEOAS)

Merchants can query this object at any time to track the transaction lifecycle with the GetPayment endpoint or by using webhooks notifications.

For more technical details, refer to the Payment Reference section.

Capturing the funds

For most card-based methods, an authorization is first performed, reserving the funds.
To actually receive the money, the merchant must trigger a Capture.

This operation can be full or partial, and it is critical to finalize the transaction.
For some payment methods (gift cards, wallets…), the capture may happen automatically.

For more technical details, refer to the Capture Reference section.

Handling refunds

Once funds are captured, merchants can issue Refunds — either total or partial — directly through the API.
Each refund is tied to the original Payment and appears in its financial breakdown.

Refunds may apply to one or several payment methods depending on the split.
Purse handles the routing and processing of each refund internally.

For more technical details, refer to the Refund Reference section.

Canceling authorizations

Sometimes, a payment is authorized but never completed.
The merchant may decide to cancel it, for example due to stock issues or customer abandonment.

This action is handled by a Void, which cancels the reserved funds before capture.
Once voided, the payment can no longer be captured. A void can be partial or total.

For more technical details, refer to the Void Reference section.

Payment Operation Summary

Tracking & reconciliation

All payment operations (authorization, capture, refund, void) are reflected in the Payment object.

You’ll find consolidated data such as:

  • amounts.total_authorized, total_captured, total_refunded, etc.
  • available_to_capture, available_to_refund, available_to_void
  • overview: which operations have been completed
  • status: overall state of the transaction (SUCCESS, PENDING…)

This provides full transparency and allows accurate reconciliation.