会員を保存する

会員の記録を作成または更新します。API は member_id に基づいて、作成するか更新するかを判断します。

パラメーター

  • members array 必須

    保存する会員オブジェクトの配列。最適なパフォーマンスのため、推奨される上限はリクエストあたり 1000 項目です。API は処理のために項目を自動的にバッチ化します。各項目には、facility_id(linking_identifier を使用しない場合は必須)または linking_identifier(facility_id を使用しない場合は必須)のいずれかを含める必要があります。

    会員に access_time_windows を含める場合は、access_time_windows_revision も含める必要があります。この配列はソースの完全なスナップショットであり、差分ではありません。既存のスナップショットを維持する場合は省略し、ソースが所有するすべてのウィンドウを失効させる場合はより新しいリビジョンで [] を送信します。このフィールドを有効にする前に、Access Time Windows ガイドをお読みください。

戻り値

同期操作を確認する簡単なメッセージを返します。

ウィンドウのスナップショットが冪等なリプレイまたは古いデータのスキップとして報告された場合でも、会員のプロフィールフィールドは通常どおりアップサートされます。同じリビジョンで異なるペイロードを持つ競合したスナップショットは、そのまま再試行することはできません。ソースの状態を照合し、より新しいリビジョンで送信してください。

リクエスト

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
          }
        ]
      }
    ]
  }'

レスポンス

同期操作に関するメタデータを含む成功メッセージを返します。

{
  "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"
      }
    ]
  }
}

メタデータフィールド:

  • success - 正常に処理された会員の数
  • skipped - スキップされた会員の数(ある場合)
  • skipped_items - スキップされた会員とその理由の配列(ある場合)
  • dry-run - dryrun キーの種類を使用している場合のブール値フラグ(該当する場合)