How it works
The flow
You set up the product in the portal
In the portal, set up the product’s quote fields, approval page, branding, pause panel and approval settings. Then publish a version. See Set up a product.
The embed protects the payment step
Add the embed to every page of your quote journey and point it at the button or form that continues to payment. See Add the embed.
Continuing to payment runs a check
When someone continues to payment, the embed holds the click and creates a check. HumanApproved returns continue or review, depending on what it finds and on the product’s When to ask for approval setting. See Agent detection.
Continue, or pause for a review
On continue, the original click proceeds unchanged. On review, a review is created. The embed sends the quote and the customer’s mobile, and shows the agent a pause panel with a link to pass to the customer.
The customer approves the purchase
The customer opens the link, checks the quote and the answers the agent gave, ticks the statements and opens the required documents. They then enter a one-time code sent to the mobile on the quote to approve. This page is for humans: with the product’s bot check on, a browser identified as a bot can’t ask for a code or approve. See Approval methods.
Once approved, the agent can proceed
The embed watches the review’s status. When it’s approved, the pause panel closes and the payment step proceeds automatically. If the customer declines, or the link expires, the panel tells the agent nothing was paid, and the step stays paused.
Your server verifies before you bind
Before you issue the policy, your server reads the review’s outcome with your secret key and checks it’s approved for this quote. See Verify on your server.
Who holds each credential
In an agent flow, keep the review token on your server. See Keys and environments.
When there’s no approval step
- Not an agent. If the product is set to ask for approval only when an agent is detected, the check returns
continuefor every journey not flagged as an agent. - Monitor only. A monitor-only product records every check and always returns
continue. See Monitor only. - No response in time. If HumanApproved doesn’t respond within the configured timeout (default 2.5 seconds), the embed lets the step proceed and reports the check as
fail_open.
Without the embed
From your own server or an agent tool (such as an MCP tool that binds a policy), you make the same calls yourself: create a check, send the quote, give the agent the link, poll the status, then bind and report the result. See Server and agent flows.