☰ Мәзір · Жылдам бастау
Бастау

Жылдам бастау

Тест кілтін жасаңыз, оны тексеріңіз, қонақты тіркеңіз және чек өткізіңіз. Бес шақыру, шамамен бес минут.

  1. 1
    Тест кілтін жасаңыз

    Мекеменің басқару панелінде Әзірлеушілерге → API кілттері бөлімін ашып, Тест режимін және керекті құқықтарды таңдаңыз. Кілт бір рет қана көрсетіледі және sk_test_ деп басталады. Көп мекемеге арнап әзірлесеңіз, әр мекемеден сізге кілт жасауын сұраңыз немесе бізге жазыңыз: серіктес аккаунтын ашып береміз.

  2. 2
    Кілтті тексеріңіз

    GET /v1/account шақырыңыз. Жауапта мекеме, оның адалдық бағдарламалары және кілтіңіздің құқықтары келеді. 401 алсаңыз, кілт қате немесе кері қайтарылған.

  3. 3
    Қонақты тіркеңіз

    POST /v1/members шақырып, телефонды, атын және consent: true жіберіңіз. Жауапта карта нөмірі және картаны Apple Wallet немесе Google Wallet ішіне қосуға арналған сілтемелер болады.

  4. 4
    Чек өткізіңіз

    POST /v1/transactions шақырып, external_id өрісінде өз чегіңіздің id-ін, карта нөмірін және соманы жіберіңіз. Жауап қонақ не алғанын және жаңа балансты көрсетеді.

  5. 5
    Болдырмаңыз

    POST /v1/transactions/{external_id}/void шақырыңыз. Баланс бұрынғы қалпына оралады.

1. Кілтті тексеру

curl
curl https://loyaltyfy.io/api/v1/account \
  -H "Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc"
Жауап · 200
{
  "object": "account",
  "id": "73267e72-7f6e-4ddd-bfa2-bd6746500794",
  "slug": "api-sandbox",
  "name": "API Sandbox",
  "timezone": "Europe/Chisinau",
  "livemode": false,
  "key": { "id": "65b6f90b-ba6f-47ce-886f-2deb9be1f087", "scopes": ["*"] },
  "programs": [
    {
      "id": "06af6eba-eaf5-4662-8a5e-2b6b52c65314",
      "slug": "default",
      "name": "Sandbox Cashback",
      "mechanic": "cashback",
      "currency": "MDL",
      "published": true,
      "barcode": "card_code128",
      "stamps_required": null,
      "cashback_rate": 5
    },
    {
      "id": "1480831a-9331-46dc-b055-90d14c844fb8",
      "slug": "stamps",
      "name": "Sandbox Stamps",
      "mechanic": "stamps",
      "currency": "MDL",
      "published": true,
      "barcode": "card_qr",
      "stamps_required": 5,
      "cashback_rate": null
    }
  ],
  "locations": []
}

programs тізіміне назар аударыңыз: мекемеде бірнеше бағдарлама болуы мүмкін (мысалы, тұрақты қонақтарға кэшбэк және кофеге штамптар). mechanic қатысушы үшін қай сандар маңызды екенін айтады: cashback, stamps, visit_discount және басқалар.

2. Қонақты тіркеу

curl
curl https://loyaltyfy.io/api/v1/members \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7d1b2c4e-enrol-000123" \
  -d '{
    "phone": "+37366791102",
    "first_name": "Ion",
    "last_name": "Popescu",
    "card_number": "2000111703779",
    "language": "ro",
    "consent": true
  }'
Жауап · 201
{
  "object": "member",
  "id": "6dacfe0a-2500-44c6-a37c-05c660b093b4",
  "card_number": "2000111703779",
  "serial": "b90273b1-10c9-46eb-ba74-8fef48266b5d",
  "first_name": "Ion",
  "last_name": "Popescu",
  "phone": "+37366791102",
  "email": null,
  "birthday": null,
  "language": "ro",
  "marketing_consent": false,
  "program": {
    "id": "06af6eba-eaf5-4662-8a5e-2b6b52c65314",
    "name": "Sandbox Cashback",
    "mechanic": "cashback",
    "barcode": "card_code128"
  },
  "stamps": null,
  "cashback": {
    "balance": 1250,
    "currency": "MDL",
    "earn_rate": 5,
    "level": null,
    "redeem_max_percent": 30,
    "min_amount": 10000,
    "expires_at": "2027-01-04T18:17:17.721+00:00"
  },
  "discount": null,
  "visits": 1,
  "total_spent": 25000,
  "wallet": {
    "apple_url": "https://loyaltyfy.io/api/wallet/issue/3832466f-...?platform=apple&t=...",
    "google_url": "https://loyaltyfy.io/api/wallet/issue/3832466f-...?platform=google&t=...",
    "card_url": "https://loyaltyfy.io/wallet/3832466f-...?t=..."
  },
  "created_at": "2026-10-06T18:17:15.594+00:00"
}

card_number міндетті емес. Оны жібермесеңіз, 13 таңбалы нөмірді өзіміз береміз. Кассада өз карталары бұрыннан бар болса және Wallet картасы сол нөмірді көрсетуі керек болса, жіберіңіз.

3. Чек өткізу

curl
curl https://loyaltyfy.io/api/v1/transactions \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "CHK-2026-000123",
    "member": "2000111703779",
    "amount": 25000,
    "currency": "MDL",
    "register_id": "POS-1",
    "closed_at": "2026-10-06T18:17:00+03:00",
    "line_items": [
      { "sku": "1001", "name": "Espresso", "quantity": 2, "unit_price": 4000, "category": "Coffee" },
      { "sku": "2005", "name": "Cheesecake", "quantity": 1, "unit_price": 17000, "category": "Desserts" }
    ]
  }'
Жауап · 201
{
  "object": "transaction",
  "id": "f8acbb16-0b3b-4afc-acbb-e5eabd4dd072",
  "external_id": "CHK-2026-000123",
  "status": "completed",
  "amount": 25000,
  "redeem_amount": 0,
  "cashback_earned": 1250,
  "stamps_earned": 0,
  "reward_unlocked": false,
  "net_amount": 25000,
  "currency": "MDL",
  "register_id": "POS-1",
  "closed_at": "2026-10-06T15:17:00+00:00",
  "livemode": false,
  "created_at": "2026-10-06T18:17:17.921+00:00",
  "voided_at": null,
  "member": {
    "object": "member",
    "id": "6dacfe0a-2500-44c6-a37c-05c660b093b4",
    "card_number": "2000111703779",
    "cashback": { "balance": 1250, "currency": "MDL", "earn_rate": 5, ... },
    ...
  }
}

4. Болдырмау

curl
curl -X POST https://loyaltyfy.io/api/v1/transactions/CHK-2026-000123/void \
  -H "Authorization: Bearer sk_test_..."
sk_test_ кілтімен жасалғанның бәрі livemode: false деп белгіленеді. Тест қатысушылары мен чектер мекеме аккаунтында нақты жазба ретінде сақталады, сондықтан тест мекемесін пайдаланыңыз немесе кейін тазалап қойыңыз. Тестілеу бөлімін қараңыз.
Интеграция бойынша сұрақтар: api@loyaltyfy.io. Бір жұмыс күні ішінде жауап береміз.