CheckboxDocs

Custom checkout

For checkouts you build yourself (Stripe Elements, Paddle, Chargebee, Braintree or anything else) — check the disclosure text and the rendered page, then use Checkbox Elements or the generated HTML.

When the pay button is on your own page, the disclosure and consent are your code. Checkbox checks the text and the rendered page before you deploy, and gives you engine-verified replacement copy and HTML.

Check the disclosure text

Describe what is next to your pay button: the text, where it sits, how it looks, and the consent checkbox if there is one. Checkbox models the page and runs the ten sign-up checks:

curl https://app.checkbox.site/v1/checks/disclosure \
  -u "$CHECKBOX_SECRET_KEY:" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Start your free trial today!",
    "merchant_name": "Joybox",
    "price": 19.99,
    "interval": "month",
    "trial_days": 14,
    "cancel_url": "https://joybox.example/account/cancel",
    "placement": { "above_button": true, "font_size_px": 12 },
    "consent": { "checkbox": true, "prechecked": true }
  }'

This one fails several checks (no renewal terms, a pre-checked box, small text). replacement holds the verified wording, the consent label and html you can paste. With the CLI:

Shell
checkbox check disclosure --text "Start your free trial today!" --merchant-name Joybox \
  --price 19.99 --interval month --trial-days 14 --cancel-url https://joybox.example/account/cancel \
  --consent-checkbox --prechecked --offline

Check the rendered page

Before you deploy, send the HTML of the page as the browser renders it (after JavaScript). The static check reads buttons, terms blocks, consent checkboxes and links; layout is estimated, so a passing layout estimate is reported as needs_review until a scan confirms it:

Shell
cat > checkout.html <<'EOF'
<form action="/subscribe" method="post">
  <p>Joybox Pro — $19.99/month</p>
  <button type="submit">Subscribe</button>
</form>
EOF
checkbox check page --file checkout.html --merchant-name Joybox --price 19.99 --interval month --offline

Use Elements

The simplest fix is Checkbox Elements: the <checkbox-disclosure> element renders the locked disclosure for your terms directly above your pay button, keeps the button disabled until the box is ticked, repairs its own styling if your CSS breaks the requirements, and records each consent as evidence.

Verify after deploying

Register the site with checkout_url set to the page with the pay button (and checkout_steps when the shopper has to click through first), then run checkbox verify --wait or verifySite. The synthetic shopper visits from each state on desktop and mobile and measures the real layout.

Checkbox is compliance software, not a law firm; nothing in these docs is legal advice (details). For AI agents: every page is available as Markdown at the same URL plus .md; the index is /llms.txt.