# In-Person Payments Integration Guide Accept in-store card payments through your existing Kustom integration. Your backend creates a payment session, which is dispatched to a store clerk's device. The clerk collects the payment, and Kustom delivers lifecycle callbacks back to you. | | | | --- | --- | | **Reading time** | ~15 minutes | | **Time to first test payment** | ~30 minutes | | **Prerequisites** | In-Person Payments enabled on your account, a Kustom API key, and a device running the Kustom POS app | ## Enablement In-Person Payments is enabled per account. To get started, **please reach out to your Kustom representative** and request that the product be enabled. Once it’s enabled, your API key gains access to the /ipp/v1 endpoints, and you can begin enrolling devices. The In-Person Payments API is separate from the Checkout API. It lives at `/ipp/v1` and uses the same API key authentication. Before you can process in-person payments, you need the Kustom POS app on your terminal device. Follow the steps below to authenticate and begin using the API. ## Download the Kustom POS app A store clerk collects payments using the **Kustom POS app**, which runs on the terminal device. Download it from the App Store (iOS) or Google Play (Android): - [Download on the App Store](https://apps.apple.com/se/app/kustom/id6742444903) - [Get it on Google Play](https://play.google.com/store/apps/details?id=co.kustom.kustom&hl=en) A **Playground (sandbox) version** of the app is available for both iOS and Android, allowing you to test against the playground without affecting live payments. Ask your Kustom representative to provide it to you. ## Three concepts | Concept | What it is | | --- | --- | | **Enrollment** | A one-time pairing code that links a physical device to your merchant account. A clerk enters the 8-character code in the Kustom POS app to register the device. | | **Device** | A registered terminal — **your own smartphone** (iPhone or Android) running the Kustom POS app. Once enrolled, a device has a stable `device_id` you use to dispatch sessions to it. | | **Session** | A single payment request. Your backend creates a session with the cart and a target `device_id`. Kustom pushes it to the device instantly. | ## What's in this guide 1. [Enroll a Device](/contents/checkout/in-person-payments/enroll-device) — Create enrollment codes, register devices 2. [Create a Session](/contents/checkout/in-person-payments/create-session) — Dispatch payment requests to devices 3. [Receive Callbacks](/contents/checkout/in-person-payments/callbacks) — Session lifecycle events and order creation 4. [Testing](/contents/checkout/in-person-payments/testing) — Simulate devices and card taps without real hardware 5. [API Reference](/contents/api/in-person-payments) — Full endpoint reference