# Hand-off a PaymentIntent to a Reader

Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details.

## Prerequisites

Before you can run the following code snippet, you need to call these APIs with the provided parameters to set up the prerequisite API object(s).

1. createPaymentIntent
POST /v1/payment_intents {"amount":2000,"currency":"usd","automatic_payment_methods":{"enabled":true}}

## Request

```curl
curl https://api.stripe.com/v1/terminal/readers/{{READER_ID}}/process_payment_intent \
  -u "<<YOUR_SECRET_KEY>>" \
  -d payment_intent={{PAYMENT_INTENT_ID}}
```

### Response

```json
{
  "id": "tmr_FDOt2wlRZEdpd7",
  "object": "terminal.reader",
  "action": {
    "failure_code": null,
    "failure_message": null,
    "process_payment_intent": {
      "payment_intent": "pi_3NtEKRLkdIwHu7ix3crEirSx"
    },
    "status": "in_progress",
    "type": "process_payment_intent"
  },
  "device_sw_version": "2.37.2.0",
  "device_type": "simulated_wisepos_e",
  "ip_address": "0.0.0.0",
  "label": "Blue Rabbit",
  "last_seen_at": 1695408232226,
  "livemode": false,
  "location": "tml_FDOtHwxAAdIJOh",
  "metadata": {},
  "serial_number": "259cd19c-b902-4730-96a1-09183be6e7f7",
  "status": "online"
}
```

## Returns

Returns an updated `Reader` resource.

## Parameters

- `payment_intent` (string, required)
  The ID of the PaymentIntent to process on the reader.

- [`process_config`](https://docs.stripe.com/api/terminal/readers/process_payment_intent.md?query=process_config) (object, optional)
  Configuration overrides for this transaction, such as tipping and customer cancellation settings.
