> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aurasos.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aurasos.com/_mcp/server.

# Embedded flows

Embedded flows let you add customer-facing experiences without rebuilding
every screen yourself. Your backend creates or receives a secure URL, your app
opens it in a browser or WebView, and AURA returns the customer to your product
when the flow is complete.

The same embedding pattern applies to:

* [Customer signup](/overview/embedded-flows/customer-signup) - onboarding, payment,
  subscriptions, and optional Fixed Location setup.
* [Subscription management](/overview/embedded-flows/subscription-management-flow) -
  customer-managed subscription and payment updates.
* [Callout tracking](/overview/embedded-flows/callout-tracking) - live callout tracking
  after a callout is created.

## Starter project

A minimal React Native (Expo) starter project is available at
[Aura-app/embed-example-app](https://github.com/Aura-app/embed-example-app).

Use it as a reference for opening an AURA-hosted URL, handling navigation inside
an embedded browser experience, and returning the customer to your app after the
flow completes.

## How it works

```mermaid
flowchart LR
    A["Your backend creates or receives hosted URL"] --> B["Your app opens URL"]
    B --> C["Customer completes AURA-hosted flow"]
    C --> D["AURA redirects to your return URL or closes the active flow"]
    D --> E["Your backend verifies final state through the API"]
```

## Implementation notes

* Create hosted sessions from your backend, not from an untrusted client.
* Treat the hosted URL as session-specific and customer-specific.
* Always verify the final state through the API after a redirect or app return.
* Handle `completed`, `failed`, and `cancelled` outcomes where a hosted flow
  provides a `returnUrl`.
* For callout tracking, keep the link available while the callout is active so
  the customer can reopen live tracking.

## In the API Reference

* [Create a signup session](/api-reference/customer-sessions/create-customer-signup-session)
* [Create a subscription-management session](/api-reference/subscription-sessions/create-subscription-management-session)
* [Create a customer callout](/api-reference/callouts/create-customer-callout)