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

# Direct Deposit Switch Demo

> Switch a customer's direct deposit to your bank through their payroll provider

The Direct Deposit Switch demo shows how a new customer connects their payroll provider and redirects their direct deposit routing to your bank. The change takes effect on the next pay cycle. **Source:** [GitHub](https://github.com/truvhq/demo-apps#retail-banking)

```bash theme={null}
git clone https://github.com/truvhq/demo-apps.git
cd demo-apps && npm install && cp .env.example .env
npm start && npm run dev  # select "Retail Banking" → "Direct Deposit Switch"
```

<img src="https://mintcdn.com/truv/xdZxh_j1HXZYzFiN/images/demos/retail-banking/direct-deposit-switch.png?fit=max&auto=format&n=xdZxh_j1HXZYzFiN&q=85&s=d9f1bf8e8ae1b10c4a3841b0c287685b" alt="Direct Deposit Switch demo" width="1200" height="676" data-path="images/demos/retail-banking/direct-deposit-switch.png" />

## Flow

<Steps>
  <Step title="Create user and bridge token">
    The backend creates a user and generates a bridge token with `product_type: deposit_switch`.

    ```
    POST /v1/users/
    POST /v1/users/{id}/tokens/
    # { product_type: "deposit_switch", account_details: true }
    ```
  </Step>

  <Step title="Customer connects payroll provider">
    Bridge opens. The customer selects their employer and logs in to authorize the deposit switch.

    Sandbox credentials: `goodlogin` / `goodpassword`
  </Step>

  <Step title="Receive webhook and confirm switch">
    `task-status-updated` fires on completion. Fetch the deposit switch report.

    ```
    GET /v1/users/{user_id}/deposit_switch/report/
    ```
  </Step>
</Steps>

**Integration pattern:** [Bridge Widget](/developers/integration/bridge-widget/overview) | **Products:** DDS
