API مشتریان و ویژگی‌ها

مرجع دریافت، ایجاد، حذف و همگام‌سازی ویژگی‌های مشتریان با REST API اینپی فای همراه نمونه درخواست و پاسخ.

در REST API از app_user_id پایدار سیستم خودتان برای شناسایی مشتری استفاده کنید. این شناسه حداکثر ۱۰۰ کاراکتر است و همیشه در محدوده پروژه کلید API پردازش می‌شود.

دریافت یا ایجاد مشتری
اگر مشتری وجود نداشته باشد، همان درخواست او را ایجاد و 201 برمی‌گرداند. درخواست‌های بعدی برای همان شناسه 200 هستند.
curl "https://api.example.com/api/v1/subscribers/customer_123" \
  -H "Authorization: Bearer YOUR_SECRET_API_KEY" \
  -H "Accept: application/json"
{
  "status": true,
  "data": {
    "originalAppUserId": "customer_123",
    "firstSeen": "2026-10-01 10:30:00",
    "requestDate": "2026-10-01 10:30:01",
    "latestExpirationDate": "2026-11-01 10:30:00",
    "entitlements": [
      {
        "identifier": "premium",
        "isActive": true,
        "isSandbox": false,
        "periodType": 1,
        "purchaseDate": "2026-10-01 10:30:00",
        "expirationDate": "2026-11-01 10:30:00",
        "ownershipType": null
      }
    ],
    "transactions": [],
    "attributes": [
      { "key": "$email", "value": "user@example.com" }
    ]
  }
}
entitlements در این endpoint شامل رکوردهای فعال و غیرفعال مشتری است. قبل از اعطای قابلیت، مقدار isActive را بررسی کنید.
ثبت یا تغییر ویژگی‌های مشتری
{
  "attributes": [
    { "key": "plan", "value": "pro" },
    { "key": "language", "value": "fa" },
    { "key": "email", "value": "user@example.com" }
  ]
}
فیلدنوعمحدودیت
attributesarrayالزامی، ۱ تا ۲۰ عملیات
attributes[].keystringالزامی، یکتا، حداکثر ۴۰ کاراکتر
attributes[].valuestring یا nullحداکثر ۲۵۰ کاراکتر؛ null یا رشته خالی یعنی حذف
کلید سفارشی فقط می‌تواند شامل حروف انگلیسی، عدد، _ و - باشد. کلیدهای رزروشده عبارت‌اند از:$email، $apnsTokens، $fcmTokens، $idfa، $idfv، $ip، $phoneNumber، $campaign، $keyword و $displayName.برای سهولت، کلیدهایی مانند email و displayName نیز پذیرفته و به شکل رزروشده تبدیل می‌شوند. مقدار $email باید ایمیل معتبر باشد.
{
  "status": true,
  "data": {
    "app_user_id": "customer_123",
    "attributes": [
      { "key": "$email", "value": "user@example.com" },
      { "key": "language", "value": "fa" },
      { "key": "plan", "value": "pro" }
    ]
  }
}
اگر مشتری وجود نداشته باشد، پاسخ 404 است. این endpoint مشتری را به‌صورت خودکار ایجاد نمی‌کند.

حذف یک ویژگی

همان endpoint را با مقدار null یا رشته خالی فراخوانی کنید:
{
  "attributes": [
    { "key": "language", "value": null }
  ]
}
حذف مشتری
{
  "status": true,
  "data": {
    "app_user_id": "customer_123",
    "deleted": true
  }
}
اگر مشتری یا alias او در پروژه پیدا نشود، پاسخ 404 است.