> ## Documentation Index
> Fetch the complete documentation index at: https://docs.leapfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Embed & WebView

> Deliver magic-link URLs in browsers and native WebViews with presentation flags

## Delivery model

RaaS Widgets does not ship a partner SDK for iframe embedding. The integration model is:

1. Mint a magic link with the Partner API
2. Deliver `data.url` to the end user
3. Let the flow host render the experience

That URL works in a mobile browser, desktop browser, or a native **WebView**.

## Presentation flags

Pass `presentation` on create-link to tune UI gates before flow-specific screens:

| Flag            | Default | When to change                                                                                |
| --------------- | ------- | --------------------------------------------------------------------------------------------- |
| `showSplash`    | `true`  | Set `false` when your app already showed an intro and you want the user dropped into the flow |
| `showAgreement` | `false` | Set `true` when you need the E-Sign / Terms screen inside the widget                          |

```json theme={null}
{
  "referenceId": "user-12345",
  "flow": "smart",
  "presentation": {
    "showSplash": false,
    "showAgreement": true
  }
}
```

Partner theme still loads when splash is disabled.

## Native WebView checklist

<Steps>
  <Step title="Mint the link server-side">
    Never embed your API key in the mobile app. Your backend calls `POST /partner/links` and returns only the URL (and optionally expiry) to the client.
  </Step>

  <Step title="Load the URL">
    Open `data.url` in a full-screen WebView (SFSafariViewController / Chrome Custom Tabs / WKWebView / Android WebView). Prefer system browsers when possible for cookie and biometrics compatibility.
  </Step>

  <Step title="Allow navigation">
    Keep navigation within the flow host and known CIP/payment domains. Do not intercept or rewrite the path unless Leap documents a callback scheme for your integration.
  </Step>

  <Step title="Handle completion">
    Prefer **webhooks** on your backend for authoritative completion. Optionally watch for a partner `callbackUrl` / redirect if your flow config supports returning to your app.
  </Step>
</Steps>

## Deep links and in-app buttons

For non-WebView delivery, open the same `url` with:

* Universal Links / App Links
* SMS or email
* An in-app “Continue” button that launches the system browser

## Security notes

* Treat the link URL as a bearer capability until it expires — do not log it in analytics cleartext if avoidable
* Revoke links that should no longer be usable (`POST /partner/links/{linkId}/revoke`)
* Use short TTLs for push/SMS channels

## Next steps

<CardGroup cols={2}>
  <Card title="Create links" icon="link" href="/raas-widgets/guides/create-links">
    Full create-link contract.
  </Card>

  <Card title="Webhooks" icon="bell" href="/raas-widgets/webhooks/overview">
    Completion signals.
  </Card>
</CardGroup>
