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

# EU — SEPA payouts

> Redeem EUR from a smart wallet to any IBAN over SEPA, using a prepare → sign → complete flow powered by Monerium.

<div className="bmoni-spine">
  <span>Lifecycle</span>
  <a data-stage="1" href="/lifecycle#1-create-the-user">User</a>
  <a data-stage="2" href="/lifecycle#2-provision-the-smart-wallet">Wallet</a>
  <a data-stage="3" href="/lifecycle#3-verify-identity-kyc">KYC</a>
  <a data-stage="4" href="/lifecycle#4-activate-the-rail">Rail</a>
  <a data-stage="5" href="/lifecycle#5-fund-the-wallet">Fund</a>
  <a data-stage="6" href="/lifecycle#6-move-money">Move money</a>
</div>

After [EUR onboarding](/api-reference/kyc-eur-requirements) is `active`, the wallet's `EURe` balance can be redeemed to an IBAN over SEPA. Payouts follow a **prepare → sign → complete** pattern: the proxy prepares the redemption, the user authorizes it with an on-device signature, and the proxy submits it.

***

## 1. Prepare the order

```http theme={null}
POST /v1/users/{userId}/eu/orders/prepare
{
  "smartWalletId": "7f4d6b88-80a0-4d3f-9538-9a4dfabc1234",
  "amount": "100.00",
  "counterpart": {
    "identifier": { "standard": "iban", "iban": "DE89370400440532013000" },
    "details": { "firstName": "Max", "lastName": "Mustermann", "country": "DE" }
  },
  "memo": "Invoice 12345"
}
```

| Field                                        |                                                                                                |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `smartWalletId`                              | required — UUID of the wallet to redeem EUR from                                               |
| `amount`                                     | required — decimal string, up to 2 decimals                                                    |
| `counterpart.identifier.standard`            | required — only `"iban"` is currently supported                                                |
| `counterpart.identifier.iban`                | required — recipient IBAN                                                                      |
| `counterpart.details.firstName` / `lastName` | required — recipient name                                                                      |
| `counterpart.details.country`                | required — ISO 3166-1 alpha-2, e.g. `"DE"`                                                     |
| `memo`                                       | optional — payment reference, 5–140 characters                                                 |
| `supportingDocumentId`                       | optional — required for orders ≥ EUR 15,000; see [Supporting documents](#supporting-documents) |
| `note`                                       | optional free text                                                                             |

The response contains what the user must sign:

```json theme={null}
{
  "workflowId": "monerium-offramp-abc123",
  "messageToSign": "Send EUR 100.00 to DE89..."
}
```

<Note>
  The prepare response may also include a `signatureRequest` (e.g. covering payout fees) — when present, sign and submit it on-device in addition to signing `messageToSign`.
</Note>

## 2. Sign on-device

Sign `messageToSign` with the wallet owner key via `bmoni_embedded_sdk` — the same `signMessage` used in the smart-wallet creation handshake.

## 3. Complete the order

```http theme={null}
POST /v1/users/{userId}/eu/orders/complete
{
  "workflowId": "monerium-offramp-abc123",
  "signature": "0xabc..."
}
```

***

## Supporting documents

Orders of **EUR 15,000 or more** require a supporting document (e.g. an invoice). Upload it first and pass the returned `fileId` as `supportingDocumentId` when preparing the order:

```http theme={null}
POST /v1/users/{userId}/eu/files
Content-Type: multipart/form-data

file: <PDF or JPEG, max 5 MB>
```

```json theme={null}
{ "fileId": "b9fa08b5-46ae-4d85-9ac2-6ca2f4d91234" }
```
