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.js for PAN entry.
  • Not a documented /embed/... checkout route you can iframe for cards.

On this page