Zum Inhalt springen

Einen Beitrittsantrag für eine Person stellen (serverseitig)

POST
/v1/enroll
curl --request POST \
--url https://api.vimine.network/v1/enroll \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "email": "hello@example.com", "first_name": "example", "last_name": "example", "codicefiscale": "example", "codicefiscale_confirmed": true, "guardian": { "first_name": "example", "last_name": "example", "relation": "example", "codicefiscale": "example", "email": "hello@example.com", "phone": "example" }, "address": { "kind": "residence", "line": "example", "postal_code": "example", "city": "example", "province": "example", "country": "IT" }, "phone": "example", "dob": "2026-04-15", "gender": "M", "birthplace": "example", "birth_country": "example", "membership_type": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "locale": "example", "accept_statuto": { "version": 1, "sha256": "example" }, "privacy_notice": { "version": 1, "sha256": "example", "locale": "example" }, "accept_terms": { "version": "example", "sha256": "example" }, "acknowledge_privacy": { "version": "example", "sha256": "example" } }'

Legt bei einer neuen Adresse die Identität an, dazu den Beitrittsantrag (bei einer kostenlosen Art ohne Genehmigungspflicht sofort ACTIVE ausgestellt, sonst PENDING, bis der Verein den Mitgliedsbeitrag erfasst und/oder genehmigt). Eine Adresse, die schon ein Vimine-Konto hat, wird nie stillschweigend verknüpft: Ihr Inhaber erhält einen Bestätigungslink, und der Antrag entsteht, wenn er ihn verwendet. Antwortet immer 202. accept_statuto muss die geltende Version des Statuto nennen (und sha256, wenn veröffentlicht). Nur Client-Tokens (enroll:write); akzeptiert Idempotency-Key.

Medientypapplication/json
object
email
erforderlich
string Format: email
first_name
erforderlich
string
<= 50 Zeichen
last_name
erforderlich
string
<= 50 Zeichen
codicefiscale

Optional. Eine Person wird über eine Steuernummer ODER über dob + birthplace + birth_country identifiziert — nie über keins von beidem (422 required für jede fehlende Geburtsangabe). Wenn vorhanden, wird sie geprüft und mit den Namen, dem Datum und dem Ort abgeglichen (bei im Ausland geborenen Personen mit dem Staat)

string
nullable <= 16 Zeichen
codicefiscale_confirmed

Die Person bestätigt eine Steuernummer, die nicht zu ihren Angaben passt (422 codicefiscale_mismatch mit confirmable: true)

boolean
guardian

Wer die elterliche Sorge für eine minderjährige Person innehat (unter 18 laut dob). PFLICHT bei einer minderjährigen Person, wo der Verein erklärt hat, dass er den Block erfasst (aps.collects_guardian_data): sonst 422 required auf dem Feld guardian; nur gespeichert, wo er das erklärt hat

object
first_name
erforderlich
string
<= 50 Zeichen
last_name
erforderlich
string
<= 50 Zeichen
relation
erforderlich

Elternteil, Vormund… wie der Verein es erfasst

string
<= 20 Zeichen
codicefiscale

Optional; abgelehnt, wenn fehlerhaft aufgebaut

string
nullable <= 16 Zeichen
email
string Format: email
nullable
phone
string
nullable <= 20 Zeichen
address

Wohnsitz oder, falls abweichend, Domizil. Wird von allen Mitgliedern oder von keinem verlangt: Das öffentliche Profil sagt, was der Verein erklärt hat (member_address: none — ignoriert, nicht gespeichert · optional · required — ohne Adresse 422 required auf dem Feld address)

object
kind
string
Standard: residence
Erlaubte Werte: residence domicile
line
erforderlich

Straße und Hausnummer

string
<= 150 Zeichen
postal_code
string
nullable <= 12 Zeichen
city
erforderlich
string
<= 150 Zeichen
province

Nur italienische Adressen (zwei Buchstaben); bei Adressen im Ausland verworfen

string
nullable <= 2 Zeichen
country

ISO 3166-1 alpha-2

string
Standard: IT >= 2 Zeichen <= 2 Zeichen
phone
string
nullable <= 20 Zeichen
dob
string Format: date
nullable
gender

