App browser routing
Open the hosted flow yourself and handle the return deep link.
If you would rather not take the SDK dependency, you can open the hosted flow directly. Mint an embed token on your backend, then open the returned embed_url in an in-app browser.
Flow URL
https://app.getwishbone.io/donate
?token=wbt_01HX... # required — from POST /v1/embed/token
&school_id=sch_tennessee # optional pre-selection
&fund=annual_fund
&amount=50.00
&lock_amount=true # hide the amount editor
&lock_school=true # hide the school picker
&return_url=mybank://wishbone/complete
&cancel_url=mybank://wishbone/cancelReturn link
On completion Wishbone redirects to your return_url with the outcome appended as query parameters:
mybank://wishbone/complete
?status=completed
&donation_id=9f14c6d2-7b3a-4e51-a0c8-2d6b8e4f1a92
&school_id=sch_tennessee
&dollar_amount=50.00
&points_redeemed=5000Never treat the return link as proof of settlement. It reflects what the browser saw and can be lost if the cardholder backgrounds the app. Reconcile against the donation webhook.
Iframe embedding
The same token works in an iframe for web banking. Set return_url to a page you control and listen for the postMessage completion event rather than a redirect.
<iframe
src="https://embed.getwishbone.io/v1/session?token=wbt_01HX..."
width="100%"
height="720"
style="border:0"
allow="clipboard-write"
title="Donate with points"
></iframe>app.getwishbone.io and embed.getwishbone.io are not yet serving. See environment status before wiring these into a release.