Ein Mitglied speichern
Erstellt oder aktualisiert Mitgliederdatensätze. Die API entscheidet anhand der member_id, ob ein Datensatz erstellt oder aktualisiert wird.
Parameter
-
members
arrayerforderlichArray der zu speichernden Mitgliederobjekte. Empfohlenes Maximum für optimale Leistung: 1000 Elemente pro Anfrage. Die API fasst Elemente für die Verarbeitung automatisch in Batches zusammen. Jedes Element muss entweder
facility_id(erforderlich, wennlinking_identifiernicht verwendet wird) oderlinking_identifier(erforderlich, wennfacility_idnicht verwendet wird) enthalten.Wenn ein Mitglied
access_time_windowsenthält, muss es auchaccess_time_windows_revisionenthalten. Das Array ist ein vollständiger Quell-Snapshot, kein Patch. Lassen Sie es weg, um den vorhandenen Snapshot beizubehalten, oder senden Sie[]mit einer neueren Revision, um alle quelleigenen Zeitfenster zu widerrufen. Lesen Sie den Leitfaden zu Access Time Windows, bevor Sie dieses Feld aktivieren.
Rückgabe
Gibt eine einfache Meldung zurück, die den Synchronisierungsvorgang bestätigt.
Die Profilfelder des Mitglieds werden weiterhin normal per Upsert verarbeitet, auch wenn ein Zeitfenster-Snapshot als idempotente Wiederholung oder als veraltet übersprungen gemeldet wird. Ein widersprüchlicher Snapshot mit gleicher Revision und abweichender Payload kann nicht unverändert wiederholt werden; gleichen Sie den Quellzustand ab und senden Sie eine neuere Revision.
Anfrage
curl -X POST https://partner-api.performancehub.co/partner/v1/members \
-u sk_live_YOUR_PARTNER_SECRET_KEY: \
-H "Content-Type: application/json" \
-d '{
"members": [
{
"member_id": "member_11111",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
// "linking_identifier": "branch_downtown", // If using linking identifier
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@example.com",
"mobile_phone": "+61 412 345 678",
"date_of_birth": "1985-06-15",
"gender": "male",
"type": "member",
"tags": ["vip", "personal-training"],
"profile_picture": "/9j/4AAQSkZJRgABAQAAAQ...",
"membership_status": "current",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-20T14:45:00Z",
"access_time_windows_revision": 1842,
"access_time_windows": [
{
"external_id": "access-4b1782",
"kind": "absolute",
"from": 1792053000,
"to": 1792058400,
"timezone": "Australia/Perth",
"scope_key": "after_hours_entry",
"label": "Temporary site access"
}
],
"address": {
"address_line_1": "456 Bourke Street",
"address_line_2": "Apt 12",
"city": "Melbourne",
"state": "VIC",
"postal_code": "3000",
"country": "AU",
"country_name": "Australia"
},
"membership_plans": [
{
"membership_plan_id": "plan_99999",
"name": "Unlimited Monthly",
"start_date": "2024-01-01T00:00:00Z",
"status": "current",
"is_current": true,
"end_date": null
}
]
}
]
}'
Antwort
Gibt eine Erfolgsmeldung mit Metadaten zum Synchronisierungsvorgang zurück.
{
"message": "Member sync successful.",
"metadata": {
"success": 245,
"skipped": 5,
"skipped_items": [
{
"member_id": "member_123",
"facility_id": null,
"reason": "Facility integration is disabled in facility-partner-config"
}
]
}
}
Metadatenfelder:
- success - Anzahl der erfolgreich verarbeiteten Mitglieder
- skipped - Anzahl der übersprungenen Mitglieder (falls vorhanden)
- skipped_items - Array der übersprungenen Mitglieder mit Gründen (falls vorhanden)
- dry-run - Boolesches Flag bei Verwendung des Schlüsseltyps dryrun (falls zutreffend)