# ProcessReaderPaymentInput

input type

Input for processReaderPayment: the READER is NEVER named here — it resolves from the CALLER'S DEVICE SESSION (the composite-POS law: exactly ONE active registered card reader on the paired device). amountMinor = the portion APPLIED toward the order balance (≤ the remainder EXACTLY); tipMinor charges ON TOP. The op returns the CREATED Payment and the reader takes over — poll the payment record: the processor confirm commits the tender + the authorize flip; a reader decline lands it failed.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `orderId` | [ID](/types/#scalars) `ID!` | yes | No further notes. |
| `expectedRevision` | [ID](/types/#scalars) `ID!` | yes | The Order revision the caller read. |
| `amountMinor` | [Int](/types/#scalars) `Int!` | yes | The amount APPLIED toward the order balance in minor units (≤ the remainder EXACTLY — the applyTender card law). |
| `tipMinor` | [Int](/types/#scalars) | no | The tip charged ON TOP of amountMinor. |
| `reason` | [String](/types/#scalars) | no | No further notes. |
| `caption` | [String](/types/#scalars) | no | Optional caption override. |
| `refs` | [String](/types/#scalars) `[String!]` | no | Provenance document refs (bounded free strings). |

## Used by

- [processReaderPayment](/reference/selling/processReaderPayment/)
