Our client-side libraries and SDKs collect your customer's payment details and turn them into a token — a single-use reference you send to your backend to create the charge. Sensitive data never touches your servers.Pick one library, get every payment method.
Card, Cash, Transfer, Subscriptions and Payouts are all reachable from the same SDK. You only choose where the payment form lives: your page, our hosted fields, or a plug-and-play checkout.
🔄 How the flow works#
Every Kushki library follows the same three steps, regardless of platform:| Step | Where it runs | What happens |
|---|
| 1. Collect | Client (browser / app) | The customer enters their payment details into the SDK. |
| 2. Tokenize | Client → Kushki | The SDK sends the data to Kushki and returns a token. Your servers never see the card. |
| 3. Charge | Your backend → Kushki | You send the token to your backend, which calls the Kushki API to create the charge. |
A token is single-use and short-lived. Generate a new one for every transaction.
🧭 Which library should I use?#
| If you need… | Use | Platform |
|---|
| A web payment form you fully style, without handling card data | Kushki.js Hosted Fields ✅ recommended | Web |
| A checkout you can drop in with almost no code | Cajita SDK | Web |
| To maintain an existing integration built on the previous JS library | Kushki.js (legacy) | Web |
| Native payments inside an Android app | Android SDK | Android |
| Native payments inside an iOS app | iOS SDK | iOS |
Starting a new web integration? Go with Kushki.js Hosted Fields — it is ~9× lighter than Kushki.js, modular, and keeps sensitive card data out of your DOM entirely.
🌐 Web libraries#
⭐ Kushki.js Hosted Fields
Kushki.js Hosted Fields#
The current generation of our JavaScript library: lighter, modular and safer. The input fields are hosted on Kushki servers and rendered inside your own layout, so you keep full control of the design without ever handling sensitive card data.Import only the modules you actually use.| Module | What it covers |
|---|
Kushki | Library initialization, bank list, commission configuration. |
Card | Card tokens, Apple Pay, device tokens, brand branding animation. |
Card Payouts | Payout tokens to a card. |
Antifraud | 3DS validation and Sift Science initialization. |
📱 Mobile SDKs#
Android SDK#
Collect payments natively in your Android application, with built-in 3DS and Sift Science support and Visa / Mastercard sensory branding animations.Covers — card tokens (with 3DS), bin info, card async (Chile), Transfer In, Cash In, card subscriptions, async subscriptions (Chile) and Cash Out (Colombia).
⚖️ Kushki.js vs. Kushki.js Hosted Fields#
| Characteristic | Kushki.js | Kushki.js Hosted Fields |
|---|
| Size | ~2.7 MB | ~307 KB |
| Modularity | No | Yes |
| Import via CDN | Yes | Yes |
| Import via NPM | Yes | Yes |
| Import via YARN | No | Yes |
| Handles sensitive card data in your DOM | Yes | No |
| 3DS / OTP validation | Separate method calls | Automatic inside requestToken() |
| Deferred payment options | requestDeferred() method | Returned by requestToken() |
🚀 Next steps#
1.
Pick your library from the tables above and follow its installation guide.
2.
Generate a token in your client using the method that matches your payment type.
3.
Send the token to your backend and create the charge with the Kushki API. 4.
Move to production when your tests pass — review the test-to-production checklist.
Keep an eye on Release notes for new methods, payment methods and country availability.