One form, every check behind it

The customer types the card once. halba.js collects device data, your fraud vendor decides and 3D Secure runs only when it is needed.

Device data, collected by Halba

IP address and browser headers are read by Halba's server; screen, time zone and language come from halba.js. Your server passes one client_session id.

A minimal request

Amount, your reference, the card token, the customer's email and the client session. Addresses, items and account history are optional and improve screening and exemptions.

3D Secure on your page

halba.handleNextAction(payment) runs the 3DS Method in the background or shows the bank's challenge above your checkout, then returns the final payment.

Safe to expose

halba.js uses a publishable key that can only collect device data and complete 3DS for your own payments. No cookies, and it never reads your page.

Apple Pay and Google Pay

The wallet token is encrypted for one PSP: Halba chooses that PSP before the button is shown, the PSP decrypts it, and Halba never sees the card.

Cards stay out of your systems

Card details are tokenized in the browser by the vault; Halba and your server only handle tokens.

Available today

  • halba.js with client sessions, 3DS Method and challenge
  • Apple Pay and Google Pay through the PSP chosen for the wallet
  • Card tokens from your Stripe account

Coming next

  • Neutral card vault (PCI Proxy), so the same card can go to any PSP
  • Hosted payment page and modal
  • PayPal, Klarna, Bizum and other redirect methods
  • Mobile SDKs

Try it in the sandbox

Connect your test PSP accounts, create an API key and send your first payment in minutes. No real money moves in the sandbox.