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

# KYC — Europe (EUR)

> KYC requirements for opening a EUR (SEPA) account, provided by Monerium. Builds on the standard KYC wizard plus a Monerium authorization handshake.

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

The EUR account flow uses **Monerium** as the provider. The user completes the standard KYC wizard, activates with a Global KYC level, starts Monerium onboarding, and finally completes a Monerium authorization handshake signed by the wallet owner key.

***

## How it works (the flow)

1. **Run the standard KYC wizard** — `PATCH /kyc` plus document uploads (see [core requirements](#core-requirements)).

2. **`POST /kyc/activate`** — with `sumsubLevelName` (EUR users follow the international Global KYC path; `"id-and-liveness"` is the common level).

3. **`POST /onboarding/start-monerium`** — registers the EUR wallet:

   | Field              |                                                |
   | ------------------ | ---------------------------------------------- |
   | `eurWalletAddress` | required — the smart wallet's on-chain address |
   | `eurWalletIndex`   | required — e.g. `0`                            |

4. **`POST /eu/kyc`** — completes the Monerium handshake:

   | Field       |                                                                                          |
   | ----------- | ---------------------------------------------------------------------------------------- |
   | `code`      | required — authorization code returned by Monerium                                       |
   | `signature` | required — wallet-ownership signature (`0x…`) produced on-device by `bmoni_embedded_sdk` |

5. **`GET /onboarding/status`** — poll `moneriumStatus` until `active`.

***

## Core requirements

The standard international profile applies:

**Personal Info**

| Field         |          |
| ------------- | -------- |
| `firstName`   | required |
| `lastName`    | required |
| `middleName`  | optional |
| `dateOfBirth` | required |

**Address**

| Field         |                                                                  |
| ------------- | ---------------------------------------------------------------- |
| `streetLine1` | required                                                         |
| `city`        | required                                                         |
| `state`       | required — state/province (stored upstream as `subdivisionName`) |
| `postalCode`  | required                                                         |
| `countryCode` | required — ISO 3166-1 alpha-3                                    |

**Employment & Compliance**

| Field                         |          |
| ----------------------------- | -------- |
| `employment.employmentStatus` | required |
| `sourceOfFunds`               | required |

**Identification Documents (uploaded files)**

* At least one document of type: `passport`, `drivers_license`, `national_id`, or `government_id`
* Must include a `front` or `additional` image file
* `documentNumber` — required
* `issuingCountryCode` — required

**Proof of Address & Biometric Documents (uploaded files)**

* At least one proof of address document
* At least one biometric scan (selfie / liveness)

***

## Next step

Once `moneriumStatus` is `active`, the user holds `EURe` and can send SEPA payouts — see [EU — SEPA payouts](/api-reference/eu-sepa).
