# Mitgliedschaft erstellen

**POST** `/v1/memberships`

Meldet einen Benutzer für ein Programm an, das zu einem Listing vom Typ `membership` gehört. `membership_id` ist Ihre externe Kennung. Sie muss pro Tenant und Listing eindeutig sein und ist von der Datenbank-ID und `user_id` getrennt.

Nicht-Admins können nur eine eigene Mitgliedschaft erstellen (`user_id` ist standardmäßig der angemeldete Benutzer). Admins können eine beliebige `user_id` angeben.

### Anfragefelder

| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `membership.listing_id` | integer | Ja | ID des Membership-Listings |
| `membership.membership_id` | string | Ja | Externe, vom Tenant definierte Mitglieds-ID (max. 128 Zeichen) |
| `membership.user_id` | integer | Nein | Anzumeldender Benutzer (Admins; Standard: angemeldeter Benutzer) |
| `membership.status` | string | Nein | Anfangsstatus: `active` (Standard), `expired` oder `cancelled`; keine automatische Umstellung |
| `membership.joined_at` | string | Nein | ISO-8601-Anmeldezeitpunkt (Standard: jetzt) |
| `membership.start_date` | string | Nein | Startdatum (`YYYY-MM-DD`) |
| `membership.end_date` | string | Nein | Enddatum (`YYYY-MM-DD`) |
| `membership.duration_months` | integer | Nein | Laufzeit in Monaten |
| `membership.currency_id` | integer | Nein | Währung für die Beitragsverfolgung |
| `membership.metadata` | object | Nein | Frei definierbare Schlüssel-Wert-Metadaten |

### Antwortfelder

**membership** — Erstelltes Mitgliedschaftsobjekt.
