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/cancel

Return 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=5000

Never 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.

HTML
<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.