Een lid opslaan
Maakt ledenrecords aan of werkt ze bij. De API bepaalt op basis van member_id of een record wordt aangemaakt of bijgewerkt.
Parameters
-
members
arrayverplichtArray van Member-objecten om op te slaan. Aanbevolen maximum: 1000 items per verzoek voor optimale prestaties. De API verdeelt items automatisch in batches voor verwerking. Elk item moet
facility_id(verplicht als jelinking_identifierniet gebruikt) oflinking_identifier(verplicht als jefacility_idniet gebruikt) bevatten.Wanneer een lid
access_time_windowsbevat, moet het ookaccess_time_windows_revisionbevatten. De array is een volledige momentopname van de bron, geen patch. Laat de array weg om de bestaande momentopname te behouden, of stuur[]met een nieuwere revisie om alle vensters van de bron in te trekken. Lees de handleiding voor Access Time Windows voordat je dit veld inschakelt.
Retourwaarde
Retourneert een eenvoudig bericht dat de synchronisatie bevestigt.
Profielvelden van leden blijven gewone upserts, ook wanneer een momentopname van vensters wordt gemeld als idempotente herhaling of als verouderd en overgeslagen. Een conflicterende momentopname met dezelfde revisie en een andere payload kan niet ongewijzigd opnieuw worden geprobeerd; reconcilieer de status bij de bron en stuur een nieuwere revisie.
Verzoek
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
}
]
}
]
}'
Reactie
Retourneert een succesbericht met metadata over de synchronisatie.
{
"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"
}
]
}
}
Metadatavelden:
- success - Aantal leden dat met succes is verwerkt
- skipped - Aantal overgeslagen leden (indien van toepassing)
- skipped_items - Array van overgeslagen leden met de redenen (indien van toepassing)
- dry-run - Booleaanse vlag bij gebruik van een sleutel van het type dryrun (indien van toepassing)