# Accept In-Person Payments (/how-to/payments/accept-in-person-payments)



Resytech integrates with Stripe Terminal to accept card-present payments using physical card readers. This is used for both booking payments from the dashboard and point-of-sale (POS) orders. The card reader connects to Stripe through your dashboard, and payments are processed in real time.

Prerequisites [#prerequisites]

* A connected Stripe account (see [Set Up Stripe](/how-to/payments/set-up-stripe)).
* A registered Stripe Terminal reader (see [Register a Terminal](/how-to/pos/register-a-terminal)).
* The POS module enabled if you are processing POS orders (see [Set Up POS](/how-to/pos/set-up-pos)).

How Card-Present Payments Work [#how-card-present-payments-work]

Card-present payments use the `card_present` payment method type in Stripe, which is different from standard online card payments (`card`). The flow is:

1. A payment intent is created on the server with `card_present` as the payment method type.
2. The payment intent is forwarded to the Stripe Terminal reader.
3. The customer taps, inserts, or swipes their card on the reader.
4. Stripe processes the payment and returns a result.
5. The payment is recorded in Resytech.

Process a Terminal Payment on a POS Order [#process-a-terminal-payment-on-a-pos-order]

1. Navigate to **Dashboard > POS**.
2. Create or open a pending order.
3. Click **Pay with Terminal**.
4. The system creates a PaymentIntent and sends it to your connected terminal reader.
5. Prompt the customer to present their card.
6. Once the card is read and payment succeeds, the order is updated:
   * A `PosOrderPayment` record is created with the card brand and last 4 digits.
   * The payment type is set to `card-present`.
   * If the order is fully paid, the status changes to **Completed**.

Cancel a Terminal Payment [#cancel-a-terminal-payment]

If the customer changes their mind or the reader has issues:

1. Click **Cancel Payment** on the order.
2. The pending PaymentIntent is canceled in Stripe.
3. The order returns to pending status so you can try again or use a different payment method.

Process a Terminal Payment on a Booking [#process-a-terminal-payment-on-a-booking]

For bookings, card-present payments follow the same flow as any card payment but use a terminal reader instead of manual card entry:

1. Open the booking and click **Add Payment**.
2. Select **Card** and choose the terminal reader.
3. Enter the amount.
4. The customer presents their card on the reader.
5. On success, the payment is recorded and the booking balance is updated.

Alternative: Charge a Saved Card [#alternative-charge-a-saved-card]

If the customer has a card on file from a previous transaction, you can charge it without the terminal:

1. On the POS order or booking, select **Charge Saved Card**.
2. Choose the saved payment method (showing brand and last 4 digits).
3. Enter the amount (or leave blank to charge the full amount due).
4. The card is charged off-session (no reader needed).

This is useful when the customer is not physically present or you want to avoid using the terminal.

Record a Manual In-Person Payment [#record-a-manual-in-person-payment]

For cash, check, or other non-card payments collected at the counter:

1. On the order or booking, select the manual payment option.
2. Choose the payment type (cash, check, etc.).
3. Enter the amount and any reference information.
4. Click **Save**.

See [Process a Payment](/how-to/payments/process-a-payment) for full details on manual payment types and fields.

Payment Types Reference [#payment-types-reference]

| Payment Type              | Code               | Description                                        |
| ------------------------- | ------------------ | -------------------------------------------------- |
| Card Present (terminal)   | `card-present`     | Tap, chip, or swipe on a Stripe Terminal reader    |
| Card Not Present (online) | `card-not-present` | Card entered manually or charged from saved method |
| Cash                      | `cash`             | Physical cash                                      |
| Check                     | `check`            | Paper check                                        |
| Electronic                | `electronic`       | Zelle, Venmo, Cash App, etc.                       |

Tips [#tips]

* **Keep the terminal reader charged and connected to Wi-Fi.** If the reader is offline, terminal payments will fail.
* **Terminal payments have automatic capture** -- the payment is captured immediately, unlike some online flows that may use manual capture.
* **Card-present transactions have lower dispute rates** because the cardholder is physically present, which makes fraud less likely.
* **If the terminal payment fails**, you can fall back to manual card entry by selecting the standard card payment flow instead.
* **Terminal readers must be registered** to your Stripe Terminal Location before they can accept payments. See [Register a Terminal](/how-to/pos/register-a-terminal) for setup instructions.

What to Do Next [#what-to-do-next]

* [Set Up POS](/how-to/pos/set-up-pos) -- configure the full POS module for selling products.
* [Register a Terminal](/how-to/pos/register-a-terminal) -- connect a physical card reader.
* [Process a Payment](/how-to/payments/process-a-payment) -- learn about all payment types including online cards and manual payments.
