Embed
Public checkout.js embed for Direct Debit capture and the cart drawer
RevKeen publishes a CDN-hosted embed bundle at https://releases.revkeen.com/embed/v1/checkout.js. It drops Direct Debit capture and a cart drawer onto a merchant site, isolated in a shadow DOM. It does not collect card PAN on the merchant page — card checkout stays on RevKeen-hosted /p/{sessionToken}.
Serve the script from the RevKeen origin only. Do not self-host or re-bundle it.
Direct Debit capture
Auto-mount:
<div
data-revkeen-dd
data-merchant-slug="acme"
data-merchant-id="..."
data-api-base-url="https://checkout.revkeen.com"
></div>
<script src="https://releases.revkeen.com/embed/v1/checkout.js" async></script>Programmatic mount:
<div id="dd"></div>
<script src="https://releases.revkeen.com/embed/v1/checkout.js"></script>
<script>
const instance = RevKeenEmbed.mountDD("#dd", {
merchantSlug: "acme",
merchantId: "...",
apiBaseUrl: "https://checkout.revkeen.com",
onSuccess: (mandate) => console.log("mandate", mandate.mandateRef),
});
</script>merchantSlug is required. apiBaseUrl defaults to https://checkout.revkeen.com, which serves /api/dd/*. Those endpoints enforce a CORS allow-list of approved embed origins. Bank details are not persisted in the browser.
Cart drawer
Cart products are priced server-side. The storefront sends product/price references only, never money fields. Convert still goes to hosted checkout at /p/{sessionToken}.
<button
class="revkeen-add-to-cart"
data-revkeen-product-id="11111111-1111-1111-1111-111111111111"
>
Add to cart
</button>
<button data-revkeen-cart>Cart</button>
<script
src="https://releases.revkeen.com/embed/v1/checkout.js"
async
data-revkeen-cart
data-revkeen-merchant-slug="acme"
data-revkeen-merchant-name="Acme"
data-revkeen-floating-button
></script>revkeen-checkout-link with a product id creates a one-product cart, converts server-side, and redirects to hosted checkout.
What this embed is not
- Not a public card iframe or Polar-style
embed.jsfor PAN entry. - Not a documented
/embed/...checkout route you can iframe for cards.