@rewloy/node 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3793 @@
1
+ // Generated by scripts/generate.ts from the Rewloy OpenAPI document
2
+ // (openapi/openapi.json, API 1.0.0). Do not edit: run `npm run generate`.
3
+ /** One method per operation of the API, named by its operationId. `Rewloy` extends it. */
4
+ export class RewloyMethods {
5
+ // ------------------------------------------------------------ Kartlar
6
+ /**
7
+ * Kart ver
8
+ *
9
+ * Bir programdan kart verir. E-posta gönderilirse kart o müşteriye bağlanır (yoksa oluşturulur) ve `kvkkConsent: true` gönderilmelidir: bu, işletmenin müşteriye kendi aydınlatma metnini sunduğunu beyan etmesidir; beyanın doğruluğundan işletme sorumludur. Bir rıza kutusu olarak sormayın. Dönen `cardUrl` müşterinin özel kart bağlantısıdır: müşteriye iletin, kayıtlara yazmayın. Hediye kartında `faceMinor` (kuruş) zorunludur.
10
+ * - **Idempotency-Key** (isteğe bağlı, önerilir): her çağrı yeni bir kart açar; başlıkla aynı anahtar ve aynı gövdeyle tekrar yeni kart açmaz, ilk yanıtı (aynı kart, aynı bağlantı) `Idempotent-Replayed: true` ile döndürür. Aynı anahtar başka bir gövdeyle `422 IDEMPOTENCY_KEY_REUSED`. Bir siparişe kart açan mağaza için sipariş başına sabit bir anahtar iyi bir seçimdir. Saklanan yanıt şifrelidir ve 7 gün tutulur; tekrar yalnız kimlik o programda hâlâ kart verebiliyorsa döner (yoksa `403 FORBIDDEN`).
11
+ * - **Bir sipariş için kart** (`orderId` ve `shopId` birlikte, `email` ile): kartı kazandıran sipariş de bu karta sayılır, mağazanın sipariş bildirimi karttan önce ya da sonra gelsin. Bildirim henüz gelmediyse (`order.result: waiting`) geldiğinde bu kartı bulur. Önce gelip "Kartı yok" diye kaydedildiyse (`resend`) sipariş yeniden açılır: mağaza siparişi 7 gün içinde yeniden gönderdiğinde (aynı imzalı bildirim; WooCommerce eklentisi webhook'unun o siparişi yeniden teslimiyle) siparişin kendi e-postası ve tutarıyla bu karta işlenir. Tutar hiçbir zaman bu çağrıdan alınmaz, siparişten hiçbir şey saklanmaz ve sipariş yine bir kez sayılır. Bağlantı bu işletmenin ve bu programın olmalıdır (`404 SHOP_NOT_FOUND`, `409 SHOP_PROGRAM_MISMATCH`).
12
+ *
13
+ * **Kimlik:** API anahtarı, ekip oturumu.
14
+ *
15
+ * **Yetki:** `passes.issue` — Kart verme.
16
+ *
17
+ * `POST /v1/passes`
18
+ *
19
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-issuePass | API referansı}
20
+ */
21
+ issuePass(args) {
22
+ return this._call('issuePass', args);
23
+ }
24
+ /**
25
+ * Bir kartın durumu
26
+ *
27
+ * Bakiye, ilerleme, ödül hazırlığı ve seviye — müşterinin cüzdanında gördüğüyle aynı.
28
+ *
29
+ * **Kimlik:** API anahtarı, ekip oturumu.
30
+ *
31
+ * **Yetki:** `passes.read` — Kartları görüntüleme.
32
+ *
33
+ * `GET /v1/passes/{serial}`
34
+ *
35
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getPass | API referansı}
36
+ */
37
+ getPass(args) {
38
+ return this._call('getPass', args);
39
+ }
40
+ /**
41
+ * Kartın bir şubedeki kasa kuralları
42
+ *
43
+ * Kasada işlem yapmadan önce: kart bu şubede kullanılabilir mi, hangi şubelerde geçerli, şu an burada hangi kasa kampanyası çalışıyor ve kasiyerin göreceği uyarılar (tarayıcıdaki şeritlerin aynısı). `allowed: false` iken işlem `WRONG_LOCATION` ile reddedilir (ADR 139).
44
+ *
45
+ * **Kimlik:** API anahtarı, ekip oturumu.
46
+ *
47
+ * **Yetki:** `scan.use` — Tarayıcıyı kullanma.
48
+ *
49
+ * `GET /v1/passes/{serial}/till`
50
+ *
51
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getPassTill | API referansı}
52
+ */
53
+ getPassTill(args) {
54
+ return this._call('getPassTill', args);
55
+ }
56
+ /**
57
+ * Kasada işlem
58
+ *
59
+ * Karta, bir şubede kasa işlemi uygular. **Idempotency-Key zorunludur**: aynı anahtarla tekrar, bakiyeyi ikinci kez değiştirmez ve ilk sonucu döndürür (`duplicate: true`). Salt-okunur hesapta da çalışır: mevcut kartlar çalışmaya devam eder.
60
+ * | action | kart | gerekli alan |
61
+ * |---|---|---|
62
+ * | `earn-stamps` | damga | `count` (varsayılan 1) |
63
+ * | `redeem-stamps` | damga | — |
64
+ * | `earn-points` | puan | `amountMinor` (harcama, kuruş) |
65
+ * | `redeem-reward` | puan | `rewardIndex` |
66
+ * | `spend-points` | puan | `points` |
67
+ * | `visit` | VIP | — |
68
+ * | `spend` | hediye kartı, cashback | `amountMinor` |
69
+ * | `accrue` | cashback | `amountMinor` (alışveriş tutarı) |
70
+ * | `load` | hediye kartı | `amountMinor` — ayrıca `instruments.issue` yetkisi |
71
+ * | `use` | kupon, indirim | — |
72
+ *
73
+ * **Kimlik:** API anahtarı, ekip oturumu.
74
+ *
75
+ * **Yetki:** `scan.use` — Tarayıcıyı kullanma.
76
+ *
77
+ * Salt-okunur hesapta da çalışır.
78
+ *
79
+ * `POST /v1/passes/{serial}/actions`
80
+ *
81
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-passAction | API referansı}
82
+ */
83
+ passAction(args) {
84
+ return this._call('passAction', args);
85
+ }
86
+ // ------------------------------------------------------------ Katılım
87
+ /**
88
+ * Katılım formu
89
+ *
90
+ * Bir programın katılım formunu kendi uygulamanızda çizmek için: işletme ve program adı, türü, e-postadan başka sorulan alanlar (zorunlu mu), renkler ve görseller. Kimlik istemez.
91
+ *
92
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu, ekip oturumu, API anahtarı.
93
+ *
94
+ * `GET /v1/public/programs/{id}`
95
+ *
96
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-publicProgram | API referansı}
97
+ */
98
+ publicProgram(args) {
99
+ return this._call('publicProgram', args);
100
+ }
101
+ /**
102
+ * Programa katıl
103
+ *
104
+ * Kişi kendi kartını alır; kartın bağlantısı e-postasına da gider (sekme kapansa da kart kaybolmaz). Aynı e-postanın bu programda zaten kartı varsa yeni kart verilmez, mevcut kartın bağlantısı **yalnız kişinin e-postasına** gider (`created: false`). Formun zorunlu alanları `GET /v1/public/programs/{id}` ile öğrenilir. IP başına 10 dakikada 30.
105
+ *
106
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu, ekip oturumu, API anahtarı.
107
+ *
108
+ * `POST /v1/public/programs/{id}/join`
109
+ *
110
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-joinProgram | API referansı}
111
+ */
112
+ joinProgram(args) {
113
+ return this._call('joinProgram', args);
114
+ }
115
+ /**
116
+ * Bir kod
117
+ *
118
+ * Hediye kartı, kupon ya da indirim kodunun ne verdiği ve hâlâ alınıp alınamayacağı. Kimlik istemez; yalnız kodu bilen birinin öğrenebileceği kadarını söyler.
119
+ *
120
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu, ekip oturumu, API anahtarı.
121
+ *
122
+ * `GET /v1/public/codes/{code}`
123
+ *
124
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-publicCode | API referansı}
125
+ */
126
+ publicCode(args) {
127
+ return this._call('publicCode', args);
128
+ }
129
+ /**
130
+ * Kodu kullan, kartı al
131
+ *
132
+ * Kişi koddan kartını alır. Kişi başına sınır dolduysa `ALREADY_CLAIMED` döner ve mevcut kartın bağlantısı **yalnız kişinin e-postasına** gider. IP başına 10 dakikada 30.
133
+ *
134
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu, ekip oturumu, API anahtarı.
135
+ *
136
+ * `POST /v1/public/codes/{code}/claim`
137
+ *
138
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-claimCode | API referansı}
139
+ */
140
+ claimCode(args) {
141
+ return this._call('claimCode', args);
142
+ }
143
+ /**
144
+ * Kart bağlantımı e-postama gönder
145
+ *
146
+ * Kart yazılan adrese kayıtlıysa bağlantısı o adrese gider. Yanıt her durumda aynıdır (kartın kime ait olduğu sızmaz). IP başına saatte 10, kart başına saatte 3.
147
+ *
148
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu, ekip oturumu, API anahtarı.
149
+ *
150
+ * `POST /v1/public/cards/{serial}/email-link`
151
+ *
152
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-emailCardLink | API referansı}
153
+ */
154
+ emailCardLink(args) {
155
+ return this._call('emailCardLink', args);
156
+ }
157
+ // ------------------------------------------------------------ Belge
158
+ /**
159
+ * OpenAPI 3.1 belgesi
160
+ *
161
+ * Bu API'nin makine tarafından okunabilir tanımı (Swagger / OpenAPI 3.1). Swagger Editor, Postman ya da Insomnia'ya içe aktarılabilir; istemci kodu üretmek için kullanılabilir. Tanımlar koddaki uç nokta bildirimlerinden üretilir, elle yazılmaz.
162
+ *
163
+ * **Kimlik:** kimlik gerekmez.
164
+ *
165
+ * `GET /v1/openapi.json`
166
+ *
167
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-openapi | API referansı}
168
+ */
169
+ openapi(args) {
170
+ return this._call('openapi', args);
171
+ }
172
+ // ------------------------------------------------------------ Kimlik
173
+ /**
174
+ * Ekip üyesi girişi
175
+ *
176
+ * E-posta ve şifreyle bir oturum açar ve `rws_` ile başlayan oturum anahtarını **bir kez** döndürür. Hesapta iki adımlı doğrulama açıksa `mfaRequired: true` gelir: oturum, `POST /v1/auth/mfa` ile kod kanıtlanana kadar yalnız oturum uç noktalarını kullanabilir. Oturum 30 gün kullanılmazsa kapanır; her kullanım süreyi uzatır. Aynı IP'den 15 dakikada 30 deneme, aynı hesap için 10 hatalı deneme sınırı vardır.
177
+ *
178
+ * **Kimlik:** kimlik gerekmez.
179
+ *
180
+ * `POST /v1/auth/login`
181
+ *
182
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-login | API referansı}
183
+ */
184
+ login(args) {
185
+ return this._call('login', args);
186
+ }
187
+ /**
188
+ * İki adımlı doğrulama kodunu kanıtla
189
+ *
190
+ * Uygulamadaki 6 haneli kodu ya da bir kurtarma kodunu gönderin; bu oturum için doğrulama tamamlanır. Kurtarma kodu bir kez kullanılır; kullanıldığında hesabın sahibine e-posta gider. 15 dakikada 5 hatalı deneme sınırı vardır.
191
+ *
192
+ * **Kimlik:** ekip oturumu.
193
+ *
194
+ * `POST /v1/auth/mfa`
195
+ *
196
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-proveMfa | API referansı}
197
+ */
198
+ proveMfa(args) {
199
+ return this._call('proveMfa', args);
200
+ }
201
+ /**
202
+ * Bu oturumu kapat
203
+ *
204
+ * Gönderilen oturum anahtarı hemen geçersiz olur. Diğer oturumları kapatmak için `DELETE /v1/me/sessions`.
205
+ *
206
+ * **Kimlik:** ekip oturumu.
207
+ *
208
+ * Salt-okunur hesapta da çalışır.
209
+ *
210
+ * `POST /v1/auth/logout`
211
+ *
212
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-logout | API referansı}
213
+ */
214
+ logout(args) {
215
+ return this._call('logout', args);
216
+ }
217
+ // ------------------------------------------------------------ Hesabım
218
+ /**
219
+ * Kim olarak bağlıyım?
220
+ *
221
+ * Ekip oturumu: kişi, iki adımlı doğrulama durumu ve koltuk taşıdığı işletmeler (her biri için yetkiler). API anahtarı: anahtarın kendisi, işletmesi, rolü, kapsamı, etkin yetkileri (`permissions`) ve bir mağaza eklentisinin anahtarıysa bağlantısı (`key.shopId`). Bir entegrasyonun ilk çağrısı olarak bağlantıyı doğrulamak için idealdir. `mode`: çağıranın test ortamında mı (`test`) gerçek işletmede mi (`live`) çalıştığı; ekip oturumu bir işletme seçmediyse `null`.
222
+ *
223
+ * **Kimlik:** ekip oturumu, API anahtarı.
224
+ *
225
+ * `GET /v1/me`
226
+ *
227
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-me | API referansı}
228
+ */
229
+ me(args) {
230
+ return this._call('me', args);
231
+ }
232
+ // ------------------------------------------------------------ Kimlik
233
+ /**
234
+ * Kart sahibine giriş kodu gönder
235
+ *
236
+ * Rewloy Cüzdan girişi: adrese 6 haneli bir kod (ve bir bağlantı) gider; ya da telefon numarasına WhatsApp'tan ya da SMS ile 6 haneli kod (bağlantı yok; `channel`). İkisi de 15 dakika geçerli ve tek kullanımlık. Gövdede `email` ya da `phone`dan yalnız biri.
237
+ * - Yanıttaki `request`, bu girişin uygulamadaki karşılığıdır (tarayıcıdaki çerezin yerine). Kodu **aynı `request`** ile `POST /v1/holder/sessions` gönderin: kod başka bir `request` ile ya da başka bir cihazda çalışmaz.
238
+ * - Yanıt, adresin ya da numaranın kayıtlı olup olmadığını **söylemez**: her biri için aynı 202 ve yeni bir `request`. Kartı ya da cüzdan hesabı olmayan adrese e-posta, hesabı ya da bir işletmede doğrulanmış kaydı olmayan numaraya mesaj gitmez; o `request` ile hiçbir kod tutmaz.
239
+ * - Beş yanlış kod adımı kapatır. Bir adrese saatte en fazla 10 kod gider; bir numaraya saatte 3, günde 6 kod, WhatsApp ve SMS birlikte (fazlası sessizce gönderilmez). IP başına saatte 20 istek; telefon için ayrıca IP başına saatte 10.
240
+ * - `phone`: telefonla giriş açık değilse `501 NOT_ENABLED`; Türkiye cep telefonu değilse `400 INVALID_PHONE`. `channel` (`whatsapp` ya da `sms`) verilmezse şu an açık olan ilk yol kullanılır (önce WhatsApp); istenen yol açık değilse `501 NOT_ENABLED`, bugünkü bütçesi dolduysa `503 PHONE_BUSY` — ikisinde de `details.channels` şu an açık olanlar (boşsa e-postayla girin). Yanıttaki `channel` kodun gittiği yoldur: WhatsApp kodu kendiliğinden dolmaz, kişiye "Kodu kopyala" ile yapıştırmasını söyleyin.
241
+ * - `previousToken`: bu kurulumun daha önceki `rwh_` oturumu (süresi dolmuş olsa da). Adres ya da numara o hesabınsa adres ve numara başına sınırlar uygulanmaz, böylece başkaları sizin kodlarınızı tüketemez. Çıkış yapılmış ya da kaldırılmış bir oturum bir şey kanıtlamaz.
242
+ * - `deviceName`: açılacak oturumun Cihazlarım'daki adı.
243
+ * - **Sözleşme değişikliği (ADR 150):** `request` yeni. E-postadaki bağlantı artık oturumu tek başına açmaz; bağlantıyı uygulamanız yakalarsa `linkToken` olarak yine aynı `request` ile gönderin.
244
+ *
245
+ * **Kimlik:** kimlik gerekmez.
246
+ *
247
+ * `POST /v1/holder/login`
248
+ *
249
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderLogin | API referansı}
250
+ */
251
+ holderLogin(args) {
252
+ return this._call('holderLogin', args);
253
+ }
254
+ /**
255
+ * Kodla kart sahibi oturumu aç
256
+ *
257
+ * E-postadaki, WhatsApp'taki ya da SMS'teki kodla (ya da e-postadaki bağlantıyla) bir `rwh_` oturumu açar: bu cihaz, kişinin Rewloy Cüzdan hesabının bir cihazı olur (Cihazlarım). Adresin ya da numaranın hesabı yoksa ilk girişte açılır. Yanıt hangisiyle girildiğini söyler (`email` ya da `phone`).
258
+ * - `{ request, code }`: `POST /v1/holder/login` yanıtındaki `request` ve e-postadaki, WhatsApp'taki ya da SMS'teki 6 haneli kod. Yanlış kodda `CODE_INVALID` (`details.left` kalan deneme); beşincisi adımı kapatır (`FLOW_EXPIRED`).
259
+ * - Bir numaranın hesabı 180 gündür hiç kullanılmadıysa numara el değiştirmiş sayılır: kod yeni bir hesap açar, eski hesabın kartları görünmez (numara eski hesaptan çıkar).
260
+ * - `{ request, linkToken }`: e-postadaki bağlantının son parçası (`/cuzdan/eslestir/<linkToken>`), uygulamanız bağlantıyı yakalarsa. Yalnız aynı `request` ile çalışır.
261
+ * - `{ linkToken }` tek başına: eski müşteri portalının daha önce gönderdiği bir bağlantı (`/portal/giris/<linkToken>`), süresi dolana kadar. Portal artık bağlantı göndermez; sayfaları Rewloy Cüzdan'a yönlendirir. Tek kullanımlıktır (ikinci kez `410 TOKEN_INVALID`); açtığı oturum da adresin cüzdan hesabının bir cihazıdır (`lastWayIn: legacy`). IP başına saatte 30.
262
+ * - Kod ve `request` ile bağlantı: IP başına 15 dakikada 30 deneme.
263
+ *
264
+ * **Kimlik:** kimlik gerekmez.
265
+ *
266
+ * `POST /v1/holder/sessions`
267
+ *
268
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderSession | API referansı}
269
+ */
270
+ holderSession(args) {
271
+ return this._call('holderSession', args);
272
+ }
273
+ /**
274
+ * Passkey ile giriş: seçenekler
275
+ *
276
+ * Parmak izi / yüz tanımayla giriş (passkey) için WebAuthn `PublicKeyCredentialRequestOptions` (JSON; iOS `ASAuthorization` ve Android Credential Manager bu biçimi okur). Adres istemez: cihazdaki passkey hesabını kendisi söyler. Seçenekler 5 dakika geçerli ve tek kullanımlık; yanıtı `request` ve `flowId` ile `POST /v1/holder/sessions/passkey` gönderin. RP kimliği `rewloy.com`, web cüzdanıyla aynı passkey'ler. Uygulamada passkey, iOS'ta Associated Domains (`webcredentials:rewloy.com`) ile çalışır: platform kaynağı `https://rewloy.com` gönderir. **Android uygulamasının kaynağı (`android:apk-key-hash:…`) henüz kabul edilmez** (`PASSKEY_REFUSED`); uygulamanın imza anahtarı Digital Asset Links ile tanımlanınca açılacak. O zamana kadar Android'de e-posta koduyla girin. IP başına 15 dakikada 60.
277
+ *
278
+ * **Kimlik:** kimlik gerekmez.
279
+ *
280
+ * `POST /v1/holder/sessions/passkey/options`
281
+ *
282
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderPasskeySignInOptions | API referansı}
283
+ */
284
+ holderPasskeySignInOptions(args) {
285
+ return this._call('holderPasskeySignInOptions', args);
286
+ }
287
+ /**
288
+ * Passkey ile kart sahibi oturumu aç
289
+ *
290
+ * Seçenek adımının `request` ve `flowId` değeriyle, platformun yanıtı (`response`). Doğrulanınca passkey'in hesabına bir `rwh_` oturumu açılır. Tanınmayan bir passkey `PASSKEY_REFUSED` ile `details.unknownCredential: true` ve `details.credentialId` döner: cihazın şifre yöneticisine bu passkey'in artık çalışmadığını bildirin (Signal API). Uygulamada passkey, iOS'ta Associated Domains (`webcredentials:rewloy.com`) ile çalışır: platform kaynağı `https://rewloy.com` gönderir. **Android uygulamasının kaynağı (`android:apk-key-hash:…`) henüz kabul edilmez** (`PASSKEY_REFUSED`); uygulamanın imza anahtarı Digital Asset Links ile tanımlanınca açılacak. O zamana kadar Android'de e-posta koduyla girin. IP başına 15 dakikada 30.
291
+ *
292
+ * **Kimlik:** kimlik gerekmez.
293
+ *
294
+ * `POST /v1/holder/sessions/passkey`
295
+ *
296
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderPasskeySession | API referansı}
297
+ */
298
+ holderPasskeySession(args) {
299
+ return this._call('holderPasskeySession', args);
300
+ }
301
+ /**
302
+ * Google ya da Apple ile giriş: nonce
303
+ *
304
+ * Google ya da Apple ile girişten (`POST /v1/holder/sessions/google`, `/apple`) ya da hesaba bağlamadan (`POST /v1/holder/identities/google`, `/apple`) **önce**: tek kullanımlık bir `nonce` ve onu taşıyan `request` (10 dakika).
305
+ * - `nonce` değerini platformun girişine olduğu gibi verin: Android Credential Manager'da `GetGoogleIdOption.setNonce`, iOS'ta `ASAuthorizationAppleIDRequest.nonce`. Belirteç bu `nonce` değerini taşımıyorsa kabul edilmez; başka bir yerde alınmış bir belirteç burada kullanılamaz.
306
+ * - `request` değerini saklayın ve belirteçle birlikte gönderin. Her giriş denemesi için yeni bir nonce alın.
307
+ * - Sağlayıcı bu ortamda açık değilse `501 NOT_ENABLED`: o düğmeyi göstermeyin. IP başına 15 dakikada 60.
308
+ *
309
+ * **Kimlik:** kimlik gerekmez, kart sahibi oturumu.
310
+ *
311
+ * `POST /v1/holder/sessions/nonce`
312
+ *
313
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderProviderNonce | API referansı}
314
+ */
315
+ holderProviderNonce(args) {
316
+ return this._call('holderProviderNonce', args);
317
+ }
318
+ /**
319
+ * Google ile kart sahibi oturumu aç
320
+ *
321
+ * Android Credential Manager'ın verdiği Google ID token'ı (`idToken`) ve nonce adımının `request` değeriyle bir `rwh_` oturumu açar. Token, Rewloy'un Web istemci kimliği için verilmiş olmalı (Credential Manager'da `setServerClientId`) ve nonce adımının `nonce` değerini taşımalı.
322
+ * - Google hesabı daha önce kullanıldıysa onun hesabına girilir. Yeni bir Google hesabı: adresi gmail.com'daysa ya da hesabın Workspace alanındaysa adres kanıtlanmış sayılır ve adresin hesabına (yoksa yeni bir hesaba) girilir.
323
+ * - Google'ın sahibi olmadığı bir adres (başka alan adları) kanıt sayılmaz: yalnız bu Google girişini taşıyan yeni bir hesap açılır, adrese bir kod gider ve `verify` döner. Kod `POST /v1/holder/identities/email/verify` ile doğrulanınca adres hesaba eklenir (başka hesaptaysa `MERGE_REQUIRED`).
324
+ * - E-postası Google'da doğrulanmamış hesap, süresi geçmiş ya da başka bir uygulama için verilmiş token `PROVIDER_REFUSED`. Kullanılmış, süresi dolmuş ya da bilinmeyen `request` `FLOW_EXPIRED`. Google bu ortamda açık değilse `501 NOT_ENABLED`. IP başına 15 dakikada 30.
325
+ *
326
+ * **Kimlik:** kimlik gerekmez.
327
+ *
328
+ * `POST /v1/holder/sessions/google`
329
+ *
330
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderGoogleSession | API referansı}
331
+ */
332
+ holderGoogleSession(args) {
333
+ return this._call('holderGoogleSession', args);
334
+ }
335
+ /**
336
+ * Apple ile kart sahibi oturumu aç
337
+ *
338
+ * iOS'ta Sign in with Apple'ın verdiği `identityToken` ve nonce adımının `request` değeriyle bir `rwh_` oturumu açar. Token, uygulamanın paket kimliği ya da Rewloy'un Services ID'si için verilmiş olmalı ve nonce adımının `nonce` değerini taşımalı.
339
+ * - Apple'ın verdiği her adres kanıtlanmış sayılır, "E-postamı gizle" yönlendirme adresi de. Apple hesabı daha önce kullanıldıysa onun hesabına, değilse adresin hesabına (yoksa yeni bir hesaba) girilir.
340
+ * - `name`: Apple adı yalnız **ilk** yetkilendirmede verir (`fullName`); o anda gönderin. Ad bir kez saklanır: gelen ilk ad kalır, sonra gönderilenler onu değiştirmez. Ad yalnız katılım formundaki ad alanını doldurmak için kullanılır.
341
+ * - Süresi geçmiş ya da başka bir uygulama için verilmiş token `PROVIDER_REFUSED`; kullanılmış ya da bilinmeyen `request` `FLOW_EXPIRED`. Apple bu ortamda açık değilse `501 NOT_ENABLED`. IP başına 15 dakikada 30.
342
+ *
343
+ * **Kimlik:** kimlik gerekmez.
344
+ *
345
+ * `POST /v1/holder/sessions/apple`
346
+ *
347
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderAppleSession | API referansı}
348
+ */
349
+ holderAppleSession(args) {
350
+ return this._call('holderAppleSession', args);
351
+ }
352
+ /**
353
+ * Kart sahibi oturumunu kapat
354
+ *
355
+ * Bu cihazın oturumu hemen kapanır ve Cihazlarım'dan düşer. Başka bir cihazı kapatmak için `DELETE /v1/holder/devices/{id}`.
356
+ *
357
+ * **Kimlik:** kart sahibi oturumu.
358
+ *
359
+ * `DELETE /v1/holder/sessions/current`
360
+ *
361
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderLogout | API referansı}
362
+ */
363
+ holderLogout(args) {
364
+ return this._call('holderLogout', args);
365
+ }
366
+ /**
367
+ * İşletme hesabı aç
368
+ *
369
+ * Yeni bir işletme ve sahibinin hesabını açar, deneme süresi başlar (kart bilgisi istenmez) ve hemen bir oturum döndürür. E-posta doğrulama bağlantısı gönderilir.
370
+ * - `termsAccepted: true`: kişi [kullanım koşullarını](https://rewloy.com/kosullar) okuyup kabul etti (sürüm: `2026-10b`). Formunuzda bunu açıkça sorun. [Gizlilik bildirimini](https://rewloy.com/gizlilik) formunuzda bağlantıyla gösterin; onu bir onay olarak sormayın.
371
+ * - Şifre en az 10 karakter. Bu e-postayla hesap varsa `ACCOUNT_EXISTS`: giriş yapın ya da şifreyi sıfırlayın.
372
+ * - İsteğe bağlı `program`: web'deki "kartınızı tasarlayın" akışının taslağı; hesapla aynı işlemde oluşur ve panelin kurallarıyla normalleştirilir (aralık dışı sayılar kırpılır). Alan alan denetim için hesabı açtıktan sonra `POST /v1/programs` kullanın.
373
+ * - IP başına saatte 5 hesap.
374
+ *
375
+ * **Kimlik:** kimlik gerekmez.
376
+ *
377
+ * `POST /v1/auth/signup`
378
+ *
379
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-signup | API referansı}
380
+ */
381
+ signup(args) {
382
+ return this._call('signup', args);
383
+ }
384
+ /**
385
+ * E-postayı doğrula
386
+ *
387
+ * Doğrulama e-postasındaki bağlantının son parçası (`/dogrula/<token>`). Uygulamanız bağlantıyı evrensel bağlantı olarak yakalayabilir. Tek kullanımlıktır.
388
+ *
389
+ * **Kimlik:** kimlik gerekmez, ekip oturumu.
390
+ *
391
+ * Salt-okunur hesapta da çalışır.
392
+ *
393
+ * `POST /v1/auth/verify-email`
394
+ *
395
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-verifyEmail | API referansı}
396
+ */
397
+ verifyEmail(args) {
398
+ return this._call('verifyEmail', args);
399
+ }
400
+ /**
401
+ * Şifre sıfırlama bağlantısı iste
402
+ *
403
+ * Bu adresle etkin bir hesap varsa sıfırlama bağlantısı gider (`/sifre/yeni/<token>`). Yanıt her durumda aynıdır; adres başına saatte 3, IP başına 10.
404
+ *
405
+ * **Kimlik:** kimlik gerekmez.
406
+ *
407
+ * `POST /v1/auth/password/forgot`
408
+ *
409
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-forgotPassword | API referansı}
410
+ */
411
+ forgotPassword(args) {
412
+ return this._call('forgotPassword', args);
413
+ }
414
+ /**
415
+ * Sıfırlama bağlantısı geçerli mi?
416
+ *
417
+ * Yeni şifre formunu göstermeden önce: kullanılmamış ve süresi dolmamışsa `valid: true`, değilse `TOKEN_INVALID`.
418
+ *
419
+ * **Kimlik:** kimlik gerekmez.
420
+ *
421
+ * `GET /v1/auth/password/reset/{token}`
422
+ *
423
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-checkResetToken | API referansı}
424
+ */
425
+ checkResetToken(args) {
426
+ return this._call('checkResetToken', args);
427
+ }
428
+ /**
429
+ * Yeni şifreyi kaydet
430
+ *
431
+ * Bağlantı tek kullanımlıktır. Kişinin açık oturumlarının **tümü** kapanır (başkası açtıysa onunki de), kişiye e-postayla bildirilir, e-posta adresi de doğrulanmış sayılır.
432
+ *
433
+ * **Kimlik:** kimlik gerekmez.
434
+ *
435
+ * `POST /v1/auth/password/reset`
436
+ *
437
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-resetPassword | API referansı}
438
+ */
439
+ resetPassword(args) {
440
+ return this._call('resetPassword', args);
441
+ }
442
+ /**
443
+ * Davet
444
+ *
445
+ * Davet e-postasındaki bağlantının son parçası (`/davet/<code>`): hangi işletme, hangi adres, o adresin hesabı var mı (varsa mevcut şifreyle kabul edilir).
446
+ *
447
+ * **Kimlik:** kimlik gerekmez.
448
+ *
449
+ * `GET /v1/auth/invites/{code}`
450
+ *
451
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-invitePreview | API referansı}
452
+ */
453
+ invitePreview(args) {
454
+ return this._call('invitePreview', args);
455
+ }
456
+ /**
457
+ * Daveti kabul et
458
+ *
459
+ * Hesap yoksa bu şifreyle açılır (en az 10 karakter); varsa mevcut şifre istenir. Koltuk ve roller verilir — daveti yapanın o anki yetkileriyle yeniden denetlenerek — ve oturum döner. Daveti yapan işletme sahiplerine bildirilir.
460
+ *
461
+ * **Kimlik:** kimlik gerekmez.
462
+ *
463
+ * `POST /v1/auth/invites/{code}/accept`
464
+ *
465
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-acceptInvite | API referansı}
466
+ */
467
+ acceptInvite(args) {
468
+ return this._call('acceptInvite', args);
469
+ }
470
+ // ------------------------------------------------------------ Hesabım
471
+ /**
472
+ * Şifreyi değiştir
473
+ *
474
+ * Mevcut şifre doğru olmalı; yeni şifre en az 10 karakter. Bu oturum dışındaki bütün oturumlar kapanır ve kişiye bilgi e-postası gider.
475
+ *
476
+ * **Kimlik:** ekip oturumu.
477
+ *
478
+ * Salt-okunur hesapta da çalışır.
479
+ *
480
+ * `POST /v1/me/password`
481
+ *
482
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-changePassword | API referansı}
483
+ */
484
+ changePassword(args) {
485
+ return this._call('changePassword', args);
486
+ }
487
+ /**
488
+ * Açık oturumlar
489
+ *
490
+ * Bu hesabın açık olduğu tarayıcılar ve uygulamalar; bu oturum ilk sırada.
491
+ *
492
+ * **Kimlik:** ekip oturumu.
493
+ *
494
+ * `GET /v1/me/sessions`
495
+ *
496
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listSessions | API referansı}
497
+ */
498
+ listSessions(args) {
499
+ return this._call('listSessions', args);
500
+ }
501
+ /**
502
+ * Diğer bütün oturumları kapat
503
+ *
504
+ * Bu oturum dışındaki bütün oturumlar hemen geçersiz olur.
505
+ *
506
+ * **Kimlik:** ekip oturumu.
507
+ *
508
+ * Salt-okunur hesapta da çalışır.
509
+ *
510
+ * `DELETE /v1/me/sessions`
511
+ *
512
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-closeOtherSessions | API referansı}
513
+ */
514
+ closeOtherSessions(args) {
515
+ return this._call('closeOtherSessions', args);
516
+ }
517
+ /**
518
+ * Bir oturumu kapat
519
+ *
520
+ * Başka bir cihazdaki oturumu kapatır. Bu oturumu kapatmak için `POST /v1/auth/logout`.
521
+ *
522
+ * **Kimlik:** ekip oturumu.
523
+ *
524
+ * Salt-okunur hesapta da çalışır.
525
+ *
526
+ * `DELETE /v1/me/sessions/{id}`
527
+ *
528
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-closeSession | API referansı}
529
+ */
530
+ closeSession(args) {
531
+ return this._call('closeSession', args);
532
+ }
533
+ /**
534
+ * İki adımlı doğrulama durumu
535
+ *
536
+ * Açık mı, kaç kurtarma kodu kaldı, ve kişinin koltuk taşıdığı işletmelerden hangileri zorunlu tutuyor (açıkken kapatılamaz).
537
+ *
538
+ * **Kimlik:** ekip oturumu.
539
+ *
540
+ * `GET /v1/me/2fa`
541
+ *
542
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getMfa | API referansı}
543
+ */
544
+ getMfa(args) {
545
+ return this._call('getMfa', args);
546
+ }
547
+ /**
548
+ * İki adımlı doğrulamayı kurmaya başla
549
+ *
550
+ * Doğrulayıcı uygulamaya eklenecek sırrı ve `otpauth://` adresini döndürür (QR kodu bu adresten çizin). Kurulum, `POST /v1/me/2fa/confirm` ile ilk kod doğrulanınca tamamlanır.
551
+ *
552
+ * **Kimlik:** ekip oturumu.
553
+ *
554
+ * Salt-okunur hesapta da çalışır.
555
+ *
556
+ * `POST /v1/me/2fa/start`
557
+ *
558
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-startMfa | API referansı}
559
+ */
560
+ startMfa(args) {
561
+ return this._call('startMfa', args);
562
+ }
563
+ /**
564
+ * İki adımlı doğrulamayı aç
565
+ *
566
+ * Uygulamadaki kodu doğrular ve doğrulamayı açar. İlk açılışta 10 kurtarma kodu **bir kez** döner: kullanıcıya gösterin, saklamasını isteyin. 15 dakikada 5 hatalı deneme sınırı vardır.
567
+ *
568
+ * **Kimlik:** ekip oturumu.
569
+ *
570
+ * Salt-okunur hesapta da çalışır.
571
+ *
572
+ * `POST /v1/me/2fa/confirm`
573
+ *
574
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-confirmMfa | API referansı}
575
+ */
576
+ confirmMfa(args) {
577
+ return this._call('confirmMfa', args);
578
+ }
579
+ /**
580
+ * İki adımlı doğrulamayı kapat
581
+ *
582
+ * Şifre **ve** ikinci adım (uygulamadaki kod ya da bir kurtarma kodu) gerekir. Kişinin koltuk taşıdığı bir işletme zorunlu tutuyorsa kapatılamaz.
583
+ *
584
+ * **Kimlik:** ekip oturumu.
585
+ *
586
+ * Salt-okunur hesapta da çalışır.
587
+ *
588
+ * `POST /v1/me/2fa/disable`
589
+ *
590
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-disableMfa | API referansı}
591
+ */
592
+ disableMfa(args) {
593
+ return this._call('disableMfa', args);
594
+ }
595
+ /**
596
+ * Yeni kurtarma kodları
597
+ *
598
+ * Şifre ve ikinci adımla 10 yeni kurtarma kodu üretir; eskilerin hepsi hemen geçersiz olur. Kodlar yalnız bu yanıtta görünür.
599
+ *
600
+ * **Kimlik:** ekip oturumu.
601
+ *
602
+ * Salt-okunur hesapta da çalışır.
603
+ *
604
+ * `POST /v1/me/2fa/recovery-codes`
605
+ *
606
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-regenerateRecoveryCodes | API referansı}
607
+ */
608
+ regenerateRecoveryCodes(args) {
609
+ return this._call('regenerateRecoveryCodes', args);
610
+ }
611
+ /**
612
+ * Doğrulama e-postasını yeniden gönder
613
+ *
614
+ * E-posta adresi doğrulanmamışsa doğrulama bağlantısını yeniden gönderir; saatte en fazla 3.
615
+ *
616
+ * **Kimlik:** ekip oturumu.
617
+ *
618
+ * Salt-okunur hesapta da çalışır.
619
+ *
620
+ * `POST /v1/me/verify-email`
621
+ *
622
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-resendVerification | API referansı}
623
+ */
624
+ resendVerification(args) {
625
+ return this._call('resendVerification', args);
626
+ }
627
+ // ------------------------------------------------------------ İşletme
628
+ /**
629
+ * Plan ve özellikler
630
+ *
631
+ * İşletmenin planı, durumu, açık özellikleri, ekip koltukları (bekleyen davetler dahil, davet kontrolüyle aynı sayım) ve ücret önizlemesi. `billing`: paketler etkin şube başına aylık ücretlendirilir (arşivlenen şube sayılmaz, en az 1); fiyatlar KDV hariç, KDV %20 ara toplama bir kez eklenir; yıllık dönem 12 ay, 10 ay fiyatına. `current` şu an ödenen (denemede 0), `plan` işletmenin planı ödeme döneminde (deneme bitince ödenecek), `options` her paket her iki dönemde. Tutarlar kuruş. İşletme sahibi her zaman görür. Ödeme sistemi henüz açık değildir; Rewloy ücret almaz.
632
+ *
633
+ * **Kimlik:** ekip oturumu, API anahtarı.
634
+ *
635
+ * **Yetki:** `billing.read` — Planı görüntüleme.
636
+ *
637
+ * `GET /v1/plan`
638
+ *
639
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getPlan | API referansı}
640
+ */
641
+ getPlan(args) {
642
+ return this._call('getPlan', args);
643
+ }
644
+ /**
645
+ * Ekipte iki adımlı doğrulamayı zorunlu tut
646
+ *
647
+ * Yalnız işletme sahibi, ve yalnız kendi hesabında doğrulama açıkken. Açıkken, kurmamış ekip üyeleri kurana kadar yalnız hesap uç noktalarına erişir.
648
+ *
649
+ * **Kimlik:** ekip oturumu.
650
+ *
651
+ * Salt-okunur hesapta da çalışır.
652
+ *
653
+ * `PUT /v1/business/2fa-policy`
654
+ *
655
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setTeam2fa | API referansı}
656
+ */
657
+ setTeam2fa(args) {
658
+ return this._call('setTeam2fa', args);
659
+ }
660
+ // ------------------------------------------------------------ Programlar
661
+ /**
662
+ * Programlar
663
+ *
664
+ * Kimliğin görebildiği bütün programlar (kapsamı bir programla sınırlı anahtar yalnız onu görür), sayılarıyla, arşivdekiler dahil. `status=active` yalnız açık olanlar (panelin varsayılanı), `status=archived` yalnız arşivdekiler.
665
+ *
666
+ * **Kimlik:** API anahtarı, ekip oturumu.
667
+ *
668
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
669
+ *
670
+ * `GET /v1/programs`
671
+ *
672
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listPrograms | API referansı}
673
+ */
674
+ listPrograms(args) {
675
+ return this._call('listPrograms', args);
676
+ }
677
+ /**
678
+ * Program oluştur
679
+ *
680
+ * Yeni kart programı. `preset` teması (varsayılan `rewloy`) renkleri, deseni ve tasarımı verir; gönderdiğiniz alanlar onun üstüne yazılır. Alanlar türe göredir: başka türün alanı reddedilir. Aralık dışı sayılar kırpılmaz, reddedilir.
681
+ *
682
+ * **Kimlik:** API anahtarı, ekip oturumu.
683
+ *
684
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
685
+ *
686
+ * `POST /v1/programs`
687
+ *
688
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createProgram | API referansı}
689
+ */
690
+ createProgram(args) {
691
+ return this._call('createProgram', args);
692
+ }
693
+ /**
694
+ * Tasarım seçenekleri
695
+ *
696
+ * Kendi kart oluşturucunuzu yaparken seçtirebileceğiniz her şey: hazır temalar (renkleri ve desenleriyle), damga simgeleri (SVG yolu, 24×24), desenler, türe göre izinli Apple düzenleri ve logo/afiş boyutları.
697
+ *
698
+ * **Kimlik:** API anahtarı, ekip oturumu.
699
+ *
700
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
701
+ *
702
+ * `GET /v1/programs/design-options`
703
+ *
704
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-programDesignOptions | API referansı}
705
+ */
706
+ programDesignOptions(args) {
707
+ return this._call('programDesignOptions', args);
708
+ }
709
+ /**
710
+ * Bir program
711
+ *
712
+ * **Kimlik:** API anahtarı, ekip oturumu.
713
+ *
714
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
715
+ *
716
+ * `GET /v1/programs/{id}`
717
+ *
718
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getProgram | API referansı}
719
+ */
720
+ getProgram(args) {
721
+ return this._call('getProgram', args);
722
+ }
723
+ /**
724
+ * Programı düzenle
725
+ *
726
+ * Yalnız gönderilen alanlar değişir; `design` içinde de yalnız gönderilen platform alanları. Dizi alanları (`pointsRewards`, `tiers`, `signupFields`) bütünüyle yer değiştirir. Tür değiştirilemez. Cüzdandaki kartlar birkaç dakika içinde yeni görünüme geçer.
727
+ *
728
+ * **Kimlik:** API anahtarı, ekip oturumu.
729
+ *
730
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
731
+ *
732
+ * `PATCH /v1/programs/{id}`
733
+ *
734
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateProgram | API referansı}
735
+ */
736
+ updateProgram(args) {
737
+ return this._call('updateProgram', args);
738
+ }
739
+ /**
740
+ * Programı sil
741
+ *
742
+ * Yalnız hiç kart verilmemiş program silinir (defter, ziyaret ve olaylar kartlara bağlıdır); kart verilmişse arşivleyin. Onay için `confirmName` sorgu parametresine programın adı yazılır.
743
+ *
744
+ * **Kimlik:** API anahtarı, ekip oturumu.
745
+ *
746
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
747
+ *
748
+ * `DELETE /v1/programs/{id}`
749
+ *
750
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-deleteProgram | API referansı}
751
+ */
752
+ deleteProgram(args) {
753
+ return this._call('deleteProgram', args);
754
+ }
755
+ /**
756
+ * Taslağın üç görünümü
757
+ *
758
+ * Kaydetmeden, bir taslağın Apple Cüzdan, Google Cüzdan ve web kartı görünümlerini panelin kullandığı çizicilerle döndürür (HTML + CSS; kendi sayfanızda gösterin). `programId` verilirse o programın türü ve yüklü görselleri kullanılır. `stage`: yeni, yarı dolu ya da ödül hazır örnek kart. Dakikada 240 istek.
759
+ *
760
+ * **Kimlik:** API anahtarı, ekip oturumu.
761
+ *
762
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
763
+ *
764
+ * `POST /v1/programs/preview`
765
+ *
766
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-previewProgram | API referansı}
767
+ */
768
+ previewProgram(args) {
769
+ return this._call('previewProgram', args);
770
+ }
771
+ /**
772
+ * Logoyu yükle
773
+ *
774
+ * Kartın logosu (Apple şeridi, Google, web kartı ve paylaşım önizlemeleri). Her boyut ayrı bir kare PNG olarak gönderilir: 38×38, 50×50, 76×76, 100×100, 114×114, 150×150, 660×660. Eksik ya da boyutu tutmayan her biri `BAD_IMAGE` ile adıyla reddedilir. Eskisinin yerine geçer; cüzdandaki kartlar yeniden çekilir.
775
+ *
776
+ * **Kimlik:** API anahtarı, ekip oturumu.
777
+ *
778
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
779
+ *
780
+ * `PUT /v1/programs/{id}/images/logo`
781
+ *
782
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setProgramLogo | API referansı}
783
+ */
784
+ setProgramLogo(args) {
785
+ return this._call('setProgramLogo', args);
786
+ }
787
+ /**
788
+ * Simgeyi yükle
789
+ *
790
+ * Bildirimlerde ve kilit ekranında görünen simge. Her boyut ayrı bir kare PNG olarak gönderilir: 38×38, 76×76, 114×114. Eksik ya da boyutu tutmayan her biri `BAD_IMAGE` ile adıyla reddedilir. Eskisinin yerine geçer; cüzdandaki kartlar yeniden çekilir.
791
+ *
792
+ * **Kimlik:** API anahtarı, ekip oturumu.
793
+ *
794
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
795
+ *
796
+ * `PUT /v1/programs/{id}/images/icon`
797
+ *
798
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setProgramIcon | API referansı}
799
+ */
800
+ setProgramIcon(args) {
801
+ return this._call('setProgramIcon', args);
802
+ }
803
+ /**
804
+ * Afişi yükle
805
+ *
806
+ * Kartın fotoğrafı, iki kırpımla: `strip` Apple şeridi (1125×432) ve `hero` Google görseli (1032×812). İkisi de tam bu boyutta, 8 bit RGB/RGBA PNG. Tasarımda şerit ya da Google görseli "photo" iken görünür.
807
+ *
808
+ * **Kimlik:** API anahtarı, ekip oturumu.
809
+ *
810
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
811
+ *
812
+ * `PUT /v1/programs/{id}/images/banner`
813
+ *
814
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setProgramBanner | API referansı}
815
+ */
816
+ setProgramBanner(args) {
817
+ return this._call('setProgramBanner', args);
818
+ }
819
+ /**
820
+ * Bir görseli kaldır
821
+ *
822
+ * Logo kalkınca kartta işletme adının baş harfinden çizilen işaret görünür; afiş kalkınca tasarımdaki desen ya da renk.
823
+ *
824
+ * **Kimlik:** API anahtarı, ekip oturumu.
825
+ *
826
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
827
+ *
828
+ * `DELETE /v1/programs/{id}/images/{kind}`
829
+ *
830
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeProgramImage | API referansı}
831
+ */
832
+ removeProgramImage(args) {
833
+ return this._call('removeProgramImage', args);
834
+ }
835
+ /**
836
+ * Kaldırmanın etkisi
837
+ *
838
+ * Arşivlemeden ya da silmeden önce neye dokunulacağı: açık kartlar, cüzdanlardakiler, kart sahipleri, karttaki para (kuruş), açık kod partileri, etkin otomasyon ve diziler, hazır ödüller. `deletable`: hiç kart verilmediyse true.
839
+ *
840
+ * **Kimlik:** API anahtarı, ekip oturumu.
841
+ *
842
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
843
+ *
844
+ * `GET /v1/programs/{id}/impact`
845
+ *
846
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-programImpact | API referansı}
847
+ */
848
+ programImpact(args) {
849
+ return this._call('programImpact', args);
850
+ }
851
+ /**
852
+ * Arşivle
853
+ *
854
+ * Yeni katılım kapanır, programın otomasyonları, dizileri ve açık kod partileri durur, program kampanya kitlelerinden çıkar. Kartlar kasada çalışmaya devam eder. `cancelCards: true` ile açık kartlar da kapatılır (her cüzdana bir kez haber gider) — geri alınamaz olduğundan `confirmName` ister.
855
+ *
856
+ * **Kimlik:** API anahtarı, ekip oturumu.
857
+ *
858
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
859
+ *
860
+ * `POST /v1/programs/{id}/archive`
861
+ *
862
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-archiveProgram | API referansı}
863
+ */
864
+ archiveProgram(args) {
865
+ return this._call('archiveProgram', args);
866
+ }
867
+ /**
868
+ * Arşivden geri al
869
+ *
870
+ * Katılım yeniden açılır. `reopenCards: true` ile arşivlemenin kapattığı kartlar da yeniden açılır (harcanmış hediye kartı ya da kullanılmış kupon asla). Otomasyon ve diziler kendiliğinden açılmaz.
871
+ *
872
+ * **Kimlik:** API anahtarı, ekip oturumu.
873
+ *
874
+ * **Yetki:** `programs.manage` — Kart tasarımı oluşturma/düzenleme.
875
+ *
876
+ * `POST /v1/programs/{id}/restore`
877
+ *
878
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-restoreProgram | API referansı}
879
+ */
880
+ restoreProgram(args) {
881
+ return this._call('restoreProgram', args);
882
+ }
883
+ /**
884
+ * Katılım QR kodu
885
+ *
886
+ * Programın katılım adresinin QR kodu, SVG. Kasa afişi ya da kendi basılı materyaliniz için; panelin "QR afişi" aynı adresi kullanır. Kod ya da kuponla verilen türlerde katılım adresi yoktur (`PROGRAM_NOT_FOUND`).
887
+ *
888
+ * **Kimlik:** API anahtarı, ekip oturumu.
889
+ *
890
+ * **Yetki:** `programs.read` — Kart tasarımlarını görüntüleme.
891
+ *
892
+ * `GET /v1/programs/{id}/join-qr`
893
+ *
894
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-programJoinQr | API referansı}
895
+ */
896
+ programJoinQr(args) {
897
+ return this._call('programJoinQr', args);
898
+ }
899
+ // ------------------------------------------------------------ Müşteriler
900
+ /**
901
+ * Müşteriler
902
+ *
903
+ * Kimliğin şube kapsamındaki müşteriler, kartlarıyla. Paneldeki bütün süzgeçler burada da vardır. Bir müşteri, kapsamınızdaki bir şubede kartı ya da ziyareti varsa görünür. Her müşterinin adresleri ve numaraları `identifiers` içinde, durumlarıyla: doğrulanmış olanı yalnız müşteri değiştirir; API bir adresi ya da numarayı değiştirmez (ADR 168).
904
+ *
905
+ * **Kimlik:** API anahtarı, ekip oturumu.
906
+ *
907
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
908
+ *
909
+ * `GET /v1/customers`
910
+ *
911
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listCustomers | API referansı}
912
+ */
913
+ listCustomers(args) {
914
+ return this._call('listCustomers', args);
915
+ }
916
+ /**
917
+ * Müşteriler, kart kart
918
+ *
919
+ * Aynı süzgeçlerle, her satırda bir kart (panelde "kart kart" görünüm).
920
+ *
921
+ * **Kimlik:** API anahtarı, ekip oturumu.
922
+ *
923
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
924
+ *
925
+ * `GET /v1/customers/cards`
926
+ *
927
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listCustomerCards | API referansı}
928
+ */
929
+ listCustomerCards(args) {
930
+ return this._call('listCustomerCards', args);
931
+ }
932
+ /**
933
+ * Bir müşteri
934
+ *
935
+ * Panelin müşteri sayfasındaki her şey: iletişim (`identifiers`: her adres ve numara, durumuyla), kartlar, ziyaret sayıları ve ritmi, şubeler, onaylar, segmentler. Kişi yalnız bu işletmedeki hâliyle görünür; Rewloy Cüzdan hesabı, başka işletmedeki kartları ve kayıtları hiçbir zaman.
936
+ *
937
+ * **Kimlik:** API anahtarı, ekip oturumu.
938
+ *
939
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
940
+ *
941
+ * `GET /v1/customers/{id}`
942
+ *
943
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getCustomer | API referansı}
944
+ */
945
+ getCustomer(args) {
946
+ return this._call('getCustomer', args);
947
+ }
948
+ /**
949
+ * Müşterinin geçmişi
950
+ *
951
+ * Bu işletmede olan her şey, yeniden eskiye: defter hareketleri (puan/damga/bakiye, ödül, harcama), ziyaretler, gönderilen mesajlar, verilen kartlar ve müşterinin bu kayıttaki bir numarayı bu işletmede bir katılımla, kendi koduyla doğruladığı an (`contact`: `verified:phone`; `text` numara). Adresin doğrulandığı an gelmez: başka bir işletmede olmuş olabilir. Müşterinin bir adresi ya da numarayı yenisiyle değiştirdiği an da gelir (`changed:email`, `changed:phone`; `text` boş). `kind` ile süzülür, `passId` ile tek kart (o zaman `contact` satırı gelmez). `limit` en fazla 100.
952
+ *
953
+ * **Kimlik:** API anahtarı, ekip oturumu.
954
+ *
955
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
956
+ *
957
+ * `GET /v1/customers/{id}/timeline`
958
+ *
959
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-customerTimeline | API referansı}
960
+ */
961
+ customerTimeline(args) {
962
+ return this._call('customerTimeline', args);
963
+ }
964
+ /**
965
+ * Kart bağlantısını yeniden gönder
966
+ *
967
+ * Kartın özel bağlantısını yalnız kart sahibinin kendi e-postasına gönderir (size dönmez). Müşteri başına saatte 3. `sent: false`: adres e-posta almayı reddetmiş, geri dönmüş ya da müşterinin e-postası yok.
968
+ *
969
+ * **Kimlik:** API anahtarı, ekip oturumu.
970
+ *
971
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
972
+ *
973
+ * `POST /v1/customers/{id}/cards/{passId}/send-link`
974
+ *
975
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-sendCustomerCardLink | API referansı}
976
+ */
977
+ sendCustomerCardLink(args) {
978
+ return this._call('sendCustomerCardLink', args);
979
+ }
980
+ /**
981
+ * Müşteriyi engelle
982
+ *
983
+ * Müşterinin e-postasını ve doğrulanmış numaralarını engelli listesine ekler (ADR 168): bunlardan biriyle yeni kart alınamaz; Rewloy Cüzdan'da aynı hesap, bunlardan birini tuttuğu sürece, başka bir adresi ya da numarasıyla da alamaz. Yazılan (doğrulanmamış) telefon engellenmez: kimse kanıtlamadı, başkasının olabilir. `endCards: true` ile açık kartları da kapatılır (her cüzdana bir kez haber gider). Neden kayda geçer; adres ya da numara değil, özeti saklanır. Ne engellendiyse `entries` içinde; kaldırmak: `DELETE /v1/blocked-emails/{hash}` ya da `DELETE /v1/blocked-phones/{hash}`.
984
+ *
985
+ * **Kimlik:** API anahtarı, ekip oturumu.
986
+ *
987
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
988
+ *
989
+ * `POST /v1/customers/{id}/block`
990
+ *
991
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-blockCustomer | API referansı}
992
+ */
993
+ blockCustomer(args) {
994
+ return this._call('blockCustomer', args);
995
+ }
996
+ /**
997
+ * Müşteriyi sil (KVKK)
998
+ *
999
+ * Bu işletmedeki kişi kaydını ve kişisel verisini siler, kartlarını kapatır — kişinin kendi silme isteğiyle aynı silici. **Geri alınamaz**; bu yüzden yalnız ekip oturumuyla ve oturumu açan kişinin şifresiyle (`password`) yapılır, API anahtarıyla yapılamaz. Defter ve ziyaret sayıları kişisiz kalır.
1000
+ *
1001
+ * **Kimlik:** ekip oturumu.
1002
+ *
1003
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
1004
+ *
1005
+ * `POST /v1/customers/{id}/erase`
1006
+ *
1007
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-eraseCustomer | API referansı}
1008
+ */
1009
+ eraseCustomer(args) {
1010
+ return this._call('eraseCustomer', args);
1011
+ }
1012
+ /**
1013
+ * Engellenen adresler
1014
+ *
1015
+ * Yeniden eskiye. Adresler özet ve maskeli ipucuyla görünür; bir adresin listede olup olmadığını `GET /v1/blocked-emails/check` ile sorun. Engellenen numaralar `GET /v1/blocked-phones` ile.
1016
+ *
1017
+ * **Kimlik:** API anahtarı, ekip oturumu.
1018
+ *
1019
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
1020
+ *
1021
+ * `GET /v1/blocked-emails`
1022
+ *
1023
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listBlockedEmails | API referansı}
1024
+ */
1025
+ listBlockedEmails(args) {
1026
+ return this._call('listBlockedEmails', args);
1027
+ }
1028
+ /**
1029
+ * Bir adresi engelle
1030
+ *
1031
+ * Henüz müşteri olmayan bir adres de engellenebilir. Tüm şubelerde müşteri yönetimi yetkisi gerekir. Aynı adres yeniden engellenirse neden güncellenir.
1032
+ *
1033
+ * **Kimlik:** API anahtarı, ekip oturumu.
1034
+ *
1035
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
1036
+ *
1037
+ * `POST /v1/blocked-emails`
1038
+ *
1039
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-blockEmail | API referansı}
1040
+ */
1041
+ blockEmail(args) {
1042
+ return this._call('blockEmail', args);
1043
+ }
1044
+ /**
1045
+ * Bu adres engelli mi?
1046
+ *
1047
+ * Tam adresle sorulur (yalnız özetler saklandığı için arama yapılamaz).
1048
+ *
1049
+ * **Kimlik:** API anahtarı, ekip oturumu.
1050
+ *
1051
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
1052
+ *
1053
+ * `GET /v1/blocked-emails/check`
1054
+ *
1055
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-checkBlockedEmail | API referansı}
1056
+ */
1057
+ checkBlockedEmail(args) {
1058
+ return this._call('checkBlockedEmail', args);
1059
+ }
1060
+ /**
1061
+ * Engeli kaldır
1062
+ *
1063
+ * Adres yeniden kart alabilir. Tüm şubelerde müşteri yönetimi yetkisi gerekir.
1064
+ *
1065
+ * **Kimlik:** API anahtarı, ekip oturumu.
1066
+ *
1067
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
1068
+ *
1069
+ * `DELETE /v1/blocked-emails/{hash}`
1070
+ *
1071
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-unblockEmail | API referansı}
1072
+ */
1073
+ unblockEmail(args) {
1074
+ return this._call('unblockEmail', args);
1075
+ }
1076
+ /**
1077
+ * Engellenen numaralar
1078
+ *
1079
+ * Yeniden eskiye (ADR 168). Numaralar anahtarlı özet ve maskeli ipucuyla görünür; bir numaranın listede olup olmadığını `GET /v1/blocked-phones/check` ile sorun.
1080
+ *
1081
+ * **Kimlik:** API anahtarı, ekip oturumu.
1082
+ *
1083
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
1084
+ *
1085
+ * `GET /v1/blocked-phones`
1086
+ *
1087
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listBlockedPhones | API referansı}
1088
+ */
1089
+ listBlockedPhones(args) {
1090
+ return this._call('listBlockedPhones', args);
1091
+ }
1092
+ /**
1093
+ * Bir numarayı engelle
1094
+ *
1095
+ * Bu numarayla yeni kart alınamaz: katılımda, kodla alırken, Rewloy Cüzdan'da ve API ile. Numarayı engellendiği sırada tutan cüzdan hesabı, onu tuttuğu sürece başka bir adresi ya da numarasıyla da alamaz. Henüz müşteri olmayan bir numara da engellenebilir. Numaralar el değiştirebilir: numarayı sonra alan da o numarayla kart alamaz, ama başka adres ve numaraları etkilenmez. Tüm şubelerde müşteri yönetimi yetkisi gerekir. Aynı numara yeniden engellenirse neden güncellenir.
1096
+ *
1097
+ * **Kimlik:** API anahtarı, ekip oturumu.
1098
+ *
1099
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
1100
+ *
1101
+ * `POST /v1/blocked-phones`
1102
+ *
1103
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-blockPhone | API referansı}
1104
+ */
1105
+ blockPhone(args) {
1106
+ return this._call('blockPhone', args);
1107
+ }
1108
+ /**
1109
+ * Bu numara engelli mi?
1110
+ *
1111
+ * Bütün numarayla sorulur (yalnız anahtarlı özetler saklandığı için arama yapılamaz). Yalnız Türkiye cep telefonları.
1112
+ *
1113
+ * **Kimlik:** API anahtarı, ekip oturumu.
1114
+ *
1115
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
1116
+ *
1117
+ * `GET /v1/blocked-phones/check`
1118
+ *
1119
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-checkBlockedPhone | API referansı}
1120
+ */
1121
+ checkBlockedPhone(args) {
1122
+ return this._call('checkBlockedPhone', args);
1123
+ }
1124
+ /**
1125
+ * Numaranın engelini kaldır
1126
+ *
1127
+ * Numara yeniden kart alabilir. Tüm şubelerde müşteri yönetimi yetkisi gerekir.
1128
+ *
1129
+ * **Kimlik:** API anahtarı, ekip oturumu.
1130
+ *
1131
+ * **Yetki:** `customers.manage` — Müşteri yönetimi.
1132
+ *
1133
+ * `DELETE /v1/blocked-phones/{hash}`
1134
+ *
1135
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-unblockPhone | API referansı}
1136
+ */
1137
+ unblockPhone(args) {
1138
+ return this._call('unblockPhone', args);
1139
+ }
1140
+ // ------------------------------------------------------------ Kodlar
1141
+ /**
1142
+ * Bir programın kodları
1143
+ *
1144
+ * Hediye kartı, kupon ya da indirim programının kodları, yeniden eskiye (son 100), her birinden verilen kart sayısıyla.
1145
+ *
1146
+ * **Kimlik:** API anahtarı, ekip oturumu.
1147
+ *
1148
+ * **Yetki:** `instruments.read` — Hediye kartı ve kuponları görüntüleme.
1149
+ *
1150
+ * `GET /v1/programs/{id}/batches`
1151
+ *
1152
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listBatches | API referansı}
1153
+ */
1154
+ listBatches(args) {
1155
+ return this._call('listBatches', args);
1156
+ }
1157
+ /**
1158
+ * Kod üret
1159
+ *
1160
+ * Bir kod üretir; müşteri kodu girerek ya da QR'ı okutarak kartını kendisi alır (`claimUrl`). Türe göre alanlar:
1161
+ * | tür | alanlar |
1162
+ * |---|---|
1163
+ * | hediye kartı | `valueMinor` zorunlu (100 – 100.000.000 kuruş); kullanım her zaman sınırsız, bakiye bitene kadar |
1164
+ * | kupon | ya `offerText` (ör. "1 tatlı") ya `valueMinor` (100 – 10.000.000 kuruş indirim); `usage` |
1165
+ * | indirim kartı | `percent` (yoksa programın oranı); `usage` |
1166
+ *
1167
+ * `usage`: `once` tek kullanım, `limited` + `usageLimit` (2–1000), `unlimited`. `validUntil` bir gün (YYYY-AA-GG) ise o günün sonuna kadar (Türkiye saati) geçerlidir. Başka türün alanı reddedilir. Planda `instruments` özelliği gerekir.
1168
+ *
1169
+ * **Kimlik:** API anahtarı, ekip oturumu.
1170
+ *
1171
+ * **Yetki:** `instruments.issue` — Hediye kartı ve kupon üretme.
1172
+ *
1173
+ * `POST /v1/programs/{id}/batches`
1174
+ *
1175
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createBatch | API referansı}
1176
+ */
1177
+ createBatch(args) {
1178
+ return this._call('createBatch', args);
1179
+ }
1180
+ /**
1181
+ * Bir kod
1182
+ *
1183
+ * Kodun ayarları, verilen kartların durumları ve hediye kartında harcanan / kalan para.
1184
+ *
1185
+ * **Kimlik:** API anahtarı, ekip oturumu.
1186
+ *
1187
+ * **Yetki:** `instruments.read` — Hediye kartı ve kuponları görüntüleme.
1188
+ *
1189
+ * `GET /v1/batches/{id}`
1190
+ *
1191
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getBatch | API referansı}
1192
+ */
1193
+ getBatch(args) {
1194
+ return this._call('getBatch', args);
1195
+ }
1196
+ /**
1197
+ * Koddan verilen kartlar
1198
+ *
1199
+ * Yeniden eskiye; `status` ile süzülür. Hediye kartında `balance` kalan tutardır (kuruş). Kimliğin `customers.read` yetkisi de varsa kartı alanın bu işletmedeki adresleri ve numaraları `identifiers` içinde gelir, durumlarıyla: numarayla alınan kartın kişisi numarasıyla tanınır (ADR 168). Bu yetki yoksa ya da kişi kimliğin şube kapsamı dışındaysa `identifiers` gelmez: müşterinin iletişim bilgisi müşteri okuma yetkisiyle görülür.
1200
+ *
1201
+ * **Kimlik:** API anahtarı, ekip oturumu.
1202
+ *
1203
+ * **Yetki:** `instruments.read` — Hediye kartı ve kuponları görüntüleme.
1204
+ *
1205
+ * `GET /v1/batches/{id}/cards`
1206
+ *
1207
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listBatchCards | API referansı}
1208
+ */
1209
+ listBatchCards(args) {
1210
+ return this._call('listBatchCards', args);
1211
+ }
1212
+ /**
1213
+ * Bağlantıyı e-postayla gönder
1214
+ *
1215
+ * Kodun alma bağlantısını bir adrese gönderir; alıcı kartını kendisi alır (e-postası ve onayıyla). Sonuç: `queued` gönderildi, `duplicate` bu adrese bu kod zaten gönderilmişti, `suppressed` adres e-posta almayı reddetmiş ya da geri dönmüş. İşletme başına günde 300.
1216
+ *
1217
+ * **Kimlik:** API anahtarı, ekip oturumu.
1218
+ *
1219
+ * **Yetki:** `instruments.issue` — Hediye kartı ve kupon üretme.
1220
+ *
1221
+ * `POST /v1/batches/{id}/send`
1222
+ *
1223
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-sendBatchLink | API referansı}
1224
+ */
1225
+ sendBatchLink(args) {
1226
+ return this._call('sendBatchLink', args);
1227
+ }
1228
+ /**
1229
+ * Kaydı durdur
1230
+ *
1231
+ * Bu koddan yeni kart alınamaz; verilmiş kartlar çalışmaya devam eder. Geri açılmaz: gerekirse yeni kod üretin.
1232
+ *
1233
+ * **Kimlik:** API anahtarı, ekip oturumu.
1234
+ *
1235
+ * **Yetki:** `instruments.issue` — Hediye kartı ve kupon üretme.
1236
+ *
1237
+ * `POST /v1/batches/{id}/close`
1238
+ *
1239
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-closeBatch | API referansı}
1240
+ */
1241
+ closeBatch(args) {
1242
+ return this._call('closeBatch', args);
1243
+ }
1244
+ /**
1245
+ * Bir kartı iptal et
1246
+ *
1247
+ * Kayıp, iade ya da kötüye kullanım: kart kapanır, cüzdana haber gider. Neden ve iptal eden kayda geçer. Geri alınamaz.
1248
+ *
1249
+ * **Kimlik:** API anahtarı, ekip oturumu.
1250
+ *
1251
+ * **Yetki:** `instruments.void` — Hediye kartı ve kupon iptali.
1252
+ *
1253
+ * `POST /v1/batches/{id}/cards/{passId}/void`
1254
+ *
1255
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-voidBatchCard | API referansı}
1256
+ */
1257
+ voidBatchCard(args) {
1258
+ return this._call('voidBatchCard', args);
1259
+ }
1260
+ /**
1261
+ * Kodun QR'ı
1262
+ *
1263
+ * Alma bağlantısının QR kodu, SVG — afiş, fiş ya da ekran için.
1264
+ *
1265
+ * **Kimlik:** API anahtarı, ekip oturumu.
1266
+ *
1267
+ * **Yetki:** `instruments.read` — Hediye kartı ve kuponları görüntüleme.
1268
+ *
1269
+ * `GET /v1/batches/{id}/qr`
1270
+ *
1271
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-batchQr | API referansı}
1272
+ */
1273
+ batchQr(args) {
1274
+ return this._call('batchQr', args);
1275
+ }
1276
+ // ------------------------------------------------------------ Segmentler
1277
+ /**
1278
+ * Segmentler
1279
+ *
1280
+ * Önce Rewloy önerileri (müşterinin işletmeyle yolculuğu sırasıyla; bu işletmenin düzenlediği hâliyle), sonra işletmenin kendi segmentleri — her biri kapsamınızdaki sayılarıyla.
1281
+ *
1282
+ * **Kimlik:** API anahtarı, ekip oturumu.
1283
+ *
1284
+ * **Yetki:** `segments.read` — Segmentleri görüntüleme.
1285
+ *
1286
+ * `GET /v1/segments`
1287
+ *
1288
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listSegments | API referansı}
1289
+ */
1290
+ listSegments(args) {
1291
+ return this._call('listSegments', args);
1292
+ }
1293
+ /**
1294
+ * Segment oluştur
1295
+ *
1296
+ * İşletmenin kendi segmenti. Şube kapsamlı bir kimlik yalnız kendi şubelerini seçebilir. Planda `segments` özelliği gerekir.
1297
+ *
1298
+ * **Kimlik:** API anahtarı, ekip oturumu.
1299
+ *
1300
+ * **Yetki:** `segments.manage` — Segment yönetimi.
1301
+ *
1302
+ * `POST /v1/segments`
1303
+ *
1304
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createSegment | API referansı}
1305
+ */
1306
+ createSegment(args) {
1307
+ return this._call('createSegment', args);
1308
+ }
1309
+ /**
1310
+ * Kuralın canlı sayımı
1311
+ *
1312
+ * Kaydetmeden, bir kurala kaç kartın uyduğunu ve kaçına mesaj gönderilebileceğini söyler — kampanyanın kullanacağı aynı kural, kapsam ve canlılıkla. Kural cümleleri de döner.
1313
+ *
1314
+ * **Kimlik:** API anahtarı, ekip oturumu.
1315
+ *
1316
+ * **Yetki:** `segments.read` — Segmentleri görüntüleme.
1317
+ *
1318
+ * `POST /v1/segments/preview`
1319
+ *
1320
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-previewSegment | API referansı}
1321
+ */
1322
+ previewSegment(args) {
1323
+ return this._call('previewSegment', args);
1324
+ }
1325
+ /**
1326
+ * Bir segment
1327
+ *
1328
+ * **Kimlik:** API anahtarı, ekip oturumu.
1329
+ *
1330
+ * **Yetki:** `segments.read` — Segmentleri görüntüleme.
1331
+ *
1332
+ * `GET /v1/segments/{slug}`
1333
+ *
1334
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getSegment | API referansı}
1335
+ */
1336
+ getSegment(args) {
1337
+ return this._call('getSegment', args);
1338
+ }
1339
+ /**
1340
+ * Segmenti düzenle
1341
+ *
1342
+ * Yalnız gönderilen alanlar değişir; `rule` gönderilirse kural bütünüyle yer değiştirir. Bir öneri düzenlenince bu işletmeye özel hâli kaydedilir (öneri değişmez; `POST …/reset` ile dönülür). Daha önce gönderilmiş kampanyalar kendi kurallarıyla kalır.
1343
+ *
1344
+ * **Kimlik:** API anahtarı, ekip oturumu.
1345
+ *
1346
+ * **Yetki:** `segments.manage` — Segment yönetimi.
1347
+ *
1348
+ * `PATCH /v1/segments/{slug}`
1349
+ *
1350
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateSegment | API referansı}
1351
+ */
1352
+ updateSegment(args) {
1353
+ return this._call('updateSegment', args);
1354
+ }
1355
+ /**
1356
+ * Segmenti arşivle
1357
+ *
1358
+ * İşletmenin kendi segmenti listeden kalkar; onunla gönderilmiş kampanyalar olduğu gibi kalır. Öneriler arşivlenmez (`POST …/reset`).
1359
+ *
1360
+ * **Kimlik:** API anahtarı, ekip oturumu.
1361
+ *
1362
+ * **Yetki:** `segments.manage` — Segment yönetimi.
1363
+ *
1364
+ * `DELETE /v1/segments/{slug}`
1365
+ *
1366
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-archiveSegment | API referansı}
1367
+ */
1368
+ archiveSegment(args) {
1369
+ return this._call('archiveSegment', args);
1370
+ }
1371
+ /**
1372
+ * Segmentteki kartlar
1373
+ *
1374
+ * Sayılarla aynı kural ve kapsam; en son gelen önce. `only=sendable` mesaj gönderilebilenler, `only=unsendable` izni olmayanlar. Kişi bilgisi içerdiği için `customers.read` da gerekir. `limit` en fazla 100.
1375
+ *
1376
+ * **Kimlik:** API anahtarı, ekip oturumu.
1377
+ *
1378
+ * **Yetki:** `segments.read` — Segmentleri görüntüleme.
1379
+ *
1380
+ * `GET /v1/segments/{slug}/cards`
1381
+ *
1382
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listSegmentCards | API referansı}
1383
+ */
1384
+ listSegmentCards(args) {
1385
+ return this._call('listSegmentCards', args);
1386
+ }
1387
+ /**
1388
+ * Öneriye dön
1389
+ *
1390
+ * Düzenlenmiş bir Rewloy önerisini ilk hâline döndürür. Yalnız önerilerde; kendi segmentleriniz için `DELETE`.
1391
+ *
1392
+ * **Kimlik:** API anahtarı, ekip oturumu.
1393
+ *
1394
+ * **Yetki:** `segments.manage` — Segment yönetimi.
1395
+ *
1396
+ * `POST /v1/segments/{slug}/reset`
1397
+ *
1398
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-resetSegment | API referansı}
1399
+ */
1400
+ resetSegment(args) {
1401
+ return this._call('resetSegment', args);
1402
+ }
1403
+ // ------------------------------------------------------------ Kampanyalar
1404
+ /**
1405
+ * Kampanyalar
1406
+ *
1407
+ * Planlananlar önce, sonra en yeniden eskiye. `state=scheduled|sent|cancelled` ile süzülür (`sent` gönderilmekte olanları da içerir). Şube kapsamlı bir kimlik yalnız kendi şubelerine giden kampanyaları görür. `messaging.read` ya da `campaigns.send` yeter.
1408
+ *
1409
+ * **Kimlik:** API anahtarı, ekip oturumu.
1410
+ *
1411
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1412
+ *
1413
+ * `GET /v1/campaigns`
1414
+ *
1415
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listCampaigns | API referansı}
1416
+ */
1417
+ listCampaigns(args) {
1418
+ return this._call('listCampaigns', args);
1419
+ }
1420
+ /**
1421
+ * Kampanya gönder ya da planla
1422
+ *
1423
+ * Kartların arka yüzüne mesaj yazar; Apple ve Google cüzdanlar bildirim gösterir. **Idempotency-Key zorunludur**: bağlantı koparsa aynı anahtarla yeniden deneyin, kampanya ikinci kez gitmez; ilk yanıt `Idempotent-Replayed: true` başlığıyla döner.
1424
+ * - `body` en fazla 180 karakter (kilit ekranı). `{ad}` kişinin adıyla değişir.
1425
+ * - Kitle: `segment` (bir segmentin `ref` değeri), `programId`, `locationIds` — hepsi birlikte. Şube kapsamlı kimlik yalnız kendi şubelerine gönderir; şube verilmezse kapsamındakilere.
1426
+ * - Zaman: verilmezse hemen. `at` tam zaman (ISO 8601) ya da `localAt` işletmenin saat diliminde `YYYY-AA-GGTSS:DD`; şimdi ile 60 gün sonrası arası.
1427
+ * - Sessiz saatlerde (22:00–09:00, Türkiye) kampanya sabaha planlanır: `deferredByQuietHours: true`.
1428
+ * - Kampanya izni olmayanlara ve günlük sınırı dolanlara gitmez; sonuçlar kampanyada ayrı sayılır.
1429
+ *
1430
+ * **Kimlik:** API anahtarı, ekip oturumu.
1431
+ *
1432
+ * **Yetki:** `campaigns.send` — Kampanya gönderme.
1433
+ *
1434
+ * `POST /v1/campaigns`
1435
+ *
1436
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-sendCampaign | API referansı}
1437
+ */
1438
+ sendCampaign(args) {
1439
+ return this._call('sendCampaign', args);
1440
+ }
1441
+ /**
1442
+ * Son 30 günün özeti
1443
+ *
1444
+ * Son `days` günde (varsayılan 30) gönderilen kampanyaların toplamları, planlanmış olanlar ve durumlara göre kampanya sayıları. Gönderim ayarları: günlük pazarlama sınırı ve sessiz saatler (Türkiye saati).
1445
+ *
1446
+ * **Kimlik:** API anahtarı, ekip oturumu.
1447
+ *
1448
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1449
+ *
1450
+ * `GET /v1/campaigns/summary`
1451
+ *
1452
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-campaignSummary | API referansı}
1453
+ */
1454
+ campaignSummary(args) {
1455
+ return this._call('campaignSummary', args);
1456
+ }
1457
+ /**
1458
+ * Kitle sayımı
1459
+ *
1460
+ * Göndermeden, bir kampanyanın kaç karta uyduğunu ve kaçına gönderilebileceğini (kampanya izni) söyler — gönderimin kullanacağı aynı kural ve kapsamla. Şube verilmezse kimliğin kapsamındaki bütün şubeler.
1461
+ *
1462
+ * **Kimlik:** API anahtarı, ekip oturumu.
1463
+ *
1464
+ * **Yetki:** `campaigns.send` — Kampanya gönderme.
1465
+ *
1466
+ * `GET /v1/campaigns/audience`
1467
+ *
1468
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-campaignAudience | API referansı}
1469
+ */
1470
+ campaignAudience(args) {
1471
+ return this._call('campaignAudience', args);
1472
+ }
1473
+ /**
1474
+ * Bir kampanya
1475
+ *
1476
+ * Sonuçlarıyla: gönderildi, izinsiz, sınıra takıldı, 7 günde geldi; cüzdan başına gözlenebilen (Apple indirdi, Google çaldı ya da sessiz). "Açıldı" diye bir sayı yoktur: cüzdanlar bunu söylemez.
1477
+ *
1478
+ * **Kimlik:** API anahtarı, ekip oturumu.
1479
+ *
1480
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1481
+ *
1482
+ * `GET /v1/campaigns/{id}`
1483
+ *
1484
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getCampaign | API referansı}
1485
+ */
1486
+ getCampaign(args) {
1487
+ return this._call('getCampaign', args);
1488
+ }
1489
+ /**
1490
+ * Kampanyanın ulaştığı kartlar
1491
+ *
1492
+ * `filter`: delivered, returned (7 günde geldi), opted_out, capped. Kişi bilgisi içerdiği için `customers.read` da gerekir; şube kapsamı kartların ana şubesine uygulanır.
1493
+ *
1494
+ * **Kimlik:** API anahtarı, ekip oturumu.
1495
+ *
1496
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1497
+ *
1498
+ * `GET /v1/campaigns/{id}/recipients`
1499
+ *
1500
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listCampaignRecipients | API referansı}
1501
+ */
1502
+ listCampaignRecipients(args) {
1503
+ return this._call('listCampaignRecipients', args);
1504
+ }
1505
+ /**
1506
+ * Planlanan kampanyayı iptal et
1507
+ *
1508
+ * Yalnız henüz gönderilmeye başlanmamış kampanya iptal edilir.
1509
+ *
1510
+ * **Kimlik:** API anahtarı, ekip oturumu.
1511
+ *
1512
+ * **Yetki:** `campaigns.send` — Kampanya gönderme.
1513
+ *
1514
+ * `POST /v1/campaigns/{id}/cancel`
1515
+ *
1516
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-cancelCampaign | API referansı}
1517
+ */
1518
+ cancelCampaign(args) {
1519
+ return this._call('cancelCampaign', args);
1520
+ }
1521
+ // ------------------------------------------------------------ Otomasyonlar
1522
+ /**
1523
+ * Otomasyonlar
1524
+ *
1525
+ * Dört otomasyon türü (ne yaptıkları ve önerilen mesajlarıyla), kurulmuş otomasyonlar son 30 günün sonuçlarıyla, çalışıp çalışamayacaklarını belirleyen durumlar ve gönderim kuralları. `messaging.read` ya da `automations.manage` yeter; şube kapsamlı kimlik kendi şubelerine gidenleri görür.
1526
+ *
1527
+ * **Kimlik:** API anahtarı, ekip oturumu.
1528
+ *
1529
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1530
+ *
1531
+ * `GET /v1/automations`
1532
+ *
1533
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listAutomations | API referansı}
1534
+ */
1535
+ listAutomations(args) {
1536
+ return this._call('listAutomations', args);
1537
+ }
1538
+ /**
1539
+ * Bir otomasyon
1540
+ *
1541
+ * **Kimlik:** API anahtarı, ekip oturumu.
1542
+ *
1543
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1544
+ *
1545
+ * `GET /v1/automations/{id}`
1546
+ *
1547
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getAutomation | API referansı}
1548
+ */
1549
+ getAutomation(args) {
1550
+ return this._call('getAutomation', args);
1551
+ }
1552
+ /**
1553
+ * Otomasyonu düzenle, aç ya da kapat
1554
+ *
1555
+ * Yalnız gönderilen alanlar değişir; `{ "active": false }` kapatır, `true` açar.
1556
+ *
1557
+ * **Kimlik:** API anahtarı, ekip oturumu.
1558
+ *
1559
+ * **Yetki:** `automations.manage` — Otomasyon yönetimi.
1560
+ *
1561
+ * `PATCH /v1/automations/{id}`
1562
+ *
1563
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateAutomation | API referansı}
1564
+ */
1565
+ updateAutomation(args) {
1566
+ return this._call('updateAutomation', args);
1567
+ }
1568
+ /**
1569
+ * Otomasyonun ulaştığı kartlar
1570
+ *
1571
+ * Yeniden eskiye; `filter`: delivered, returned, opted_out, capped. `customers.read` da gerekir.
1572
+ *
1573
+ * **Kimlik:** API anahtarı, ekip oturumu.
1574
+ *
1575
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1576
+ *
1577
+ * `GET /v1/automations/{id}/recipients`
1578
+ *
1579
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listAutomationRecipients | API referansı}
1580
+ */
1581
+ listAutomationRecipients(args) {
1582
+ return this._call('listAutomationRecipients', args);
1583
+ }
1584
+ /**
1585
+ * Otomasyonu kur ya da değiştir
1586
+ *
1587
+ * Bir türün genel mesajını (`programId` yok) ya da bir kartın kendi mesajını kurar veya bütünüyle değiştirir. Kartın kendi mesajı varken o kartın sahiplerine genel mesaj gitmez.
1588
+ * - `body` en fazla 180 karakter; `{ad}` kişinin adıyla değişir.
1589
+ * - `delayMinutes` (0–1440, yalnız hoş geldin; varsayılan 60) · `days` (7–365, yalnız geri kazan; varsayılan 30).
1590
+ * - `active: true` açar; açıldığı andan önceki anlar için hiçbir zaman gönderilmez (eski müşterilere toplu mesaj gitmez).
1591
+ * - Şube kapsamlı kimlik yalnız kendi şubeleri için kurar; kapsamı dışını da kapsayan bir otomasyonu değiştiremez.
1592
+ *
1593
+ * **Kimlik:** API anahtarı, ekip oturumu.
1594
+ *
1595
+ * **Yetki:** `automations.manage` — Otomasyon yönetimi.
1596
+ *
1597
+ * `PUT /v1/automations/{kind}`
1598
+ *
1599
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-saveAutomation | API referansı}
1600
+ */
1601
+ saveAutomation(args) {
1602
+ return this._call('saveAutomation', args);
1603
+ }
1604
+ // ------------------------------------------------------------ Diziler
1605
+ /**
1606
+ * Diziler ve hazır zincirler
1607
+ *
1608
+ * İşletmenin arşivlenmemiş dizileri (açıklar önce) adım adım sonuçlarıyla, ve Rewloy'un hazır zincirleri (`template` ile yeni dizi başlatılır).
1609
+ *
1610
+ * **Kimlik:** API anahtarı, ekip oturumu.
1611
+ *
1612
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1613
+ *
1614
+ * `GET /v1/sequences`
1615
+ *
1616
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listSequences | API referansı}
1617
+ */
1618
+ listSequences(args) {
1619
+ return this._call('listSequences', args);
1620
+ }
1621
+ /**
1622
+ * Dizi başlat
1623
+ *
1624
+ * Yeni bir dizi oluşturur ve **hemen başlatır**; oluşturulduğu andan sonraki anlar için çalışır (eski müşterilere toplu mesaj gitmez).
1625
+ * - `template` (hazır zincirin anahtarı) verilirse ad, tetikleyici ve adımlar ondan gelir; gönderdiğiniz alanlar onların yerine geçer.
1626
+ * - En fazla 5 adım; her mesaj en fazla 180 karakter, `{ad}` kişinin adıyla değişir. `waitDays` yalnız `waitKind: days` ile (1–90).
1627
+ * - `triggerDays` yalnız `no_visit` ile (7–365, varsayılan 30). Doğum günü dizisi yalnız katılım formunda doğum günü soran kartlarda çalışır.
1628
+ * - Açık bir "kart eklendi" dizisi varken hoş geldin otomasyonu bekler: iki karşılama gitmez.
1629
+ *
1630
+ * **Kimlik:** API anahtarı, ekip oturumu.
1631
+ *
1632
+ * **Yetki:** `automations.manage` — Otomasyon yönetimi.
1633
+ *
1634
+ * `POST /v1/sequences`
1635
+ *
1636
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createSequence | API referansı}
1637
+ */
1638
+ createSequence(args) {
1639
+ return this._call('createSequence', args);
1640
+ }
1641
+ /**
1642
+ * Bir dizi
1643
+ *
1644
+ * **Kimlik:** API anahtarı, ekip oturumu.
1645
+ *
1646
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1647
+ *
1648
+ * `GET /v1/sequences/{id}`
1649
+ *
1650
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getSequence | API referansı}
1651
+ */
1652
+ getSequence(args) {
1653
+ return this._call('getSequence', args);
1654
+ }
1655
+ /**
1656
+ * Duraklat ya da devam ettir
1657
+ *
1658
+ * `{ "state": "paused" }` yeni girişleri ve gönderimleri durdurur; `"active"` devam ettirir — giriş o andan itibaren yeniden başlar (duraklarken geçen anlar için gönderilmez). Adımları değiştirmek için yeni dizi başlatın.
1659
+ *
1660
+ * **Kimlik:** API anahtarı, ekip oturumu.
1661
+ *
1662
+ * **Yetki:** `automations.manage` — Otomasyon yönetimi.
1663
+ *
1664
+ * `PATCH /v1/sequences/{id}`
1665
+ *
1666
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setSequenceState | API referansı}
1667
+ */
1668
+ setSequenceState(args) {
1669
+ return this._call('setSequenceState', args);
1670
+ }
1671
+ /**
1672
+ * Diziyi arşivle
1673
+ *
1674
+ * Dizi durur ve listeden kalkar; ortasındaki kartların zinciri biter (kayda "arşivlendi" olarak geçer). Geri alınamaz.
1675
+ *
1676
+ * **Kimlik:** API anahtarı, ekip oturumu.
1677
+ *
1678
+ * **Yetki:** `automations.manage` — Otomasyon yönetimi.
1679
+ *
1680
+ * `DELETE /v1/sequences/{id}`
1681
+ *
1682
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-archiveSequence | API referansı}
1683
+ */
1684
+ archiveSequence(args) {
1685
+ return this._call('archiveSequence', args);
1686
+ }
1687
+ /**
1688
+ * Dizinin ulaştığı kartlar
1689
+ *
1690
+ * Yeniden eskiye; `step` (0–4) tek adım, `filter` delivered, returned, opted_out, capped. `customers.read` da gerekir.
1691
+ *
1692
+ * **Kimlik:** API anahtarı, ekip oturumu.
1693
+ *
1694
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1695
+ *
1696
+ * `GET /v1/sequences/{id}/recipients`
1697
+ *
1698
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listSequenceRecipients | API referansı}
1699
+ */
1700
+ listSequenceRecipients(args) {
1701
+ return this._call('listSequenceRecipients', args);
1702
+ }
1703
+ // ------------------------------------------------------------ Kasa kampanyaları
1704
+ /**
1705
+ * Kasa kampanyaları
1706
+ *
1707
+ * Sürenler ve planlananlar önce. `state=live` (süren ve planlanan) ya da `ended`. Şube kapsamlı bir kimlik tüm şubelerde çalışanları ve kendi şubelerindekileri görür. `messaging.read` ya da `campaigns.send` yeter.
1708
+ *
1709
+ * **Kimlik:** API anahtarı, ekip oturumu.
1710
+ *
1711
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1712
+ *
1713
+ * `GET /v1/promotions`
1714
+ *
1715
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listPromotions | API referansı}
1716
+ */
1717
+ listPromotions(args) {
1718
+ return this._call('listPromotions', args);
1719
+ }
1720
+ /**
1721
+ * Kasa kampanyası aç
1722
+ *
1723
+ * Belirli şubelerde ve günlerde, kasada verilen damga, puan ya da iadeyi `factor` ile çarpar. Müşteriye mesaj gitmez; duyurmak için bir kampanya gönderin.
1724
+ *
1725
+ * Yalnız damga, puan ve cashback kartlarında; online siparişlerde (şubesiz işlem) uygulanmaz. Aynı anda birden çok kampanya uyarsa en yüksek çarpan geçerlidir.
1726
+ *
1727
+ * `locationIds` boşsa tüm şubeler — şube kapsamlı bir kimlik için kendi şubeleri. `days` boşsa her gün. En fazla bir yıl. Planda kampanya özelliği gerekir.
1728
+ *
1729
+ * **Kimlik:** API anahtarı, ekip oturumu.
1730
+ *
1731
+ * **Yetki:** `campaigns.send` — Kampanya gönderme.
1732
+ *
1733
+ * `POST /v1/promotions`
1734
+ *
1735
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createPromotion | API referansı}
1736
+ */
1737
+ createPromotion(args) {
1738
+ return this._call('createPromotion', args);
1739
+ }
1740
+ /**
1741
+ * Bir kasa kampanyası
1742
+ *
1743
+ * Kuralları ve sonucu: çarptığı işlem sayısı ve kattığı ek miktar.
1744
+ *
1745
+ * **Kimlik:** API anahtarı, ekip oturumu.
1746
+ *
1747
+ * **Yetki:** `messaging.read` — Kampanya ve mesajları görüntüleme.
1748
+ *
1749
+ * `GET /v1/promotions/{id}`
1750
+ *
1751
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getPromotion | API referansı}
1752
+ */
1753
+ getPromotion(args) {
1754
+ return this._call('getPromotion', args);
1755
+ }
1756
+ /**
1757
+ * Kasa kampanyasını bitir
1758
+ *
1759
+ * Hemen bitirir (planlanmışsa iptal eder); bundan sonraki okutmalarda uygulanmaz. Bitmiş bir kampanyada bir şey değiştirmez. Şube kapsamlı bir kimlik yalnız tamamen kendi şubelerinde çalışan kampanyaları bitirebilir.
1760
+ *
1761
+ * **Kimlik:** API anahtarı, ekip oturumu.
1762
+ *
1763
+ * **Yetki:** `campaigns.send` — Kampanya gönderme.
1764
+ *
1765
+ * `POST /v1/promotions/{id}/end`
1766
+ *
1767
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-endPromotion | API referansı}
1768
+ */
1769
+ endPromotion(args) {
1770
+ return this._call('endPromotion', args);
1771
+ }
1772
+ // ------------------------------------------------------------ Analitik
1773
+ /**
1774
+ * Ana sayfa
1775
+ *
1776
+ * Dört ana sayı (yeni kart, yeni müşteri, ziyaret, ödül) ve bir önceki eşit dönem, arkalarındaki günlük seri (önce önceki dönem, sonra bu dönem), tezgâhtaki son 15 olay ve — kapsam bütün şubelerse ve 2+ şube varsa — şubeler yan yana. Kişi adları yalnız `customers.read` olan kimliğe gelir.
1777
+ *
1778
+ * **Kimlik:** API anahtarı, ekip oturumu.
1779
+ *
1780
+ * **Yetki:** `analytics.read` — Analitik görüntüleme.
1781
+ *
1782
+ * `GET /v1/home`
1783
+ *
1784
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getHome | API referansı}
1785
+ */
1786
+ getHome(args) {
1787
+ return this._call('getHome', args);
1788
+ }
1789
+ /**
1790
+ * Analitik
1791
+ *
1792
+ * Son 7, 30 ya da 90 günün göstergeleri: açık kartlar, yeni kartlar, ziyaretler, ziyaret eden kişiler ve bunlardan dönen (2+ ziyaret), ödüller; günlük ziyaretler; haftalık yeni ve dönen ziyaretçiler; program başına kart → kullanım → ödül hunisi; şubeler; en sık gelen müşteriler (yalnız `customers.read` ile). Apple Cüzdan'daki kartlar ve konum hatırlatması taşıyanlar.
1793
+ *
1794
+ * **Kimlik:** API anahtarı, ekip oturumu.
1795
+ *
1796
+ * **Yetki:** `analytics.read` — Analitik görüntüleme.
1797
+ *
1798
+ * `GET /v1/analytics`
1799
+ *
1800
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getAnalytics | API referansı}
1801
+ */
1802
+ getAnalytics(args) {
1803
+ return this._call('getAnalytics', args);
1804
+ }
1805
+ /**
1806
+ * İşlem kaydı: kasa
1807
+ *
1808
+ * Kartlarda yapılan her işlem, yeniden eskiye: damga, puan, ödül, harcama, yükleme, ziyaret, kupon kullanımı… kim (ekip üyesi, API anahtarı ya da sistem), nerede, hangi kart. `day` işletmenin takvim günüdür. Planda `auditlog` özelliği gerekir. `limit` en fazla 100.
1809
+ *
1810
+ * **Kimlik:** API anahtarı, ekip oturumu.
1811
+ *
1812
+ * **Yetki:** `analytics.read` — Analitik görüntüleme.
1813
+ *
1814
+ * `GET /v1/activity`
1815
+ *
1816
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listActivity | API referansı}
1817
+ */
1818
+ listActivity(args) {
1819
+ return this._call('listActivity', args);
1820
+ }
1821
+ /**
1822
+ * İşlem kaydı: ekip, yetki ve ayarlar
1823
+ *
1824
+ * Yetki, ekip, güvenlik, müşteri yönetimi, program, pazarlama ve ayar değişiklikleri, yeniden eskiye — kim yaptı, neye. `group`: `team` Ekip ve yetkiler, `security` Güvenlik ve anahtarlar, `customers` Müşteriler ve dışa aktarma, `programs` Kartlar ve kodlar, `marketing` Pazarlama, `settings` Firma ve şubeler.
1825
+ *
1826
+ * **Kimlik:** API anahtarı, ekip oturumu.
1827
+ *
1828
+ * **Yetki:** `team.read` — Ekibi görüntüleme.
1829
+ *
1830
+ * `GET /v1/activity/access`
1831
+ *
1832
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listAccessLog | API referansı}
1833
+ */
1834
+ listAccessLog(args) {
1835
+ return this._call('listAccessLog', args);
1836
+ }
1837
+ /**
1838
+ * Canlı akış (SSE)
1839
+ *
1840
+ * Tezgâhta olan her şey, olduğu anda: `event: event` satırlarında `{ at, kind, location, program, delta, unit, name, currency }` (JSON). Kapsamınızdaki şubeler; kişi adı yalnız `customers.read` ile. 25 saniyede bir `: hb` satırı bağlantıyı canlı tutar; koparsa yeniden bağlanın. Tarayıcıdaki `EventSource` başlık gönderemediği için `fetch` ile akış okuyun. IP başına en fazla 12 açık bağlantı. Sunucudan sunucuya bildirim için webhook'ları kullanın.
1841
+ *
1842
+ * **Kimlik:** API anahtarı, ekip oturumu.
1843
+ *
1844
+ * **Yetki:** `analytics.read` — Analitik görüntüleme.
1845
+ *
1846
+ * `GET /v1/live`
1847
+ *
1848
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-liveFeed | API referansı}
1849
+ */
1850
+ liveFeed(args) {
1851
+ return this._open('liveFeed', args);
1852
+ }
1853
+ /**
1854
+ * Dışa aktarmalar
1855
+ *
1856
+ * Bu kişinin alabileceği dosyalar (`customers.export` müşteri listesi, `analytics.export` işlem dökümü) ve son dışa aktarmalar — kim, ne zaman, kaç satır. Şube kapsamlı kişi yalnız kendi aldıklarını görür.
1857
+ *
1858
+ * **Kimlik:** ekip oturumu.
1859
+ *
1860
+ * **Yetki:** `customers.export` — Müşteri verisini dışa aktarma.
1861
+ *
1862
+ * `GET /v1/exports`
1863
+ *
1864
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listExports | API referansı}
1865
+ */
1866
+ listExports(args) {
1867
+ return this._call('listExports', args);
1868
+ }
1869
+ /**
1870
+ * CSV indir
1871
+ *
1872
+ * Kişisel verinin sistemden çıktığı an; bu yüzden **yalnız ekip oturumuyla** ve oturumu açan kişinin şifresiyle (`password`) yapılır — API anahtarıyla yapılamaz. Saatte en fazla 20; her biri kayda geçer (satır sayısı, kapsam, dönem).
1873
+ * - `kind: customers` müşteri listesi (`customers.export`), `kind: ledger` son `days` günün işlemleri (`analytics.export`, 1–366).
1874
+ * - Müşteri listesinde e-posta ve telefon durumlarıyla ayrı sütunlardadır (ADR 168): `E-posta doğrulandı` (evet/hayır: müşteri adresi kendi koduyla doğruladı mı), `Doğrulanmış telefon` (yalnız müşterinin kendi koduyla doğruladığı numaralar), `Yazılan telefon (doğrulanmamış)` (formda, kasada ya da API ile yazılan; doğrulanmış bir numarayla aynıysa boş). Numaralar 0532 123 45 67 biçiminde.
1875
+ * - Türkçe Excel için: UTF-8 BOM, `;` ayraç, CRLF. `=`, `+`, `-`, `@` ile başlayan hücreler formül olarak çalışmasın diye `'` ile başlar.
1876
+ *
1877
+ * **Kimlik:** ekip oturumu.
1878
+ *
1879
+ * **Yetki:** `customers.export` — Müşteri verisini dışa aktarma.
1880
+ *
1881
+ * `POST /v1/exports`
1882
+ *
1883
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createExport | API referansı}
1884
+ */
1885
+ createExport(args) {
1886
+ return this._call('createExport', args);
1887
+ }
1888
+ // ------------------------------------------------------------ İşletme
1889
+ /**
1890
+ * Firma bilgileri
1891
+ *
1892
+ * Ad, unvan, para birimi, dil, saat dilimi, ülke, iletişim ve vergi bilgileri. Para, dil ve zaman her yerde buradan okunur.
1893
+ *
1894
+ * **Kimlik:** API anahtarı, ekip oturumu.
1895
+ *
1896
+ * **Yetki:** `settings.read` — Ayarları görüntüleme.
1897
+ *
1898
+ * `GET /v1/business`
1899
+ *
1900
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getBusiness | API referansı}
1901
+ */
1902
+ getBusiness(args) {
1903
+ return this._call('getBusiness', args);
1904
+ }
1905
+ /**
1906
+ * Firma bilgilerini değiştir
1907
+ *
1908
+ * Yalnız gönderilen alanlar değişir; hepsi kayda geçer. Para birimi, hediye kartı ya da cashback kartı verildikten sonra değişmez (`CURRENCY_LOCKED`). `website` https:// ile başlar; `taxNumber` 10 (vergi no) ya da 11 (T.C. kimlik no) hane. `digestWeekly` haftalık özeti açar/kapatır.
1909
+ *
1910
+ * **Kimlik:** API anahtarı, ekip oturumu.
1911
+ *
1912
+ * **Yetki:** `settings.manage` — Ayarları değiştirme.
1913
+ *
1914
+ * `PATCH /v1/business`
1915
+ *
1916
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateBusiness | API referansı}
1917
+ */
1918
+ updateBusiness(args) {
1919
+ return this._call('updateBusiness', args);
1920
+ }
1921
+ /**
1922
+ * Seçilebilir değerler
1923
+ *
1924
+ * Para birimleri, kullanılabilir diller, ülkeler ve saat dilimleri (IANA). Kimlik istemez.
1925
+ *
1926
+ * **Kimlik:** API anahtarı, ekip oturumu, kimlik gerekmez.
1927
+ *
1928
+ * `GET /v1/business/options`
1929
+ *
1930
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-businessOptions | API referansı}
1931
+ */
1932
+ businessOptions(args) {
1933
+ return this._call('businessOptions', args);
1934
+ }
1935
+ /**
1936
+ * Kurulum listesi
1937
+ *
1938
+ * Kurulumun yapılacakları, hesabın gerçek durumundan türetilir (işaretlenen bir kutu yoktur: kart varsa "kart" yapılmıştır). E-posta doğrulama ve iki adımlı doğrulama kişiye aittir; yalnız ekip oturumunda gelir. Adımların her biri ilgili uç noktayla yapılır (`PATCH /v1/business`, `POST /v1/locations`, `POST /v1/programs`…).
1939
+ *
1940
+ * **Kimlik:** API anahtarı, ekip oturumu.
1941
+ *
1942
+ * `GET /v1/business/setup`
1943
+ *
1944
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getSetup | API referansı}
1945
+ */
1946
+ getSetup(args) {
1947
+ return this._call('getSetup', args);
1948
+ }
1949
+ // ------------------------------------------------------------ Şubeler
1950
+ /**
1951
+ * Şubeler
1952
+ *
1953
+ * Açıklar önce, sonra arşivdekiler; her biri kayıtlardan sayılarıyla (ana şubesi burası olan açık kartlar, son 30 günün ziyaretleri, son ziyaret). `locations.read` ya da `team.read` yeter.
1954
+ *
1955
+ * **Kimlik:** API anahtarı, ekip oturumu.
1956
+ *
1957
+ * **Yetki:** `locations.read` — Şubeleri görüntüleme.
1958
+ *
1959
+ * `GET /v1/locations`
1960
+ *
1961
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listLocations | API referansı}
1962
+ */
1963
+ listLocations(args) {
1964
+ return this._call('listLocations', args);
1965
+ }
1966
+ /**
1967
+ * Şube ekle
1968
+ *
1969
+ * Tüm şubelerde `locations.manage` yetkisi gerekir. Konum şu yollardan biriyle verilir: `placeId` (`GET /v1/places/suggest` sonucundan; konumu Rewloy Google'dan alır), `lat`+`lng`, ya da `mapsUrl` (Google Haritalar bağlantısı ya da "enlem, boylam"). `mapsUrl: ""` konumu siler. Bir paylaşım bağlantısı birden fazla yere uyarsa `PLACE_CHOICE` döner; `details.candidates` içinden birinin `placeId`'si ile yeniden gönderin. Konum değişince kartların "yakındasınız" hatırlatmaları birkaç dakikada güncellenir.
1970
+ *
1971
+ * **Kimlik:** API anahtarı, ekip oturumu.
1972
+ *
1973
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
1974
+ *
1975
+ * `POST /v1/locations`
1976
+ *
1977
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createLocation | API referansı}
1978
+ */
1979
+ createLocation(args) {
1980
+ return this._call('createLocation', args);
1981
+ }
1982
+ /**
1983
+ * Bir şube
1984
+ *
1985
+ * **Kimlik:** API anahtarı, ekip oturumu.
1986
+ *
1987
+ * **Yetki:** `locations.read` — Şubeleri görüntüleme.
1988
+ *
1989
+ * `GET /v1/locations/{id}`
1990
+ *
1991
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getLocation | API referansı}
1992
+ */
1993
+ getLocation(args) {
1994
+ return this._call('getLocation', args);
1995
+ }
1996
+ /**
1997
+ * Şubeyi düzenle
1998
+ *
1999
+ * Yalnız gönderilen alanlar değişir; `code`, `address`, `relevantText` için boş dize alanı temizler. O şubede `locations.manage` yetkisi yeter. Konum şu yollardan biriyle verilir: `placeId` (`GET /v1/places/suggest` sonucundan; konumu Rewloy Google'dan alır), `lat`+`lng`, ya da `mapsUrl` (Google Haritalar bağlantısı ya da "enlem, boylam"). `mapsUrl: ""` konumu siler. Bir paylaşım bağlantısı birden fazla yere uyarsa `PLACE_CHOICE` döner; `details.candidates` içinden birinin `placeId`'si ile yeniden gönderin.
2000
+ *
2001
+ * **Kimlik:** API anahtarı, ekip oturumu.
2002
+ *
2003
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2004
+ *
2005
+ * `PATCH /v1/locations/{id}`
2006
+ *
2007
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateLocation | API referansı}
2008
+ */
2009
+ updateLocation(args) {
2010
+ return this._call('updateLocation', args);
2011
+ }
2012
+ /**
2013
+ * Şubeyi arşivle
2014
+ *
2015
+ * Silinmez: ziyaretler, defter ve yetkiler ona bağlı kalır. Son açık şube arşivlenemez. Tüm şubelerde yetki gerekir.
2016
+ *
2017
+ * **Kimlik:** API anahtarı, ekip oturumu.
2018
+ *
2019
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2020
+ *
2021
+ * `POST /v1/locations/{id}/archive`
2022
+ *
2023
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-archiveLocation | API referansı}
2024
+ */
2025
+ archiveLocation(args) {
2026
+ return this._call('archiveLocation', args);
2027
+ }
2028
+ /**
2029
+ * Şubeyi geri al
2030
+ *
2031
+ * Arşivdeki şubeyi yeniden açar. Tüm şubelerde yetki gerekir.
2032
+ *
2033
+ * **Kimlik:** API anahtarı, ekip oturumu.
2034
+ *
2035
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2036
+ *
2037
+ * `POST /v1/locations/{id}/restore`
2038
+ *
2039
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-restoreLocation | API referansı}
2040
+ */
2041
+ restoreLocation(args) {
2042
+ return this._call('restoreLocation', args);
2043
+ }
2044
+ /**
2045
+ * Şubenin küçük haritası
2046
+ *
2047
+ * Konumu olan şubenin Google statik haritası (PNG). Saatte 200.
2048
+ *
2049
+ * **Kimlik:** API anahtarı, ekip oturumu.
2050
+ *
2051
+ * **Yetki:** `locations.read` — Şubeleri görüntüleme.
2052
+ *
2053
+ * `GET /v1/locations/{id}/map.png`
2054
+ *
2055
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-locationMap | API referansı}
2056
+ */
2057
+ locationMap(args) {
2058
+ return this._call('locationMap', args);
2059
+ }
2060
+ /**
2061
+ * Google'da işletme ara
2062
+ *
2063
+ * Şube eklerken adres araması: yazılan metne uyan yerler (işletmenin ülkesinde). Seçilenin `placeId`'sini `POST /v1/locations`'a verin. Aynı aramanın tuşlamaları ve seçimi için aynı `session` değerini (UUID) kullanın. Google anahtarı yalnız sunucudadır. Saatte 300 arama.
2064
+ *
2065
+ * **Kimlik:** API anahtarı, ekip oturumu.
2066
+ *
2067
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2068
+ *
2069
+ * `GET /v1/places/suggest`
2070
+ *
2071
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-suggestPlaces | API referansı}
2072
+ */
2073
+ suggestPlaces(args) {
2074
+ return this._call('suggestPlaces', args);
2075
+ }
2076
+ /**
2077
+ * Şube grupları
2078
+ *
2079
+ * Bir yetkinin kapsamı bir grup olabilir ("İstanbul şubeleri"): gruba şube eklenince yetki kendiliğinden genişler.
2080
+ *
2081
+ * **Kimlik:** API anahtarı, ekip oturumu.
2082
+ *
2083
+ * **Yetki:** `locations.read` — Şubeleri görüntüleme.
2084
+ *
2085
+ * `GET /v1/location-groups`
2086
+ *
2087
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listLocationGroups | API referansı}
2088
+ */
2089
+ listLocationGroups(args) {
2090
+ return this._call('listLocationGroups', args);
2091
+ }
2092
+ /**
2093
+ * Grup oluştur
2094
+ *
2095
+ * Tüm şubelerde yetki gerekir. Ad işletme içinde tektir.
2096
+ *
2097
+ * **Kimlik:** API anahtarı, ekip oturumu.
2098
+ *
2099
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2100
+ *
2101
+ * `POST /v1/location-groups`
2102
+ *
2103
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createLocationGroup | API referansı}
2104
+ */
2105
+ createLocationGroup(args) {
2106
+ return this._call('createLocationGroup', args);
2107
+ }
2108
+ /**
2109
+ * Grubu değiştir
2110
+ *
2111
+ * Ad ve şubeler bütünüyle yer değiştirir; bu gruba bağlı yetkiler yeni üyeleri kendiliğinden kapsar.
2112
+ *
2113
+ * **Kimlik:** API anahtarı, ekip oturumu.
2114
+ *
2115
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2116
+ *
2117
+ * `PUT /v1/location-groups/{id}`
2118
+ *
2119
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-updateLocationGroup | API referansı}
2120
+ */
2121
+ updateLocationGroup(args) {
2122
+ return this._call('updateLocationGroup', args);
2123
+ }
2124
+ /**
2125
+ * Grubu sil
2126
+ *
2127
+ * Bir yetkide kullanılan grup silinmez (`GROUP_IN_USE`): önce o yetkiyi değiştirin.
2128
+ *
2129
+ * **Kimlik:** API anahtarı, ekip oturumu.
2130
+ *
2131
+ * **Yetki:** `locations.manage` — Şube ekleme ve düzenleme.
2132
+ *
2133
+ * `DELETE /v1/location-groups/{id}`
2134
+ *
2135
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-deleteLocationGroup | API referansı}
2136
+ */
2137
+ deleteLocationGroup(args) {
2138
+ return this._call('deleteLocationGroup', args);
2139
+ }
2140
+ // ------------------------------------------------------------ Entegrasyonlar
2141
+ /**
2142
+ * Sitenize ekleyin
2143
+ *
2144
+ * Katılım formunu kendi sitenizde göstermek için: izinli siteler, her program için yapıştırılacak satır ve son 30 günde siteden gelen kartlar (katılım olaylarından).
2145
+ *
2146
+ * **Kimlik:** API anahtarı, ekip oturumu.
2147
+ *
2148
+ * **Yetki:** `settings.read` — Ayarları görüntüleme.
2149
+ *
2150
+ * `GET /v1/embed`
2151
+ *
2152
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getEmbed | API referansı}
2153
+ */
2154
+ getEmbed(args) {
2155
+ return this._call('getEmbed', args);
2156
+ }
2157
+ /**
2158
+ * İzinli siteleri değiştir
2159
+ *
2160
+ * En fazla 5 site. Her biri https kökenine indirgenir (yol, joker ya da http kabul edilmez); liste bütünüyle yer değiştirir, boş liste hepsini kaldırır.
2161
+ *
2162
+ * **Kimlik:** API anahtarı, ekip oturumu.
2163
+ *
2164
+ * **Yetki:** `settings.manage` — Ayarları değiştirme.
2165
+ *
2166
+ * `PUT /v1/embed`
2167
+ *
2168
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setEmbedHosts | API referansı}
2169
+ */
2170
+ setEmbedHosts(args) {
2171
+ return this._call('setEmbedHosts', args);
2172
+ }
2173
+ /**
2174
+ * E-ticaret bağlantıları
2175
+ *
2176
+ * Shopify ve WooCommerce mağazaları: her sipariş (ya da tutar eşiği) müşterinin kartına damga, puan, ziyaret ya da cashback olarak işlenir. Planda `ecommerce` özelliği gerekir. `shops.read` ister (ya da, geriye uyum için, `settings.read`). Kapsamı programlarla sınırlı bir kimlik yalnız o programların bağlantılarını görür; bağlantı koduyla kurulmuş bir eklentinin anahtarı yalnız kendi bağlantısını.
2177
+ *
2178
+ * **Kimlik:** API anahtarı, ekip oturumu.
2179
+ *
2180
+ * **Yetki:** `shops.read` — Mağaza bağlantılarını görüntüleme.
2181
+ *
2182
+ * `GET /v1/shops`
2183
+ *
2184
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listShops | API referansı}
2185
+ */
2186
+ listShops(args) {
2187
+ return this._call('listShops', args);
2188
+ }
2189
+ /**
2190
+ * Mağaza bağla
2191
+ *
2192
+ * Bağlantının programında `shops.manage` ister (ya da, geriye uyum için, `apikeys.manage`): bir bağlantı kartlara bakiye ekleyebildiği için Yönetici rolünde yoktur; "E-ticaret" rolünde vardır. En fazla 5 mağaza. WooCommerce için Rewloy eklentisini kullanıyorsanız bağlantı kodu (`POST /v1/shops/connect`) bu çağrının, sırrın ve anahtarın yerini tutar.
2193
+ * - **Shopify**: Shopify yöneticisinde Ayarlar → Bildirimler sayfasındaki imza anahtarını `shopifySecret` olarak gönderin; sonra aynı sayfada "Sipariş ödemesi" webhook'unu `webhookUrl`'e yönlendirin.
2194
+ * - **WooCommerce**: sır Rewloy'da üretilir ve yanıtta **bir kez** `secret` olarak döner; WooCommerce → Webhook'lar'da "Sipariş güncellendi" için `webhookUrl` ve bu sırla bir webhook ekleyin.
2195
+ * - `rule: amount` ise `perAmountMinor` (100 – 10.000.000 kuruş) zorunludur. Hediye kartı, kupon ve indirim kartı siparişle doldurulmaz.
2196
+ * - Bağlantı koduyla kurulmuş bir eklentinin anahtarı yeni bağlantı kuramaz (`403 FORBIDDEN`).
2197
+ *
2198
+ * **Kimlik:** API anahtarı, ekip oturumu.
2199
+ *
2200
+ * **Yetki:** `shops.manage` — Mağaza bağlantısı yönetimi.
2201
+ *
2202
+ * `POST /v1/shops`
2203
+ *
2204
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createShop | API referansı}
2205
+ */
2206
+ createShop(args) {
2207
+ return this._call('createShop', args);
2208
+ }
2209
+ /**
2210
+ * Bir bağlantı
2211
+ *
2212
+ * Bağlantının kuralı, sipariş sayıları ve sağlığı: mağazadan gelen son imzalı istek ve sonucu (`lastDelivery`), imzası tutmayan son istek (`lastRefusal`). `shops.read` ister (ya da, geriye uyum için, `settings.read`).
2213
+ *
2214
+ * **Kimlik:** API anahtarı, ekip oturumu.
2215
+ *
2216
+ * **Yetki:** `shops.read` — Mağaza bağlantılarını görüntüleme.
2217
+ *
2218
+ * `GET /v1/shops/{id}`
2219
+ *
2220
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getShop | API referansı}
2221
+ */
2222
+ getShop(args) {
2223
+ return this._call('getShop', args);
2224
+ }
2225
+ /**
2226
+ * Bağlantıyı aç ya da kapat
2227
+ *
2228
+ * Kapalıyken gelen siparişler kaydedilir ama karta işlenmez (`paused`). Bağlantının programında `shops.manage` ister (ya da, geriye uyum için, `apikeys.manage`): bir bağlantı kartlara bakiye ekleyebildiği için Yönetici rolünde yoktur; "E-ticaret" rolünde vardır.
2229
+ *
2230
+ * **Kimlik:** API anahtarı, ekip oturumu.
2231
+ *
2232
+ * **Yetki:** `shops.manage` — Mağaza bağlantısı yönetimi.
2233
+ *
2234
+ * `PATCH /v1/shops/{id}`
2235
+ *
2236
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setShopEnabled | API referansı}
2237
+ */
2238
+ setShopEnabled(args) {
2239
+ return this._call('setShopEnabled', args);
2240
+ }
2241
+ /**
2242
+ * Bağlantıyı sil
2243
+ *
2244
+ * Bundan sonra gelen siparişler reddedilir; işlenmiş olanlar kartlarda kalır. Bağlantı koduyla kurulduysa eklentinin anahtarı da iptal edilir (bu çağrıyı o anahtar yaptıysa, yanıttan sonra geçersizdir). Bağlantının programında `shops.manage` ister (ya da, geriye uyum için, `apikeys.manage`): bir bağlantı kartlara bakiye ekleyebildiği için Yönetici rolünde yoktur; "E-ticaret" rolünde vardır.
2245
+ *
2246
+ * **Kimlik:** API anahtarı, ekip oturumu.
2247
+ *
2248
+ * **Yetki:** `shops.manage` — Mağaza bağlantısı yönetimi.
2249
+ *
2250
+ * `DELETE /v1/shops/{id}`
2251
+ *
2252
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-deleteShop | API referansı}
2253
+ */
2254
+ deleteShop(args) {
2255
+ return this._call('deleteShop', args);
2256
+ }
2257
+ /**
2258
+ * Bağlantının siparişleri
2259
+ *
2260
+ * Kaydedilen siparişler, yeniden eskiye; `outcome` ile süzülür. Sipariş numarası mağazanınkidir; kişisel veri tutulmaz. `shops.read` ister (ya da, geriye uyum için, `settings.read`).
2261
+ *
2262
+ * **Kimlik:** API anahtarı, ekip oturumu.
2263
+ *
2264
+ * **Yetki:** `shops.read` — Mağaza bağlantılarını görüntüleme.
2265
+ *
2266
+ * `GET /v1/shops/{id}/orders`
2267
+ *
2268
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listShopOrders | API referansı}
2269
+ */
2270
+ listShopOrders(args) {
2271
+ return this._call('listShopOrders', args);
2272
+ }
2273
+ /**
2274
+ * Bekleyen bağlantı kodları
2275
+ *
2276
+ * Henüz kullanılmamış, iptal edilmemiş ve süresi dolmamış bağlantı kodları (kodun kendisi değil: o yalnız oluşturulurken bir kez görünür).
2277
+ *
2278
+ * **Kimlik:** ekip oturumu.
2279
+ *
2280
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2281
+ *
2282
+ * `GET /v1/shops/connect-tokens`
2283
+ *
2284
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listShopConnectTokens | API referansı}
2285
+ */
2286
+ listShopConnectTokens(args) {
2287
+ return this._call('listShopConnectTokens', args);
2288
+ }
2289
+ /**
2290
+ * Mağaza eklentisi için bağlantı kodu al
2291
+ *
2292
+ * WooCommerce'teki Rewloy eklentisine yapıştırılacak **tek kullanımlık** kod. Eklenti onu `POST /v1/shops/connect` ile bir kez verir ve bir yanıtta bağlantıyı, bağlantının sırrını ve yalnız bu bağlantıya bağlı dar yetkili bir API anahtarını ("E-ticaret" rolü) alır; mağazada güçlü bir anahtar durmaz.
2293
+ * - Kod **yalnız bu yanıtta** görünür; Rewloy yalnız özetini saklar. 15 dakika geçerlidir.
2294
+ * - Kodu bir kişi alır (ekip oturumu; bir anahtar anahtar üretemez), `apikeys.manage`, kartın programında mağaza bağlantısı yetkisi ve — elle anahtar oluştururken olduğu gibi — `team.manage` ile (anahtarın yetkisi o kişiden verilen bir roldür; kişi E-ticaret rolünün yetkilerini tüm şubelerde taşımalıdır), `api` ve `ecommerce` özellikli bir planda. Kod bir API anahtarı ürettiği için kişinin şifresi yeniden istenir (`password`), anahtar oluştururken olduğu gibi. Bağlantı ve anahtar, kod kullanıldığı anda bu kişinin yetkileriyle kurulur: kişi o arada yetkisini kaybettiyse hiçbir şey kurulmaz.
2295
+ * - Kural alanları `POST /v1/shops` ile aynıdır. En fazla 5 bağlantı ve aynı anda en fazla 5 bekleyen kod.
2296
+ *
2297
+ * **Kimlik:** ekip oturumu.
2298
+ *
2299
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2300
+ *
2301
+ * `POST /v1/shops/connect-tokens`
2302
+ *
2303
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createShopConnectToken | API referansı}
2304
+ */
2305
+ createShopConnectToken(args) {
2306
+ return this._call('createShopConnectToken', args);
2307
+ }
2308
+ /**
2309
+ * Bağlantı kodunu iptal et
2310
+ *
2311
+ * Bekleyen bir kodu hemen geçersiz kılar. Kullanılmış bir kodun kurduğu bağlantı ve anahtar bundan etkilenmez: onları `DELETE /v1/shops/{id}` kaldırır.
2312
+ *
2313
+ * **Kimlik:** ekip oturumu.
2314
+ *
2315
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2316
+ *
2317
+ * `DELETE /v1/shops/connect-tokens/{id}`
2318
+ *
2319
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-revokeShopConnectToken | API referansı}
2320
+ */
2321
+ revokeShopConnectToken(args) {
2322
+ return this._call('revokeShopConnectToken', args);
2323
+ }
2324
+ /**
2325
+ * Bağlantı koduyla mağazayı bağla
2326
+ *
2327
+ * Mağaza eklentisinin tek adımı: paneldeki bağlantı kodunu (`rwc_…`) verir, karşılığında **bir kez** şunları alır: bağlantı (`shop`), bağlantının sırrı (`secret`, WooCommerce webhook'una yazılır) ve yalnız bu bağlantıya bağlı API anahtarı (`apiKey.token`). Kimlik istemez; kod kimliktir.
2328
+ * - Kod **tek kullanımlıktır**: ikinci kez, süresi dolmuşken ya da iptal edilmişken aynı yanıtı alır: `404 CONNECT_TOKEN_INVALID` (hangisi olduğu söylenmez). Kurulum yarıda reddedilirse (ör. 5 bağlantı sınırı) kod harcanmaz.
2329
+ * - Anahtar "E-ticaret" rolündedir ve bağlantının programıyla sınırlıdır: kartları ve ayarları görür, yalnız kendi bağlantısını görür ve yönetir, o programdan kart verir. Bağlantı silinince anahtar da iptal edilir. Test ortamının kodu `rwk_test_` anahtarı verir (`mode`).
2330
+ * - `shopName` anahtarın panelde görünen adına eklenir ("WooCommerce · …"). IP başına 10 dakikada 20 istek.
2331
+ *
2332
+ * **Kimlik:** kimlik gerekmez.
2333
+ *
2334
+ * `POST /v1/shops/connect`
2335
+ *
2336
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-connectShop | API referansı}
2337
+ */
2338
+ connectShop(args) {
2339
+ return this._call('connectShop', args);
2340
+ }
2341
+ // ------------------------------------------------------------ Ekip
2342
+ /**
2343
+ * Ekip
2344
+ *
2345
+ * Üyeler (sahip önce), rolleri ve kapsamlarıyla; yanıtlanmamış davetler; plana göre koltuklar (bekleyen davetler de koltuk tutar) ve ekipte iki adımlı doğrulamanın zorunlu olup olmadığı.
2346
+ *
2347
+ * **Kimlik:** API anahtarı, ekip oturumu.
2348
+ *
2349
+ * **Yetki:** `team.read` — Ekibi görüntüleme.
2350
+ *
2351
+ * `GET /v1/team`
2352
+ *
2353
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listTeam | API referansı}
2354
+ */
2355
+ listTeam(args) {
2356
+ return this._call('listTeam', args);
2357
+ }
2358
+ /**
2359
+ * Roller ve yetkiler
2360
+ *
2361
+ * Verilebilecek roller ve her birinin içerdiği yetkiler (kelimelerle), ayrıca bütün yetkilerin alanlarına göre listesi. Bir kişi yalnız kendi sahip olduğu yetkileri, kendi kapsamı içinde verebilir.
2362
+ *
2363
+ * **Kimlik:** API anahtarı, ekip oturumu.
2364
+ *
2365
+ * **Yetki:** `team.read` — Ekibi görüntüleme.
2366
+ *
2367
+ * `GET /v1/team/roles`
2368
+ *
2369
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listRoles | API referansı}
2370
+ */
2371
+ listRoles(args) {
2372
+ return this._call('listRoles', args);
2373
+ }
2374
+ /**
2375
+ * Bir ekip üyesi
2376
+ *
2377
+ * Üyenin yetkileri (kaldırmak için `grantId` ile) ve bunların birleşimi: hangi yetkiye nerede sahip olduğu — `all` ya da şube kimlikleri.
2378
+ *
2379
+ * **Kimlik:** API anahtarı, ekip oturumu.
2380
+ *
2381
+ * **Yetki:** `team.read` — Ekibi görüntüleme.
2382
+ *
2383
+ * `GET /v1/team/{seatId}`
2384
+ *
2385
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getMember | API referansı}
2386
+ */
2387
+ getMember(args) {
2388
+ return this._call('getMember', args);
2389
+ }
2390
+ /**
2391
+ * Ekipten çıkar
2392
+ *
2393
+ * Koltuk ve yetkileri kalkar, kişiye e-postayla bildirilir; hesabı (başka işletmelerdeki koltukları) durur. Yaptıkları kayıtlarda adıyla kalır. İşletme sahibi çıkarılamaz.
2394
+ *
2395
+ * **Kimlik:** API anahtarı, ekip oturumu.
2396
+ *
2397
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2398
+ *
2399
+ * `DELETE /v1/team/{seatId}`
2400
+ *
2401
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeMember | API referansı}
2402
+ */
2403
+ removeMember(args) {
2404
+ return this._call('removeMember', args);
2405
+ }
2406
+ /**
2407
+ * Ekibe davet et
2408
+ *
2409
+ * Davet e-postası gider; bağlantı 7 gün geçerlidir ve yanıtta **bir kez** `inviteUrl` olarak döner (kod yalnız özetiyle saklanır). Bekleyen davet bir koltuk tutar. Verilen rol ve kapsam, davet kabul edilirken daveti yapanın o anki yetkileriyle yeniden denetlenir. Saatte 30 davet.
2410
+ *
2411
+ * **Kimlik:** API anahtarı, ekip oturumu.
2412
+ *
2413
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2414
+ *
2415
+ * `POST /v1/team/invites`
2416
+ *
2417
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-inviteMember | API referansı}
2418
+ */
2419
+ inviteMember(args) {
2420
+ return this._call('inviteMember', args);
2421
+ }
2422
+ /**
2423
+ * Daveti geri al
2424
+ *
2425
+ * Bağlantı hemen açılmaz olur, koltuk boşalır. Davet silinmez; kim davet etti, kim geri aldı kayıtta kalır.
2426
+ *
2427
+ * **Kimlik:** API anahtarı, ekip oturumu.
2428
+ *
2429
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2430
+ *
2431
+ * `DELETE /v1/team/invites/{id}`
2432
+ *
2433
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-revokeInvite | API referansı}
2434
+ */
2435
+ revokeInvite(args) {
2436
+ return this._call('revokeInvite', args);
2437
+ }
2438
+ /**
2439
+ * Yetki ver
2440
+ *
2441
+ * Bir role, bir kapsamda. Veren kişi yalnız kendi sahip olduğu yetkileri, kendi kapsamı içinde verebilir; işletme sahibine yetki verilmez (her şeye sahiptir).
2442
+ *
2443
+ * **Kimlik:** API anahtarı, ekip oturumu.
2444
+ *
2445
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2446
+ *
2447
+ * `POST /v1/team/{seatId}/grants`
2448
+ *
2449
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-grantRole | API referansı}
2450
+ */
2451
+ grantRole(args) {
2452
+ return this._call('grantRole', args);
2453
+ }
2454
+ /**
2455
+ * Yetkiyi kaldır
2456
+ *
2457
+ * Kişi kendi yetkisini kaldıramaz; kaldıran, o yetkiyi verebilecek güçte olmalıdır.
2458
+ *
2459
+ * **Kimlik:** API anahtarı, ekip oturumu.
2460
+ *
2461
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2462
+ *
2463
+ * `DELETE /v1/team/{seatId}/grants/{grantId}`
2464
+ *
2465
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-revokeGrant | API referansı}
2466
+ */
2467
+ revokeGrant(args) {
2468
+ return this._call('revokeGrant', args);
2469
+ }
2470
+ /**
2471
+ * Askıya al
2472
+ *
2473
+ * Kişinin bu işletmedeki bütün erişimi hemen kesilir (açık oturumları dahil); yetkileri durur ama silinmez. İşletme sahibine ve kendinize uygulanamaz; yapan, kişiden güçlü olmalıdır.
2474
+ *
2475
+ * **Kimlik:** API anahtarı, ekip oturumu.
2476
+ *
2477
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2478
+ *
2479
+ * `POST /v1/team/{seatId}/suspend`
2480
+ *
2481
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-suspendMember | API referansı}
2482
+ */
2483
+ suspendMember(args) {
2484
+ return this._call('suspendMember', args);
2485
+ }
2486
+ /**
2487
+ * Askıdan çıkar
2488
+ *
2489
+ * Yetkileri kaldığı yerden geri gelir. İşletme sahibine ve kendinize uygulanamaz; yapan, kişiden güçlü olmalıdır.
2490
+ *
2491
+ * **Kimlik:** API anahtarı, ekip oturumu.
2492
+ *
2493
+ * **Yetki:** `team.manage` — Ekip yönetimi (davet, yetki, çıkarma).
2494
+ *
2495
+ * `POST /v1/team/{seatId}/unsuspend`
2496
+ *
2497
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-unsuspendMember | API referansı}
2498
+ */
2499
+ unsuspendMember(args) {
2500
+ return this._call('unsuspendMember', args);
2501
+ }
2502
+ /**
2503
+ * Bir şubede kim ne yapabilir
2504
+ *
2505
+ * Şubenin ekibi: bu şubede en az bir yetkisi olan herkes ve burada sahip olduğu yetkiler.
2506
+ *
2507
+ * **Kimlik:** API anahtarı, ekip oturumu.
2508
+ *
2509
+ * **Yetki:** `team.read` — Ekibi görüntüleme.
2510
+ *
2511
+ * `GET /v1/locations/{id}/team`
2512
+ *
2513
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-locationTeam | API referansı}
2514
+ */
2515
+ locationTeam(args) {
2516
+ return this._call('locationTeam', args);
2517
+ }
2518
+ // ------------------------------------------------------------ Geliştirici
2519
+ /**
2520
+ * API anahtarları
2521
+ *
2522
+ * Açıklar önce. Sırlar hiçbir zaman gösterilmez; Rewloy yalnız özetlerini saklar.
2523
+ *
2524
+ * **Kimlik:** ekip oturumu.
2525
+ *
2526
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2527
+ *
2528
+ * `GET /v1/developers/keys`
2529
+ *
2530
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listApiKeys | API referansı}
2531
+ */
2532
+ listApiKeys(args) {
2533
+ return this._call('listApiKeys', args);
2534
+ }
2535
+ /**
2536
+ * API anahtarı oluştur
2537
+ *
2538
+ * Anahtarı oluşturan kişinin şifresi yeniden istenir (`password`). Anahtarın yetkisi o kişiden verilen bir roldür: kişi kendinden güçlü anahtar oluşturamaz. İşletme sahiplerine e-postayla bildirilir.
2539
+ * - `token` **yalnız bu yanıtta** döner: `rwk_<prefix>_<sır>`. Kaybedilirse anahtarı kaldırıp yenisini oluşturun.
2540
+ * - `scope` verilmezse tüm şubeler (`{ locationIds }` ya da `{ groupId }`). `expiresAt` bir gün (o günün sonu, Türkiye) ya da tam zaman. `ipAllowlist` IP ya da CIDR, en fazla 20. `rateTier` `standard` (dakikada 600) ya da `high` (3000).
2541
+ *
2542
+ * **Kimlik:** ekip oturumu.
2543
+ *
2544
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2545
+ *
2546
+ * `POST /v1/developers/keys`
2547
+ *
2548
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createApiKey | API referansı}
2549
+ */
2550
+ createApiKey(args) {
2551
+ return this._call('createApiKey', args);
2552
+ }
2553
+ /**
2554
+ * Bir anahtar
2555
+ *
2556
+ * **Kimlik:** ekip oturumu.
2557
+ *
2558
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2559
+ *
2560
+ * `GET /v1/developers/keys/{id}`
2561
+ *
2562
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getApiKey | API referansı}
2563
+ */
2564
+ getApiKey(args) {
2565
+ return this._call('getApiKey', args);
2566
+ }
2567
+ /**
2568
+ * Anahtarı kaldır
2569
+ *
2570
+ * Anahtar hemen çalışmaz olur (bir sonraki istek `INVALID_API_KEY`). Kayıtları kalır. Kaldırılmış anahtarı yeniden kaldırmak bir şey değiştirmez.
2571
+ *
2572
+ * **Kimlik:** ekip oturumu.
2573
+ *
2574
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2575
+ *
2576
+ * `DELETE /v1/developers/keys/{id}`
2577
+ *
2578
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-revokeApiKey | API referansı}
2579
+ */
2580
+ revokeApiKey(args) {
2581
+ return this._call('revokeApiKey', args);
2582
+ }
2583
+ /**
2584
+ * Anahtarın yaptıkları
2585
+ *
2586
+ * Anahtarın değişiklik yapan istekleri (rota kalıbıyla, ham adres değil), yeniden eskiye; `refused=true` yalnız reddedilenler, hata koduyla. Okumalar kaydedilmez.
2587
+ *
2588
+ * **Kimlik:** ekip oturumu.
2589
+ *
2590
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2591
+ *
2592
+ * `GET /v1/developers/keys/{id}/requests`
2593
+ *
2594
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listApiKeyRequests | API referansı}
2595
+ */
2596
+ listApiKeyRequests(args) {
2597
+ return this._call('listApiKeyRequests', args);
2598
+ }
2599
+ /**
2600
+ * Webhook olayları ve teslim kuralları
2601
+ *
2602
+ * Abone olunabilecek olaylar ve yeniden deneme politikası. Kimlik istemez.
2603
+ *
2604
+ * **Kimlik:** ekip oturumu, API anahtarı, kimlik gerekmez.
2605
+ *
2606
+ * `GET /v1/developers/webhooks/events`
2607
+ *
2608
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-webhookEvents | API referansı}
2609
+ */
2610
+ webhookEvents(args) {
2611
+ return this._call('webhookEvents', args);
2612
+ }
2613
+ /**
2614
+ * Webhook'lar
2615
+ *
2616
+ * **Kimlik:** ekip oturumu.
2617
+ *
2618
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2619
+ *
2620
+ * `GET /v1/developers/webhooks`
2621
+ *
2622
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listWebhooks | API referansı}
2623
+ */
2624
+ listWebhooks(args) {
2625
+ return this._call('listWebhooks', args);
2626
+ }
2627
+ /**
2628
+ * Webhook ekle
2629
+ *
2630
+ * Seçilen olaylar bu adrese imzalı olarak gönderilir; `secret` **yalnız bu yanıtta** döner (imzayı doğrulamak için saklayın). Canlı ortamda adres https olmalı ve iç ağa çıkmamalı. En fazla 10 etkin webhook. Yeni webhook bundan sonraki olayları alır, geçmişi değil.
2631
+ *
2632
+ * **Kimlik:** ekip oturumu.
2633
+ *
2634
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2635
+ *
2636
+ * `POST /v1/developers/webhooks`
2637
+ *
2638
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-createWebhook | API referansı}
2639
+ */
2640
+ createWebhook(args) {
2641
+ return this._call('createWebhook', args);
2642
+ }
2643
+ /**
2644
+ * Bir webhook
2645
+ *
2646
+ * **Kimlik:** ekip oturumu.
2647
+ *
2648
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2649
+ *
2650
+ * `GET /v1/developers/webhooks/{id}`
2651
+ *
2652
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getWebhook | API referansı}
2653
+ */
2654
+ getWebhook(args) {
2655
+ return this._call('getWebhook', args);
2656
+ }
2657
+ /**
2658
+ * Aç ya da kapat
2659
+ *
2660
+ * Kapalıyken olaylar gönderilmez; yeniden açılınca açıldığı andan sonraki olaylar gelir ve başarısızlık sayacı sıfırlanır.
2661
+ *
2662
+ * **Kimlik:** ekip oturumu.
2663
+ *
2664
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2665
+ *
2666
+ * `PATCH /v1/developers/webhooks/{id}`
2667
+ *
2668
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setWebhookStatus | API referansı}
2669
+ */
2670
+ setWebhookStatus(args) {
2671
+ return this._call('setWebhookStatus', args);
2672
+ }
2673
+ /**
2674
+ * Teslimler
2675
+ *
2676
+ * Yeniden eskiye: olay, durum, deneme sayısı, son HTTP durumu ya da hata, bekleyenlerde bir sonraki deneme.
2677
+ *
2678
+ * **Kimlik:** ekip oturumu.
2679
+ *
2680
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2681
+ *
2682
+ * `GET /v1/developers/webhooks/{id}/deliveries`
2683
+ *
2684
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listWebhookDeliveries | API referansı}
2685
+ */
2686
+ listWebhookDeliveries(args) {
2687
+ return this._call('listWebhookDeliveries', args);
2688
+ }
2689
+ /**
2690
+ * Deneme olayı gönder
2691
+ *
2692
+ * Sıraya bir `webhook.test` olayı koyar; birkaç saniye içinde gönderilir. Sonucu teslimler listesinde görün.
2693
+ *
2694
+ * **Kimlik:** ekip oturumu.
2695
+ *
2696
+ * **Yetki:** `webhooks.manage` — Webhook yönetimi.
2697
+ *
2698
+ * `POST /v1/developers/webhooks/{id}/test`
2699
+ *
2700
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-testWebhook | API referansı}
2701
+ */
2702
+ testWebhook(args) {
2703
+ return this._call('testWebhook', args);
2704
+ }
2705
+ /**
2706
+ * Test ortamı
2707
+ *
2708
+ * İşletmenin test ortamı açık mı, hangisi, bu kişinin orada koltuğu var mı ve sınırlara göre ne kadar dolu. Gerçek işletmeden de test ortamının kendisinden de çağrılır.
2709
+ *
2710
+ * **Kimlik:** ekip oturumu.
2711
+ *
2712
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2713
+ *
2714
+ * `GET /v1/test/environment`
2715
+ *
2716
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getTestEnvironment | API referansı}
2717
+ */
2718
+ getTestEnvironment(args) {
2719
+ return this._call('getTestEnvironment', args);
2720
+ }
2721
+ /**
2722
+ * Test ortamını aç
2723
+ *
2724
+ * İşletmenin test ortamını açar: gerçek işletmeye bağlı ayrı bir işletme, adı " · Test" ile biter. Buradaki hiçbir şey müşterilere ulaşmaz: e-posta, bildirim, SMS ya da WhatsApp gönderilmez, hiçbir cüzdana kart eklenmez; gönderilecek olan "Gönderilmeyenler"e yazılır (`GET /v1/test/messages`). Webhook'lar teslim edilir.
2725
+ * - Gerçek işletmenin sahipleri ve API anahtarı yöneten koltukları test ortamında aynı rolle koltuk alır. Test ortamının anahtarları `rwk_test_` ile başlar; oluşturmak için `Rewloy-Merchant` başlığında test ortamını seçip `POST /v1/developers/keys` çağırın.
2726
+ * - Planı gerçek işletmenin planıdır; ücretlendirilmez. En fazla 1.000 müşteri ve 1.000 kart tutar.
2727
+ * - Test ortamına gerçek müşteri verisi girmeyin.
2728
+ *
2729
+ * **Kimlik:** ekip oturumu.
2730
+ *
2731
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2732
+ *
2733
+ * `POST /v1/test/environment`
2734
+ *
2735
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-openTestEnvironment | API referansı}
2736
+ */
2737
+ openTestEnvironment(args) {
2738
+ return this._call('openTestEnvironment', args);
2739
+ }
2740
+ /**
2741
+ * Test ortamını sıfırla
2742
+ *
2743
+ * Test ortamı kapanır ve yerine yenisi açılır: eski ortamın anahtarları hemen geçersiz olur, webhook'ları kapanır, koltukları askıya alınır; müşterileri, kartları ve "Gönderilmeyenler"i beklemeden ve geri dönülmez biçimde silinir. Yeni ortam için yeni anahtar oluşturun. Açık bir test ortamı yoksa yalnız yenisi açılır. Bir işletme günde en fazla 5 kez sıfırlar (`429 RATE_LIMITED`).
2744
+ *
2745
+ * **Kimlik:** ekip oturumu.
2746
+ *
2747
+ * **Yetki:** `apikeys.manage` — API anahtarı yönetimi.
2748
+ *
2749
+ * `POST /v1/test/environment/reset`
2750
+ *
2751
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-resetTestEnvironment | API referansı}
2752
+ */
2753
+ resetTestEnvironment(args) {
2754
+ return this._call('resetTestEnvironment', args);
2755
+ }
2756
+ /**
2757
+ * Gönderilmeyenler
2758
+ *
2759
+ * Test ortamının göndermediği mesajlar, yeniden eskiye: e-postalar (konusu ve metniyle), Rewloy Cüzdan bildirimleri, kampanya ve otomasyonların kartlara giden mesajları ve "ödülünüz hazır" anları. Alıcı maskelidir.
2760
+ * - Yalnız test ortamının kimliğiyle çağrılır (`rwk_test_` anahtarı ya da test ortamını seçen ekip oturumu); gerçek işletmenin kimliği `403 TEST_ENV_ONLY` alır. Mesajlar müşterilere yazıldığı için `customers.read` yetkisi ister.
2761
+ * - Kart bağlantılarındaki görüntüleme anahtarı saklanmaz: bağlantı `?k=…` olarak görünür.
2762
+ * - Test ortamı başına son 500 mesaj, 30 gün tutulur.
2763
+ *
2764
+ * **Kimlik:** API anahtarı, ekip oturumu.
2765
+ *
2766
+ * **Yetki:** `customers.read` — Müşterileri görüntüleme.
2767
+ *
2768
+ * `GET /v1/test/messages`
2769
+ *
2770
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listTestMessages | API referansı}
2771
+ */
2772
+ listTestMessages(args) {
2773
+ return this._call('listTestMessages', args);
2774
+ }
2775
+ // ------------------------------------------------------------ Bildirimler ve destek
2776
+ /**
2777
+ * Bildirimler
2778
+ *
2779
+ * Bu kişinin gördüğü bildirimler, yeniden eskiye: kendine gelenler, yetkisi olduğu işletme bildirimleri ve Rewloy duyuruları. 90 gün saklanır. `unread=true` okunmamışlar, `kind` tek konu.
2780
+ *
2781
+ * **Kimlik:** ekip oturumu.
2782
+ *
2783
+ * `GET /v1/notifications`
2784
+ *
2785
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listNotifications | API referansı}
2786
+ */
2787
+ listNotifications(args) {
2788
+ return this._call('listNotifications', args);
2789
+ }
2790
+ /**
2791
+ * Okunmamış sayısı
2792
+ *
2793
+ * Zil için: okunmamış ve toplam bildirim, konulara göre sayılar.
2794
+ *
2795
+ * **Kimlik:** ekip oturumu.
2796
+ *
2797
+ * `GET /v1/notifications/summary`
2798
+ *
2799
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-notificationSummary | API referansı}
2800
+ */
2801
+ notificationSummary(args) {
2802
+ return this._call('notificationSummary', args);
2803
+ }
2804
+ /**
2805
+ * Okundu işaretle
2806
+ *
2807
+ * Yalnız bu kişi için.
2808
+ *
2809
+ * **Kimlik:** ekip oturumu.
2810
+ *
2811
+ * Salt-okunur hesapta da çalışır.
2812
+ *
2813
+ * `POST /v1/notifications/{id}/read`
2814
+ *
2815
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-markNotificationRead | API referansı}
2816
+ */
2817
+ markNotificationRead(args) {
2818
+ return this._call('markNotificationRead', args);
2819
+ }
2820
+ /**
2821
+ * Hepsini okundu işaretle
2822
+ *
2823
+ * **Kimlik:** ekip oturumu.
2824
+ *
2825
+ * Salt-okunur hesapta da çalışır.
2826
+ *
2827
+ * `POST /v1/notifications/read-all`
2828
+ *
2829
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-markAllNotificationsRead | API referansı}
2830
+ */
2831
+ markAllNotificationsRead(args) {
2832
+ return this._call('markAllNotificationsRead', args);
2833
+ }
2834
+ /**
2835
+ * Destek talepleri
2836
+ *
2837
+ * İşletmenin talepleri, yeniden eskiye; `status` ile süzülür. `support.read` ya da `support.open` yeter.
2838
+ *
2839
+ * **Kimlik:** ekip oturumu.
2840
+ *
2841
+ * **Yetki:** `support.read` — Destek taleplerini görüntüleme.
2842
+ *
2843
+ * `GET /v1/support/tickets`
2844
+ *
2845
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-listTickets | API referansı}
2846
+ */
2847
+ listTickets(args) {
2848
+ return this._call('listTickets', args);
2849
+ }
2850
+ /**
2851
+ * Talep aç
2852
+ *
2853
+ * Öncelik ilk yanıt hedefini belirler (`GET /v1/support/summary`). Salt-okunur hesapta da açılır.
2854
+ *
2855
+ * **Kimlik:** ekip oturumu.
2856
+ *
2857
+ * **Yetki:** `support.open` — Destek talebi açma.
2858
+ *
2859
+ * Salt-okunur hesapta da çalışır.
2860
+ *
2861
+ * `POST /v1/support/tickets`
2862
+ *
2863
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-openTicket | API referansı}
2864
+ */
2865
+ openTicket(args) {
2866
+ return this._call('openTicket', args);
2867
+ }
2868
+ /**
2869
+ * Destek özeti
2870
+ *
2871
+ * Durumlara göre talep sayıları ve önceliklere göre ilk yanıt hedefleri (saat).
2872
+ *
2873
+ * **Kimlik:** ekip oturumu.
2874
+ *
2875
+ * **Yetki:** `support.read` — Destek taleplerini görüntüleme.
2876
+ *
2877
+ * `GET /v1/support/summary`
2878
+ *
2879
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-supportSummary | API referansı}
2880
+ */
2881
+ supportSummary(args) {
2882
+ return this._call('supportSummary', args);
2883
+ }
2884
+ /**
2885
+ * Bir talep ve yazışması
2886
+ *
2887
+ * Rewloy ekibinin iç notları hiçbir zaman görünmez.
2888
+ *
2889
+ * **Kimlik:** ekip oturumu.
2890
+ *
2891
+ * **Yetki:** `support.read` — Destek taleplerini görüntüleme.
2892
+ *
2893
+ * `GET /v1/support/tickets/{id}`
2894
+ *
2895
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-getTicket | API referansı}
2896
+ */
2897
+ getTicket(args) {
2898
+ return this._call('getTicket', args);
2899
+ }
2900
+ /**
2901
+ * Talebe yaz
2902
+ *
2903
+ * Yanıt bekleyen ya da çözüldü denen talep yeniden açılır. Kapanmış talebe yazılamaz (`TICKET_CLOSED`): yeni talep açın.
2904
+ *
2905
+ * **Kimlik:** ekip oturumu.
2906
+ *
2907
+ * **Yetki:** `support.open` — Destek talebi açma.
2908
+ *
2909
+ * Salt-okunur hesapta da çalışır.
2910
+ *
2911
+ * `POST /v1/support/tickets/{id}/messages`
2912
+ *
2913
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-replyTicket | API referansı}
2914
+ */
2915
+ replyTicket(args) {
2916
+ return this._call('replyTicket', args);
2917
+ }
2918
+ /**
2919
+ * Hata bildir
2920
+ *
2921
+ * Uygulamanızdan bir hata bildirimi: destek talebi olarak açılır, ekrana dair bağlam eklenir (sayfa, cihaz, ekran boyutu) — müşterilere dair hiçbir şey eklenmez. Saatte 10.
2922
+ *
2923
+ * **Kimlik:** ekip oturumu.
2924
+ *
2925
+ * **Yetki:** `support.open` — Destek talebi açma.
2926
+ *
2927
+ * Salt-okunur hesapta da çalışır.
2928
+ *
2929
+ * `POST /v1/bug-reports`
2930
+ *
2931
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-reportBug | API referansı}
2932
+ */
2933
+ reportBug(args) {
2934
+ return this._call('reportBug', args);
2935
+ }
2936
+ // ------------------------------------------------------------ Kart sahibi
2937
+ /**
2938
+ * Kartlarım
2939
+ *
2940
+ * Hesabın bütün işletmelerdeki kartları: doğrulanmış adreslerinizle verilen kartlar ve hesaba bağlantısıyla eklenenler. Bakiye, ödül durumu, seviye, renkler ve kasada okutulacak değer; kartın QR kodunu `qrValue` ile kendiniz çizin.
2941
+ * **Sıra** web cüzdanının Kartlarım sırasıdır; kartlar işletme işletme gelir:
2942
+ * 1. yıldızlı kartı olan işletmeler, kişinin kendi sırasında (`GET /v1/holder/favorites`, `PUT /v1/holder/favorites/order`);
2943
+ * 2. ödülü hazır olanlar;
2944
+ * 3. son zamanlarda sık gidilenler: son 90 günün ziyaretleri, yenisi daha ağır (her ziyaret bugün 1, 30 gün önce ½, 60 gün önce ¼ sayılır);
2945
+ * 4. en yeni kart;
2946
+ * bütün kartları bitmiş işletmeler en sonda. Bir işletmenin içinde önce etkin kartlar, en eskisi önce. Konuma göre sıralamak uygulamanın işidir: her kart işletmesinin şubelerini (`places`) taşır, konum sunucuya gönderilmez; yıldızlılar yine en başta kalsın.
2947
+ * **Listeden kaldırılan kartlar** (`hidden: true`, ADR 159) bu sıranın ardından, en sonda gelir ve sırayı etkilemez: Kartlarım'ı ve işletme görünümünü onları atlayarak çizin; bütün kartları kaldırılmış işletme Kartlarım'da görünmez. Eski kartlar biten kartlardır (`ended: true`), kaldırılmış olsun olmasın: en son biten önce (`endedAt`, kaydı olmayan en sonda).
2948
+ * `merchant` (kartlardaki `merchantSlug`) yalnız o işletmenin kartlarını işletme görünümünün sırasıyla verir, listeden kaldırılanlar sonda.
2949
+ *
2950
+ * **Kimlik:** kart sahibi oturumu.
2951
+ *
2952
+ * `GET /v1/holder/cards`
2953
+ *
2954
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderCards | API referansı}
2955
+ */
2956
+ holderCards(args) {
2957
+ return this._call('holderCards', args);
2958
+ }
2959
+ /**
2960
+ * Kartı bağlantısıyla ekle
2961
+ *
2962
+ * Kartın özel bağlantısındaki (`/p/{serial}?k=…`, e-postadaki "Kartımı aç") seri numarası ve `k` değeriyle kart hesaba eklenir. Web cüzdanındaki "Rewloy Cüzdan'a ekle"nin karşılığıdır.
2963
+ * - Anahtar kartı verir, arkasındaki kişiyi vermez. Kart `GET /v1/holder/cards` listesine girer; hesabın doğrulanmış bir adresiyle ulaşılmayan bir kayıttaysa `personId` alanı `null` gelir ve o kaydın tercihleri, bilgileri ya da verileri bu hesaptan yönetilmez.
2964
+ * - Yanlış anahtar ile bilinmeyen seri numarası aynı `404 PASS_NOT_FOUND` yanıtını alır.
2965
+ * - `added: false` (`200`): kart bu hesaba zaten bağlıydı. Yeni bağlanan kart `201` ile döner.
2966
+ * - IP başına 15 dakikada 20 deneme, web cüzdanının "Rewloy Cüzdan'a ekle" düğmesiyle ortak.
2967
+ *
2968
+ * **Kimlik:** kart sahibi oturumu.
2969
+ *
2970
+ * `POST /v1/holder/cards`
2971
+ *
2972
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderCard | API referansı}
2973
+ */
2974
+ addHolderCard(args) {
2975
+ return this._call('addHolderCard', args);
2976
+ }
2977
+ /**
2978
+ * Bir kartım
2979
+ *
2980
+ * Kart ve — programda açıksa — son 90 günün sıralaması (ilk 10 ve kendi yeriniz; başkalarının adları maskelidir). Cüzdanların bu ortamda açık olup olmadığı da döner (`wallets`; `samsung` yalnız Samsung Wallet sunuluyorken `true`: düğmesini yalnız Samsung Galaxy telefonlarda gösterin).
2981
+ *
2982
+ * **Kimlik:** kart sahibi oturumu.
2983
+ *
2984
+ * `GET /v1/holder/cards/{serial}`
2985
+ *
2986
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderCard | API referansı}
2987
+ */
2988
+ holderCard(args) {
2989
+ return this._call('holderCard', args);
2990
+ }
2991
+ /**
2992
+ * Kart değişince haber (SSE)
2993
+ *
2994
+ * Kartta bir şey değişince (damga, ödül, bakiye, mesaj) `event: changed` satırı gelir; kartı yeniden okuyun (`GET /v1/holder/cards/{serial}`). 25 saniyede bir `: hb` satırı. `fetch` ile akış okuyun. IP başına en fazla 12 açık bağlantı. Oturum kapanırsa (çıkış, cihaz kaldırıldı, hesap silindi) akış en geç bir dakika içinde sunucu tarafından biter; yeniden bağlanmak `401 TOKEN_INVALID` alır.
2995
+ *
2996
+ * **Kimlik:** kart sahibi oturumu.
2997
+ *
2998
+ * `GET /v1/holder/cards/{serial}/events`
2999
+ *
3000
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderCardEvents | API referansı}
3001
+ */
3002
+ holderCardEvents(args) {
3003
+ return this._open('holderCardEvents', args);
3004
+ }
3005
+ /**
3006
+ * Apple Cüzdan dosyası
3007
+ *
3008
+ * Kartın imzalı `.pkpass` dosyası; iOS'ta açılınca Apple Cüzdan'a ekleme ekranı gelir. Apple Cüzdan bu ortamda yapılandırılmamışsa `WALLET_UNAVAILABLE`.
3009
+ *
3010
+ * **Kimlik:** kart sahibi oturumu.
3011
+ *
3012
+ * `GET /v1/holder/cards/{serial}/apple.pkpass`
3013
+ *
3014
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderApplePass | API referansı}
3015
+ */
3016
+ holderApplePass(args) {
3017
+ return this._call('holderApplePass', args);
3018
+ }
3019
+ /**
3020
+ * Google Cüzdan bağlantısı
3021
+ *
3022
+ * Kartı Google Cüzdan'a ekleme bağlantısı (`saveUrl`); kullanıcıyı oraya yönlendirin. Google Cüzdan yapılandırılmamışsa `WALLET_UNAVAILABLE`.
3023
+ *
3024
+ * **Kimlik:** kart sahibi oturumu.
3025
+ *
3026
+ * `POST /v1/holder/cards/{serial}/google`
3027
+ *
3028
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderGooglePass | API referansı}
3029
+ */
3030
+ holderGooglePass(args) {
3031
+ return this._call('holderGooglePass', args);
3032
+ }
3033
+ /**
3034
+ * Samsung Wallet bağlantısı
3035
+ *
3036
+ * Kartı Samsung Wallet'a ekleme bağlantısı (`addUrl`): kullanıcıyı hemen oraya yönlendirin. Bağlantı kartın şifreli verisini taşır ve 30 saniye geçerlidir (`expiresAt`); her istek yenisini üretir, saklamayın.
3037
+ * Samsung Wallet yalnız Samsung Galaxy telefonlarda çalışır: düğmeyi yalnız oralarda, `GET /v1/holder/cards/{serial}` `wallets.samsung` `true` iken gösterin. Kart, Samsung kartın cüzdana eklendiğini bildirdiğinde Samsung Wallet'ta sayılır; bağlantıyı almak bir şey kaydetmez.
3038
+ * Samsung Wallet bu ortamda sunulmuyorsa `WALLET_UNAVAILABLE`.
3039
+ *
3040
+ * **Kimlik:** kart sahibi oturumu.
3041
+ *
3042
+ * `POST /v1/holder/cards/{serial}/samsung`
3043
+ *
3044
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderSamsungPass | API referansı}
3045
+ */
3046
+ holderSamsungPass(args) {
3047
+ return this._call('holderSamsungPass', args);
3048
+ }
3049
+ /**
3050
+ * Kartın web bağlantısı
3051
+ *
3052
+ * Kartın özel web sayfası bağlantısı (her istek yeni bir anahtar üretir; eski bağlantılar çalışmaya devam eder). Bağlantıyı yalnız kart sahibine gösterin. Saatte 10.
3053
+ *
3054
+ * **Kimlik:** kart sahibi oturumu.
3055
+ *
3056
+ * `POST /v1/holder/cards/{serial}/link`
3057
+ *
3058
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderCardLink | API referansı}
3059
+ */
3060
+ holderCardLink(args) {
3061
+ return this._call('holderCardLink', args);
3062
+ }
3063
+ /**
3064
+ * Sıralamada görün / gizlen
3065
+ *
3066
+ * Adınız (maskeli) programın sıralamasında görünsün mü. Varsayılan: görünmez. Onay kaydı tutulur. Bir adı gösterdiği için yalnız hesabınızın yönettiği kayıttaki kartta çalışır (kartta `personId` dolu); yalnız bağlantısıyla eklenen kartta `PASS_NOT_FOUND`.
3067
+ *
3068
+ * **Kimlik:** kart sahibi oturumu.
3069
+ *
3070
+ * `PUT /v1/holder/cards/{serial}/leaderboard`
3071
+ *
3072
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderLeaderboard | API referansı}
3073
+ */
3074
+ holderLeaderboard(args) {
3075
+ return this._call('holderLeaderboard', args);
3076
+ }
3077
+ /**
3078
+ * Biten kartı listeden kaldır
3079
+ *
3080
+ * Biten bir kartı (`ended: true`: kullanılan kupon, bakiyesi biten hediye kartı, süresi dolan kart…) Kartlarım'dan ve işletme görünümünden kaldırır; kart Eski kartlar'da durur. Web cüzdanındaki "Listeden kaldır"ın karşılığıdır. Geri alınabildiği için onay sorulmaz: `DELETE` ile listeye döner.
3081
+ * - Kart yeniden çalışırsa (işletme programı kartlarıyla birlikte geri açarsa) kendiliğinden listeye döner (`hidden: false`).
3082
+ * - Hâlâ çalışan bir kart `409 PASS_STILL_ACTIVE`; hesabın ulaşmadığı kart `404 PASS_NOT_FOUND`.
3083
+ * - Yanıt kartın kendisidir (`hidden: true`): yeni kaldırıldıysa `201`, zaten kaldırılmışsa `200`.
3084
+ *
3085
+ * **Kimlik:** kart sahibi oturumu.
3086
+ *
3087
+ * `PUT /v1/holder/cards/{serial}/hidden`
3088
+ *
3089
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-hideHolderCard | API referansı}
3090
+ */
3091
+ hideHolderCard(args) {
3092
+ return this._call('hideHolderCard', args);
3093
+ }
3094
+ /**
3095
+ * Kartı listeye geri al
3096
+ *
3097
+ * Listeden kaldırılan kartı Kartlarım'a ve işletme görünümüne geri koyar (web cüzdanındaki "Listeye geri al" ve "Geri al"); kaldırılmamış kartta da `204`. Hesabın ulaşmadığı kart `404 PASS_NOT_FOUND`.
3098
+ *
3099
+ * **Kimlik:** kart sahibi oturumu.
3100
+ *
3101
+ * `DELETE /v1/holder/cards/{serial}/hidden`
3102
+ *
3103
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-unhideHolderCard | API referansı}
3104
+ */
3105
+ unhideHolderCard(args) {
3106
+ return this._call('unhideHolderCard', args);
3107
+ }
3108
+ /**
3109
+ * Henüz katılmadığınız programlar
3110
+ *
3111
+ * Bir işletmenin bu hesabın henüz katılmadığı programları, işletmenin kendi sırasıyla: web cüzdanının işletme görünümündeki "Henüz katılmadığınız". Her biri `GET /v1/holder/programs/{id}` ve `POST /v1/holder/programs/{id}/join` ile tek dokunuşla katılınır.
3112
+ * - Yalnız `/join`'un bu hesabı alacağı programlar: işletmenin etkin, silinmemiş programları; kodla verilen türler (hediye kartı, kupon, indirim kartı) hiç; işletme şu an üye almıyorsa (deneme süresi bitti, askıda) hiçbiri; işletme hesabın doğrulanmış bütün adreslerini engellediyse hiçbiri; hesabın etkin kartı olan programlar değil (biten bir kart programı yeniden katılınabilir yapar).
3113
+ * - `slug`: kartlardaki `merchantSlug`. Hesabın o işletmede hiç kartı yoksa `404 NOT_FOUND`. Liste boşsa bölümü göstermeyin.
3114
+ *
3115
+ * **Kimlik:** kart sahibi oturumu.
3116
+ *
3117
+ * `GET /v1/holder/merchants/{slug}/programs`
3118
+ *
3119
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderMerchantPrograms | API referansı}
3120
+ */
3121
+ holderMerchantPrograms(args) {
3122
+ return this._call('holderMerchantPrograms', args);
3123
+ }
3124
+ /**
3125
+ * Favorilerim
3126
+ *
3127
+ * Yıldızlı kartlar, kişinin kendi sırasında. Yıldızlı kartı olan işletmeler Kartlarım'da (`GET /v1/holder/cards`) en başta, bu sırada durur; bir işletmenin yeri, yıldızlı kartlarından en öndekinin yeridir. Bütün kartları bitmiş bir işletme yıldızlı olsa da Kartlarım'ın sonunda durur: onun yıldızlı kartları da bu listenin sonunda, kendi aralarındaki sırayla gelir (web cüzdanının "Sırala"sı onları göstermez). Web cüzdanındaki kart yıldızı ve "Sırala" ile aynı kayıt.
3128
+ *
3129
+ * **Kimlik:** kart sahibi oturumu.
3130
+ *
3131
+ * `GET /v1/holder/favorites`
3132
+ *
3133
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderFavorites | API referansı}
3134
+ */
3135
+ holderFavorites(args) {
3136
+ return this._call('holderFavorites', args);
3137
+ }
3138
+ /**
3139
+ * Favorileri sırala
3140
+ *
3141
+ * Yıldızlı kartları bu sıraya koyar: `serials` en baştan başlayarak; listede olmayan yıldızlı kartlar kendi aralarındaki sırayla ardından gelir. Bütün kartları bitmiş işletmelerin yıldızlı kartları yanıtta yine sonda durur (`GET /v1/holder/favorites`). Her seri numarası hesabın yıldızlı bir kartı olmalı: hesabın ulaşmadığı kart `404 PASS_NOT_FOUND`, yıldızsız ya da iki kez yazılan kart `400 VALIDATION`. Yanıt yeni sıradır.
3142
+ *
3143
+ * **Kimlik:** kart sahibi oturumu.
3144
+ *
3145
+ * `PUT /v1/holder/favorites/order`
3146
+ *
3147
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-orderHolderFavorites | API referansı}
3148
+ */
3149
+ orderHolderFavorites(args) {
3150
+ return this._call('orderHolderFavorites', args);
3151
+ }
3152
+ /**
3153
+ * Kartı yıldızla
3154
+ *
3155
+ * Kart favorilere, sıranın sonuna eklenir (`201`); zaten yıldızlıysa yeri değişmez (`200`). Yalnız hesabın ulaştığı kartlar: başkasının kartı `404 PASS_NOT_FOUND`. Yanıt kartın sıradaki yeridir.
3156
+ *
3157
+ * **Kimlik:** kart sahibi oturumu.
3158
+ *
3159
+ * `PUT /v1/holder/favorites/{serial}`
3160
+ *
3161
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-starHolderCard | API referansı}
3162
+ */
3163
+ starHolderCard(args) {
3164
+ return this._call('starHolderCard', args);
3165
+ }
3166
+ /**
3167
+ * Yıldızı kaldır
3168
+ *
3169
+ * Kart favorilerden ve sıradan çıkar; zaten yıldızsızsa da `204`. Yalnız hesabın ulaştığı kartlar: başkasının kartı `404 PASS_NOT_FOUND`.
3170
+ *
3171
+ * **Kimlik:** kart sahibi oturumu.
3172
+ *
3173
+ * `DELETE /v1/holder/favorites/{serial}`
3174
+ *
3175
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-unstarHolderCard | API referansı}
3176
+ */
3177
+ unstarHolderCard(args) {
3178
+ return this._call('unstarHolderCard', args);
3179
+ }
3180
+ /**
3181
+ * Kasadaki QR: bu programda kartım var mı
3182
+ *
3183
+ * Kasadaki QR (`/join/{id}`) okutulunca: bu hesabın bu programda kartı var mı. Karar web cüzdanınınkiyle aynıdır. Programın katılım formu da `GET /v1/public/programs/{id}` ile aynı alanlarla gelir.
3184
+ * - `joined: true`: hesabın bu programda etkin bir kartı var (`card`). İşletmenin kartlarını açın (`GET /v1/holder/cards?merchant=`), bu kart önde. Katılım kapalıyken de (program arşivde, işletme şu an üye almıyor) kart bildirilir.
3185
+ * - `joined: false`: bu programa katılım. Başka bir işletmedeki ya da aynı işletmenin başka programındaki kart bunu değiştirmez. Adresi `emails` ya da numarayı `phones` içinden seçtirin, programın sorduğu alanları (`fields`; numarayla katılımda telefon sorusu sorulmaz) ve onayı isteyip `POST /v1/holder/programs/{id}/join` gönderin.
3186
+ * - `emails`, `phones`: hesabın doğrulanmış adresleri ve numaraları. İkisi de boşsa önce birini doğrulayın (`POST /v1/holder/identities/email` ya da `/phone`).
3187
+ * Program yoksa ya da kodla verilen bir kart türüyse `PROGRAM_NOT_FOUND`. Kartı olmayan hesap için katılım kapalıysa `JOIN_CLOSED` (410: program arşivde, 503: işletme şu an üye almıyor).
3188
+ *
3189
+ * **Kimlik:** kart sahibi oturumu.
3190
+ *
3191
+ * `GET /v1/holder/programs/{id}`
3192
+ *
3193
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderProgram | API referansı}
3194
+ */
3195
+ holderProgram(args) {
3196
+ return this._call('holderProgram', args);
3197
+ }
3198
+ /**
3199
+ * Tek dokunuşla katıl
3200
+ *
3201
+ * Hesap, kasadaki QR'ın programına katılır. Kart, hesabın seçilen doğrulanmış adresi ya da numarasıyla verilir ve hesaba bağlanır. Adresle katılımda kartın bağlantısı o adrese de gider: telefon kaybolsa da kart kaybolmaz; numaraya hiçbir şey gitmez. Katılım, aydınlatma metninin sunulduğu andır; bu kayıt (`kvkkConsent: true`) kaynağıyla tutulur (kaynak: Rewloy Cüzdan uygulaması, `cuzdan-app`).
3202
+ * - `email` ya da `verifiedPhone` (yalnız biri): `GET /v1/holder/programs/{id}` yanıtındaki `emails` ya da `phones` içinden biri. Hesapta doğrulanmamış bir adres ya da numara `400 VALIDATION` döner, çünkü bir forma yazılan adres bir şey kanıtlamaz. Numarayla katılımda programın telefon sorusu sorulmaz: numara telefondur.
3203
+ * - İşletmede hesabın başka bir adresi ya da numarasıyla açılmış bir kaydı varsa yeni kayıt açılmaz: seçilen adres ya da numara o kayda eklenir (ADR 165).
3204
+ * - Programın sorduğu öteki alanlar (`fields`) gövdede gelir; zorunlu biri eksikse `FIELD_REQUIRED`.
3205
+ * - Hesabın bu programda zaten kartı varsa yeni kart verilmez, o kart döner (`created: false`, `200`); katılım kapalıyken de. Aynı anda gelen iki istek de tek kart yapar. Yeni kart `201` ile döner.
3206
+ * - Kartı olmayan hesap için katılım kimliksiz katılımdaki gibi kapanır (`JOIN_CLOSED`). IP başına 10 dakikada 30 katılım sınırı da kimliksiz katılımla ortaktır.
3207
+ *
3208
+ * **Kimlik:** kart sahibi oturumu.
3209
+ *
3210
+ * `POST /v1/holder/programs/{id}/join`
3211
+ *
3212
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-joinHolderProgram | API referansı}
3213
+ */
3214
+ joinHolderProgram(args) {
3215
+ return this._call('joinHolderProgram', args);
3216
+ }
3217
+ /**
3218
+ * Kodu tek dokunuşla kullan
3219
+ *
3220
+ * Hediye kartı, kupon ya da indirim kodu (`/c/{code}`) bu hesapla kullanılır: kart, hesabın seçilen doğrulanmış adresi ya da numarasıyla verilir ve hesaba bağlanır. Web'deki `/c/{code}` sayfasının oturum açıkken yaptığıdır (ADR 165). Kodun ne verdiği ve sorduğu alanlar `GET /v1/public/codes/{code}` ile öğrenilir.
3221
+ * - `email` ya da `verifiedPhone` (yalnız biri): hesabın doğrulanmış adreslerinden ya da numaralarından biri; hesapta doğrulanmamışsa `400 VALIDATION`. Numarayla alımda programın telefon sorusu sorulmaz: numara telefondur.
3222
+ * - Kişi başına sınır kişide sayılır, hangi adres ya da numarayla tanınırsa tanınsın. Sınır dolduysa yeni kart verilmez, kişinin bu koddan aldığı son kart döner (`created: false`, `200`).
3223
+ * - İşletmede hesabın başka bir adresi ya da numarasıyla açılmış bir kaydı varsa yeni kayıt açılmaz: seçilen adres ya da numara o kayda eklenir.
3224
+ * - Adresle alınan yeni kartın bağlantısı o adrese de gider; numaraya hiçbir şey gitmez. Aydınlatma kaydı kaynağıyla tutulur (`cuzdan-app`).
3225
+ * - Kod kapandıysa `BATCH_CLOSED`, süresi dolduysa `BATCH_EXPIRED`, kartları bittiyse `BATCH_FULL`; işletme şu an üye almıyorsa `JOIN_CLOSED` (503). IP başına 10 dakikada 30 deneme sınırı kimliksiz alımla ortaktır.
3226
+ *
3227
+ * **Kimlik:** kart sahibi oturumu.
3228
+ *
3229
+ * `POST /v1/holder/codes/{code}/claim`
3230
+ *
3231
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-claimHolderCode | API referansı}
3232
+ */
3233
+ claimHolderCode(args) {
3234
+ return this._call('claimHolderCode', args);
3235
+ }
3236
+ /**
3237
+ * Cüzdan hesabım
3238
+ *
3239
+ * Rewloy Cüzdan hesabının giriş yolları: doğrulanmış e-postalar, doğrulanmış telefon numaraları (`phones`; telefonla giriş açıkken ya da hesapta numara durdukça), passkey'ler (parmak izi / yüz tanıma) ve Google ya da Apple girişleri (`identities`); oturum açık cihaz sayısı. Kartları işletmeler arasında birleştiren, doğrulanmış e-postalar ve numaralardır; bir numara yalnız bu hesabın onu ilk doğruladığı andan sonra doğrulanmış kayıtlara ulaşır (numaralar el değiştirir). Son giriş yolu kaldırılamaz (`LAST_WAY_IN`); hesabın en az 72 saatlik bir yolu, kalanların hepsi daha yeniyken kaldırılamaz (`WAY_IN_TOO_NEW`).
3240
+ *
3241
+ * **Kimlik:** kart sahibi oturumu.
3242
+ *
3243
+ * `GET /v1/holder/account`
3244
+ *
3245
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderAccount | API referansı}
3246
+ */
3247
+ holderAccount(args) {
3248
+ return this._call('holderAccount', args);
3249
+ }
3250
+ /**
3251
+ * Cüzdan hesabımı sil
3252
+ *
3253
+ * Hesap, bütün giriş yolları (e-postalar, passkey'ler), cihazları ve kart bağlantıları hemen silinir; bu oturum da dahil hiçbir oturum çalışmaz (adreslerinin eski portal oturumları da kapanır). Geri alınamaz: `?confirm=true` ister. **İşletmelerdeki müşteri kayıtlarınız ve kartlarınız silinmez** — kartlar bağlantılarıyla çalışmaya devam eder; onlar için `POST /v1/holder/erasure`.
3254
+ *
3255
+ * **Kimlik:** kart sahibi oturumu.
3256
+ *
3257
+ * `DELETE /v1/holder/account`
3258
+ *
3259
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-deleteHolderAccount | API referansı}
3260
+ */
3261
+ deleteHolderAccount(args) {
3262
+ return this._call('deleteHolderAccount', args);
3263
+ }
3264
+ /**
3265
+ * Passkey ekle: seçenekler
3266
+ *
3267
+ * Parmak izi / yüz tanımayla giriş kurmak için WebAuthn `PublicKeyCredentialCreationOptions` (JSON). Hesapta zaten olan passkey'ler `excludeCredentials` ile dışarıda kalır. 5 dakika geçerli, tek kullanımlık; platformun yanıtını `request` ve `flowId` ile `POST /v1/holder/passkeys` gönderin. iOS uygulaması Associated Domains ile kurar; Android uygulamasının kaynağı (`android:apk-key-hash:…`) henüz kabul edilmez (`POST /v1/holder/sessions/passkey/options`). IP başına 15 dakikada 60.
3268
+ *
3269
+ * **Kimlik:** kart sahibi oturumu.
3270
+ *
3271
+ * `POST /v1/holder/passkeys/options`
3272
+ *
3273
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderPasskeyOptions | API referansı}
3274
+ */
3275
+ holderPasskeyOptions(args) {
3276
+ return this._call('holderPasskeyOptions', args);
3277
+ }
3278
+ /**
3279
+ * Passkey ekle
3280
+ *
3281
+ * Seçenek adımının `request` ve `flowId` değeriyle, platformun kayıt yanıtı (`response`). Doğrulanınca passkey hesaba eklenir ve bu cihaz bir dahaki girişte onu önerir. `label` yoksa cihazın adı kullanılır. IP başına 15 dakikada 30.
3282
+ *
3283
+ * **Kimlik:** kart sahibi oturumu.
3284
+ *
3285
+ * `POST /v1/holder/passkeys`
3286
+ *
3287
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderPasskey | API referansı}
3288
+ */
3289
+ addHolderPasskey(args) {
3290
+ return this._call('addHolderPasskey', args);
3291
+ }
3292
+ /**
3293
+ * Passkey kaldır
3294
+ *
3295
+ * Passkey hesaptan kalkar. Cihazın şifre yöneticisine de bildirin ki artık önermesin: `GET /v1/holder/account` listesindeki `credentialId` ile `signalUnknownCredential`, ya da kalanlarla (`credentialId`, `userHandle`) `signalAllAcceptedCredentials`. Hesaba girmenin son yoluysa `LAST_WAY_IN`: önce başka bir yol ekleyin.
3296
+ *
3297
+ * **Kimlik:** kart sahibi oturumu.
3298
+ *
3299
+ * `DELETE /v1/holder/passkeys/{id}`
3300
+ *
3301
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeHolderPasskey | API referansı}
3302
+ */
3303
+ removeHolderPasskey(args) {
3304
+ return this._call('removeHolderPasskey', args);
3305
+ }
3306
+ /**
3307
+ * E-posta ekle: kod gönder
3308
+ *
3309
+ * Adrese 6 haneli bir kod gider (15 dakika). Kodu bu yanıttaki `request` ile `POST /v1/holder/identities/email/verify` gönderin. Doğrulanan adresle başka işletmelerden aldığınız kartlar da hesaba gelir. IP başına 15 dakikada 12, hesap başına saatte 10.
3310
+ *
3311
+ * **Kimlik:** kart sahibi oturumu.
3312
+ *
3313
+ * `POST /v1/holder/identities/email`
3314
+ *
3315
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderEmail | API referansı}
3316
+ */
3317
+ addHolderEmail(args) {
3318
+ return this._call('addHolderEmail', args);
3319
+ }
3320
+ /**
3321
+ * E-posta ekle: kodu doğrula
3322
+ *
3323
+ * Ekleme adımının `request` değeri ve e-postadaki kod. Doğru kodda adres hesaba eklenir (`added: false`: zaten bu hesabındı).
3324
+ * - Adres başka bir Rewloy Cüzdan hesabındaysa `409 MERGE_REQUIRED` döner (`details.request`): kişiye sorun, yanıtı `POST /v1/holder/merge` ile aynı `request` ile gönderin (10 dakika).
3325
+ * - Yanlış kodda `CODE_INVALID` (`details.left` kalan deneme); beşincisi adımı kapatır. IP başına 15 dakikada 30 deneme.
3326
+ *
3327
+ * **Kimlik:** kart sahibi oturumu.
3328
+ *
3329
+ * `POST /v1/holder/identities/email/verify`
3330
+ *
3331
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-verifyHolderEmail | API referansı}
3332
+ */
3333
+ verifyHolderEmail(args) {
3334
+ return this._call('verifyHolderEmail', args);
3335
+ }
3336
+ /**
3337
+ * Telefon ekle: kod gönder
3338
+ *
3339
+ * Numaraya WhatsApp'tan ya da SMS ile 6 haneli bir kod gider (`channel`; 15 dakika; mesaj yalnız kod taşır). Kodu bu yanıttaki `request` ile `POST /v1/holder/identities/phone/verify` gönderin.
3340
+ * - Yalnız Türkiye cep telefonu numaraları (`+90 5…`); değilse `400 INVALID_PHONE`. Telefonla giriş bu ortamda açık değilse `501 NOT_ENABLED`. `channel` verilmezse şu an açık olan ilk yol (önce WhatsApp); istenen yol açık değilse `501 NOT_ENABLED`, bugünkü bütçesi dolduysa `503 PHONE_BUSY` (`details.channels`: şu an açık olanlar).
3341
+ * - Eklenen numarayla bundan sonra girilir ve numarayla katılınan kartlar bu hesaba gelir; daha önce başka biri o numarayla katıldıysa o kartlar gelmez (numaralar el değiştirir).
3342
+ * - Bir numaraya saatte 3, günde 6 kod gider, WhatsApp ve SMS birlikte (fazlası sessizce gönderilmez). IP başına saatte 10, hesap başına saatte 10.
3343
+ *
3344
+ * **Kimlik:** kart sahibi oturumu.
3345
+ *
3346
+ * `POST /v1/holder/identities/phone`
3347
+ *
3348
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderPhone | API referansı}
3349
+ */
3350
+ addHolderPhone(args) {
3351
+ return this._call('addHolderPhone', args);
3352
+ }
3353
+ /**
3354
+ * Telefon ekle: kodu doğrula
3355
+ *
3356
+ * Ekleme adımının `request` değeri ve WhatsApp'taki ya da SMS'teki kod. Doğru kodda numara hesaba eklenir (`added: false`: zaten bu hesabındı).
3357
+ * - Numara başka bir (kullanılan) Rewloy Cüzdan hesabındaysa `409 MERGE_REQUIRED` döner (`details.request`): kişiye sorun, yanıtı `POST /v1/holder/merge` ile aynı `request` ile gönderin (10 dakika). Birleşirse iki hesabın kartları, giriş yolları ve cihazları tek hesapta toplanır; yeni olan hesap eskisine katılır.
3358
+ * - Numaranın hesabı 180 gündür hiç kullanılmadıysa numara el değiştirmiş sayılır: o hesaptan çıkar ve bu hesaba eklenir, soru sorulmaz.
3359
+ * - Yanlış kodda `CODE_INVALID` (`details.left` kalan deneme); beşincisi adımı kapatır. IP başına 15 dakikada 30 deneme.
3360
+ *
3361
+ * **Kimlik:** kart sahibi oturumu.
3362
+ *
3363
+ * `POST /v1/holder/identities/phone/verify`
3364
+ *
3365
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-verifyHolderPhone | API referansı}
3366
+ */
3367
+ verifyHolderPhone(args) {
3368
+ return this._call('verifyHolderPhone', args);
3369
+ }
3370
+ /**
3371
+ * Hesapları birleştir ya da ayrı tut
3372
+ *
3373
+ * Bir `MERGE_REQUIRED` sorusunun yanıtı, aynı `request` ile. `merge`: yeni olan hesap eskisine katılır — e-postalar, passkey'ler, Google ve Apple girişleri, cihazlar ve kart bağlantıları tek hesapta toplanır; soruyu bir Google ya da Apple bağlama sorduysa o giriş de kalan hesaba eklenir; bu oturum çalışmaya devam eder. `keep`: hesaplar ayrı kalır, adres (ya da Google/Apple hesabı) öteki hesapta kalır. Soru tek kullanımlıktır (10 dakika).
3374
+ *
3375
+ * **Kimlik:** kart sahibi oturumu.
3376
+ *
3377
+ * `POST /v1/holder/merge`
3378
+ *
3379
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-mergeHolderAccounts | API referansı}
3380
+ */
3381
+ mergeHolderAccounts(args) {
3382
+ return this._call('mergeHolderAccounts', args);
3383
+ }
3384
+ /**
3385
+ * E-posta, telefon ya da Google/Apple girişini kaldır
3386
+ *
3387
+ * Bir e-posta, bir telefon numarası ya da bir Google veya Apple girişi, `GET /v1/holder/account` listesindeki kimliğiyle (`emails[].id`, `phones[].id` ya da `identities[].id`) hesaptan kalkar. Hesaba girmenin son yoluysa `LAST_WAY_IN`.
3388
+ * - Kalkan numarayla katılınan kartlar artık hesapta görünmez (hesaba bağlı kalanlar dışında). Numara yeniden eklenirse yalnız ondan sonra katılınan kartlar gelir.
3389
+ * - Kalkan adresle verilen kartlar artık hesapta görünmez. Aynı Google ya da Apple hesabıyla sonraki bir giriş onu geri getirmez; yeniden eklemek için kodla doğrulayın ya da girişi bilerek bağlayın (`POST /v1/holder/identities/google`, `/apple`).
3390
+ * - Kalkan bir Google ya da Apple girişi hesaptan çıkar, ama sağlayıcının sahibi olduğu adresi (gmail.com, hesabın Workspace alanı, Apple'ın verdiği her adres) hesapta durdukça o sağlayıcıyla yapılan giriş hesabı adresinden bulur ve girişi yeniden bağlar. Tamamen kesmek için o adresi de kaldırın.
3391
+ *
3392
+ * **Kimlik:** kart sahibi oturumu.
3393
+ *
3394
+ * `DELETE /v1/holder/identities/{id}`
3395
+ *
3396
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeHolderEmail | API referansı}
3397
+ */
3398
+ removeHolderEmail(args) {
3399
+ return this._call('removeHolderEmail', args);
3400
+ }
3401
+ /**
3402
+ * E-postayı ya da numarayı değiştir: kod gönder
3403
+ *
3404
+ * Hesabın bir e-postasının ya da numarasının (`GET /v1/holder/account` listesindeki kimliği) yerine yenisi (ADR 170): adrese `email`, numaraya `phone` (aynı türden). Yeniye 6 haneli bir kod gider; kodu bu yanıttaki `request` ile `POST /v1/holder/identities/{id}/replace/verify` gönderin.
3405
+ * - Uygulamanın oturumu cihazın kanıtıdır (web'deki cihaz anahtarının yerine).
3406
+ * - Yeni adres ya da numara eskisiyle aynıysa ya da zaten bu hesabınsa `409 IDENT_SAME`. Numara için telefonla giriş açık değilse `501 NOT_ENABLED`; `channel` ve sınırlar `POST /v1/holder/identities/phone` gibidir. Hesap başına saatte 10 (ekleme ve değiştirme birlikte).
3407
+ *
3408
+ * **Kimlik:** kart sahibi oturumu.
3409
+ *
3410
+ * `POST /v1/holder/identities/{id}/replace`
3411
+ *
3412
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-replaceHolderIdentity | API referansı}
3413
+ */
3414
+ replaceHolderIdentity(args) {
3415
+ return this._call('replaceHolderIdentity', args);
3416
+ }
3417
+ /**
3418
+ * E-postayı ya da numarayı değiştir: kodu doğrula
3419
+ *
3420
+ * Değiştirme adımının `request` değeri ve yeniye gelen kod (ADR 170, PHONE.md §12.1).
3421
+ * - Hesaba girmenin en az 72 saattir (`recovery.wait_hours`) hesapta olan başka bir yolu varsa (bir e-posta, bir numara, passkey, Google ya da Apple; yeni eklenen ya da bir birleştirmeyle gelen sayılmaz, ADR 172) yenisi eskisinin yerini hemen alır (`applied`): işletmelerdeki kayıtlar yeniye geçer, hesabın öteki adreslerine e-posta, öteki cihazlarına bildirim gider.
3422
+ * - Yoksa değişiklik bekler (`pending`, `change.dueAt`; ayar `recovery.wait_hours`, 72 saat): o zamana kadar eskisiyle girilir, yenisiyle girilmez. Eski adrese iptal bağlantılı bir e-posta, öteki cihazlara bildirim gider; SMS ya da WhatsApp gitmez.
3423
+ * - Yeni adres ya da numara başka bir Rewloy Cüzdan hesabındaysa `409 MERGE_REQUIRED` (`details.request`): kişiye sorun, yanıtı `POST /v1/holder/merge` ile gönderin; birleşince değişiklik yapılır. Eski giriş yolu, birleşmeden önce bu hesaba girmenin tek yoluysa değişiklik yine bekler (öteki hesabın giriş yolları sayılmaz).
3424
+ * - Yanlış kodda `CODE_INVALID`. Eski giriş yolu artık hesapta değilse `404 NOT_FOUND`.
3425
+ *
3426
+ * **Kimlik:** kart sahibi oturumu.
3427
+ *
3428
+ * `POST /v1/holder/identities/{id}/replace/verify`
3429
+ *
3430
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-verifyHolderIdentityReplace | API referansı}
3431
+ */
3432
+ verifyHolderIdentityReplace(args) {
3433
+ return this._call('verifyHolderIdentityReplace', args);
3434
+ }
3435
+ /**
3436
+ * Bekleyen değişikliği iptal et ("Bu değişikliği ben yapmadım")
3437
+ *
3438
+ * Hesabın bekleyen giriş yolu değişikliğini (`GET /v1/holder/account` `pendingChange.id`) ya da onaylanmış ve bekleyen bir kurtarma talebini (`pendingRecovery.id`) iptal eder (ADR 170).
3439
+ * - Değişikliği bu cihaz istediyse kişinin vazgeçmesidir. Başka bir cihaz iptal ederse "Bu değişikliği ben yapmadım" demektir: değişikliği isteyen cihazın oturumu kapanır ve hesap işaretlenir (kurtarma talepleri artık kendiliğinden onaylanmaz).
3440
+ * - Kurtarma talebi iptal edilirse hesap olduğu gibi kalır ve işaretlenir.
3441
+ * - Bekleyen bir şey yoksa (uygulandı, iptal edildi) `404 NOT_FOUND`.
3442
+ *
3443
+ * **Kimlik:** kart sahibi oturumu.
3444
+ *
3445
+ * `DELETE /v1/holder/changes/{id}`
3446
+ *
3447
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-cancelHolderChange | API referansı}
3448
+ */
3449
+ cancelHolderChange(args) {
3450
+ return this._call('cancelHolderChange', args);
3451
+ }
3452
+ /**
3453
+ * Google girişini hesaba bağla
3454
+ *
3455
+ * Web'deki Ayarlar › "Google'ı bağla"nın karşılığı. Önce `POST /v1/holder/sessions/nonce` (`provider: "google"`), sonra Credential Manager'ın verdiği `idToken` ve o adımın `request` değeri.
3456
+ * - Bağlandığında bir dahaki giriş Google ile olabilir. Adres gmail.com'daysa ya da hesabın Workspace alanındaysa doğrulanmış olarak hesaba eklenir; değilse adrese bir kod gider (`verify`).
3457
+ * - Bu Google hesabı ya da adresi başka bir cüzdan hesabındaysa `409 MERGE_REQUIRED` (`details.request`): kişiye sorun, yanıtı `POST /v1/holder/merge` ile gönderin; birleşirse Google girişi kalan hesaba eklenir.
3458
+ * - Google bu ortamda açık değilse `501 NOT_ENABLED`.
3459
+ *
3460
+ * **Kimlik:** kart sahibi oturumu.
3461
+ *
3462
+ * `POST /v1/holder/identities/google`
3463
+ *
3464
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderGoogle | API referansı}
3465
+ */
3466
+ addHolderGoogle(args) {
3467
+ return this._call('addHolderGoogle', args);
3468
+ }
3469
+ /**
3470
+ * Apple girişini hesaba bağla
3471
+ *
3472
+ * Web'deki Ayarlar › "Apple'ı bağla"nın karşılığı. Önce `POST /v1/holder/sessions/nonce` (`provider: "apple"`), sonra Sign in with Apple'ın verdiği `identityToken` ve o adımın `request` değeri; ilk yetkilendirmeyse Apple'ın verdiği ad (`name`).
3473
+ * - Apple'ın verdiği adres ("E-postamı gizle" yönlendirmesi de) doğrulanmış olarak hesaba eklenir.
3474
+ * - Bu Apple hesabı ya da adresi başka bir cüzdan hesabındaysa `409 MERGE_REQUIRED` (`details.request`): kişiye sorun, yanıtı `POST /v1/holder/merge` ile gönderin.
3475
+ * - Apple bu ortamda açık değilse `501 NOT_ENABLED`.
3476
+ *
3477
+ * **Kimlik:** kart sahibi oturumu.
3478
+ *
3479
+ * `POST /v1/holder/identities/apple`
3480
+ *
3481
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-addHolderApple | API referansı}
3482
+ */
3483
+ addHolderApple(args) {
3484
+ return this._call('addHolderApple', args);
3485
+ }
3486
+ /**
3487
+ * Cihazlarım
3488
+ *
3489
+ * Hesabın oturumu açık cihazları (tarayıcılar ve uygulama kurulumları), bu cihaz önce. Bir oturum son kullanımdan 180 gün sonra düşer. Eski müşteri portalının oturumu, `/v1` onu ilk gördüğünde burada bir cihaz olur (`lastWayIn: legacy`).
3490
+ *
3491
+ * **Kimlik:** kart sahibi oturumu.
3492
+ *
3493
+ * `GET /v1/holder/devices`
3494
+ *
3495
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderDevices | API referansı}
3496
+ */
3497
+ holderDevices(args) {
3498
+ return this._call('holderDevices', args);
3499
+ }
3500
+ /**
3501
+ * Bir cihazdan çık
3502
+ *
3503
+ * Cihazın oturumu hemen kapanır (kayıp telefon); oradaki tarayıcı kartları da unutur. Bu cihazın kendisi verilirse çıkış yapılır (`DELETE /v1/holder/sessions/current` gibi).
3504
+ *
3505
+ * **Kimlik:** kart sahibi oturumu.
3506
+ *
3507
+ * `DELETE /v1/holder/devices/{id}`
3508
+ *
3509
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeHolderDevice | API referansı}
3510
+ */
3511
+ removeHolderDevice(args) {
3512
+ return this._call('removeHolderDevice', args);
3513
+ }
3514
+ /**
3515
+ * Diğer tüm cihazlardan çık
3516
+ *
3517
+ * Bu cihaz dışındaki bütün oturumlar kapanır (kayıp telefon): hesabın öteki cihazları ve adreslerinin eski müşteri portalı oturumları. `count`: kapanan cihaz sayısı (Cihazlarım'ın gösterdikleri).
3518
+ *
3519
+ * **Kimlik:** kart sahibi oturumu.
3520
+ *
3521
+ * `POST /v1/holder/devices/sign-out-others`
3522
+ *
3523
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-signOutOtherHolderDevices | API referansı}
3524
+ */
3525
+ signOutOtherHolderDevices(args) {
3526
+ return this._call('signOutOtherHolderDevices', args);
3527
+ }
3528
+ /**
3529
+ * Tercihlerim
3530
+ *
3531
+ * Her işletme için ayrı: kampanya mesajları, öneriler, yakınlık hatırlatması. Doğrulanmış adreslerinizle ulaşılan kayıtlar; yalnız bağlantısıyla eklenen kartın kaydı burada yoktur.
3532
+ *
3533
+ * **Kimlik:** kart sahibi oturumu.
3534
+ *
3535
+ * `GET /v1/holder/preferences`
3536
+ *
3537
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderPreferences | API referansı}
3538
+ */
3539
+ holderPreferences(args) {
3540
+ return this._call('holderPreferences', args);
3541
+ }
3542
+ /**
3543
+ * Bir işletme için tercihlerimi değiştir
3544
+ *
3545
+ * Yalnız gönderilenler değişir; her değişiklik bir onay kaydı olarak saklanır (kanıt, geçmiş; kaynak: Rewloy Cüzdan).
3546
+ *
3547
+ * **Kimlik:** kart sahibi oturumu.
3548
+ *
3549
+ * `PATCH /v1/holder/preferences/{personId}`
3550
+ *
3551
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setHolderPreferences | API referansı}
3552
+ */
3553
+ setHolderPreferences(args) {
3554
+ return this._call('setHolderPreferences', args);
3555
+ }
3556
+ /**
3557
+ * Bilgilerim
3558
+ *
3559
+ * Her işletmenin sizin hakkınızda tuttuğu bilgiler: ad, soyad, telefon, doğum günü. Düzeltmek için `PATCH /v1/holder/profiles/{personId}` (KVKK m. 11).
3560
+ *
3561
+ * **Kimlik:** kart sahibi oturumu.
3562
+ *
3563
+ * `GET /v1/holder/profiles`
3564
+ *
3565
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderProfiles | API referansı}
3566
+ */
3567
+ holderProfiles(args) {
3568
+ return this._call('holderProfiles', args);
3569
+ }
3570
+ /**
3571
+ * Bir işletmedeki bilgilerimi düzelt
3572
+ *
3573
+ * KVKK m. 11 düzeltme hakkı: yalnız gönderilen alanlar değişir; `null` ya da `""` alanı siler. İşletme düzeltilmiş hâlini görür. `changed`: gerçekten değişen alanlar (aynı değer bir şey değiştirmez). Hesabın izine yalnız alan adları yazılır, değerler değil.
3574
+ *
3575
+ * **Kimlik:** kart sahibi oturumu.
3576
+ *
3577
+ * `PATCH /v1/holder/profiles/{personId}`
3578
+ *
3579
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-correctHolderProfile | API referansı}
3580
+ */
3581
+ correctHolderProfile(args) {
3582
+ return this._call('correctHolderProfile', args);
3583
+ }
3584
+ /**
3585
+ * İzin geçmişim
3586
+ *
3587
+ * Neye ne zaman ve nerede izin verdiğiniz ya da geri aldığınız, en yenisi önce (en fazla 300 kayıt): aydınlatma kaydı, kampanya mesajları, öneriler, sıralamada görünme. Kayıtlar kanıttır; değiştirilmez, yalnız yenisi eklenir.
3588
+ *
3589
+ * **Kimlik:** kart sahibi oturumu.
3590
+ *
3591
+ * `GET /v1/holder/consents`
3592
+ *
3593
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderConsents | API referansı}
3594
+ */
3595
+ holderConsents(args) {
3596
+ return this._call('holderConsents', args);
3597
+ }
3598
+ /**
3599
+ * Verilerim (KVKK)
3600
+ *
3601
+ * Hesap hakkında tutulan her şey: Rewloy Cüzdan hesabı (e-postalar, passkey'ler, Google ve Apple girişleri, cihazlar — cihaz anahtarının kaydedildiği ve son yenilendiği zaman dahil —, bağlantıyla eklenen kartlar, favoriler ve sıraları, listeden kaldırılan kartlar, hesabın izi, bildirimler açıkken ya da kayıtları dururken bildirimleri açık cihazlar, İşlem bildirimleri ve gönderilen bildirimler — sorumlusu Rewloy) ve her doğrulanmış adres için işletmelerin tuttukları (kişi bilgileri, kimlikler, onaylar, tercihler, ziyaretler, kartlar ve hareketleri, gönderilen e-postalar, bekleyen silme talebi — her işletme kendi kaydının sorumlusu). Saatte 10 (web cüzdanıyla ortak).
3602
+ *
3603
+ * **Kimlik:** kart sahibi oturumu.
3604
+ *
3605
+ * `GET /v1/holder/data`
3606
+ *
3607
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderData | API referansı}
3608
+ */
3609
+ holderData(args) {
3610
+ return this._call('holderData', args);
3611
+ }
3612
+ /**
3613
+ * Silme talebim
3614
+ *
3615
+ * Bekleyen silme talepleri varsa hangi işletmelerde ve ne zaman uygulanacakları; yoksa `null`. Hesabın birden fazla adresi varsa her adresin kendi talebi olabilir (`requests`).
3616
+ *
3617
+ * **Kimlik:** kart sahibi oturumu.
3618
+ *
3619
+ * `GET /v1/holder/erasure`
3620
+ *
3621
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderErasure | API referansı}
3622
+ */
3623
+ holderErasure(args) {
3624
+ return this._call('holderErasure', args);
3625
+ }
3626
+ /**
3627
+ * Verilerimi sil
3628
+ *
3629
+ * Doğrulanmış adreslerinizle ulaşılan bütün işletmelerden ya da seçtiklerinizden (`personIds`, `GET /v1/holder/preferences` listesinden) silinme talebi. 7 gün sonra uygulanır; o zamana kadar iptal edilebilir. Kartlar kapanır, cüzdanlara bir kez haber gider; işletmeler panelde bilgilendirilir. Her adrese onay e-postası gider. Cüzdan hesabı bundan etkilenmez (onun için `DELETE /v1/holder/account`).
3630
+ * - Yanıt, bu çağrıdan sonra bekleyen bütün talepler (`GET /v1/holder/erasure` ile aynı): seçtiğiniz işletmelerin `merchantIds` içinde olduğunu denetleyin.
3631
+ * - Talep adres başınadır. Bir adres için bekleyen talep varken aynı adresin başka bir işletmesi istenirse talep **genişlemez**: önce iptal edin (`DELETE /v1/holder/erasure`), sonra hepsini birlikte isteyin.
3632
+ * - Hesabın yönetmediği bir `personIds` kaydı `404 CUSTOMER_NOT_FOUND` döner; hiçbir işletmede kaydınız yoksa da aynı.
3633
+ *
3634
+ * **Kimlik:** kart sahibi oturumu.
3635
+ *
3636
+ * `POST /v1/holder/erasure`
3637
+ *
3638
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-requestHolderErasure | API referansı}
3639
+ */
3640
+ requestHolderErasure(args) {
3641
+ return this._call('requestHolderErasure', args);
3642
+ }
3643
+ /**
3644
+ * Silme talebimi iptal et
3645
+ *
3646
+ * Süre dolmadan önce, hesabın bütün adreslerindeki bekleyen talepler; kartlar aynen çalışmaya devam eder.
3647
+ *
3648
+ * **Kimlik:** kart sahibi oturumu.
3649
+ *
3650
+ * `DELETE /v1/holder/erasure`
3651
+ *
3652
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-cancelHolderErasure | API referansı}
3653
+ */
3654
+ cancelHolderErasure(args) {
3655
+ return this._call('cancelHolderErasure', args);
3656
+ }
3657
+ /**
3658
+ * Bildirimlerim
3659
+ *
3660
+ * Rewloy Cüzdan'ın bu hesaba gönderdiği bildirimler, en yenisi önce: işletmelerin kampanyaları ve otomatik mesajları (kişinin o işletmedeki kampanya izni açıkken, kartı cüzdanda kendisi aldıysa — katıldı, bağlantısıyla ekledi ya da yıldızladı — ve kart Apple ya da Google Cüzdan'da değilse; kişi başına mesaj başına bir bildirim), "Ödülünüz hazır" ve kişinin kendi denemesi. Bildirim, hesabın bildirimleri açık her cihazına gider: web cüzdanının açık olduğu tarayıcılara (web push) ve belirtecini kaydeden uygulamalara (APNs, FCM: `PUT /v1/holder/devices/current/push`).
3661
+ * `status` yalnız kayıtlı olanı söyler: bildirim servisinin kabul ettiğini, ekranda görünüp görünmediğini değil. Kayıtlar 24 ay tutulur. Bildirimler bu ortamda kapalıysa `501 NOT_ENABLED`.
3662
+ *
3663
+ * **Kimlik:** kart sahibi oturumu.
3664
+ *
3665
+ * `GET /v1/holder/notifications`
3666
+ *
3667
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderNotifications | API referansı}
3668
+ */
3669
+ holderNotifications(args) {
3670
+ return this._call('holderNotifications', args);
3671
+ }
3672
+ /**
3673
+ * Bildirim ayarlarım
3674
+ *
3675
+ * "İşlem bildirimleri", bildirimleri açık cihazlar, bu cihazın kendi bildirimleri (`thisDevice`) ve bu ortamın belirteç kabul ettiği uygulama platformları (`platforms`). Kampanya bildirimleri her işletmenin kampanya izniyle gelir ya da gelmez: `GET /v1/holder/preferences` (`marketing`); ikinci bir izin yoktur. Bir cihazın bildirimleri o cihazda açılır ve kapanır (uygulamada `PUT` ve `DELETE /v1/holder/devices/current/push`); cihazı kaldırmak (`DELETE /v1/holder/devices/{id}`) bildirimlerini de kapatır. Bildirimler bu ortamda hiç açık değilse `501 NOT_ENABLED`.
3676
+ *
3677
+ * **Kimlik:** kart sahibi oturumu.
3678
+ *
3679
+ * `GET /v1/holder/notifications/settings`
3680
+ *
3681
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderNotificationSettings | API referansı}
3682
+ */
3683
+ holderNotificationSettings(args) {
3684
+ return this._call('holderNotificationSettings', args);
3685
+ }
3686
+ /**
3687
+ * İşlem bildirimlerini aç ya da kapat
3688
+ *
3689
+ * `transactions`: bir kartta ödül hazır olunca bildirim. Değiştiği hesabın izine yazılır (değeri yazılmaz). Kapalıysa `501 NOT_ENABLED`.
3690
+ *
3691
+ * **Kimlik:** kart sahibi oturumu.
3692
+ *
3693
+ * `PATCH /v1/holder/notifications/settings`
3694
+ *
3695
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setHolderNotificationSettings | API referansı}
3696
+ */
3697
+ setHolderNotificationSettings(args) {
3698
+ return this._call('setHolderNotificationSettings', args);
3699
+ }
3700
+ /**
3701
+ * Bu cihazda bildirimleri aç (uygulamanın belirteci)
3702
+ *
3703
+ * Uygulama, platformunun bildirim servisinden aldığı belirteci bu cihaz (bu `rwh_` oturumu) için kaydeder: iPhone'da APNs cihaz belirteci (`platform: apns`, onaltılık, 64–200 karakter), Android'de FCM kayıt belirteci (`platform: fcm`, en çok 4096 karakter). `appId` uygulamanın kendisidir: iPhone'da paket kimliği (bundle id), Android'de paket adı; bu ortamın tanıdığı bir uygulama olmalıdır. Xcode'dan kurulan geliştirme sürümünün APNs belirteci `sandbox: true` ile gönderilir.
3704
+ * Cihaz başına bir belirteç tutulur: yeniden kaydetmek öncekinin yerini alır (belirteç değişince uygulama bunu her açılışta yapabilir; aynı belirteç `200` döner). Başka bir cihazda kayıtlı bir belirteç bu cihaza taşınır. Bundan sonra bu cihaz, web cüzdanının bildirimleri açık tarayıcılarıyla aynı bildirimleri alır: kampanyalar ve otomatik mesajlar, "Ödülünüz hazır", deneme; sessiz saatler, günlük üst sınır ve kişi başına mesaj başına bir bildirim kuralı aynıdır.
3705
+ * Bildirim servisi belirtecin artık geçerli olmadığını söylerse belirteç silinir; uygulama bir sonraki açılışta yeniden kaydeder. Bir tarayıcının oturumu belirteç kaydedemez (`409 PUSH_DEVICE_REFUSED`: tarayıcının bildirimlerini web cüzdanı açar). Platform bu ortamda kapalıysa `501 NOT_ENABLED` (`GET /v1/holder/notifications/settings` açık olanları `platforms` altında verir). Cihaz başına 15 dakikada 10.
3706
+ *
3707
+ * **Kimlik:** kart sahibi oturumu.
3708
+ *
3709
+ * `PUT /v1/holder/devices/current/push`
3710
+ *
3711
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-setHolderDevicePush | API referansı}
3712
+ */
3713
+ setHolderDevicePush(args) {
3714
+ return this._call('setHolderDevicePush', args);
3715
+ }
3716
+ /**
3717
+ * Bu cihazda bildirimleri kapat
3718
+ *
3719
+ * Bu cihazın bildirim belirteci silinir; bu cihaza bildirim gitmez (hesabın öteki cihazlarına gitmeye devam eder). Kayıtlı bir belirteç yoksa da `204` döner. Uygulamadan çıkış (`DELETE /v1/holder/sessions/current`) ve cihazı kaldırmak da belirteci siler. Uygulama bildirimleri bu ortamda kapalıysa `501 NOT_ENABLED`.
3720
+ *
3721
+ * **Kimlik:** kart sahibi oturumu.
3722
+ *
3723
+ * `DELETE /v1/holder/devices/current/push`
3724
+ *
3725
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-removeHolderDevicePush | API referansı}
3726
+ */
3727
+ removeHolderDevicePush(args) {
3728
+ return this._call('removeHolderDevicePush', args);
3729
+ }
3730
+ /**
3731
+ * Bu cihaza deneme bildirimi gönder
3732
+ *
3733
+ * Yalnız bu cihaza bir "Deneme bildirimi" gider (başlığı "Rewloy Cüzdan"); sessiz saatlerde de gider, beş dakika içinde gidemezse hiç gitmez. Kaydı `GET /v1/holder/notifications`'ta `test` türüyle durur (`notification`). Cihaz başına saatte 5. Bu cihazın bildirimleri kapalıysa `409 PUSH_NOT_SUBSCRIBED`; uygulama bildirimleri bu ortamda kapalıysa `501 NOT_ENABLED`.
3734
+ *
3735
+ * **Kimlik:** kart sahibi oturumu.
3736
+ *
3737
+ * `POST /v1/holder/devices/current/push/test`
3738
+ *
3739
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-testHolderDevicePush | API referansı}
3740
+ */
3741
+ testHolderDevicePush(args) {
3742
+ return this._call('testHolderDevicePush', args);
3743
+ }
3744
+ // ------------------------------------------------------------ Kimlik
3745
+ /**
3746
+ * Hesap kurtarma talebi: yeniye kod gönder
3747
+ *
3748
+ * Rewloy Cüzdan'a giremeyen kişi ("Numaram / e-postam değişti, giremiyorum"): eski adresi ya da numarası (`old`) ve yenisi (`new`), aynı türden (`kind`). Yeniye 6 haneli bir kod gider; kodu bu yanıttaki `request` ile `POST /v1/holder/recovery/verify` gönderin. Kod yazılmadan hiçbir şey kaydedilmez.
3749
+ * - İsteğe bağlı olarak yalnız hesabın sahibinin bilebileceği bilgiler talebi güçlendirir: kart numaraları (`cards`, en çok 5), kartların olduğu işletmeler (`businesses`, en çok 5), kartın son kullanıldığı zaman (`lastVisit`).
3750
+ * - `previousToken`: bu kurulumun daha önceki `rwh_` oturumu (süresi dolmuş olsa da): kurulumun hesaba yeni olmadığını söyler.
3751
+ * - Yanıt eski adresin ya da numaranın kayıtlı olup olmadığını **söylemez**. Sınırlar: IP başına saatte 5 talep, aynı eski adres ya da numara için günde 5; kod sınırları `POST /v1/holder/login` gibidir. Telefonla giriş açık değilse numara `501 NOT_ENABLED`.
3752
+ *
3753
+ * **Kimlik:** kimlik gerekmez.
3754
+ *
3755
+ * `POST /v1/holder/recovery`
3756
+ *
3757
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-startHolderRecovery | API referansı}
3758
+ */
3759
+ startHolderRecovery(args) {
3760
+ return this._call('startHolderRecovery', args);
3761
+ }
3762
+ /**
3763
+ * Hesap kurtarma talebi: kodu doğrula, talebi kaydet
3764
+ *
3765
+ * Talep adımının `request` değeri ve yeniye gelen kod. Doğru kodda talep kaydedilir ve değerlendirilir; yanıt talebin durumu (`recovery`) ve onu bir daha okumanın anahtarı (`token`, **bir kez** verilir: saklayın).
3766
+ * - Kişiye her durumda önce "Talebiniz alındı" deyin; sonra `recovery.state`: `review` (ekibimiz inceliyor), `refused` (destek ekibine `recovery.supportUrl` ile yazmasını söyleyin), `pending_wait` / `approved` (`dueAt` anında uygulanır), `applied`.
3767
+ * - Numaraya sonuç SMS ya da WhatsApp ile bildirilmez: uygulama durumu `POST /v1/holder/recovery/status` ile okur. Talep uygulanınca kişi yeni adresiyle ya da numarasıyla `POST /v1/holder/login` ile girer.
3768
+ * - Yanlış kodda `CODE_INVALID`. IP başına 15 dakikada 30 deneme.
3769
+ *
3770
+ * **Kimlik:** kimlik gerekmez.
3771
+ *
3772
+ * `POST /v1/holder/recovery/verify`
3773
+ *
3774
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-verifyHolderRecovery | API referansı}
3775
+ */
3776
+ verifyHolderRecovery(args) {
3777
+ return this._call('verifyHolderRecovery', args);
3778
+ }
3779
+ /**
3780
+ * Hesap kurtarma talebinin durumu
3781
+ *
3782
+ * Uygulamadan açılmış bir talebin durumu, `POST /v1/holder/recovery/verify` yanıtındaki `token` ile (gövdede: adreste değil). Bilinmeyen bir anahtar `404 NOT_FOUND`. Web'den açılmış bir talep yalnız onu açan tarayıcıda okunur. IP başına 15 dakikada 120.
3783
+ *
3784
+ * **Kimlik:** kimlik gerekmez.
3785
+ *
3786
+ * `POST /v1/holder/recovery/status`
3787
+ *
3788
+ * @see {@link https://rewloy.com/gelistiriciler/api#op-holderRecoveryStatus | API referansı}
3789
+ */
3790
+ holderRecoveryStatus(args) {
3791
+ return this._call('holderRecoveryStatus', args);
3792
+ }
3793
+ }