Salvare un membro
Crea o aggiorna i record dei membri. L'API stabilisce se creare o aggiornare in base al member_id.
Parametri
-
members
arrayobbligatorioArray di oggetti Member da salvare. Massimo consigliato: 1000 elementi per richiesta, per prestazioni ottimali. L'API suddivide automaticamente gli elementi in batch per l'elaborazione. Ogni elemento deve includere
facility_id(obbligatorio se non usilinking_identifier) oppurelinking_identifier(obbligatorio se non usifacility_id).Quando un membro include
access_time_windows, deve includere ancheaccess_time_windows_revision. L'array è un'istantanea completa della fonte, non una modifica parziale. Omettilo per mantenere l'istantanea esistente oppure invia[]con una revisione più recente per revocare tutte le finestre di proprietà della fonte. Leggi la guida alle Access Time Windows prima di attivare questo campo.
Valore restituito
Restituisce un semplice messaggio di conferma dell'operazione di sincronizzazione.
I campi del profilo del membro restano normali upsert anche quando un'istantanea delle finestre viene segnalata come ripetizione idempotente o come obsoleta e saltata. Un'istantanea in conflitto, con la stessa revisione e un payload diverso, non può essere ripetuta senza modifiche: riconcilia lo stato della fonte e invia una revisione più recente.
Richiesta
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
}
]
}
]
}'
Risposta
Restituisce un messaggio di esito positivo con i metadati dell'operazione di sincronizzazione.
{
"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"
}
]
}
}
Campi dei metadati:
- success - Numero di membri elaborati correttamente
- skipped - Numero di membri saltati (se presenti)
- skipped_items - Array dei membri saltati con i relativi motivi (se presenti)
- dry-run - Flag booleano presente se usi il tipo di chiave dryrun (se applicabile)