Skip to content
Dashboard

Managing Charges & Payments

When guests purchase upsells or incur service fees, SuiteOp creates reservation charges that track the full lifecycle — from the initial payment through fulfillment. There are two places to work with these charges: the per-reservation Charges & Payments section, and the cross-reservation Folio page. Both open the same Charge Detail Sheet described below.


Open any reservation and scroll to the Charges & Payments section. This displays all charges associated with the reservation, including:

  • Upsell purchases — Charges created when a guest buys an upsell through the guest portal
  • Upsell requests — Authorization holds placed when a guest requests a paid upsell (pending your approval)
  • Service fees — Manual fees added to a reservation

Each charge shows the upsell name, amount, payment status, and current workflow stage.


Click on any charge to open the Charge Detail Sheet, which provides full visibility into the charge and its payment.

At the top of the sheet, a visual stepper shows the charge’s progression through its lifecycle:

  • Pending — The charge has been created and is awaiting action
  • Approved — You have approved the request (for request-type upsells)
  • Delivered — The upsell or service has been fulfilled
  • Denied — The request was declined (branching path)

You can advance the charge to the next stage by selecting a new status from the Stage dropdown.

The payment details section shows:

  • Card — The card network and last four digits used for payment
  • Amount authorized — The total amount held or charged
  • Amount captured — How much has been captured (for authorization holds)
  • Amount refunded — Any refunds issued
  • Payment status — The current status (requires_capture, succeeded, refunded, etc.)

For charges that include a service fee, you will see the price and quantity breakdown below the payment details.

When a manual charge was created with a Receipt URL, the sheet renders a Receipt section showing the link with an external-link icon. Image URLs (.jpg, .png, .webp, .gif, .avif) also get a small thumbnail preview. Clicking the link opens the receipt in a new tab so you can keep the charge sheet open while you cross-reference. See Managing Guest Fees for how to attach a receipt when creating the charge.


Depending on the payment status, different actions are available in the charge detail sheet:

When a guest requests a paid upsell, their card is pre-authorized (a hold is placed) but not yet charged. To capture the payment:

  1. Open the charge detail sheet

    Navigate to the reservation and click the charge in the Charges & Payments section.

  2. Click Capture

    Click the Capture button in the payment actions area. You can capture the full authorized amount or enter a custom amount for a partial capture.

  3. Confirm the capture

    The payment status changes from requires_capture to succeeded, and the funds are transferred to your payment account.

If you decide not to charge the guest (for example, when denying a request), you can release the hold:

  • Open the charge detail sheet
  • Click Release
  • The hold is removed from the guest’s card and no funds are collected

For payments that have already been captured (status succeeded), you can issue a full refund:

  • Open the charge detail sheet
  • Click Refund
  • The payment is refunded to the guest’s original payment method

SuiteOp supports three payment providers for collecting guest payments. The payment form guests see in the portal depends on which provider is assigned to the upsell:

ProviderSetupBest For
StripeConnect via API keysOrganizations already using Stripe for payments
JusPay (Hyperswitch)One-click setupMulti-processor payment routing and regional payment methods
GuestyPaySync from GuestyGuesty users who want unified billing

To configure payment providers, see Stripe, JusPay, or GuestyPay.


When a charge is settled in SuiteOp, it can be pushed back to the connected property management system (PMS) as a line item on the reservation’s invoice. This keeps your PMS folio in sync with what guests actually paid through SuiteOp, so your bookkeeping stays in one place.

SuiteOp pushes a charge to the PMS automatically once it reaches a settled state:

  • Captured — an authorization hold has been captured (the captured amount is sent)
  • Delivered — the upsell or service has been fulfilled
  • Paid — a charge that is already paid when it is created

The push happens in the background — there is no extra step for you. Each charge is pushed only once: SuiteOp marks it as synced after a successful push, so retries and repeated status changes never create duplicate line items in your PMS.

Charge sync is controlled per PMS account by the Charges push control:

  1. Open your PMS integration

    Go to Integrations in the sidebar and open your connected PMS account.

  2. Find the Push Controls card

    Make sure Enable push (write data back) is on. When this global switch is off, the account is read-only and no charges (or any other data) are pushed back.

  3. Toggle Charges

    Under the per-operation list, turn the Charges switch on to push upsells and other charges to the reservation invoice, or off to keep them in SuiteOp only.

You can confirm a charge was pushed — and troubleshoot if it was not — from the Integration Activity Logs, where each successful push appears as a Push event.


  1. Guest requests a paid upsell — a hold is placed on their card
  2. You receive a notification (email, SMS, or Slack)
  3. Open the charge and change the stage to Approved
  4. Capture the payment (full or partial amount)
  5. Fulfill the upsell and change the stage to Delivered
  1. Guest requests a paid upsell — a hold is placed on their card
  2. Open the charge and change the stage to Denied
  3. The authorization hold is automatically released
  4. Notify the guest through your messaging platform
  1. Open the reservation’s Charges & Payments section
  2. Click the charge to open the detail sheet
  3. Click Refund to return the full amount to the guest