Skip to main content
The Swippee Credit widget is a drop-in surface an institution embeds in its own app. The customer taps “Need extra cash?”, consents to share their account activity, and gets an instant pre-qualified decision — computed by Swippee’s underwriting engine. It is institution-led: your brand carries the header, Swippee is the quiet “Powered by”, and the final loan decision stays yours.
In preview — not yet self-serve. Two things are gated until Swippee enables your institution (email hello@swippee.com):
  • Embedding only works on allowlisted origins. Today /embed/credit allows same-origin framing only, so the snippet below will not load on your site until we add your domain to the allowlist.
  • The @swippee/connect-react SwippeeCredit export ships with enablement — it is not on the public npm release yet.
Meanwhile, try it on our live demo.
In sandbox/demo mode the decision is computed by the real engine over a synthetic statement — no customer data is touched. See the live demo.

How it works

1

Embed the entry card

Drop the card into your app with one script tag (or the React component).
2

Customer consents

They tap the card and approve sharing their income & obligations — on Swippee, never on your page.
3

You receive the result

On a pre-qualified result the widget posts a short-lived public_token back to your page.
4

Exchange on your server

POST /v1/connect/exchange to read the underwriting result, then make your lending decision.

Quick start (script tag)

<div id="swippee-credit"></div>
<script src="https://swippee.com/embed/credit.js"></script>
<script>
  SwippeeCredit.mount("#swippee-credit", {
    app: "Himalayan Bank",   // shown in the sheet header
    accent: "#c8102e",       // your brand colour (optional)
    amount: 500000,          // advertised maximum, NPR (optional)
    theme: "light",          // light | dark (optional)
    onResult: function (r) {
      // r = { status, public_token, amount, emi, tenor }
      if (r.status === "prequalified") exchange(r.public_token);
    },
    onClose: function (i) {
      console.log("closed:", i.reason);
    },
  });
</script>

React

import { SwippeeCredit } from "@swippee/connect-react";

<SwippeeCredit
  app="Himalayan Bank"
  accent="#c8102e"
  amount={500000}
  onResult={(r) => {
    if (r.status === "prequalified") exchange(r.publicToken);
  }}
/>;

Options

OptionTypeDescription
appstringYour institution/app name, shown in the sheet header.
accentstringYour brand colour (#rrggbb). Themes the widget; never recolours the Swippee mark.
amountnumberAdvertised maximum loan, NPR (default 500,000).
themestringlight or dark (default light).
bankstringYour own bank code → excluded from the “add your other banks” grid.
brandstringEntry-card attribution: text (default — “Powered by Swippee”), mark (logo + text), or none. Inside the flow, the “Powered by Swippee” footer always shows.
scenariostringSandbox demo profile: salaried, high_risk, thin_file, remittance.
onResultfunctionFired with { status, public_token, amount, emi, tenor }.
onClosefunctionFired with { reason } when the customer dismisses the flow.

The result

{
  "status": "prequalified",
  "public_token": "swcredit_…",
  "amount": 500000,
  "emi": 11634,
  "tenor": 60
}
amount and emi are the headline pre-qualified offer; terms and final approval are yours to set. Exchange the public_token for the full underwriting result:
curl -X POST https://api.swippee.com/v1/connect/exchange \
  -H "Authorization: Bearer $SWIPPEE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "public_token": "swcredit_…" }'

Security & privacy

  • The customer consents on Swippee — your page never sees their statement or login.
  • Cross-origin messages are accepted only from the Swippee origin.
  • The widget shows a pre-qualification, not a loan offer; the copy makes the institution’s final-decision role explicit.
  • Reasons are shown to the customer only on a decline (with encouraging next-steps); the full underwriting detail is server-side, for your team.

Other banks & wallets

The customer can optionally add accounts from any bank or wallet Swippee supports for a fuller picture and a higher limit — the list stays in sync with Swippee’s coverage automatically. See Connect for the statement-sharing flow each added account uses.