> This page is for version 🇦🇺 AU (default).
> For other versions, use one of these documentation indexes:
> - 🇦🇺 AU (default): https://docs.humanapproved.com/au/llms.txt
> - 🇬🇧 UK: https://docs.humanapproved.com/uk/llms.txt
> - 🇺🇸 US: https://docs.humanapproved.com/us/llms.txt

> This is HumanApproved's documentation, as Markdown for AI agents. /llms.txt lists every page; /llms-full.txt has them all. If you're helping someone integrate HumanApproved, start with /guides/ai-coding-agents.

# Embed 1.3.0

Every word of the pause panel now comes from the portal, the customer's decline reason reaches you, monitor-only products never hold a press, and checks are faster from far away.

### New

* **Every word of the panel from the portal.** The pause panel shows all of the wording set on the product's **Agent popup** page, not only the heading, extra instructions, customer note and back button. Change it in the portal and publish: no embed release or code change needed. See [The pause panel](/au/embed/sdk/pause-panel).
* **The customer's decline reason.** When a customer declines with a reason, the panel tells the agent ("Their reason: I've changed my mind."), and `onResult` hears it as `declineReason`, with a stable `code` and the `label` the customer saw.
* **`declineReason` in the status API.** `GET /api/v1/reviews/{reviewId}/status` now returns `declineReason` (`null`, or `{ code, label }`), so your own UI or agent flow can say why too. If you parse the response strictly, allow for new fields.
* **`timeoutMs` for live keys.** Live keys now accept `timeoutMs`, like test keys. For every key it's clamped to 0.5 to 20 seconds. See [protect() options](/au/embed/sdk/options#timeoutms).
* **Monitor-only products never hold a press.** On a product set to monitor only, the press goes straight through and the check runs in the background. `onResult` hears the outcome afterwards with `monitored: true`. See [Monitor only](/au/guides/monitor-only).
* **Timings for the portal's latency charts.** Each check's result now carries how long the press waited, for the new latency charts on the portal's checks page. It's sent in the report the embed already makes and never slows the press.
* **Approval page: a thank-you page** for the customer after they approve.
* **Approval page: every extra listed.** A product that names its extras lists every one on the approval page, ticked or crossed.
* **Approval page: bot check.** You can switch on a bot check for the approval page's actions in a product's approval settings. The customer sees "Checking you're a human…" while it runs.
* **Portal:** approvals, agent detections and checks link to each other, and every portal page, including API keys, shows the selected product only.

### Changed

* **Checks without a CORS preflight.** Once the embed knows the product's settings, it sends the check and its result as simple requests, so the browser no longer makes a preflight round trip before each one. The quote and status calls still carry the review's token in a header and are preflighted, with the preflight cached for up to two hours. Your Content Security Policy needs no change.
* **The approval page** now tells the customer they aren't covered until the purchase is completed.

### Fixed

* The approval page's bot check now waits for its answer instead of letting a slow one through.