Nur statistisch: wird nicht abgeglichen

string
nullable
Erlaubte Werte: M F
birthplace

Gemeinde (in Italien geboren) oder Stadt, freier Text (im Ausland geboren)

string
nullable <= 150 Zeichen
birth_country

ISO 3166-1 alpha-2

string
nullable >= 2 Zeichen <= 2 Zeichen
membership_type

Eine der Mitgliedsarten des Vereins (weglassen, wenn er genau eine hat)

string Format: uuid
locale

Die Sprache der Seite, die die Person ausgefüllt hat (eine Sprache der Plattform — it, en, …; jedes andere Tag wird einer Sprache der Plattform zugeordnet: en-GB → en, zh-TW → zh-Hant). Sie bestimmt die Sprache der folgenden E-Mails und wird zur Einstellung eines NEUEN Kontos; ein bestehendes Konto behält seine eigene. Nicht unterstützte Werte werden ignoriert

string
nullable
accept_statuto
erforderlich

Das geltende Statuto, das die Person auf Ihrer Website akzeptiert hat (aus GET /v1/aps/{slug})

object
version
erforderlich
integer
sha256
string
privacy_notice

Die Datenschutzhinweise des Vereins, die die Person auf Ihrer Website gelesen hat (GET /v1/aps/{slug} → privacy_notice). PFLICHT, wenn der Verein welche veröffentlicht; 422 privacy_notice_outdated, wenn nicht die geltende Version genannt wird

object
version
erforderlich

Die gezeigte geltende Version der Datenschutzhinweise (GET /v1/aps/{slug} → privacy_notice)

integer
sha256
string
locale

Die Sprache der Datenschutzhinweise, die Sie gezeigt haben (privacy_notice.locale der Antwort, aus der Sie sie gelesen haben). Jede Sprache ist ein eigenes Dokument mit eigener Version: Nennen Sie sie, wenn Sie das Profil mit ?locale= lesen. Standard: das locale der Anfrage, dann die Sprache des Vereins

string
accept_terms

Die Nutzungsbedingungen des Kontos (platform_terms), die die Person auf Ihrer Website akzeptiert hat — optional, muss die geltende Version nennen

object
version
erforderlich

Die gezeigte geltende Versionsbezeichnung (GET /v1/legal/{kind})

string
sha256

Der Hash der Vorlage, wenn veröffentlicht

string
acknowledge_privacy

Die Datenschutzerklärung der Plattform (platform_privacy), die die Person gelesen hat — optional, dieselbe Regel

object
version
erforderlich

Die gezeigte geltende Versionsbezeichnung (GET /v1/legal/{kind})

string
sha256

Der Hash der Vorlage, wenn veröffentlicht

string

Angenommen

Medientypapplication/json
object
status
erforderlich
string
Erlaubte Werte: accepted
Beispiel
{
"status": "accepted"
}

Ungültige Anfrage

Medientypapplication/problem+json
object
type
erforderlich
string Format: uri
title
erforderlich
string
status
erforderlich
integer
detail
string
code
erforderlich
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Beispielerzeugt
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Fehlende oder ungültige Zugangsdaten

Medientypapplication/problem+json
object
type
erforderlich
string Format: uri
title
erforderlich
string
status
erforderlich
integer
detail
string
code
erforderlich
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Beispielerzeugt
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Der Verein nimmt keine Beitrittsanträge an (api_disabled)

Nicht gefunden

Medientypapplication/problem+json
object
type
erforderlich
string Format: uri
title
erforderlich
string
status
erforderlich
integer
detail
string
code
erforderlich
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Beispielerzeugt
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Validierung fehlgeschlagen, unbekannte Mitgliedsart, oder accept_statuto nennt nicht das geltende Statuto

Ratenlimit überschritten

Medientypapplication/problem+json
object
type
erforderlich
string Format: uri
title
erforderlich
string
status
erforderlich
integer
detail
string
code
erforderlich
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Beispielerzeugt
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Interner Fehler

Medientypapplication/problem+json
object
type
erforderlich
string Format: uri
title
erforderlich
string
status
erforderlich
integer
detail
string
code
erforderlich
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Beispielerzeugt
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}