# ticket_discount_settings_get
Lists an event's discount policies, reads one, or checks a change (names and labels, sales conditions, discount prices, tier links) or a deletion before it is made. Read only.
## Inputs
| Field | Required here | Contract |
| --- | --- | --- |
| `eventId` | Yes | string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL. |
| `view` | Yes | one of: `list`, `policy`, `delete` (by `kind`) |
| `view.page` | No | When `view.kind` is `list`: integer; minimum 1; maximum 10000; default `1` |
| `view.policyId` | Yes | When `view.kind` is `policy`: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL. |
| `view.operation` | No | When `view.kind` is `policy`: one of: `tierPrice`, `tierLink`, `tierUnlink`, `metadata`, `salesTerms` (by `kind`) |
| `view.operation.eventPolicyTierPriceId` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierPrice`: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL. |
| `view.operation.payment` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierPrice`: one of: `free`, `paid` (by `kind`) |
| `view.operation.payment.amount` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierPrice` and `view.operation.payment.kind` is `paid`: string; pattern `^(0\|[1-9]\d{0,9})(\.\d{1,2})?$` |
| `view.operation.tierLabelId` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierLink`: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL. |
| `view.operation.payment` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierLink`: one of: `free`, `paid` (by `kind`) |
| `view.operation.payment.amount` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierLink` and `view.operation.payment.kind` is `paid`: string; pattern `^(0\|[1-9]\d{0,9})(\.\d{1,2})?$` |
| `view.operation.eventPolicyTierPriceIds` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierUnlink`: array; items: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL.; min items 1; max items 100 |
| `view.operation.confirmation` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `tierUnlink`: `UNLINK_TIER_PRICES` |
| `view.operation.settings` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `metadata`: object |
| `view.operation.settings.title` | No | When `view.kind` is `policy` and `view.operation.kind` is `metadata`: string; min length 3; max length 50; pattern `^[^\r\n]*$` |
| `view.operation.settings.presentationalTitle` | No | When `view.kind` is `policy` and `view.operation.kind` is `metadata`: string; min length 3; max length 50; pattern `^[^\r\n]*$` |
| `view.operation.settings.labelIds` | No | When `view.kind` is `policy` and `view.operation.kind` is `metadata`: array; items: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL.; max items 10 |
| `view.operation.settings` | Yes | When `view.kind` is `policy` and `view.operation.kind` is `salesTerms`: object |
| `view.operation.settings.languages` | No | When `view.kind` is `policy` and `view.operation.kind` is `salesTerms`: array; items: `ko`, `en`, `ja`, `zh-cn`, `zh-tw`, `fr`, `es`, `de`, `ru`, `pt`, `it`, `ar`, `hi`, `bn`, `vi`, `id`, `th`, `tr`, `fa`, `pl`, `others`; min items 1; max items 21 or null |
| `view.operation.settings.codes` | No | When `view.kind` is `policy` and `view.operation.kind` is `salesTerms`: array; items: string; pattern `^[a-z0-9]{2,20}$`; min items 1; max items 10 or null |
| `view.operation.settings.purchaseUnit` | No | When `view.kind` is `policy` and `view.operation.kind` is `salesTerms`: integer; minimum 1; maximum 20 or null |
| `view.operation.settings.minimumQuantity` | No | When `view.kind` is `policy` and `view.operation.kind` is `salesTerms`: integer; minimum 2; maximum 100 or null |
| `view.policyIds` | Yes | When `view.kind` is `delete`: array; items: string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL.; min items 1; max items 100 |
| `view.confirmation` | Yes | When `view.kind` is `delete`: `DELETE_DISCOUNT_POLICIES` |
## Usage
Give the `eventId` and a `view`:
- `view:{kind:"list", page}`: one page of the event's active discounts (the default policy is not a discount). `coverage.nextPage` gives the next page, or null.
- `view:{kind:"policy", policyId}`: one discount with its base policy and event.
- `view:{kind:"policy", policyId, operation}`: checks one change, described below.
- `view:{kind:"delete", policyIds, confirmation:"DELETE_DISCOUNT_POLICIES"}`: checks deleting 1–100 selected discounts.
| `operation.kind` | Fields | Change |
| --- | --- | --- |
| `metadata` | `settings` with optional `title`, `presentationalTitle`, `labelIds` | Names or this discount's management labels. |
| `salesTerms` | `settings` with optional `languages`, `codes`, `purchaseUnit`, `minimumQuantity` | Sales conditions, merged into the existing ones. |
| `tierPrice` | `eventPolicyTierPriceId`, `payment` | One discount price, keeping its tier. |
| `tierLink` | `tierLabelId`, `payment` | A new discount price for a tier label. |
| `tierUnlink` | `eventPolicyTierPriceIds` (1–100), `confirmation:"UNLINK_TIER_PRICES"` | Removes selected discount prices; all may be selected. |
### Names and management labels
Names are single lines of 3–50 characters; spaces at the ends are kept. An omitted name stays, but both final names must be valid. `labelIds` is the complete selection of up to ten existing management labels: omit it to keep the links, or give `[]` to remove all links from this discount (the labels themselves stay). `settings:{}` reads the names and the label options (`availableLabels`, AVAILABLE and NOT_AVAILABLE labels, at most 500).
### Sales conditions
| Setting | Value | `null` |
| --- | --- | --- |
| `languages` | 1–21 of ko, en, ja, zh-cn, zh-tw, fr, es, de, ru, pt, it, ar, hi, bn, vi, id, th, tr, fa, pl, others | Turns the condition off. |
| `codes` | 1–10 codes of 2–20 lowercase letters or digits, used as given | Turns the condition off. |
| `purchaseUnit` | 1–20; 1 means no unit restriction | Turns the condition off. |
| `minimumQuantity` | 2–100 | Turns the condition off. |
Omitted conditions, and conditions the console does not show, stay as they are. Empty arrays and `"*"` are refused; use null to turn a condition off. Codes are display and purchase conditions of the discount, not coupons: no code is generated or issued.
### Discount prices
`payment` is `{"kind":"free"}` or `{"kind":"paid","amount":"..."}` with the final amount as decimal text; there are no percentage discounts. Paid amounts follow the channel's [ticket price rules](ticket_pricing_apply.md#price-rules) and cannot exceed the base price for the same tier label. Linking needs an active tier label without a price in this discount (including deleted prices) and fewer than 500 prices; `availableTierLabels` lists the labels that can be linked. Use the console when no label can be found.
```json
{"eventId": "event-example", "view": {"kind": "list", "page": 1}}
```
```json
{
"eventId": "event-example",
"view": {
"kind": "policy",
"policyId": "discount-example",
"operation": {"kind": "salesTerms", "settings": {"languages": ["en", "ko"], "codes": null, "purchaseUnit": 2, "minimumQuantity": 4}}
}
}
```
```json
{"eventId": "event-example", "view": {"kind": "delete", "policyIds": ["discount-example"], "confirmation": "DELETE_DISCOUNT_POLICIES"}}
```
## Results
| Code | Meaning |
| --- | --- |
| `TICKET_DISCOUNT_POLICIES` | One list page with pagination and coverage. |
| `TICKET_DISCOUNT_SETTINGS` | One discount, its base policy and event; with an operation, the request that would be sent (`null` when nothing changes), `availableLabels` or `availableTierLabels`. |
| `TICKET_POLICY_LIFECYCLE` | A deletion check: every active discount (at most 500), the selection and the delete request. |
| `TICKET_DISCOUNT_SETTINGS_UNVERIFIED` / `TICKET_POLICY_LIFECYCLE_UNVERIFIED` | A policy relationship, a price cap or the selection could not be confirmed, for example a missing discount or the default policy in a deletion. |
Nothing is saved. [ticket_discount_settings_apply](ticket_discount_settings_apply.md) runs the same check in its preview. Creating and copying discounts use [ticket_discount_creation_apply](ticket_discount_creation_apply.md); translations use [ticket_translation_apply](ticket_translation_apply.md). Coupons, schedules, issued tickets, checkout, refunds and settlement are not part of this tool.