Platform Solution

Kiosk payments need a recovery path after the screen is gone

Unattended flows break differently from staffed checkout. Flint gives self-serve software teams a cleaner way to handle device context, payment attempts, receipts, and later recovery without losing the original order.

Device-aware settings and tax resolution
Order-backed payment intents instead of loose kiosk charges
Hosted recovery paths for abandoned or incomplete payments
A clearer support trail when no staff member was present

Self-Serve

From device context to fallback recovery, the order stays visible

Built for unattended flows

Kiosk surface

Unattended screen
No staff member watching the payment
Device context
Register, kiosk, lane, or location inheritance
Buyer follow-up
Receipt, support, or payment recovery later

Flint recovery path

Order
Sale details and kiosk metadata
Attempt
Payment intent tied to the balance
Recovery
Hosted link or session if needed
Support
Receipt and refund history later
device settings
unattended recovery
order-backed attempts

Where Kiosk Teams Get Stuck

Unattended payments amplify every missing piece around the charge

When there is no operator nearby, retries, receipts, tax resolution, and later support all depend on having a cleaner record than a processor event alone.

Pressure 1

A failed payment still needs a path to completion

The buyer may walk away from the kiosk, but the sale often still needs a receipt, a support answer, or a way to pay later.

Pressure 2

Device and location settings multiply fast

Kiosk deployments tend to spread across lanes, terminals, or sites, which makes inherited settings and device context materially important.

Pressure 3

Support starts after the moment of payment

Because there is no staff member at the screen, the system itself has to preserve enough context for later customer support and reconciliation.

Flint For Kiosk Software

The payment stack is built around device context and later recovery

Kiosk teams need more than a client secret. They need a coherent path from the device to the payment attempt to the post-session support surface.

Device resources

Model merchant hardware or app installations directly so payment behavior can resolve with device-level awareness.

Effective settings by device or location

Resolve inherited settings for checkout, tax, receipts, or point-of-sale behavior without hard-coding every kiosk variant.

Payment intents linked to orders

Attempts stay anchored to the order balance instead of becoming detached payment records with no sale context.

Hosted recovery and fallback

Use hosted checkout, payment links, or invoices when the original unattended flow cannot finish at the screen.

Tax and configuration from device context

Apply tax with `device_id` and inherit settings so location-specific behavior stays easier to manage.

Cleaner support and refunds

Later support actions still point back to the original order, which matters when no employee witnessed the payment attempt.

Workflow

Treat the kiosk as the entry point, not the entire payment system

That lets the unattended payment flow stay fast without sacrificing recovery paths or downstream support clarity.

Step 01

Register the kiosk device and resolve inherited settings

Make the device a real part of the payment model so each installation can inherit the right context.

Step 02

Create the order before collecting funds

Keep line items, tax, and kiosk metadata on the sale record rather than reconstructing it later.

Step 03

Create a payment intent from the order balance

The payment attempt then stays tied to the same record the support team will inspect later.

Step 04

Use hosted recovery if the screen session does not finish

That gives the buyer another path to completion without abandoning the original order history.

Example

kiosk-payment-flow.ts
device-aware
const order = await flint.orders.create({
  lineItems: [
    {
      name: "Locker rental",
      quantity: 1,
      unitPriceMoney: { amount: 1500, currency: "USD" }
    }
  ],
  metadata: {
    kioskId: "kiosk-12",
    lane: "north-lobby"
  }
});

await flint.orders.applyTax({
  orderId: order.id,
  deviceId: "dev_north_lobby_12"
});

const paymentIntent = await flint.paymentIntents.create({
  orderId: order.id
});

// If the kiosk session fails, use a hosted recovery surface
// that still points back to the original order.

Good Fits

Self-serve products that still need a post-session support surface

The biggest gain is not just running a kiosk payment. It is preserving a usable record when the unattended session does something inconvenient later.

Fit

Kiosk and terminal software

Teams building self-serve payment experiences for parking, lockers, kiosks, concessions, or access-controlled environments.

Fit

Products with many installations

Multi-location deployments where device-aware settings and inherited behavior matter operationally.

Fit

Flows with likely abandonment or later support

When the buyer might need a receipt, a follow-up link, or a support answer after the kiosk moment has passed.

Fit

Hybrid attended and unattended surfaces

Products that mix self-serve, staff-assisted, and later remote collection inside the same merchant experience.

Architecture Decision

Kiosk teams usually need more than a raw payment attempt

The real issue is whether the unattended device flow can degrade gracefully into a supported payment system afterward.

Question
Generic stack
Flint
Device context
Managed in your app with little payment awareness
Device and settings can stay closer to the payment model
Incomplete sessions
Often become support tickets with weak context
Recovery can still start from the original order
Tax and configuration
Hard-coded or reconstructed around each device
Can resolve from location or `device_id`
Refund and receipt trail
Detached from the unattended sale context
Still linked to the order the kiosk created

FAQ

Common questions from kiosk software teams

Next Step

Build the unattended flow with the recovery path in mind

Start from an order-backed payment attempt so the kiosk screen is only the first surface, not the whole system.