# Agent-Anmeldung

Authentifizieren Sie einen automatisierten Agenten mit einer EVM-Wallet, ohne Browser.

Source: https://docs.invoise.me/de/agents/sign-in/

Haben Sie bereits einen Shop-API-Schlüssel? Überspringen Sie die Anmeldung und verwenden Sie die [Zahlungs-API](https://docs.invoise.me/api-reference/). Ein Agent benötigt die Wallet-Anmeldung nur, wenn er ein Konto einrichten oder verwalten muss.

Die Wallet-Anmeldung ist nur für Agenten. Senden Sie diese Anfragen von einem Server oder Skript aus: Eine Anfrage mit einem `Origin`-Header, den jeder Browser hinzufügt, wird mit `403 wallet_sign_in_agents_only` abgelehnt. Das Dashboard bietet keine Wallet-Anmeldung oder Wallet-Verknüpfung an.

## 1. Eine Nachricht anfordern

Verwenden Sie eine EVM-Wallet, die Sie kontrollieren. Ihr privater Schlüssel bleibt in Ihrem Signiertool und wird niemals an Invoise gesendet.

```bash
curl -X POST 'https://platform.invoise.me/api/v1/auth/wallet/challenge' \
  -H 'Content-Type: application/json' \
  -d "{\"address\":\"${WALLET_ADDRESS:?}\",\"chain_id\":${CHAIN_ID:?}}"
```

Setzen Sie `WALLET_ADDRESS` auf Ihre EVM-Adresse und `CHAIN_ID` auf eine verfügbare EVM-Netzwerk-ID aus der [API](https://docs.invoise.me/de/payments/networks/). Die Antwort enthält `challenge_id` und `message`.

## 2. Die zurückgegebene Nachricht signieren

Verwenden Sie die EIP-191-Personal-Message-Signing-Methode Ihrer Wallet. Signieren Sie `message` genau wie erhalten, einschließlich Leerzeichen. Dies ist eine Nachrichtensignatur, keine Transaktion.

Die Challenge ist kurzlebig und einmalig verwendbar. Fordern Sie eine neue an, wenn sie abläuft oder verbraucht ist.

## 3. Die Signatur gegen eine Sitzung eintauschen

```bash
curl -X POST 'https://platform.invoise.me/api/v1/auth/wallet/verify' \
  -H 'Content-Type: application/json' \
  -d '{"challenge_id":"<challenge-id>","signature":"<0x-signature>"}'
```

Speichern Sie `token` sicher und prüfen Sie `expires_at`, `user.mfa_required` und `user.onboarding_required` in der Antwort.

Invoise setzt kein Cookie. Senden Sie die Sitzung in `Authorization: Bearer <token>`; sie benötigt keinen CSRF-Header.

## 4. Einrichtung abschließen

| Bedingung | Nächster Schritt |
| --- | --- |
| `user.mfa_required: true` | Schließen Sie den konfigurierten zweiten Faktor ab, bevor Sie Geschäftsanfragen senden. Die Wallet-Anmeldung umgeht MFA nicht. |
| `user.onboarding_required: true` | Fragen Sie Ihren Menschen nach dessen E-Mail-Adresse und erstellen Sie dann den ersten Händler über `/onboarding` mit `name` und `email`. Ohne die E-Mail-Adresse lautet die Antwort `400 email_required`; eine Wegwerfadresse gibt `400 disposable_email` zurück. |
| Anmeldung abgeschlossen | Fahren Sie mit dem [Agenten-Workflow](https://docs.invoise.me/de/agents/integration/) fort, um einen Händler auszuwählen, einen Shop zu erstellen und einen Shop-API-Schlüssel auszustellen. |

Verwenden Sie die Sitzung für die Einrichtung und den bereichsbezogenen API-Schlüssel für Zahlungsarbeit. Wenn eine Sitzung abläuft, authentifizieren Sie sich erneut. Siehe [Auth-Referenz](https://docs.invoise.me/de/agents/auth-reference/) für Anfrage- und Antwortfelder.
