halba.js and wallets
The less your server has to send, the faster you integrate. halba.js collects in the customer's browser what fraud screening and 3D Secure need, so your server sends only the order.
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.