# RefundTenderInput

input type

Refund-input for refundTender: a POSITIVE magnitude (the port stamps the negative sign); cap = the net tendered (CONFLICT/OVER_TENDERED); cash is live; the stored-value types joined.

## 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. |
| `tenderType` | [TenderType](/types/TenderType/) `TenderType!` | yes | cash + the stored-value types are live; card refunds ride the processor path; recorded external-card refunds ride the Return lane. |
| `amountMinor` | [Int](/types/#scalars) `Int!` | yes | The POSITIVE magnitude to refund in minor units. |
| `tillSessionId` | [ID](/types/#scalars) | no | The OPEN drawer session paying out — REQUIRED for cash, REFUSED otherwise. |
| `instrument` | [TenderInstrumentInput](/types/TenderInstrumentInput/) | no | The EXPLICIT instrument refund target — REQUIRED for stored-value types, REFUSED otherwise: a refund_reversal credits it in ONE transaction; a depleted target RE-OPENS (system:refund_credit); doomed/inactive refuse CONFLICT/REF_STATE. |
| `reason` | [String](/types/#scalars) `String!` | yes | REQUIRED — money leaves the business (at most 256 characters). When the refund credits a house account (on_account) the reason is recorded on that ledger too — at most 256 characters there. |
| `caption` | [String](/types/#scalars) | no | No further notes. |
| `refs` | [String](/types/#scalars) `[String!]` | no | No further notes. |

## Used by

- [refundTender](/reference/refunds-and-payment-corrections/refundTender/)
