# Online Payments (/docs/payments/online-payments)



Once Stripe is connected, customers can pay online during the checkout process. Resytech uses Stripe's embedded checkout session for a seamless, PCI-compliant payment experience.

Supported Payment Methods [#supported-payment-methods]

* Credit cards (Visa, Mastercard, American Express, Discover)
* Debit cards
* Digital wallets (Apple Pay, Google Pay) via Stripe
* Link (Stripe's one-click checkout)

Payment Flow [#payment-flow]

1. Customer completes the checkout form and selects their activity, equipment, and add-ons
2. A Stripe checkout session is created with itemized line items (activity, equipment, add-ons, taxes, and fees)
3. Card details are securely processed by Stripe (card data never touches your server)
4. Payment is captured automatically upon confirmation
5. The booking is created and the balance is updated
6. Customer receives a confirmation email with receipt

Checkout Line Items [#checkout-line-items]

The checkout session displays itemized pricing to the customer:

* **Activity** -- The base activity and duration (e.g., "Kayak Rental (60 min)")
* **Equipment** -- Each piece of equipment with quantity and price
* **Add-ons** -- Optional add-ons for each equipment item
* **Taxes & Fees** -- Combined taxes and fees shown as a single line item

Capture Behavior [#capture-behavior]

By default, online payments use **automatic capture** -- the payment is charged immediately when the customer confirms. Resytech also supports manual capture for scenarios where you want to authorize first and capture later (e.g., holding a card for a reservation and charging on arrival).

| Capture Mode | Behavior                                                                                         |
| ------------ | ------------------------------------------------------------------------------------------------ |
| `automatic`  | Payment is charged immediately upon confirmation                                                 |
| `manual`     | Card is authorized (funds held) and must be captured separately before the authorization expires |

3D Secure / Strong Customer Authentication [#3d-secure--strong-customer-authentication]

If a card requires additional verification (3D Secure), Stripe handles the authentication flow automatically. The payment status will show `requires_action` until the customer completes verification. Once verified, the payment proceeds as normal.

Future Usage [#future-usage]

Online payments are set up with `on_session` future usage by default, which means the customer's payment method can be reused for additional charges on the same booking (such as collecting a remaining balance).

Manual Payments [#manual-payments]

For phone bookings or special arrangements, staff can record manual payments from the dashboard. Each manual payment creates an audit trail entry with the staff member who processed it.

1. Open the booking detail
2. Click **Record Payment**
3. Select the payment type
4. Enter the amount and optional reference ID and notes
5. The payment is logged against the booking and the balance is updated

Manual Payment Types [#manual-payment-types]

| Type          | Reference Prefix | Description                                  |
| ------------- | ---------------- | -------------------------------------------- |
| Cash          | `CASH`           | Cash received at the location                |
| Check         | `CHK`            | Personal or business check                   |
| Electronic    | `ELEC`           | Electronic transfer (Zelle, Venmo, Cash App) |
| ACH           | `ACH`            | ACH bank transfer                            |
| Bank Transfer | `BANK`           | General bank transfer                        |
| Wire Transfer | `WIRE`           | Wire transfer                                |
| Other         | `OTH`            | Any other method with a custom description   |

If you do not provide a reference ID, Resytech generates one automatically using the format `{PREFIX}-{YYYYMMDD}-{RANDOM}` (e.g., `CASH-20260401-A3F9B1C2`).

Manual Payment Options [#manual-payment-options]

| Field            | Required | Description                                               |
| ---------------- | -------- | --------------------------------------------------------- |
| Payment Type     | Yes      | The method of payment (see table above)                   |
| Payment Method   | No       | Additional detail (e.g., "Venmo" for electronic)          |
| Amount           | Yes      | The dollar amount received (must be greater than zero)    |
| Reference ID     | No       | External reference (check number, transfer ID, etc.)      |
| Notes            | No       | Free-text notes for internal tracking                     |
| Apply to Balance | Yes      | Whether to subtract this payment from the booking balance |

Split Payments [#split-payments]

A single booking can have multiple payments:

* Partial payment at booking, remainder on arrival
* Multiple payment methods (card + cash)
* Group payments from different people
* Any combination of online and manual payment types

Each payment is tracked independently with its own transaction record, so you have a complete history of all payments against the booking.

Related How-To Guides [#related-how-to-guides]

* [Process a Payment](/how-to/payments/process-a-payment) -- Charge a card or record a manual payment step by step
* [Accept In-Person Payments](/how-to/payments/accept-in-person-payments) -- Use a terminal reader instead of online checkout
* [Adjust Booking Pricing](/how-to/payments/adjust-pricing) -- Set a custom grand total using Pricing Override
* [Set Up Auto-Expire](/how-to/payments/set-up-auto-expire) -- Expire bookings that are not paid in time
