Skip to main content
Kalixo.js renders the payment form for a checkout session. Kalixo decides which payment form to show, so your integration never changes when Kalixo changes providers.

Load Kalixo.js

Always load Kalixo.js from js.kalixo.io. Do not bundle or self-host it: Kalixo ships security fixes and new payment methods through this URL.
To pin a release, load https://js.kalixo.io/v1/<version>/kalixo.js with the integrity hash from the release notes.

Mount the checkout

If you do not listen to payment.completed, Kalixo.js redirects the shopper to the session’s return_url with ?session_id=cs_....
Browser events are for the shopper experience only. Never fulfil from payment.completed, a return_url redirect, or checkout_session.status. Confirm on your server with GET /v1/payments/{id} or the payment.captured webhook, and refuse the order if amount_mismatch is true.

Events

Styling

Pass theme tokens; do not style the inner form with your own CSS selectors.
Kalixo can also set default theme tokens for your account.

Redirect payment methods

Some payment methods send the shopper to their bank. The bank returns the shopper to Kalixo, and Kalixo forwards them to your return_url with ?session_id=cs_.... Read the payment on your server to show the result.

Content Security Policy

If your checkout page uses a CSP, it must allow Kalixo.js, the Kalixo API and the secure payment fields that Kalixo.js loads:
The secure payment fields need a few more domains. Ask Kalixo integrations at [email protected] for the complete policy for your account. Kalixo tells you about changes to it before they are needed.

PCI DSS

Card details are entered in secure fields that Kalixo.js loads from the payment provider. Card data never touches your page or Kalixo’s servers, which keeps your PCI scope at SAQ A, provided you load Kalixo.js from js.kalixo.io.