Skip to main content

Partner Widget Overview

The Pagamio Partner Widget is an embeddable purchase journey for your customers. It lets a customer of your app buy airtime, data, electricity, vouchers and other Pagamio VAS products without leaving your app, and pay from the wallet you already hold for them.

You do not build the purchase screens. Pagamio hosts the widget, you open it for a signed-in customer, and Pagamio calls your wallet API to hold, capture or release the customer's funds.

What The Customer Sees​

Categories, products by brand, amount and details, confirmation, processing, receipt and the customer's purchase history. The widget takes your brand colours and logo, and it works without a login of its own: your app has already identified the customer.

How It Is Embedded​

ModeHow it worksTypical use
Web-viewYour mobile app opens the widget URL in a system web-view (Android WebView, iOS WKWebView).Native apps.
iframeYour website frames the widget URL. Your origin must be on the allow-list.Partner websites and web wallets.
Full redirectYou send the customer's browser to the widget. On Close the widget sends the customer back to your return_url.Web apps that prefer a page hand-off (partner-initiated launch only).

The widget also works when opened directly in a browser. In every mode, the widget tells your app about key events through the host bridge.

Roles​

RoleResponsibility
Partner appIdentifies the customer, opens the widget (web-view, iframe or redirect), listens for bridge events.
Partner backendHolds the Pagamio API key and launch secret. Creates sessions, or signs launch tokens. Never exposes either to the app.
Partner walletThe wallet API Pagamio calls to hold, capture or release the customer's funds. See Partner Wallet Contract.
PagamioHosts the widget and its API, runs the purchase with the product aggregator, drives the hold/capture/release lifecycle, and gives you statements.

How A Purchase Flows​

  1. Your backend opens a session for the customer (or signs a launch token). The customer's identity and wallet are fixed at this point; the widget cannot change them.
  2. The customer picks a product and confirms.
  3. Pagamio asks your wallet to hold the amount.
  4. Pagamio buys the product from the aggregator.
  5. On success, Pagamio asks your wallet to capture the hold. On failure, it asks your wallet to release it.
  6. The customer sees the receipt or the failure reason. Your app receives a bridge event.

If Pagamio cannot tell whether the purchase succeeded (for example the aggregator does not answer), the purchase stays pending while Pagamio reads the outcome back, and your hold must stay valid the whole time. See Timing Requirements.

Two Ways To Start A Session​

PathWho calls whatRead
Server-to-server (default)Your backend calls POST /partner/v1/sessions with the API key and loads the returned widgetUrl.Creating A Session
Partner-initiated launchYour app redirects the customer to /w/{partnerCode}/launch with a short-lived signed token.Partner-Initiated Launch

Your onboarding agreement says which path applies to you.

Where To Go Next​

  1. Onboarding: what you and Pagamio exchange.
  2. Start a session using one of the two paths above.
  3. Implement the Partner Wallet Contract and meet the Timing Requirements.
  4. Test in the Sandbox.
  5. Read the Security Notes before go-live.

Last updated: September 2026