publ betaReference (MCP guide)
Open publ console

publ Reference

ticket_pricing_get — read and prepare event tier pricing

Read one existing E00003 event's active default pricing policy, or prepare an exact price change, tier link or tier unlink for ticket_pricing_apply. This is an existing registered method. The shared connection at the implementation revision above supports tierPrice, tierLink and tierUnlink. The metadata operation connects policy names and management-label membership.

See Ticket pricing for authorization, the full sequence and recovery. This getter makes no business write and creates no task.

Inputs

Field Required here Contract
channelCode Yes string; min length 1; max length 512; The exact channelCode selected through channel discovery. Do not supply a URL, channel numeric ID, account ID or credentials.
pAppCode Yes E00003
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.
policyId No 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.
operation No one of: tierPrice, tierLink, tierUnlink, metadata (by kind)
operation.eventPolicyTierPriceId Yes When 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.
operation.payment Yes When operation.kind is tierPrice: one of: free, paid (by kind)
operation.payment.amount Yes When operation.kind is tierPrice and operation.payment.kind is paid: string; pattern ^(0|[1-9]\d{0,9})(\.\d{1,2})?$
operation.tierLabelId Yes When 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.
operation.payment Yes When operation.kind is tierLink: one of: free, paid (by kind)
operation.payment.amount Yes When operation.kind is tierLink and operation.payment.kind is paid: string; pattern ^(0|[1-9]\d{0,9})(\.\d{1,2})?$
operation.eventPolicyTierPriceIds Yes When 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
operation.confirmation Yes When operation.kind is tierUnlink: UNLINK_TIER_PRICES
operation.settings Yes When operation.kind is metadata: object
operation.settings.title No When operation.kind is metadata: string; min length 3; max length 50; pattern ^[^\r\n]*$
operation.settings.presentationalTitle No When operation.kind is metadata: string; min length 3; max length 50; pattern ^[^\r\n]*$
operation.settings.labelIds No When 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

Business IDs are 1–160 ASCII letters, digits, underscores or hyphens. They are not numeric database IDs, names or URLs. The input and operation objects are strict: no extra pagination, currency, consumer, installation, credential, header or service-origin fields. Null is not omission.

operation.kind Other fields Preparation
tierPrice eventPolicyTierPriceId, payment Select one existing LISTED price with deletedAt:null. Preserve its tier assignment.
tierLink tierLabelId, payment Select one existing LISTED global tier label with no price row in this policy, including no deleted row.
tierUnlink eventPolicyTierPriceIds, confirmation:"UNLINK_TIER_PRICES" Select 1–100 distinct active price business IDs. Selecting all existing active prices is permitted.

payment is either {"kind":"free"} or {"kind":"paid","amount":"20000"}. Paid amounts are positive decimal strings, subject to currency and channel limits. Currency comes from the selected channel. Free must be explicit; paid zero is rejected.

Read, then prepare the exact operation

Read the policy when the existing event ID is already known:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example"
}

The event ID must come from an authorized observed source, such as the original console. This method does not list events. There is no connected event-list or global-tier-label discovery method in this shared ticket slice; do not invent calls from domain-module names.

Prepare an existing price change:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "policyId": "policy-example",
  "operation": {
    "kind": "tierPrice",
    "eventPolicyTierPriceId": "price-example",
    "payment": {"kind": "paid", "amount": "20000"}
  }
}

Prepare a new price link to an already observed global label:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "policyId": "policy-example",
  "operation": {
    "kind": "tierLink",
    "tierLabelId": "tier-label-example",
    "payment": {"kind": "free"}
  }
}

Prepare removal of one existing price link:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "policyId": "policy-example",
  "operation": {
    "kind": "tierUnlink",
    "eventPolicyTierPriceIds": ["price-example"],
    "confirmation": "UNLINK_TIER_PRICES"
  }
}

These are illustrative inputs, not observed targets or execution permission. Replace every target with current authorized observations. The paid example assumes a KRW channel. Copy policy.eventPolicyId and the revision from the successful preparation into apply. A revision from a read without an operation cannot authorize a write. Changing the operation, selected IDs or payment requires preparing again.

Read coverage and inventory

Each observation reads the selected event and exactly one LISTED default policy using isDefault:true, page 1 and limit 1. The response must identify an active event and a unique active default policy with total 1. It does not enumerate every event policy. A supplied event-policy projection must agree with the selected policy; absent projections are not verified.

The policy contains at most 500 price rows. Numeric IDs, business price IDs and tier-label IDs must each be unique; consumer and currency must match the current context. Returned prices are sorted by eventPolicyTierPriceId, not the original console's display order. Optional embedded event policies are also bounded at 500.

Only tierLink and tierUnlink additionally read the complete LISTED and ARCHIVED global tier-label inventories. Internal pagination uses page 1–5 and limit 100, verifies page sizes, statuses, stable totals and unique identities, and caps the combined inventory at 500. Incomplete, changing or oversized inventory fails closed. The caller cannot choose inventory pages or filters.

