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

# Initiate a Pix to stablecoin transaction

> Start a Pix to stablecoin transaction for an approved client by specifying the amount, destination wallet, and target chain and token.

Every transaction requires an auth challenge before a Pix QR code is issued. The challenge type depends on the client's `riskTier` from KYC.

| Risk Tier      | Auth Challenge                     |
| -------------- | ---------------------------------- |
| `STANDARD`     | TOTP MFA (`MFA_TOTP`)              |
| `HIGH` / `PEP` | Liveness verification (`LIVENESS`) |

## Request

<ParamField header="X-Mippo-API-Key" type="string" required>
  Your LaaS API key.
</ParamField>

<ParamField body="kycToken" type="string" required>
  Token from `POST /v1/laas/kyc/submit`. Must not be expired.
</ParamField>

<ParamField body="amountBrl" type="number" required>
  Amount in BRL (R\$). Minimum: `50`. Maximum: `50000` per transaction.
</ParamField>

<ParamField body="asset" type="string" required>
  Stablecoin to receive: `"USDT"` or `"USDC"`.
</ParamField>

<ParamField body="walletAddress" type="string" required>
  EVM-compatible wallet address (EIP-55 checksum). Polygon network.
</ParamField>

```json Request theme={null}
{
  "kycToken": "kyc_1719000000_abc123",
  "amountBrl": 500,
  "asset": "USDT",
  "walletAddress": "0xYourUserWalletAddress"
}
```

## Response

<Tabs>
  <Tab title="Standard Risk">
    <ResponseField name="data.transactionId" type="string">
      Transaction ID. Use in `confirm-mfa` and `status` calls.
    </ResponseField>

    <ResponseField name="data.status" type="string">
      `PENDING_AUTH`
    </ResponseField>

    <ResponseField name="data.authChallenge.type" type="string">
      `MFA_TOTP`
    </ResponseField>

    <ResponseField name="data.authChallenge.instruction" type="string">
      Human-readable instruction to display to your user.
    </ResponseField>

    ```json theme={null}
    {
      "success": true,
      "data": {
        "transactionId": "tx_1719000000_xyz",
        "status": "PENDING_AUTH",
        "authChallenge": {
          "type": "MFA_TOTP",
          "instruction": "Request the 6-digit TOTP code from your user"
        }
      }
    }
    ```
  </Tab>

  <Tab title="High Risk / PEP">
    <ResponseField name="data.authChallenge.type" type="string">
      `LIVENESS`
    </ResponseField>

    <ResponseField name="data.authChallenge.livenessUrl" type="string">
      URL to redirect the user to for liveness verification. Valid for 10 minutes.
    </ResponseField>

    ```json theme={null}
    {
      "success": true,
      "data": {
        "transactionId": "tx_1719000000_xyz",
        "status": "PENDING_AUTH",
        "authChallenge": {
          "type": "LIVENESS",
          "instruction": "User must complete liveness verification",
          "livenessUrl": "https://partners.mippo.io/liveness/tx_1719000000_xyz"
        }
      }
    }
    ```

    <Note>
      When liveness passes, Mippo fires a `transaction.pix_ready` webhook with the `pixPayload`. You do not need to poll.
    </Note>
  </Tab>
</Tabs>
