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

# Flows

> Flow catalog for RaaS Widgets — M2M is one use case among many

## What is a flow?

A **flow** is a productized widget experience registered in the platform catalog. Each flow has:

* A **slug** used in `POST /partner/links` (`flow` field)
* A **host URL** used to build the magic-link `url`
* A **config schema** validated by that flow's strategy

Your partner account can only mint flows listed in `allowedFlows`. Discover yours with:

* `GET /partner/flows` — enabled for your account
* `GET /partner/flows/catalog` — full catalog metadata

## Catalog (conceptual)

| Slug                          | Use case                                                  |
| ----------------------------- | --------------------------------------------------------- |
| `smart`                       | Reference multi-corridor send — minimal create config     |
| `send`                        | Person-to-person send variant                             |
| `m2m`                         | Legacy collect / transfer with rich prefills (`userData`) |
| `request`                     | Originate a money request (shareable ask)                 |
| `fund-request`                | Payer fulfills a money request                            |
| `cash-deposit`                | Cash deposit experiences                                  |
| `deferred-payout-origination` | Sender funds now; recipient claims later                  |
| `payout-claim`                | Recipient claim side (often platform-minted)              |

<Note>
  M2M is **one row in this table**, not the name of the platform. Prefer `smart` for new send integrations unless you need m2m-style prefills.
</Note>

## Choosing a flow

<AccordionGroup>
  <Accordion title="I want users to send money with minimal partner data">
    Use **smart** (or **send**). Start with [Quick Start](/raas-widgets/quickstart).
  </Accordion>

  <Accordion title="I already have KYC / bank data and want less widget friction">
    Use **m2m** and pass `config.userData`. See [M2M flow](/raas-widgets/flows/m2m) and [User data](/raas-widgets/guides/user-data).
  </Accordion>

  <Accordion title="I want users to ask someone else to pay them">
    Use **request** to originate, then the payer opens a **fund-request** link.
  </Accordion>

  <Accordion title="Cash deposit">
    Use **cash-deposit**. See [Cash deposit](/raas-widgets/flows/cash-deposit).
  </Accordion>

  <Accordion title="Deferred remittance">
    Use **deferred-payout-origination** (and claim via **payout-claim** when applicable).
  </Accordion>
</AccordionGroup>

## Guides by flow

<CardGroup cols={2}>
  <Card title="Smart" href="/raas-widgets/flows/smart">Reference send</Card>
  <Card title="M2M" href="/raas-widgets/flows/m2m">Prefill-heavy collect</Card>
  <Card title="Send" href="/raas-widgets/flows/send">Send variant</Card>
  <Card title="Request" href="/raas-widgets/flows/request">Originate requests</Card>
  <Card title="Fund request" href="/raas-widgets/flows/fund-request">Fulfill requests</Card>
  <Card title="Cash deposit" href="/raas-widgets/flows/cash-deposit">Cash deposit</Card>
  <Card title="Deferred payout" href="/raas-widgets/flows/deferred-payout">Origination + claim</Card>
</CardGroup>
