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

# Quickstart

> Make your first USDC-to-fiat payout end to end.

This guide walks through a complete payout: quote, recipient, transfer, deposit, and status check. Each step is a single API call you can run from your terminal.

## Prerequisites

Before you begin, you must have:

* An API key from the [Developers section](https://business.madhousewallet.com/developers) of the dashboard. See [Authentication](/authentication).
* A funded wallet that can send USDC on a [supported network](/concepts/supported-currencies).
* A KYC-verified wallet address, if your account requires KYC. Verify at [kyc.madhousewallet.com](https://kyc.madhousewallet.com).

<Tip>
  Replace `mw_live_<keyId>_<secret>` in every example with your own key, and set a base URL variable to keep commands short: `export MW=https://business.madhousewallet.com`.
</Tip>

## Get started

<Steps>
  <Step title="Get a quote">
    Request a live rate for a USD to EUR payout. Save the `quoteId` — it is valid for 5 minutes and single-use.

    ```bash theme={null}
    curl "$MW/api/payouts/quote?targetCurrency=EUR&sourceAmount=1000" \
      -H "Authorization: Bearer mw_live_<keyId>_<secret>"
    ```

    The response includes `quoteId`, `usdToTargetRate`, fees, and an estimated delivery time. See [Quotes and fees](/concepts/quotes-and-fees).
  </Step>

  <Step title="Find the recipient's required fields">
    Each currency needs different bank details. Ask which fields to collect for EUR.

    ```bash theme={null}
    curl "$MW/api/payouts/account-requirements?currency=EUR" \
      -H "Authorization: Bearer mw_live_<keyId>_<secret>"
    ```

    The response lists account types (for example `iban`) and their fields. See [Recipients and account requirements](/concepts/recipients).
  </Step>

  <Step title="Create a recipient">
    Create the recipient with the fields you collected. Note the returned `id`.

    ```bash theme={null}
    curl -X POST "$MW/api/payouts/recipients" \
      -H "Authorization: Bearer mw_live_<keyId>_<secret>" \
      -H "Content-Type: application/json" \
      -d '{
        "currency": "EUR",
        "type": "iban",
        "accountHolderName": "Jane Doe",
        "details": { "legalType": "PRIVATE", "iban": "DE89370400440532013000" },
        "wallet": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B"
      }'
    ```
  </Step>

  <Step title="Initiate the transfer">
    Submit the transfer with your `quote_id`, the `recipientId`, and the wallet that will send the USDC. You receive a unique `deposit_address`.

    ```bash theme={null}
    curl -X POST "$MW/api/payouts/transfer" \
      -H "Authorization: Bearer mw_live_<keyId>_<secret>" \
      -H "Content-Type: application/json" \
      -d '{
        "quote_id": "3f7a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
        "amount": 1000,
        "recipientId": 12345678,
        "customer_uuid": "550e8400-e29b-41d4-a716-446655440000",
        "customer_email": "user@example.com",
        "source_token": "usdc",
        "source_network": "base",
        "wallet_address": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B"
      }'
    ```

    The `customer_uuid` must be globally unique — a duplicate is rejected with `409`.
  </Step>

  <Step title="Send the USDC">
    Send exactly the quoted `amount` of USDC from `wallet_address` to the returned `deposit_address`, on the same `source_network`. MW detects the deposit and starts the fiat payout automatically.
  </Step>

  <Step title="Check the status">
    Poll the transfer until it reaches a terminal status.

    ```bash theme={null}
    curl "$MW/api/payouts/transfer/507f1f77bcf86cd799439011" \
      -H "Authorization: Bearer mw_live_<keyId>_<secret>"
    ```

    Status moves from `ready_to_process` to `processing`, `transfer_created`, and finally `completed`. See [Transfer lifecycle](/concepts/transfer-lifecycle).
  </Step>
</Steps>

## Next steps

<Columns cols={2}>
  <Card title="v1 vs v2 transfers" icon="code-branch" href="/concepts/v1-vs-v2">
    Choose the right transfer pipeline for your integration.
  </Card>

  <Card title="Compliance" icon="shield-check" href="/concepts/compliance">
    Learn how wallet verification and sanctions screening work.
  </Card>
</Columns>

<Tip>
  Need help? Email [support@madhousewallet.com](mailto:support@madhousewallet.com).
</Tip>
