# OrderDiscountInput

input type

One pre-tax discount entry — amountMinor ⟺ kind amount, percentPpm ⟺ kind percent; reason REQUIRED. Only source manual is accepted from CALLERS (VALIDATION/INVALID otherwise — the input boundary refuses every other source; the coupon/promo/loyalty/employee engines emit their entries server-side, the gate stands FOREVER — the wording rule: the live wire answers INVALID, never UNSUPPORTED). Engine refs (promotionId/couponId) are OUTPUT-only — never accepted here.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `kind` | [SaleDiscountKind](/types/SaleDiscountKind/) `SaleDiscountKind!` | yes | No further notes. |
| `source` | [SaleDiscountSource](/types/SaleDiscountSource/) `SaleDiscountSource!` | yes | No further notes. |
| `amountMinor` | [Int](/types/#scalars) | no | No further notes. |
| `percentPpm` | [Int](/types/#scalars) | no | No further notes. |
| `reason` | [String](/types/#scalars) `String!` | yes | No further notes. |
