Drop a single <iframe> into your app and your customers can add money to their Market Money wallet without you building any payment UI. Add Funds handles amount selection, card payment method, and confirmation. Your app renders the screen title and exit button; the iframe is the body. The iframe does not launch Plaid Link — link banks from your app with Plaid's native SDK, and they show up as selectable accounts.
POST /v1/users:upsert on sign-in and store the returned id.Your backend exchanges the API key for a short-lived JWT and passes it to the client as iframeToken. The API key never leaves your server.
// Exchange API key for a short-lived iframe token (10 min)
const { accessToken } = await fetch(
`${UPTOP_API_BASE}/v1/users/${userId}/auth/client-token`,
{ method: 'POST', headers: { 'Api-Key': process.env.UPTOP_API_KEY } }
).then(r => r.json());
// Return accessToken to the client — never the raw API key
return { iframeToken: accessToken };Try it — fetch a token to activate the live preview:
Set your API Key and User ID in settings to fetch a token.
One screen in your app, one iframe URL. It takes the userId and the iframeToken from the exchange above.
<iframe
src="https://urbanspace-docs.uptop.xyz/embed/add-funds?userId={USER_ID}&iframeToken={TOKEN}"
width="390"
height="844"
style="border:none;"
allow="payment"
></iframe>To point an embed at the dev API from a development build, add &env=dev to the URL. Leave it off in production: without it the embed talks to the production API, so existing integrations are unaffected. The live preview on the right follows the environment selected in the top bar.
No preview
Set your API Key and User ID in settings, then fetch a token in the Authentication section.