publ betaReference (MCP guide)
Open publ console

publ Reference

Migration map.

promotion_notifications_get

This implementation is a dependency of the documentation branch.

Read the coupon reward notification settings and the source screen's control state. This does not read arbitrary notification events or send messages.

Access and configuration

Requires OWNER or DELEGATEE with MANAGE_PROMOTION on the selected channel. Hosted source rules admit the tool only on the exact selected-channel resource. A separately configured notificationApiOrigin, or PUBL_NOTIFICATION_API_ORIGIN override, is required. No origin is derived from the main API, console or an example hostname; missing configuration returns NOTIFICATION_SERVICE_UNCONFIGURED. Service configuration is an operator concern, not a tool input.

The notification service GET reads /seller/api/v1/configurations/sending-configurations/SYSTEM_GENERAL_CHANNEL_COUPON_REWARD. A separate GET to the normal API's /seller/api/v2/channel-management/installed-p-apps observes the 3RD_A00001 indicator. Both require HTTP 200 data responses with the selected bearer and channel binding. This is a configuration read, not proof of app installation effectiveness.

Input and observation

Input Contract
channelCode Required string of 1–512 characters; excludes literal dot/double dot, slash, backslash, ASCII controls and DEL.

The input is strict; eventKey, app code and service origin cannot be supplied.

{"channelCode":"selected-channel-code"}

Success has code PROMOTION_NOTIFICATIONS, screenId channel.promotion-notifications, settings {isSendPwaPush,isSendAppPush}, revision, canEdit and writesPerformed:false. stored contains id, eventKey, isActivated, isSendEmail, isSendRealtime, receiverType and optional uniReceiverTypes. The complete source record, including unprojected JSON business fields and optional customSubsMsgBodyKey, is retained internally for revision/preservation checks. customSubsMsgBodyKey may be string, null or absent; present insertedAt/updatedAt must be nonempty strings. Leading zeros, signs, spaces, decimal notation and unsafe channel identities are rejected. This normalization applies to the event record only, not arbitrary input IDs or installed-app identities. No missing required source field is replaced with a UI default or created by reading.

The record requires positive safe-integer id and a channelId that is either a positive safe integer or a canonical positive decimal string normalized to a safe integer, the fixed eventKey, boolean activation/realtime/app/PWA/email fields and nonempty receiverType. The installed-app response is bounded to 10,000 records with unique positive safe-integer IDs; every explicit channelId must match. Only the matching 3RD_A00001 records are retained for the revision; more than one is ambiguous.

Two complete record reads and two selected app-indicator reads must agree. The channel, operator and credentials are checked again. revision is a 64-character lowercase hexadecimal digest of canonical context, the complete record and selected app indicators. Do not reconstruct it from the projected response. canEdit equals the stored isActivated value.

Source controls

Returned sourceControls entry Meaning
notificationCenter displayedActive:true, editable:false, storedActive from the source; a visually locked-on control does not imply stored activation.
thirdParty installed reflects the selected indicator; displayedActive requires installed and stored activation; editable:false and deliveryVerified:false.
limitedTimeStart SYSTEM_GENERAL_CHANNEL_LIMITED_TIME_START, enabled:false, readPerformed:false; no second event is fetched.
email visible:false, editable:false; its existing value is preserved by saves.

Only the two push switches are writable, and only while the stored coupon event is active. Use apply with the returned revision. No activation, third-party app flag, email, recipient, message body, install or financial action is exposed.

PROMOTION_NOTIFICATION_UNVERIFIED rejects missing/foreign/malformed event state. PROMOTION_NOTIFICATION_APPS_UNVERIFIED rejects ambiguous app identity. PROMOTION_NOTIFICATION_CHANGED rejects record or selected indicator drift; SCREEN_CONTEXT_CHANGED and connection/permission failures reject unsafe context. There is no guessed default or retry under another channel.

verification.confirmed covers the stored observation; atomicSnapshot and notificationDeliveryVerified are false. Delivery, subscriptions, consent, visitor behavior and billable-message capacity remain unverified. The exact destination is /channels/{channelCode}/promotion-campaign/notification-settings, using an encoded channel segment and the configured canonical console origin; demo omits live navigation.

Inputs

This tool takes no input fields.