availableTierLabels contains only LISTED global labels with no price row in the selected policy. A deleted price row still excludes its label. Plain reads and tierPrice preparation do not return this inventory. Linking therefore requires a previously observed valid label ID; if none is known, select it in the original authorized console. Do not probe with a fabricated ID to obtain options. Global label creation, renaming and archival are not provided by these methods.

Two consecutive business snapshots must agree before a result is returned. Comparison disregards generated insertedAt/updatedAt timestamps and normalizes price amounts for comparison. This detects observed drift; it is not an atomic snapshot or a guarantee against a later concurrent change.

Result and next action

Successful reads return code:TICKET_PRICING, policy, event, revision, verificationScope and writesPerformed:false, with task type commerce-ticket-pricing and screen channel.ticket-pricing. A task type on a read is routing metadata, not a saved job. An operation preparation also returns the planned request; null means an existing-price change is a no-op. Link/unlink preparations can include availableTierLabels as described above.

Fresh validated tier results provide the selected event's exact pricing destination, not the parent event list. The metadata operation uses the separate home destination described below. An error does not produce a current verified link. Use the returned URL rather than reconstructing a console host.

TICKET_PRICING_UNVERIFIED indicates a mismatched or unsupported event/policy/price relationship; TICKET_TIER_LABELS_UNVERIFIED can indicate invalid or incomplete global-label inventory. TICKET_PRICE_INVALID requires correcting the intended price under the channel's rules. COMMERCE_CHANGED requires a fresh observation. Context, permission and service-boundary errors must be resolved without substituting another app, consumer or account. For a previously sent change, use its original task recovery instead of preparing a new request to bypass uncertainty.

<a id="policy-metadata-candidate"></a>

Policy metadata

Use operation:{"kind":"metadata","settings":{...}} with the same selected channel, E00003 event and optional exact default policyId. The existing active-event/default-policy, permission, consumer, currency and context checks still apply. Management labels are distinct from global tier labels and price rows: use labelId/labelIds, not tierLabelId or eventPolicyTierPriceId.

settings field Input and meaning
title Optional management policy name: 3–50 UTF-16 code units, no CR/LF, not all whitespace. Leading/trailing whitespace is preserved. Omission preserves the current value; blank text is invalid.
presentationalTitle Optional public policy name, with the same text constraints and omission rule. This is not a translation editor.
labelIds Optional array of 0–10 unique existing management label business IDs. Omission preserves the current membership; an explicit array replaces it, and [] unlinks all management labels from this policy.

Empty settings:{} inspects the current metadata and options and normally returns a null request. Both retained/final names and the final label count must still satisfy the form, even if the caller changes only one field or inspects with empty settings. Invalid retained values fail preparation instead of being silently rewritten.

Metadata reads the existing event/default policy plus GET /seller/api/v3/ticket-labels with exactly targetModel:EVENT_POLICY and sortBy:inserted_at. The returned catalog is bounded at 500 with unique numeric and business label IDs; an optional returned consumer must match. There is no status/page selector, and the response does not provide pagination-total proof of omitted records. Metadata does not fetch the separate LISTED/ARCHIVED tier-label inventory.

Success adds availableLabels, containing the returned management-label catalog, to the usual policy/event/revision result. Labels carry labelId, title, presentationalTitle, presentationalOrder and status; accepted statuses are AVAILABLE and NOT_AVAILABLE. The contract does not filter choices to AVAILABLE, so do not invent that filter. Select exact observed IDs from availableLabels. Current linked label projections must exist in the catalog and agree in every returned business field; missing, conflicting or foreign data fails closed.

Catalog and linked labels are normalized by labelId. The supplied labelIds order does not control display order, and presentationalOrder is not editable. Existing global labels are not created, renamed, reordered, archived or deleted. The catalog and unedited returned event/policy fields, including prices and refund fields, must remain stable across observations.

Inspect metadata/options using an already observed event:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "operation": {"kind": "metadata", "settings": {}}
}

Prepare names and a complete management-label selection:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "policyId": "policy-example",
  "operation": {
    "kind": "metadata",
    "settings": {
      "title": "Standard policy",
      "presentationalTitle": "Standard admission",
      "labelIds": ["management-label-example"]
    }
  }
}

Independently, prepare clearing policy-label links while preserving both names:

{
  "channelCode": "L2NoYW5uZWxzLzk4",
  "pAppCode": "E00003",
  "eventId": "event-example",
  "policyId": "policy-example",
  "operation": {"kind": "metadata", "settings": {"labelIds": []}}
}

Replace the illustrative IDs with current observations; the label must have been returned in the metadata catalog. Empty-settings inspection is not preparation for changed names or links. Prepare the exact final settings again, then copy its revision and policy.eventPolicyId into metadata apply. A null request is a no-op, not an executed save.

Fresh metadata reads/preparations use the selected event's base-pricing/home destination. Plain discovery and tier operations continue to use base-pricing/detail; keep the single returned URL for the operation. The home destination requires valid current names, catalog/linked projections and the exact target/request. Pending or historical data does not provide a current verified link.