> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dintero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept payments in person

> Accept card payments on physical terminals at retail locations using the same Checkout API you use for online payments.

Accept card payments at physical retail locations using Dintero terminals. You create a checkout session that targets a specific terminal, and the customer taps, inserts, or swipes their card to pay.

In-person payments reuse the same Checkout API, session profiles, and transaction management you already use for online payments. The only difference is that the session references a store and terminal.

```mermaid theme={null}
sequenceDiagram
    participant POS as POS / Your server
    participant API as Dintero API
    participant Terminal as Payment terminal
    participant Customer as Customer

    POS->>API: Create session (store + terminal ID)
    API->>Terminal: Trigger payment on device
    Terminal->>Customer: "Tap, insert, or swipe"
    Customer->>Terminal: Present card
    Terminal->>API: Payment result
    API->>POS: Callback with transaction status
```

## Integration steps

<Steps>
  <Step title="Set up your account for in-person payments">
    Contact Dintero to enable In-Person Payments on your account. You need a **payout destination** (the merchant entity that receives funds) with completed KYC verification.

    See [Terminal onboarding](/docs/checkout/in-person/terminal-onboarding) for the full setup process.
  </Step>

  <Step title="Register a store and terminal">
    In Backoffice, create a **store** linked to your payout destination, then register a **terminal** to the store. Each terminal gets a unique ID that you reference when creating sessions.

    You'll need three identifiers for every terminal payment:

    | Identifier              | What it is                          |
    | ----------------------- | ----------------------------------- |
    | `payout_destination_id` | The merchant entity receiving funds |
    | `store.id`              | The physical store location         |
    | `terminal_id`           | The specific payment terminal       |
  </Step>

  <Step title="Create a payment profile">
    Create a [payment profile](/docs/checkout/payment-profiles) with **Seitatech In-Person Payments** as the only enabled payment method. Terminal sessions must have `seitatech.in_person` as the sole payment type.
  </Step>

  <Step title="Create a terminal session">
    Send a `POST` to `/v1/sessions-profile` with the order details and the store/terminal identifiers. The payment is triggered on the terminal as soon as the session is created. There is no hosted checkout page.

    Include `order.store.id`, `order.store.terminal_id`, and `order.store.payout_destination_id` in your request, and reference your in-person payment profile with `profile_id`.

    See [Create a terminal session](/docs/checkout/in-person/creating-terminal-session) for the full payload.
  </Step>

  <Step title="Customer pays on the terminal">
    The terminal prompts the customer to tap, insert, or swipe their card. Dintero auto-captures terminal payments by default, so the transaction moves directly to `CAPTURED` on success.
  </Step>

  <Step title="Handle the result">
    Receive the transaction result via your `callback_url` and [webhooks](/docs/checkout/checkout-webhooks). Manage refunds and voids through the standard [Transactions API](/docs/checkout/transaction-management), just like online payments.
  </Step>
</Steps>

## What's next

<CardGroup cols={2}>
  <Card title="In-person overview" icon="https://mintcdn.com/dintero-c3a7bfec/kqE6jEgPSu_iF1M_/mintlify-docs/assets/icons/store.svg?fit=max&auto=format&n=kqE6jEgPSu_iF1M_&q=85&s=57e39f8a2c5f53269107ed73eda5f7ad" href="/docs/checkout/in-person/overview" width="20" height="20" data-path="mintlify-docs/assets/icons/store.svg">
    Detailed overview of how terminal payments work.
  </Card>

  <Card title="Terminal onboarding" icon="https://mintcdn.com/dintero-c3a7bfec/4vZVwDjf90sw6DuL/mintlify-docs/assets/icons/cash.svg?fit=max&auto=format&n=4vZVwDjf90sw6DuL&q=85&s=cd8eb2df5eb8184f6239c4594334f256" href="/docs/checkout/in-person/terminal-onboarding" width="20" height="20" data-path="mintlify-docs/assets/icons/cash.svg">
    Set up payout destinations, stores, and terminals.
  </Card>

  <Card title="Create a terminal session" icon="https://mintcdn.com/dintero-c3a7bfec/4vZVwDjf90sw6DuL/mintlify-docs/assets/icons/credit-card.svg?fit=max&auto=format&n=4vZVwDjf90sw6DuL&q=85&s=17c881ac02bc4966bdef233185ec3c5f" href="/docs/checkout/in-person/creating-terminal-session" width="20" height="20" data-path="mintlify-docs/assets/icons/credit-card.svg">
    Full payload reference and response handling.
  </Card>
</CardGroup>
