messenger_paid_pricing_apply
# messenger_paid_pricing_apply
Set the default per-message fee, or one direct room's fee, or make one direct room free in the Messenger app (pApp D00003). Requires the target, change set-price (confirmation SET_PAID_MESSAGE_PRICE) with price (KRW from 300 in steps of 100, USD from 0.30 in steps of 0.10; currency defaults to the channel currency) or make-free (confirmation MAKE_DIRECT_CHAT_FREE; direct room; its entered fee is reset [str_8352]). The first default fee cannot be deleted afterwards, only its amount changed [str_8351]: ask the user again before creating it. A room fee needs an active default fee [str_8345]. No purchase or message. A lost receipt stays pending and is never resent; task_resume only observes, and prepared work needs the identical apply. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once. Ask the user again before executing; this cannot be undone. When the preview has requiresReconfirmation, execute only with irreversibleConfirmed: true after the person confirms again.
## Inputs
| Field | Required here | Contract |
| --- | --- | --- |
| `target` | Yes | one of: `default`, `room` (by `kind`) |
| `target.roomUuid` | Yes | When `target.kind` is `room`: string; pattern `^[A-Za-z0-9_-]{1,200}$` |
| `change` | Yes | one of: `set-price`, `make-free` (by `action`) |
| `change.price` | Yes | When `change.action` is `set-price`: object |
| `change.price.currency` | No | When `change.action` is `set-price`: `KRW`, `USD`; Omit to use the verified channel base currency already read by the host. An explicit currency only asserts that it matches; it never changes the currency or supplies an unknown default. |
| `change.price.amount` | Yes | When `change.action` is `set-price`: string; max length 20; pattern `^(?:0\|[1-9]\d*)(?:\.\d{1,2})?$` |
| `change.confirmation` | Yes | When `change.action` is `set-price`: `SET_PAID_MESSAGE_PRICE` |
| `change.confirmation` | Yes | When `change.action` is `make-free`: `MAKE_DIRECT_CHAT_FREE` |
| `confirmToken` | No | string; pattern `^ct[a-f\d]{32}$`; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute. |
| `irreversibleConfirmed` | No | `true`; true only after the person confirmed again, when the preview has requiresReconfirmation: the action cannot be undone. |