@rewloy/node 0.1.0 → 0.2.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.
@@ -1,7 +1,7 @@
1
1
  import type { EventStream } from '../sse.js';
2
2
  import type { Page, RequestOptions, StreamOptions } from '../types.js';
3
3
  /** Every error code the API can answer with (the catalogue: https://rewloy.com/gelistiriciler/hatalar). New codes may be added without notice: keep a default branch. */
4
- export type ErrorCode = 'VALIDATION' | 'BAD_REQUEST' | 'INVALID_JSON' | 'UNSUPPORTED_MEDIA_TYPE' | 'PAYLOAD_TOO_LARGE' | 'IDEMPOTENCY_KEY_REQUIRED' | 'IDEMPOTENCY_KEY_REUSED' | 'IDEMPOTENCY_IN_PROGRESS' | 'CONFIRM_REQUIRED' | 'REASON_REQUIRED' | 'NOT_FOUND' | 'RATE_LIMITED' | 'INTERNAL' | 'CROSS_SITE' | 'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'KEY_MODE_MISMATCH' | 'TOKEN_INVALID' | 'FLOW_EXPIRED' | 'PASSKEY_REFUSED' | 'CODE_INVALID' | 'CODE_LOCKED' | 'PHONE_BUSY' | 'LAST_WAY_IN' | 'CHANGE_PENDING' | 'WAY_IN_TOO_NEW' | 'NOT_ENABLED' | 'PUSH_ENDPOINT_REFUSED' | 'PUSH_DEVICE_REFUSED' | 'PUSH_KEY_MISMATCH' | 'PUSH_NOT_SUBSCRIBED' | 'PROVIDER_REFUSED' | 'PROVIDER_UNAVAILABLE' | 'DEVICE_RENEWAL' | 'DEVICE_RENEWAL_REFUSED' | 'DEVICE_PROOF' | 'DEVICE_KEY_REFUSED' | 'MERGE_REQUIRED' | 'IDENT_SAME' | 'LOGIN_FAILED' | 'MFA_REQUIRED' | 'MFA_INVALID' | 'MFA_NOT_SET' | 'MFA_ALREADY_ENABLED' | 'MFA_REQUIRED_BY_TEAM' | 'MFA_OWNER_FIRST' | 'STEP_UP_FAILED' | 'CREDENTIAL_NOT_ALLOWED' | 'MERCHANT_REQUIRED' | 'SEAT_INACTIVE' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'READ_ONLY' | 'VIEW_AS_READ_ONLY' | 'SEAT_LIMIT' | 'LIMIT' | 'PROGRAM_NOT_FOUND' | 'PASS_NOT_FOUND' | 'CUSTOMER_NOT_FOUND' | 'SEGMENT_NOT_FOUND' | 'CAMPAIGN_NOT_FOUND' | 'AUTOMATION_NOT_FOUND' | 'SEQUENCE_NOT_FOUND' | 'LOCATION_NOT_FOUND' | 'GROUP_NOT_FOUND' | 'MEMBER_NOT_FOUND' | 'SEAT_NOT_FOUND' | 'ERASURE_NOT_FOUND' | 'JOIN_CLOSED' | 'INVITE_NOT_FOUND' | 'GRANT_NOT_FOUND' | 'BATCH_NOT_FOUND' | 'KEY_NOT_FOUND' | 'WEBHOOK_NOT_FOUND' | 'SHOP_NOT_FOUND' | 'SHOP_PROGRAM_MISMATCH' | 'CONNECT_TOKEN_INVALID' | 'CONNECT_TOKEN_NOT_FOUND' | 'TICKET_NOT_FOUND' | 'NOTIFICATION_NOT_FOUND' | 'EXPORT_NOT_FOUND' | 'SESSION_NOT_FOUND' | 'PASS_REFUSED' | 'PASS_INACTIVE' | 'PASS_EXPIRED' | 'PASS_USED_UP' | 'WRONG_CARD_TYPE' | 'INSUFFICIENT_BALANCE' | 'REWARD_NOT_READY' | 'WRONG_LOCATION' | 'INVALID_PROMOTION' | 'PROMOTION_NOT_FOUND' | 'VISIT_ALREADY_COUNTED' | 'ALREADY_ENDED' | 'PASS_STILL_ACTIVE' | 'CLAIM_CODE' | 'BAD_ACTION' | 'CONSENT_REQUIRED' | 'LEADERBOARD_OFF' | 'LEADERBOARD_ANONYMOUS' | 'WALLET_UNAVAILABLE' | 'INVALID_CONFIG' | 'BAD_IMAGE' | 'PROGRAM_HAS_CARDS' | 'ALREADY_ARCHIVED' | 'NOT_ARCHIVED' | 'NOT_AN_INSTRUMENT' | 'INVALID_BATCH' | 'BATCH_CLOSED' | 'BATCH_EXPIRED' | 'BATCH_FULL' | 'ALREADY_CLAIMED' | 'CURRENCY_LOCKED' | 'INVALID_CUSTOMER' | 'FIELD_REQUIRED' | 'INVALID_BIRTHDAY' | 'INVALID_PHONE' | 'EMAIL_BLOCKED' | 'PHONE_BLOCKED' | 'CUSTOMER_BLOCKED' | 'NO_EMAIL' | 'INVALID_SEGMENT' | 'CAMPAIGN_REFUSED' | 'NOT_CANCELLABLE' | 'AUTOMATION_REFUSED' | 'SEQUENCE_REFUSED' | 'TEAM_REFUSED' | 'GROUP_IN_USE' | 'LAST_LOCATION' | 'PLACES_OFF' | 'PLACES_UNAVAILABLE' | 'PLACE_CHOICE' | 'ACCOUNT_EXISTS' | 'TICKET_CLOSED' | 'SELF_CHANGE' | 'TEST_MODE_MISMATCH' | 'TEST_ENV_ONLY' | 'TEST_ENV_NESTED' | 'TEST_ENV_NO_INVITE' | 'TEST_LIMIT_REACHED' | 'TEST_CARD_NO_WALLET' | 'INVALID_KEY' | 'BAD_WEBHOOK_URL' | 'ALREADY_CLOSED' | 'NOT_REOPENABLE' | 'INCIDENT_CLOSED' | 'INCIDENT_INCOMPLETE' | 'INTELLIGENCE_DISABLED' | 'PEOPLE_DISABLED' | 'DUPLICATE' | 'RECOVERY_DECIDED' | 'SECRET_NOT_ALLOWED';
4
+ export type ErrorCode = 'VALIDATION' | 'BAD_REQUEST' | 'INVALID_JSON' | 'UNSUPPORTED_MEDIA_TYPE' | 'PAYLOAD_TOO_LARGE' | 'IDEMPOTENCY_KEY_REQUIRED' | 'IDEMPOTENCY_KEY_REUSED' | 'IDEMPOTENCY_IN_PROGRESS' | 'CONFIRM_REQUIRED' | 'REASON_REQUIRED' | 'NOT_FOUND' | 'RATE_LIMITED' | 'INTERNAL' | 'CROSS_SITE' | 'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'KEY_MODE_MISMATCH' | 'TOKEN_INVALID' | 'FLOW_EXPIRED' | 'PASSKEY_REFUSED' | 'CODE_INVALID' | 'CODE_LOCKED' | 'PHONE_BUSY' | 'LAST_WAY_IN' | 'CHANGE_PENDING' | 'WAY_IN_TOO_NEW' | 'NOT_ENABLED' | 'PUSH_ENDPOINT_REFUSED' | 'PUSH_DEVICE_REFUSED' | 'PUSH_KEY_MISMATCH' | 'PUSH_NOT_SUBSCRIBED' | 'PROVIDER_REFUSED' | 'PROVIDER_UNAVAILABLE' | 'DEVICE_RENEWAL' | 'DEVICE_RENEWAL_REFUSED' | 'DEVICE_PROOF' | 'DEVICE_KEY_REFUSED' | 'MERGE_REQUIRED' | 'IDENT_SAME' | 'LOGIN_FAILED' | 'MFA_REQUIRED' | 'MFA_INVALID' | 'MFA_NOT_SET' | 'MFA_ALREADY_ENABLED' | 'MFA_REQUIRED_BY_TEAM' | 'MFA_OWNER_FIRST' | 'STEP_UP_FAILED' | 'CREDENTIAL_NOT_ALLOWED' | 'MERCHANT_REQUIRED' | 'SEAT_INACTIVE' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'READ_ONLY' | 'VIEW_AS_READ_ONLY' | 'SEAT_LIMIT' | 'LIMIT' | 'PROGRAM_NOT_FOUND' | 'PASS_NOT_FOUND' | 'CUSTOMER_NOT_FOUND' | 'SEGMENT_NOT_FOUND' | 'CAMPAIGN_NOT_FOUND' | 'AUTOMATION_NOT_FOUND' | 'SEQUENCE_NOT_FOUND' | 'LOCATION_NOT_FOUND' | 'GROUP_NOT_FOUND' | 'MEMBER_NOT_FOUND' | 'SEAT_NOT_FOUND' | 'ERASURE_NOT_FOUND' | 'JOIN_CLOSED' | 'INVITE_NOT_FOUND' | 'GRANT_NOT_FOUND' | 'BATCH_NOT_FOUND' | 'KEY_NOT_FOUND' | 'WEBHOOK_NOT_FOUND' | 'SHOP_NOT_FOUND' | 'SHOP_PROGRAM_MISMATCH' | 'CONNECT_TOKEN_INVALID' | 'CONNECT_TOKEN_NOT_FOUND' | 'NO_PLUGIN_KEY' | 'CODE_EXPIRED' | 'CODE_USED' | 'INVITE_SIGN_IN' | 'INVITE_OTHER_ACCOUNT' | 'CODE_RELEASED' | 'CODE_NOT_ACCEPTED_HERE' | 'CURRENCY_MISMATCH' | 'SHOP_PAUSED' | 'VOUCHER_NOT_ONLINE' | 'NOT_ONLINE' | 'TOO_MANY_CODES' | 'CODE_ATTACHED' | 'CODE_NOT_FOUND' | 'CARD_IN_ORDER' | 'ORDER_CODES_LIMIT' | 'HOLD_UNBACKED' | 'REDEMPTION_NOT_FOUND' | 'REFUND_TOO_LARGE' | 'NOT_REFUNDABLE' | 'NOT_HELD' | 'TICKET_NOT_FOUND' | 'NOTIFICATION_NOT_FOUND' | 'EXPORT_NOT_FOUND' | 'SESSION_NOT_FOUND' | 'PASS_REFUSED' | 'PASS_INACTIVE' | 'PASS_EXPIRED' | 'PASS_USED_UP' | 'WRONG_CARD_TYPE' | 'INSUFFICIENT_BALANCE' | 'REWARD_NOT_READY' | 'OWNER_EMAIL_UNVERIFIED' | 'SALE_NOT_FOUND' | 'SALE_AMBIGUOUS' | 'SALE_ALREADY_SPENT' | 'WRONG_LOCATION' | 'INVALID_PROMOTION' | 'PROMOTION_NOT_FOUND' | 'VISIT_ALREADY_COUNTED' | 'ALREADY_ENDED' | 'PASS_STILL_ACTIVE' | 'CLAIM_CODE' | 'BAD_ACTION' | 'CONSENT_REQUIRED' | 'LEADERBOARD_OFF' | 'LEADERBOARD_ANONYMOUS' | 'WALLET_UNAVAILABLE' | 'INVALID_CONFIG' | 'BAD_IMAGE' | 'PROGRAM_HAS_CARDS' | 'ALREADY_ARCHIVED' | 'NOT_ARCHIVED' | 'NOT_AN_INSTRUMENT' | 'INVALID_BATCH' | 'BATCH_CLOSED' | 'BATCH_EXPIRED' | 'BATCH_FULL' | 'ALREADY_CLAIMED' | 'CURRENCY_LOCKED' | 'INVALID_CUSTOMER' | 'FIELD_REQUIRED' | 'INVALID_BIRTHDAY' | 'INVALID_PHONE' | 'EMAIL_BLOCKED' | 'PHONE_BLOCKED' | 'CUSTOMER_BLOCKED' | 'NO_EMAIL' | 'INVALID_SEGMENT' | 'CAMPAIGN_REFUSED' | 'NOT_CANCELLABLE' | 'AUTOMATION_REFUSED' | 'SEQUENCE_REFUSED' | 'TEAM_REFUSED' | 'GROUP_IN_USE' | 'LAST_LOCATION' | 'PLACES_OFF' | 'PLACES_UNAVAILABLE' | 'PLACE_CHOICE' | 'ACCOUNT_EXISTS' | 'TICKET_CLOSED' | 'SELF_CHANGE' | 'TEST_MODE_MISMATCH' | 'TEST_ENV_ONLY' | 'TEST_ENV_NESTED' | 'TEST_ENV_NO_INVITE' | 'TEST_LIMIT_REACHED' | 'TEST_CARD_NO_WALLET' | 'INVALID_KEY' | 'BAD_WEBHOOK_URL' | 'ALREADY_CLOSED' | 'NOT_REOPENABLE' | 'INCIDENT_CLOSED' | 'INCIDENT_INCOMPLETE' | 'INTELLIGENCE_DISABLED' | 'PEOPLE_DISABLED' | 'DUPLICATE' | 'RECOVERY_DECIDED' | 'SECRET_NOT_ALLOWED';
5
5
  /** The body of an error answer. `C` narrows `error.code` to the codes a status can carry. */
6
6
  export interface ErrorBody<C extends string = ErrorCode> {
7
7
  error: {
@@ -35,9 +35,11 @@ export interface IssuePassBody {
35
35
  email?: string;
36
36
  name?: string;
37
37
  homeLocationId?: string;
38
- /** Hediye kartı tutarı, kuruş */
38
+ /** Hediye kartı tutarı, programın para biriminde, kuruş */
39
39
  faceMinor?: number;
40
40
  kvkkConsent?: boolean;
41
+ /** İsteğe bağlı: tutarın para birimi (ISO 4217, ör. `TRY`, `EUR`, büyük-küçük harf önemsiz). Tutar **kartın para birimindedir** (programın para birimi: `GET /v1/passes/{serial}` → `currency`, `GET /v1/programs/{id}`); verilirse onunla karşılaştırılır, farklıysa `422 CURRENCY_MISMATCH` (`details.currency` kartınki) ve hiçbir şey yazılmaz. Tutar çevrilmez. */
42
+ currency?: string;
41
43
  firstName?: string;
42
44
  lastName?: string;
43
45
  phone?: string;
@@ -47,11 +49,20 @@ export interface IssuePassBody {
47
49
  orderId?: string;
48
50
  /** Siparişin geldiği mağaza bağlantısı (`GET /v1/shops`). `orderId` ile birlikte. */
49
51
  shopId?: string;
52
+ /** Kişinin bu programda açık kartı varsa: `create` (varsayılan) yine yeni kart açar, `return` o kartı döndürür (`created: false`). `email` ister. */
53
+ ifExists?: 'create' | 'return';
54
+ /** true: kartın bağlantısı kişinin e-postasına gider (katılım formunun e-postası). `email` ister. */
55
+ sendEmail?: boolean;
50
56
  }
51
57
  /** The `data` of `issuePass`'s answer. */
52
58
  export interface IssuePassData {
53
59
  serial: string;
60
+ /** Yeni kartta müşterinin özel kart bağlantısı (`?k=…`): müşteriye iletin, kayıtlara yazmayın. Var olan kartta (`created: false`) görüntüleme anahtarı taşımayan adres. */
54
61
  cardUrl: string;
62
+ /** true: yeni kart açıldı · false: `ifExists: "return"` ile kişinin var olan kartı döndü */
63
+ created: boolean;
64
+ /** Yalnız `sendEmail: true` iken: e-postaya ne oldu (`queued`, `suppressed`, `rate_limited`, `not_sent`) */
65
+ emailStatus?: 'queued' | 'suppressed' | 'rate_limited' | 'not_sent';
55
66
  /** Yalnız `orderId` gönderildiyse: siparişin bu karta ne olduğu. */
56
67
  order?: {
57
68
  shopId: string;
@@ -95,11 +106,35 @@ export interface GetPassData {
95
106
  programId: string;
96
107
  type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
97
108
  status: string;
98
- /** Damga, puan, ziyaret ya da kuruş (türüne göre). */
109
+ /** Programın adı (ADR 182) */
110
+ programName: string;
111
+ /** Kartın para birimi (ISO 4217, ör. `TRY`, `EUR`): programın para birimi — cashback ve hediye kartında programın kendi para birimi, öteki türlerde işletmeninki. Bu karttaki satışın ve işlemlerin `amountMinor`'ı bu birimdedir ve `currency` alanları bununla karşılaştırılır (ADR 182) */
112
+ currency: string;
113
+ /** Türe göre birimi değişir: damga kartında damga, puan kartında puan, VIP'te ziyaret, cashback ve hediye kartında kuruş (`money.currency` cinsinden); kupon ve indirim kartının bakiyesi yoktur (0). Yeni kodda türe özgü alanları okuyun: `stamps`, `points`, `money`. */
99
114
  balance: number | null;
115
+ /** Yalnız damga kartında: kartta şu an kaç damga var (`count`) ve bir ödül kaç damga ister (`max`). Hazır ödül sayısı `floor(count / max)`, sıradaki ödüle doğru damga `count % max`; program ödülden sonra damga biriktiriyorsa `count` `max`'ı aşabilir. */
116
+ stamps?: {
117
+ count: number;
118
+ max: number;
119
+ };
120
+ /** Yalnız puan kartında: puan bakiyesi */
121
+ points?: number;
122
+ /** Yalnız cashback ve hediye kartında: harcanabilir bakiye, kuruş, ve para birimi. Online bir siparişe ayrılan tutar düşülmüştür. */
123
+ money?: {
124
+ amountMinor: number;
125
+ currency: string;
126
+ };
127
+ /** Yalnız kimlik `customers.read` taşıyorsa (kartın programında): kartın müşterisi. null: kartın müşterisi yok, ya da müşteri kimliğin şube kapsamının dışında. Yetki yoksa alan gelmez. */
128
+ customer?: {
129
+ /** Müşterinin adı; adı verilmemişse null */
130
+ name: string | null;
131
+ } | null;
100
132
  progressLabel?: string | null;
133
+ /** Cüzdandaki ilerleme yazısı, gösterim içindir, ayrıştırmayın: damga kartında ödül hazır olana dek `"3 / 8"`, hazır olunca ödülün adı (`"Bedava kahve"`, birden çoksa `"2 × Bedava kahve"`); puanda bakiye; VIP'te seviye adı; cashback ve hediye kartında biçimlenmiş tutar (`"€2,25"`); kuponda teklif metni; indirimde `"%10"`. */
101
134
  progressValue?: string | null;
135
+ /** Damga: en az bir dolu kart · puan: bakiye en az bir ödüle yetiyor · VIP: bir seviyede · cashback ve hediye kartı: bakiye sıfırdan büyük (harcanacak bir şey var; bir "ödül" değil) · kupon ve indirim: her zaman true (kartın kendisi teklif). Kasada bir işlemin yapılıp yapılamayacağı için `actions[].ready` okuyun. */
102
136
  rewardReady: boolean;
137
+ /** Damga: hazır ödül sayısı · puan: bakiyenin yettiği ödül basamağı sayısı · VIP: seviyedeyse 1 · cashback ve hediye kartı: bakiye varsa 1 · kupon ve indirim: 0 */
103
138
  rewardsReady: number;
104
139
  tier?: string | null;
105
140
  /** VIP: bir sonraki seviye ve kalan ziyaret. */
@@ -107,6 +142,18 @@ export interface GetPassData {
107
142
  /** Puan: bir sonraki ödül ve kalan puan. */
108
143
  nextReward?: unknown;
109
144
  updatedAt: string;
145
+ /** Bu kartın türünün aldığı kasa işlemleri (`POST /v1/passes/{serial}/actions`) */
146
+ actions: {
147
+ action: 'earn-stamps' | 'redeem-stamps' | 'earn-points' | 'redeem-reward' | 'visit' | 'spend' | 'accrue' | 'use' | 'load' | 'spend-points';
148
+ /** İşleme özgü zorunlu alanlar; `action` ve `locationId` her işlemde gerekir */
149
+ needs: Array<'amountMinor' | 'points' | 'rewardIndex'>;
150
+ /** Kartın durumuna göre işlem şimdi yapılabilir mi (ör. damga ödülü hazır mı, bakiye var mı, kupon kullanılmamış mı). Şube kuralı burada değil: `GET /v1/passes/{serial}/till`; yetkiler de değil */
151
+ ready: boolean;
152
+ }[];
153
+ sale: {
154
+ /** Bir satışın (`POST /v1/passes/{serial}/sale`) bu türde yazdığı: damga, puan, ziyaret, cashback ya da hiçbir şey */
155
+ writes: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
156
+ };
110
157
  }
111
158
  /** Arguments of `getPass`. */
112
159
  export interface GetPassArgs extends RequestOptions {
@@ -184,6 +231,8 @@ export interface PassActionBody {
184
231
  points?: number;
185
232
  amountMinor?: number;
186
233
  rewardIndex?: number;
234
+ /** İsteğe bağlı: tutarın para birimi (ISO 4217, ör. `TRY`, `EUR`, büyük-küçük harf önemsiz). Tutar **kartın para birimindedir** (programın para birimi: `GET /v1/passes/{serial}` → `currency`, `GET /v1/programs/{id}`); verilirse onunla karşılaştırılır, farklıysa `422 CURRENCY_MISMATCH` (`details.currency` kartınki) ve hiçbir şey yazılmaz. Tutar çevrilmez. */
235
+ currency?: string;
187
236
  }
188
237
  /** The `data` of `passAction`'s answer. */
189
238
  export interface PassActionData {
@@ -217,6 +266,116 @@ export interface PassActionArgs extends RequestOptions {
217
266
  */
218
267
  merchant?: string | undefined;
219
268
  }
269
+ /** Path parameters of `recordSale`. */
270
+ export interface RecordSaleParams {
271
+ /** Kart seri numarası, XXXX-XXXX-XXXX */
272
+ serial: string;
273
+ }
274
+ /** Header parameters of `recordSale`, as sent on the wire. */
275
+ export interface RecordSaleHeaders {
276
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
277
+ 'Rewloy-Merchant'?: string;
278
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
279
+ 'Idempotency-Key': string;
280
+ }
281
+ /** Request body of `recordSale`. */
282
+ export interface RecordSaleBody {
283
+ /** Satışın yapıldığı şube. Verilmezse (online) satış bir şubeye yazılmaz; kimliğin her şubede `scan.use` yetkisi olmalıdır. */
284
+ locationId?: string;
285
+ /** Ödenen toplam, kartın (programın) para biriminde, kuruş */
286
+ amountMinor: number;
287
+ /** Fiş ya da sipariş numarası; defter kaydının notuna yazılır */
288
+ reference?: string;
289
+ /** İsteğe bağlı: tutarın para birimi (ISO 4217, ör. `TRY`, `EUR`, büyük-küçük harf önemsiz). Tutar **kartın para birimindedir** (programın para birimi: `GET /v1/passes/{serial}` → `currency`, `GET /v1/programs/{id}`); verilirse onunla karşılaştırılır, farklıysa `422 CURRENCY_MISMATCH` (`details.currency` kartınki) ve hiçbir şey yazılmaz. Tutar çevrilmez. */
290
+ currency?: string;
291
+ }
292
+ /** The `data` of `recordSale`'s answer. */
293
+ export interface RecordSaleData {
294
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
295
+ applied: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
296
+ /** Yazılan: damga, puan, ziyaret ya da kuruş; hiçbir şey yazılmadıysa 0. Tekrarda ilk isteğin yazdığı */
297
+ credited: number;
298
+ /** Yalnız `applied: "none"` iken: neden hiçbir şey yazılmadı */
299
+ reason?: 'below_minimum' | 'visit_already_counted' | 'card_full' | 'type_does_not_earn';
300
+ /** Satıştan sonra kartın bakiyesi (damga, puan, ziyaret ya da kuruş); kupon ve indirimde null */
301
+ balance: number | null;
302
+ duplicate: boolean;
303
+ /** Damga: ödül hazır oldu · VIP: seviye */
304
+ detail?: string;
305
+ /** Bu kazanımı katlayan kasa kampanyası (ADR 139) */
306
+ promotion?: {
307
+ id: string;
308
+ name: string;
309
+ factor: number;
310
+ };
311
+ rewardReady: boolean;
312
+ rewardsReady: number;
313
+ }
314
+ /** Arguments of `recordSale`. */
315
+ export interface RecordSaleArgs extends RequestOptions {
316
+ /** Path parameters. */
317
+ params: RecordSaleParams;
318
+ /** The JSON body. */
319
+ body: RecordSaleBody;
320
+ /**
321
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
322
+ *
323
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
324
+ */
325
+ idempotencyKey?: string | undefined;
326
+ /**
327
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
328
+ *
329
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
330
+ */
331
+ merchant?: string | undefined;
332
+ }
333
+ /** Path parameters of `reverseSale`. */
334
+ export interface ReverseSaleParams {
335
+ /** Kart seri numarası, XXXX-XXXX-XXXX */
336
+ serial: string;
337
+ }
338
+ /** Header parameters of `reverseSale`, as sent on the wire. */
339
+ export interface ReverseSaleHeaders {
340
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
341
+ 'Rewloy-Merchant'?: string;
342
+ }
343
+ /** Request body of `reverseSale`. */
344
+ export interface ReverseSaleBody {
345
+ /** Satışın `Idempotency-Key`'i (aynı kimlikle gönderilmiş) */
346
+ saleKey?: string;
347
+ /** Satışın `reference`'ı; bu kartta tek bir satışta olmalı */
348
+ reference?: string;
349
+ /** Geri almanın yapıldığı şube (isteğe bağlı) */
350
+ locationId?: string;
351
+ }
352
+ /** The `data` of `reverseSale`'s answer. */
353
+ export interface ReverseSaleData {
354
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
355
+ /** Geri alınan satışın yazdığı */
356
+ applied: 'stamps' | 'points' | 'visit' | 'cashback';
357
+ /** Geri alınan: satışın yazdığı damga, puan, ziyaret ya da kuruş */
358
+ reversed: number;
359
+ /** Geri almadan sonra kartın bakiyesi */
360
+ balance: number;
361
+ /** true: satış daha önce geri alınmıştı; şimdi hiçbir şey yazılmadı */
362
+ duplicate: boolean;
363
+ rewardReady: boolean;
364
+ rewardsReady: number;
365
+ }
366
+ /** Arguments of `reverseSale`. */
367
+ export interface ReverseSaleArgs extends RequestOptions {
368
+ /** Path parameters. */
369
+ params: ReverseSaleParams;
370
+ /** The JSON body. */
371
+ body?: ReverseSaleBody;
372
+ /**
373
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
374
+ *
375
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
376
+ */
377
+ merchant?: string | undefined;
378
+ }
220
379
  /** Path parameters of `publicProgram`. */
221
380
  export interface PublicProgramParams {
222
381
  id: string;
@@ -409,6 +568,27 @@ export interface EmailCardLinkArgs extends RequestOptions {
409
568
  */
410
569
  merchant?: string | undefined;
411
570
  }
571
+ /** Header parameters of `getMeta`, as sent on the wire. */
572
+ export interface GetMetaHeaders {
573
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
574
+ 'Rewloy-Merchant'?: string;
575
+ }
576
+ /** The `data` of `getMeta`'s answer. */
577
+ export interface GetMetaData {
578
+ /** Rewloy'nun sürümü (package.json), ör. `1.0.0` */
579
+ version: string;
580
+ /** Bu API'nin sürümü */
581
+ apiVersion: 'v1';
582
+ }
583
+ /** Arguments of `getMeta`. */
584
+ export interface GetMetaArgs extends RequestOptions {
585
+ /**
586
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
587
+ *
588
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
589
+ */
590
+ merchant?: string | undefined;
591
+ }
412
592
  /** Arguments of `openapi`. */
413
593
  export interface OpenapiArgs extends RequestOptions {
414
594
  }
@@ -439,6 +619,8 @@ export interface LoginData {
439
619
  mode: 'live' | 'test';
440
620
  /** Test ortamında, ait olduğu gerçek işletme; gerçek işletmede `null` */
441
621
  testOf: string | null;
622
+ /** İşletmenin para birimi (ISO 4217): satışların `amountMinor`'ı ve para kartlarının tutarları bu birimdedir (ADR 182) */
623
+ currency: string;
442
624
  }[];
443
625
  }
444
626
  /** Arguments of `login`. */
@@ -514,6 +696,8 @@ export type MeData = {
514
696
  mode: 'live' | 'test';
515
697
  /** Test ortamında, ait olduğu gerçek işletme; gerçek işletmede `null` */
516
698
  testOf: string | null;
699
+ /** İşletmenin para birimi (ISO 4217): satışların `amountMinor`'ı ve para kartlarının tutarları bu birimdedir (ADR 182) */
700
+ currency: string;
517
701
  }[];
518
702
  activeMerchantId: string | null;
519
703
  mode: 'live' | 'test' | null;
@@ -529,10 +713,18 @@ export type MeData = {
529
713
  rateLimitPerMinute: number;
530
714
  /** Bağlantı koduyla kurulmuş bir mağaza eklentisinin anahtarıysa ait olduğu mağaza bağlantısı (yalnız onu görür ve yönetir); değilse null. */
531
715
  shopId: string | null;
716
+ /** Bir eklentinin ekranlarını açıp kapatmak için, yetkilerden okunur (ADR 178): `view` = `passes.read` ve `analytics.read` (kart durumu, programın sayıları ve son işlemleri; müşterinin kişisel bilgisi yok); `till` = `scan.use` tam olarak bir şubede (o şubenin kasası: `getPassTill`, `recordSale`, `passAction`). Birden çok şubede ya da her yerde `scan.use` taşıyan anahtarın tek bir kasası olmadığından `till` yazılmaz. */
717
+ abilities: Array<'view' | 'till'>;
718
+ /** `till` varken kasanın şubesi (işlemlerde `locationId` olarak gönderilir); yoksa null. */
719
+ tillLocationId: string | null;
720
+ /** Kasanın şubesinin adı; yoksa null. */
721
+ tillLocationName: string | null;
532
722
  };
533
723
  business: {
534
724
  id: string;
535
725
  name: string;
726
+ /** İşletmenin para birimi (ISO 4217, ör. `TRY`, `EUR`): satışların `amountMinor`'ı ve para kartlarının tutarları bu birimdedir. Varsayılan `TRY`; para kartı verilene dek `PATCH /v1/business` ile değişir (ADR 182) */
727
+ currency: string;
536
728
  };
537
729
  permissions: string[];
538
730
  mode: 'live' | 'test';
@@ -546,6 +738,11 @@ export interface MeArgs extends RequestOptions {
546
738
  */
547
739
  merchant?: string | undefined;
548
740
  }
741
+ /** Header parameters of `holderLogin`, as sent on the wire. */
742
+ export interface HolderLoginHeaders {
743
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
744
+ 'Idempotency-Key'?: string;
745
+ }
549
746
  /** Request body of `holderLogin`. */
550
747
  export interface HolderLoginBody {
551
748
  email?: string;
@@ -570,6 +767,12 @@ export interface HolderLoginData {
570
767
  export interface HolderLoginArgs extends RequestOptions {
571
768
  /** The JSON body. */
572
769
  body?: HolderLoginBody;
770
+ /**
771
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
772
+ *
773
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
774
+ */
775
+ idempotencyKey?: string | undefined;
573
776
  }
574
777
  /** Request body of `holderSession`. */
575
778
  export interface HolderSessionBody {
@@ -746,6 +949,8 @@ export interface SignupData {
746
949
  mode: 'live' | 'test';
747
950
  /** Test ortamında, ait olduğu gerçek işletme; gerçek işletmede `null` */
748
951
  testOf: string | null;
952
+ /** İşletmenin para birimi (ISO 4217): satışların `amountMinor`'ı ve para kartlarının tutarları bu birimdedir (ADR 182) */
953
+ currency: string;
749
954
  }[];
750
955
  merchantId: string;
751
956
  termsVersion: string;
@@ -823,7 +1028,6 @@ export interface InvitePreviewParams {
823
1028
  export interface InvitePreviewData {
824
1029
  merchantName: string;
825
1030
  email: string;
826
- userExists: boolean;
827
1031
  }
828
1032
  /** Arguments of `invitePreview`. */
829
1033
  export interface InvitePreviewArgs extends RequestOptions {
@@ -834,9 +1038,15 @@ export interface InvitePreviewArgs extends RequestOptions {
834
1038
  export interface AcceptInviteParams {
835
1039
  code: string;
836
1040
  }
1041
+ /** Header parameters of `acceptInvite`, as sent on the wire. */
1042
+ export interface AcceptInviteHeaders {
1043
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
1044
+ 'Rewloy-Merchant'?: string;
1045
+ }
837
1046
  /** Request body of `acceptInvite`. */
838
1047
  export interface AcceptInviteBody {
839
- password: string;
1048
+ /** Yalnız yeni hesap için: hesabın şifresi (en az 10 karakter) */
1049
+ password?: string;
840
1050
  }
841
1051
  /** The `data` of `acceptInvite`'s answer. */
842
1052
  export interface AcceptInviteData {
@@ -860,6 +1070,8 @@ export interface AcceptInviteData {
860
1070
  mode: 'live' | 'test';
861
1071
  /** Test ortamında, ait olduğu gerçek işletme; gerçek işletmede `null` */
862
1072
  testOf: string | null;
1073
+ /** İşletmenin para birimi (ISO 4217): satışların `amountMinor`'ı ve para kartlarının tutarları bu birimdedir (ADR 182) */
1074
+ currency: string;
863
1075
  }[];
864
1076
  }
865
1077
  /** Arguments of `acceptInvite`. */
@@ -867,7 +1079,13 @@ export interface AcceptInviteArgs extends RequestOptions {
867
1079
  /** Path parameters. */
868
1080
  params: AcceptInviteParams;
869
1081
  /** The JSON body. */
870
- body: AcceptInviteBody;
1082
+ body?: AcceptInviteBody;
1083
+ /**
1084
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
1085
+ *
1086
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
1087
+ */
1088
+ merchant?: string | undefined;
871
1089
  }
872
1090
  /** Header parameters of `changePassword`, as sent on the wire. */
873
1091
  export interface ChangePasswordHeaders {
@@ -1270,6 +1488,17 @@ export interface ListProgramsItem {
1270
1488
  visits30: number;
1271
1489
  rewardsReady: number;
1272
1490
  };
1491
+ /** Bir satışın bu programda ne kazandırdığı, kaydedilmiş kurallardan (salt-okunur). Kasa kampanyaları buna dahil değil. */
1492
+ sale: {
1493
+ /** Bir satışın (`POST /v1/passes/{serial}/sale`) bu programın kartlarına yazdığı */
1494
+ writes: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
1495
+ /** Damga ve VIP: satış başına damga ya da ziyaret */
1496
+ perSale: number | null;
1497
+ /** Puan: her 1 birim harcamaya puan (`config.earnRate`) */
1498
+ pointsPerUnit: number | null;
1499
+ /** Cashback: toplamın yüzdesi (`config.cashbackRate`) */
1500
+ percent: number | null;
1501
+ };
1273
1502
  }
1274
1503
  /** The `data` of `listPrograms`'s answer. */
1275
1504
  export type ListProgramsData = ListProgramsItem[];
@@ -1388,6 +1617,12 @@ export interface CreateProgramBody {
1388
1617
  cashbackRate?: number;
1389
1618
  /** Kupon: teklif metni */
1390
1619
  offerText?: string;
1620
+ /** Kupon: online mağazada kullanıldığında değeri (ADR 179). Yoksa (ya da null) kupon yalnız mağazada geçer; kodun kendi online değeri ya da tutarı bunun önüne geçer. */
1621
+ onlineValue?: {
1622
+ kind: 'amount' | 'percent';
1623
+ /** amount: kuruş (100 – 10.000.000); percent: 1 – 100 */
1624
+ value: number;
1625
+ } | null;
1391
1626
  }
1392
1627
  /** The `data` of `createProgram`'s answer. */
1393
1628
  export interface CreateProgramData {
@@ -1411,6 +1646,17 @@ export interface CreateProgramData {
1411
1646
  visits30: number;
1412
1647
  rewardsReady: number;
1413
1648
  };
1649
+ /** Bir satışın bu programda ne kazandırdığı, kaydedilmiş kurallardan (salt-okunur). Kasa kampanyaları buna dahil değil. */
1650
+ sale: {
1651
+ /** Bir satışın (`POST /v1/passes/{serial}/sale`) bu programın kartlarına yazdığı */
1652
+ writes: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
1653
+ /** Damga ve VIP: satış başına damga ya da ziyaret */
1654
+ perSale: number | null;
1655
+ /** Puan: her 1 birim harcamaya puan (`config.earnRate`) */
1656
+ pointsPerUnit: number | null;
1657
+ /** Cashback: toplamın yüzdesi (`config.cashbackRate`) */
1658
+ percent: number | null;
1659
+ };
1414
1660
  }
1415
1661
  /** Arguments of `createProgram`. */
1416
1662
  export interface CreateProgramArgs extends RequestOptions {
@@ -1510,6 +1756,17 @@ export interface GetProgramData {
1510
1756
  visits30: number;
1511
1757
  rewardsReady: number;
1512
1758
  };
1759
+ /** Bir satışın bu programda ne kazandırdığı, kaydedilmiş kurallardan (salt-okunur). Kasa kampanyaları buna dahil değil. */
1760
+ sale: {
1761
+ /** Bir satışın (`POST /v1/passes/{serial}/sale`) bu programın kartlarına yazdığı */
1762
+ writes: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
1763
+ /** Damga ve VIP: satış başına damga ya da ziyaret */
1764
+ perSale: number | null;
1765
+ /** Puan: her 1 birim harcamaya puan (`config.earnRate`) */
1766
+ pointsPerUnit: number | null;
1767
+ /** Cashback: toplamın yüzdesi (`config.cashbackRate`) */
1768
+ percent: number | null;
1769
+ };
1513
1770
  }
1514
1771
  /** Arguments of `getProgram`. */
1515
1772
  export interface GetProgramArgs extends RequestOptions {
@@ -1623,6 +1880,12 @@ export interface UpdateProgramBody {
1623
1880
  cashbackRate?: number;
1624
1881
  /** Kupon: teklif metni */
1625
1882
  offerText?: string;
1883
+ /** Kupon: online mağazada kullanıldığında değeri (ADR 179). Yoksa (ya da null) kupon yalnız mağazada geçer; kodun kendi online değeri ya da tutarı bunun önüne geçer. */
1884
+ onlineValue?: {
1885
+ kind: 'amount' | 'percent';
1886
+ /** amount: kuruş (100 – 10.000.000); percent: 1 – 100 */
1887
+ value: number;
1888
+ } | null;
1626
1889
  }
1627
1890
  /** The `data` of `updateProgram`'s answer. */
1628
1891
  export interface UpdateProgramData {
@@ -1646,6 +1909,17 @@ export interface UpdateProgramData {
1646
1909
  visits30: number;
1647
1910
  rewardsReady: number;
1648
1911
  };
1912
+ /** Bir satışın bu programda ne kazandırdığı, kaydedilmiş kurallardan (salt-okunur). Kasa kampanyaları buna dahil değil. */
1913
+ sale: {
1914
+ /** Bir satışın (`POST /v1/passes/{serial}/sale`) bu programın kartlarına yazdığı */
1915
+ writes: 'stamps' | 'points' | 'visit' | 'cashback' | 'none';
1916
+ /** Damga ve VIP: satış başına damga ya da ziyaret */
1917
+ perSale: number | null;
1918
+ /** Puan: her 1 birim harcamaya puan (`config.earnRate`) */
1919
+ pointsPerUnit: number | null;
1920
+ /** Cashback: toplamın yüzdesi (`config.cashbackRate`) */
1921
+ percent: number | null;
1922
+ };
1649
1923
  }
1650
1924
  /** Arguments of `updateProgram`. */
1651
1925
  export interface UpdateProgramArgs extends RequestOptions {
@@ -1788,6 +2062,12 @@ export interface PreviewProgramBody {
1788
2062
  cashbackRate?: number;
1789
2063
  /** Kupon: teklif metni */
1790
2064
  offerText?: string;
2065
+ /** Kupon: online mağazada kullanıldığında değeri (ADR 179). Yoksa (ya da null) kupon yalnız mağazada geçer; kodun kendi online değeri ya da tutarı bunun önüne geçer. */
2066
+ onlineValue?: {
2067
+ kind: 'amount' | 'percent';
2068
+ /** amount: kuruş (100 – 10.000.000); percent: 1 – 100 */
2069
+ value: number;
2070
+ } | null;
1791
2071
  };
1792
2072
  programId?: string;
1793
2073
  stage?: 'new' | 'mid' | 'ready';
@@ -2194,6 +2474,8 @@ export interface ListCustomerCardsItem {
2194
2474
  /** Numaranın bu işletmede bir katılımla doğrulandığı an. Adreste her zaman null: adres başka bir işletmede ya da bir Rewloy Cüzdan girişinde doğrulanmış olabilir; yalnız doğrulandığı (`verified`) söylenir. Doğrulanmadıysa null */
2195
2475
  verifiedAt: string | null;
2196
2476
  }[];
2477
+ /** `q` bir kart numarası olarak okundu ve bu kartın numarası onunla başlıyor: aranan kart bu (kişinin öteki kartları false) */
2478
+ matched: boolean;
2197
2479
  }
2198
2480
  /** Arguments of `listCustomerCards`. */
2199
2481
  export interface ListCustomerCardsArgs extends RequestOptions {
@@ -2326,7 +2608,7 @@ export interface CustomerTimelineHeaders {
2326
2608
  /** One item of `customerTimeline`'s list. */
2327
2609
  export interface CustomerTimelineItem {
2328
2610
  at: string;
2329
- /** earn, redeem, spend, load, …; visit; campaign, automation:<tür>, sequence; issued; verified:phone; changed:email, changed:phone */
2611
+ /** earn, redeem, spend, load, …; hold, release, refund (online ödeme kodu, ADR 179); visit; campaign, automation:<tür>, sequence; issued; verified:phone; changed:email, changed:phone */
2330
2612
  kind: string;
2331
2613
  group: 'points' | 'rewards' | 'spend' | 'visits' | 'messages' | 'cards' | 'contact';
2332
2614
  /** Defter değişimi (damga, puan ya da kuruş) */
@@ -2716,7 +2998,10 @@ export interface CreateBatchHeaders {
2716
2998
  export interface CreateBatchBody {
2717
2999
  /** Kodun adı (boşsa programın adı) */
2718
3000
  name?: string;
3001
+ /** Programın para biriminde, kuruş */
2719
3002
  valueMinor?: number;
3003
+ /** İsteğe bağlı: tutarın para birimi (ISO 4217, ör. `TRY`, `EUR`, büyük-küçük harf önemsiz). Tutar **kartın para birimindedir** (programın para birimi: `GET /v1/passes/{serial}` → `currency`, `GET /v1/programs/{id}`); verilirse onunla karşılaştırılır, farklıysa `422 CURRENCY_MISMATCH` (`details.currency` kartınki) ve hiçbir şey yazılmaz. Tutar çevrilmez. */
3004
+ currency?: string;
2720
3005
  usage?: 'once' | 'limited' | 'unlimited';
2721
3006
  usageLimit?: number;
2722
3007
  capacity?: number;
@@ -2725,6 +3010,10 @@ export interface CreateBatchBody {
2725
3010
  validUntil?: string;
2726
3011
  offerText?: string;
2727
3012
  percent?: number;
3013
+ onlineValue?: {
3014
+ kind: 'amount' | 'percent';
3015
+ value: number;
3016
+ };
2728
3017
  /** Kartların kasada kabul edileceği şubeler (ADR 139); boş ya da yok = programın kuralı. Şube kapsamlı bir kimlik yalnız kendi şubelerini seçebilir. */
2729
3018
  locationIds?: string[];
2730
3019
  }
@@ -2770,6 +3059,11 @@ export interface CreateBatchData {
2770
3059
  spentMinor: number;
2771
3060
  /** Hediye kartı: açık kartlarda kalan (defter bakiyeleri), kuruş */
2772
3061
  outstandingMinor: number;
3062
+ /** Kupon: online mağazada kullanıldığındaki değeri (ADR 179); null = kodun tutarı, yoksa programın `onlineValue`'su, o da yoksa yalnız mağazada */
3063
+ onlineValue: {
3064
+ kind: 'amount' | 'percent';
3065
+ value: number;
3066
+ } | null;
2773
3067
  }
2774
3068
  /** Arguments of `createBatch`. */
2775
3069
  export interface CreateBatchArgs extends RequestOptions {
@@ -2835,6 +3129,11 @@ export interface GetBatchData {
2835
3129
  spentMinor: number;
2836
3130
  /** Hediye kartı: açık kartlarda kalan (defter bakiyeleri), kuruş */
2837
3131
  outstandingMinor: number;
3132
+ /** Kupon: online mağazada kullanıldığındaki değeri (ADR 179); null = kodun tutarı, yoksa programın `onlineValue`'su, o da yoksa yalnız mağazada */
3133
+ onlineValue: {
3134
+ kind: 'amount' | 'percent';
3135
+ value: number;
3136
+ } | null;
2838
3137
  }
2839
3138
  /** Arguments of `getBatch`. */
2840
3139
  export interface GetBatchArgs extends RequestOptions {
@@ -2867,7 +3166,7 @@ export interface ListBatchCardsItem {
2867
3166
  passId: string;
2868
3167
  serial: string;
2869
3168
  name: string;
2870
- /** **Kullanımdan kalkıyor:** 5 Nisan 2027 tarihine kadar gelir; yerine `identifiers`. Kartı alanın adresi. Yerine geçen `identifiers` yalnız `customers.read` yetkisiyle gelir. */
3169
+ /** **Kullanımdan kalkıyor:** 5 Nisan 2027 tarihine kadar gelir; yerine `identifiers`. Kartı alanın adresi; `identifiers` gibi yalnız `customers.read` yetkisiyle ve kimliğin şube kapsamındaki kişiler için gelir, yoksa null (ADR 181). Yerine geçen `identifiers`. */
2871
3170
  email: string | null;
2872
3171
  /** Kişinin bu işletmedeki adresleri ve numaraları, durumlarıyla: önce adresler, sonra numaralar. Yalnız bu işletmenin kaydı; kişinin Rewloy Cüzdan hesabı ya da başka işletmeleri hiçbir zaman (ADR 168). Yalnız `customers.read` yetkisiyle, kimliğin şube kapsamındaki kişiler için gelir */
2873
3172
  identifiers?: {
@@ -2978,6 +3277,11 @@ export interface CloseBatchData {
2978
3277
  spentMinor: number;
2979
3278
  /** Hediye kartı: açık kartlarda kalan (defter bakiyeleri), kuruş */
2980
3279
  outstandingMinor: number;
3280
+ /** Kupon: online mağazada kullanıldığındaki değeri (ADR 179); null = kodun tutarı, yoksa programın `onlineValue`'su, o da yoksa yalnız mağazada */
3281
+ onlineValue: {
3282
+ kind: 'amount' | 'percent';
3283
+ value: number;
3284
+ } | null;
2981
3285
  }
2982
3286
  /** Arguments of `closeBatch`. */
2983
3287
  export interface CloseBatchArgs extends RequestOptions {
@@ -5150,6 +5454,8 @@ export interface GetAnalyticsQuery {
5150
5454
  days?: 7 | 30 | 90;
5151
5455
  /** Tek bir şube (kapsamınız içinde) */
5152
5456
  locationId?: string;
5457
+ /** Tek bir program (kapsamınız içinde). Kapsamı programlarla sınırlı bir kimlik (ör. mağaza eklentisinin anahtarı) yalnız kendi programlarını görür; programsız istekte de yalnız onlar sayılır. */
5458
+ programId?: string;
5153
5459
  }
5154
5460
  /** Header parameters of `getAnalytics`, as sent on the wire. */
5155
5461
  export interface GetAnalyticsHeaders {
@@ -5231,7 +5537,8 @@ export interface ListActivityQuery {
5231
5537
  seatId?: string;
5232
5538
  /** YYYY-AA-GG */
5233
5539
  day?: string;
5234
- kind?: 'earn' | 'redeem' | 'spend' | 'load' | 'accrue' | 'visit' | 'use' | 'issue' | 'adjust' | 'expire';
5540
+ kind?: 'earn' | 'redeem' | 'spend' | 'load' | 'accrue' | 'visit' | 'use' | 'issue' | 'adjust' | 'expire' | 'hold' | 'release' | 'refund';
5541
+ /** Tek bir program (kapsamınız içinde). Kapsamı programlarla sınırlı bir kimlik (ör. mağaza eklentisinin anahtarı) yalnız kendi programlarını görür; programsız istekte de yalnız onlar sayılır. */
5235
5542
  programId?: string;
5236
5543
  /** Kart numarası ya da başı */
5237
5544
  serial?: string;
@@ -5248,7 +5555,9 @@ export interface ListActivityItem {
5248
5555
  at: string;
5249
5556
  kind: string;
5250
5557
  delta: number | null;
5558
+ /** `delta`'nın birimi: `stamp` damga, `point` puan, `visit` ziyaret, `try_minor` para (kuruş). `try_minor` donmuş bir addır: Türk lirası demek değildir, `currency` biriminin kuruşudur (ör. EUR işletmede euro sent). Kupon ve indirim kullanımında null. */
5251
5559
  unit: string | null;
5560
+ /** Para hareketinde `delta`'nın para birimi (programın, yoksa işletmenin; ISO 4217). Damga, puan ve ziyarette de gelir ama yalnız `unit: "try_minor"` iken anlamlıdır; kupon ve indirim kullanımında null. */
5252
5561
  currency: string | null;
5253
5562
  serial: string;
5254
5563
  personId: string | null;
@@ -6053,19 +6362,60 @@ export interface ListShopsItem {
6053
6362
  /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
6054
6363
  lastDelivery: {
6055
6364
  at: string;
6056
- result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body';
6365
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
6057
6366
  } | null;
6058
6367
  /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
6059
6368
  lastRefusal: {
6060
6369
  at: string;
6061
6370
  reason: 'bad_signature';
6062
6371
  } | null;
6063
- /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı; yoksa null. Bağlantı silinince anahtar da iptal edilir. */
6372
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
6064
6373
  pluginKey: {
6065
6374
  id: string;
6066
6375
  prefix: string;
6067
6376
  name: string;
6377
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
6378
+ abilities: Array<'view' | 'till'>;
6379
+ /** Kasa açıksa şubesi; değilse null */
6380
+ tillLocationId: string | null;
6381
+ /** Kasanın şubesinin adı; değilse null */
6382
+ tillLocationName: string | null;
6383
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
6384
+ tillArchived: boolean;
6068
6385
  } | null;
6386
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
6387
+ shopName: string | null;
6388
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
6389
+ settings: {
6390
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
6391
+ tax: {
6392
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
6393
+ giftcard: 'payment' | 'discount';
6394
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
6395
+ cashback: 'payment' | 'discount';
6396
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
6397
+ voucher: 'payment' | 'discount';
6398
+ };
6399
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
6400
+ refundReverses: 'code_orders' | 'all' | 'never';
6401
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
6402
+ holdDays: number;
6403
+ };
6404
+ accepts: {
6405
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
6406
+ programIds: string[];
6407
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
6408
+ ceiling: {
6409
+ id: string;
6410
+ name: string;
6411
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
6412
+ }[] | null;
6413
+ };
6414
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
6415
+ unbacked: {
6416
+ count: number;
6417
+ lastAt: string | null;
6418
+ };
6069
6419
  }
6070
6420
  /** The `data` of `listShops`'s answer. */
6071
6421
  export type ListShopsData = ListShopsItem[];
@@ -6121,19 +6471,60 @@ export interface CreateShopData {
6121
6471
  /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
6122
6472
  lastDelivery: {
6123
6473
  at: string;
6124
- result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body';
6474
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
6125
6475
  } | null;
6126
6476
  /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
6127
6477
  lastRefusal: {
6128
6478
  at: string;
6129
6479
  reason: 'bad_signature';
6130
6480
  } | null;
6131
- /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı; yoksa null. Bağlantı silinince anahtar da iptal edilir. */
6481
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
6132
6482
  pluginKey: {
6133
6483
  id: string;
6134
6484
  prefix: string;
6135
6485
  name: string;
6486
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
6487
+ abilities: Array<'view' | 'till'>;
6488
+ /** Kasa açıksa şubesi; değilse null */
6489
+ tillLocationId: string | null;
6490
+ /** Kasanın şubesinin adı; değilse null */
6491
+ tillLocationName: string | null;
6492
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
6493
+ tillArchived: boolean;
6136
6494
  } | null;
6495
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
6496
+ shopName: string | null;
6497
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
6498
+ settings: {
6499
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
6500
+ tax: {
6501
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
6502
+ giftcard: 'payment' | 'discount';
6503
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
6504
+ cashback: 'payment' | 'discount';
6505
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
6506
+ voucher: 'payment' | 'discount';
6507
+ };
6508
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
6509
+ refundReverses: 'code_orders' | 'all' | 'never';
6510
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
6511
+ holdDays: number;
6512
+ };
6513
+ accepts: {
6514
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
6515
+ programIds: string[];
6516
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
6517
+ ceiling: {
6518
+ id: string;
6519
+ name: string;
6520
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
6521
+ }[] | null;
6522
+ };
6523
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
6524
+ unbacked: {
6525
+ count: number;
6526
+ lastAt: string | null;
6527
+ };
6137
6528
  /** WooCommerce: yalnız bu yanıtta; saklanmaz, yeniden gösterilmez */
6138
6529
  secret: string | null;
6139
6530
  }
@@ -6186,19 +6577,60 @@ export interface GetShopData {
6186
6577
  /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
6187
6578
  lastDelivery: {
6188
6579
  at: string;
6189
- result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body';
6580
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
6190
6581
  } | null;
6191
6582
  /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
6192
6583
  lastRefusal: {
6193
6584
  at: string;
6194
6585
  reason: 'bad_signature';
6195
6586
  } | null;
6196
- /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı; yoksa null. Bağlantı silinince anahtar da iptal edilir. */
6587
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
6197
6588
  pluginKey: {
6198
6589
  id: string;
6199
6590
  prefix: string;
6200
6591
  name: string;
6592
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
6593
+ abilities: Array<'view' | 'till'>;
6594
+ /** Kasa açıksa şubesi; değilse null */
6595
+ tillLocationId: string | null;
6596
+ /** Kasanın şubesinin adı; değilse null */
6597
+ tillLocationName: string | null;
6598
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
6599
+ tillArchived: boolean;
6201
6600
  } | null;
6601
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
6602
+ shopName: string | null;
6603
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
6604
+ settings: {
6605
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
6606
+ tax: {
6607
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
6608
+ giftcard: 'payment' | 'discount';
6609
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
6610
+ cashback: 'payment' | 'discount';
6611
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
6612
+ voucher: 'payment' | 'discount';
6613
+ };
6614
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
6615
+ refundReverses: 'code_orders' | 'all' | 'never';
6616
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
6617
+ holdDays: number;
6618
+ };
6619
+ accepts: {
6620
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
6621
+ programIds: string[];
6622
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
6623
+ ceiling: {
6624
+ id: string;
6625
+ name: string;
6626
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
6627
+ }[] | null;
6628
+ };
6629
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
6630
+ unbacked: {
6631
+ count: number;
6632
+ lastAt: string | null;
6633
+ };
6202
6634
  }
6203
6635
  /** Arguments of `getShop`. */
6204
6636
  export interface GetShopArgs extends RequestOptions {
@@ -6253,19 +6685,60 @@ export interface SetShopEnabledData {
6253
6685
  /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
6254
6686
  lastDelivery: {
6255
6687
  at: string;
6256
- result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body';
6688
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
6257
6689
  } | null;
6258
6690
  /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
6259
6691
  lastRefusal: {
6260
6692
  at: string;
6261
6693
  reason: 'bad_signature';
6262
6694
  } | null;
6263
- /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı; yoksa null. Bağlantı silinince anahtar da iptal edilir. */
6695
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
6264
6696
  pluginKey: {
6265
6697
  id: string;
6266
6698
  prefix: string;
6267
6699
  name: string;
6700
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
6701
+ abilities: Array<'view' | 'till'>;
6702
+ /** Kasa açıksa şubesi; değilse null */
6703
+ tillLocationId: string | null;
6704
+ /** Kasanın şubesinin adı; değilse null */
6705
+ tillLocationName: string | null;
6706
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
6707
+ tillArchived: boolean;
6268
6708
  } | null;
6709
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
6710
+ shopName: string | null;
6711
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
6712
+ settings: {
6713
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
6714
+ tax: {
6715
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
6716
+ giftcard: 'payment' | 'discount';
6717
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
6718
+ cashback: 'payment' | 'discount';
6719
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
6720
+ voucher: 'payment' | 'discount';
6721
+ };
6722
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
6723
+ refundReverses: 'code_orders' | 'all' | 'never';
6724
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
6725
+ holdDays: number;
6726
+ };
6727
+ accepts: {
6728
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
6729
+ programIds: string[];
6730
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
6731
+ ceiling: {
6732
+ id: string;
6733
+ name: string;
6734
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
6735
+ }[] | null;
6736
+ };
6737
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
6738
+ unbacked: {
6739
+ count: number;
6740
+ lastAt: string | null;
6741
+ };
6269
6742
  }
6270
6743
  /** Arguments of `setShopEnabled`. */
6271
6744
  export interface SetShopEnabledArgs extends RequestOptions {
@@ -6351,6 +6824,12 @@ export interface ListShopConnectTokensItem {
6351
6824
  expiresAt: string;
6352
6825
  /** Kodu oluşturan kişinin e-postası */
6353
6826
  createdBy: string | null;
6827
+ /** Kurulacak anahtar Görüntüleme yetkisini alır mı (ADR 178) */
6828
+ view: boolean;
6829
+ /** Kurulacak anahtarın kasası bu şubede açılır; null = kasa kapalı (ADR 178) */
6830
+ tillLocationId: string | null;
6831
+ /** Kasanın şubesinin adı */
6832
+ tillLocationName: string | null;
6354
6833
  }
6355
6834
  /** The `data` of `listShopConnectTokens`'s answer. */
6356
6835
  export type ListShopConnectTokensData = ListShopConnectTokensItem[];
@@ -6375,6 +6854,10 @@ export interface CreateShopConnectTokenBody {
6375
6854
  perAmountMinor?: number;
6376
6855
  step?: number;
6377
6856
  password: string;
6857
+ /** Görüntüleme: kartlar, durumları, programın sayıları ve son işlemleri. Gönderilmezse kapalı (ADR 178'in incelemesi): eski istemcinin anahtarı eskisi gibi kalır */
6858
+ view?: boolean;
6859
+ /** Kasa: bu şubenin kasası; gönderilmezse ya da null ise kasa kapalı */
6860
+ tillLocationId?: string | null;
6378
6861
  }
6379
6862
  /** The `data` of `createShopConnectToken`'s answer. */
6380
6863
  export interface CreateShopConnectTokenData {
@@ -6388,6 +6871,12 @@ export interface CreateShopConnectTokenData {
6388
6871
  expiresAt: string;
6389
6872
  /** Kodu oluşturan kişinin e-postası */
6390
6873
  createdBy: string | null;
6874
+ /** Kurulacak anahtar Görüntüleme yetkisini alır mı (ADR 178) */
6875
+ view: boolean;
6876
+ /** Kurulacak anahtarın kasası bu şubede açılır; null = kasa kapalı (ADR 178) */
6877
+ tillLocationId: string | null;
6878
+ /** Kasanın şubesinin adı */
6879
+ tillLocationName: string | null;
6391
6880
  /** Eklentiye yapıştırılacak kod: yalnız bu yanıtta; saklanmaz, yeniden gösterilmez. */
6392
6881
  token: string;
6393
6882
  }
@@ -6457,19 +6946,60 @@ export interface ConnectShopData {
6457
6946
  /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
6458
6947
  lastDelivery: {
6459
6948
  at: string;
6460
- result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body';
6949
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
6461
6950
  } | null;
6462
6951
  /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
6463
6952
  lastRefusal: {
6464
6953
  at: string;
6465
6954
  reason: 'bad_signature';
6466
6955
  } | null;
6467
- /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı; yoksa null. Bağlantı silinince anahtar da iptal edilir. */
6956
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
6468
6957
  pluginKey: {
6469
6958
  id: string;
6470
6959
  prefix: string;
6471
6960
  name: string;
6961
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
6962
+ abilities: Array<'view' | 'till'>;
6963
+ /** Kasa açıksa şubesi; değilse null */
6964
+ tillLocationId: string | null;
6965
+ /** Kasanın şubesinin adı; değilse null */
6966
+ tillLocationName: string | null;
6967
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
6968
+ tillArchived: boolean;
6472
6969
  } | null;
6970
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
6971
+ shopName: string | null;
6972
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
6973
+ settings: {
6974
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
6975
+ tax: {
6976
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
6977
+ giftcard: 'payment' | 'discount';
6978
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
6979
+ cashback: 'payment' | 'discount';
6980
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
6981
+ voucher: 'payment' | 'discount';
6982
+ };
6983
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
6984
+ refundReverses: 'code_orders' | 'all' | 'never';
6985
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
6986
+ holdDays: number;
6987
+ };
6988
+ accepts: {
6989
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
6990
+ programIds: string[];
6991
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
6992
+ ceiling: {
6993
+ id: string;
6994
+ name: string;
6995
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
6996
+ }[] | null;
6997
+ };
6998
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
6999
+ unbacked: {
7000
+ count: number;
7001
+ lastAt: string | null;
7002
+ };
6473
7003
  };
6474
7004
  /** Bağlantının gizli anahtarı: WooCommerce webhook'unun "Gizli anahtar"ı. Yalnız bu yanıtta; yeniden gösterilmez. */
6475
7005
  secret: string;
@@ -6480,6 +7010,10 @@ export interface ConnectShopData {
6480
7010
  role: string;
6481
7011
  /** `rwk_…` (test ortamında `rwk_test_…`): yalnız bu yanıtta; Rewloy yalnız özetini saklar. */
6482
7012
  token: string;
7013
+ /** Kodu alan kişinin seçtiği yetkiler (ADR 178): `view`, `till` */
7014
+ abilities: Array<'view' | 'till'>;
7015
+ /** Kasa açıksa şubesi (işlemlerde `locationId`); değilse null */
7016
+ tillLocationId: string | null;
6483
7017
  };
6484
7018
  mode: 'live' | 'test';
6485
7019
  }
@@ -6488,73 +7022,114 @@ export interface ConnectShopArgs extends RequestOptions {
6488
7022
  /** The JSON body. */
6489
7023
  body: ConnectShopBody;
6490
7024
  }
6491
- /** Header parameters of `listTeam`, as sent on the wire. */
6492
- export interface ListTeamHeaders {
6493
- /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
6494
- 'Rewloy-Merchant'?: string;
6495
- }
6496
- /** The `data` of `listTeam`'s answer. */
6497
- export interface ListTeamData {
6498
- members: {
6499
- seatId: string;
6500
- email: string;
6501
- isOwner: boolean;
6502
- status: 'active' | 'suspended';
6503
- createdAt: string;
6504
- /** İki adımlı doğrulama açık */
6505
- mfa: boolean;
6506
- /** Son değişiklik yaptığı an (okutma, kayıt, gönderim); sayfa okumak kaydedilmez */
6507
- lastAction: string | null;
6508
- grants: {
6509
- roleName: string;
6510
- scopeText: string;
6511
- }[];
6512
- }[];
6513
- invites: {
6514
- id: string;
6515
- email: string;
6516
- roles: string | null;
6517
- invitedBy: string | null;
6518
- createdAt: string;
6519
- expiresAt: string;
6520
- }[];
6521
- seats: {
6522
- used: number;
6523
- pendingInvites: number;
6524
- limit: number | null;
6525
- };
6526
- require2fa: boolean;
6527
- }
6528
- /** Arguments of `listTeam`. */
6529
- export interface ListTeamArgs extends RequestOptions {
6530
- /**
6531
- * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
6532
- *
6533
- * `Rewloy-Merchant`. Defaults to the client's `merchant`.
6534
- */
6535
- merchant?: string | undefined;
7025
+ /** Path parameters of `setShopPluginAbilities`. */
7026
+ export interface SetShopPluginAbilitiesParams {
7027
+ id: string;
6536
7028
  }
6537
- /** Header parameters of `listRoles`, as sent on the wire. */
6538
- export interface ListRolesHeaders {
7029
+ /** Header parameters of `setShopPluginAbilities`, as sent on the wire. */
7030
+ export interface SetShopPluginAbilitiesHeaders {
6539
7031
  /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
6540
7032
  'Rewloy-Merchant'?: string;
6541
7033
  }
6542
- /** The `data` of `listRoles`'s answer. */
6543
- export interface ListRolesData {
6544
- roles: {
7034
+ /** Request body of `setShopPluginAbilities`. */
7035
+ export interface SetShopPluginAbilitiesBody {
7036
+ view: boolean;
7037
+ /** Kasanın şubesi; null = kasa kapalı */
7038
+ tillLocationId: string | null;
7039
+ /** Neden (yalnız ekibiniz görür) */
7040
+ reason: string;
7041
+ password: string;
7042
+ }
7043
+ /** The `data` of `setShopPluginAbilities`'s answer. */
7044
+ export interface SetShopPluginAbilitiesData {
7045
+ id: string;
7046
+ platform: 'shopify' | 'woocommerce';
7047
+ programId: string;
7048
+ programName: string;
7049
+ programType: string;
7050
+ currency: string;
7051
+ /** order: her sipariş · amount: her `perAmountMinor` tutar için */
7052
+ rule: 'order' | 'amount';
7053
+ perAmountMinor: number;
7054
+ /** Her seferinde eklenen damga/puan/ziyaret (cashback kartında tutar oranla hesaplanır) */
7055
+ step: number;
7056
+ enabled: boolean;
7057
+ lastOrderAt: string | null;
7058
+ createdAt: string;
7059
+ /** Mağazanızın sipariş bildirimini göndereceği adres */
7060
+ webhookUrl: string;
7061
+ /** Kayıtlı siparişler sonucuna göre: credited işlendi · unmatched e-postası müşteriyle eşleşmedi · below eşiğin altında · paused bağlantı kapalıyken · currency para birimi farklı */
7062
+ orders: {
7063
+ credited: number;
7064
+ unmatched: number;
7065
+ below: number;
7066
+ paused: number;
7067
+ currency: number;
7068
+ };
7069
+ /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
7070
+ lastDelivery: {
7071
+ at: string;
7072
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
7073
+ } | null;
7074
+ /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
7075
+ lastRefusal: {
7076
+ at: string;
7077
+ reason: 'bad_signature';
7078
+ } | null;
7079
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
7080
+ pluginKey: {
6545
7081
  id: string;
6546
- key: string | null;
7082
+ prefix: string;
6547
7083
  name: string;
6548
- permissions: string[];
6549
- }[];
6550
- permissions: {
6551
- key: string;
6552
- label: string;
6553
- area: string | null;
6554
- }[];
7084
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
7085
+ abilities: Array<'view' | 'till'>;
7086
+ /** Kasa açıksa şubesi; değilse null */
7087
+ tillLocationId: string | null;
7088
+ /** Kasanın şubesinin adı; değilse null */
7089
+ tillLocationName: string | null;
7090
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
7091
+ tillArchived: boolean;
7092
+ } | null;
7093
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
7094
+ shopName: string | null;
7095
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
7096
+ settings: {
7097
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
7098
+ tax: {
7099
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
7100
+ giftcard: 'payment' | 'discount';
7101
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
7102
+ cashback: 'payment' | 'discount';
7103
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
7104
+ voucher: 'payment' | 'discount';
7105
+ };
7106
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
7107
+ refundReverses: 'code_orders' | 'all' | 'never';
7108
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
7109
+ holdDays: number;
7110
+ };
7111
+ accepts: {
7112
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
7113
+ programIds: string[];
7114
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
7115
+ ceiling: {
7116
+ id: string;
7117
+ name: string;
7118
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7119
+ }[] | null;
7120
+ };
7121
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
7122
+ unbacked: {
7123
+ count: number;
7124
+ lastAt: string | null;
7125
+ };
6555
7126
  }
6556
- /** Arguments of `listRoles`. */
6557
- export interface ListRolesArgs extends RequestOptions {
7127
+ /** Arguments of `setShopPluginAbilities`. */
7128
+ export interface SetShopPluginAbilitiesArgs extends RequestOptions {
7129
+ /** Path parameters. */
7130
+ params: SetShopPluginAbilitiesParams;
7131
+ /** The JSON body. */
7132
+ body: SetShopPluginAbilitiesBody;
6558
7133
  /**
6559
7134
  * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
6560
7135
  *
@@ -6562,18 +7137,1024 @@ export interface ListRolesArgs extends RequestOptions {
6562
7137
  */
6563
7138
  merchant?: string | undefined;
6564
7139
  }
6565
- /** Path parameters of `getMember`. */
6566
- export interface GetMemberParams {
6567
- seatId: string;
7140
+ /** Path parameters of `quoteCheckoutCode`. */
7141
+ export interface QuoteCheckoutCodeParams {
7142
+ id: string;
6568
7143
  }
6569
- /** Header parameters of `getMember`, as sent on the wire. */
6570
- export interface GetMemberHeaders {
7144
+ /** Header parameters of `quoteCheckoutCode`, as sent on the wire. */
7145
+ export interface QuoteCheckoutCodeHeaders {
6571
7146
  /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
6572
7147
  'Rewloy-Merchant'?: string;
6573
7148
  }
6574
- /** The `data` of `getMember`'s answer. */
6575
- export interface GetMemberData {
6576
- member: {
7149
+ /** Request body of `quoteCheckoutCode`. */
7150
+ export interface QuoteCheckoutCodeBody {
7151
+ /** Müşterinin yazdığı kod: `RW-XXXX-XXXX` (büyük/küçük harf, boşluk ve tire fark etmez) */
7152
+ code: string;
7153
+ /** Siparişin para birimi (ISO 4217, örn. TRY) */
7154
+ currency: string;
7155
+ /** İsteğe bağlı: alışverişçinin kişisel veri taşımayan anahtarı (ör. WooCommerce oturumunun HMAC'i); kendi soru bütçesi olur */
7156
+ shopper?: string;
7157
+ /** İsteğe bağlı: kodu soran sipariş. Kod bu siparişteyse `CODE_USED` yerine bu siparişin kullanımı döner (ADR 180). */
7158
+ orderId?: string;
7159
+ }
7160
+ /** The `data` of `quoteCheckoutCode`'s answer. */
7161
+ export interface QuoteCheckoutCodeData {
7162
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7163
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7164
+ programId: string;
7165
+ programName: string;
7166
+ currency: string;
7167
+ maxMinor: number | null;
7168
+ percent: number | null;
7169
+ amountMinor: number | null;
7170
+ tax: 'payment' | 'discount' | null;
7171
+ cardId: string;
7172
+ cardLast4: string;
7173
+ codeLast4: string;
7174
+ firstUseBy: string;
7175
+ /** Kodun bir siparişe bağlanabileceği son an */
7176
+ attachBy: string;
7177
+ /** Yalnız `orderId` gönderildiyse: bu siparişin bu koddaki kullanımı; kod bu siparişin değilse null */
7178
+ redemption?: {
7179
+ id: string;
7180
+ orderId: string;
7181
+ /** Kodun son 4 karakteri (sipariş notu için) */
7182
+ codeLast4: string;
7183
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7184
+ cardId: string | null;
7185
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7186
+ cardLast4: string;
7187
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7188
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7189
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7190
+ programId: string;
7191
+ programName: string;
7192
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7193
+ amountMinor: number;
7194
+ percent: number | null;
7195
+ currency: string;
7196
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7197
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7198
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7199
+ generation: number;
7200
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7201
+ heldUntil: string | null;
7202
+ capturedMinor: number;
7203
+ refundedMinor: number;
7204
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7205
+ late: boolean;
7206
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7207
+ createdAt: string;
7208
+ capturedAt: string | null;
7209
+ releasedAt: string | null;
7210
+ } | null;
7211
+ }
7212
+ /** Arguments of `quoteCheckoutCode`. */
7213
+ export interface QuoteCheckoutCodeArgs extends RequestOptions {
7214
+ /** Path parameters. */
7215
+ params: QuoteCheckoutCodeParams;
7216
+ /** The JSON body. */
7217
+ body: QuoteCheckoutCodeBody;
7218
+ /**
7219
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7220
+ *
7221
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7222
+ */
7223
+ merchant?: string | undefined;
7224
+ }
7225
+ /** Path parameters of `listOrderRedemptions`. */
7226
+ export interface ListOrderRedemptionsParams {
7227
+ id: string;
7228
+ /** Mağazanın sipariş numarası (WooCommerce: sipariş kimliği) */
7229
+ orderId: string;
7230
+ }
7231
+ /** Header parameters of `listOrderRedemptions`, as sent on the wire. */
7232
+ export interface ListOrderRedemptionsHeaders {
7233
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7234
+ 'Rewloy-Merchant'?: string;
7235
+ }
7236
+ /** One item of `listOrderRedemptions`'s list. */
7237
+ export interface ListOrderRedemptionsItem {
7238
+ id: string;
7239
+ orderId: string;
7240
+ /** Kodun son 4 karakteri (sipariş notu için) */
7241
+ codeLast4: string;
7242
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7243
+ cardId: string | null;
7244
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7245
+ cardLast4: string;
7246
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7247
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7248
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7249
+ programId: string;
7250
+ programName: string;
7251
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7252
+ amountMinor: number;
7253
+ percent: number | null;
7254
+ currency: string;
7255
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7256
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7257
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7258
+ generation: number;
7259
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7260
+ heldUntil: string | null;
7261
+ capturedMinor: number;
7262
+ refundedMinor: number;
7263
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7264
+ late: boolean;
7265
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7266
+ createdAt: string;
7267
+ capturedAt: string | null;
7268
+ releasedAt: string | null;
7269
+ }
7270
+ /** The `data` of `listOrderRedemptions`'s answer. */
7271
+ export type ListOrderRedemptionsData = ListOrderRedemptionsItem[];
7272
+ /** Arguments of `listOrderRedemptions`. */
7273
+ export interface ListOrderRedemptionsArgs extends RequestOptions {
7274
+ /** Path parameters. */
7275
+ params: ListOrderRedemptionsParams;
7276
+ /**
7277
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7278
+ *
7279
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7280
+ */
7281
+ merchant?: string | undefined;
7282
+ }
7283
+ /** Path parameters of `holdCheckoutCode`. */
7284
+ export interface HoldCheckoutCodeParams {
7285
+ id: string;
7286
+ /** Mağazanın sipariş numarası (WooCommerce: sipariş kimliği) */
7287
+ orderId: string;
7288
+ }
7289
+ /** Header parameters of `holdCheckoutCode`, as sent on the wire. */
7290
+ export interface HoldCheckoutCodeHeaders {
7291
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7292
+ 'Rewloy-Merchant'?: string;
7293
+ }
7294
+ /** Request body of `holdCheckoutCode`. */
7295
+ export interface HoldCheckoutCodeBody {
7296
+ /** Müşterinin yazdığı kod: `RW-XXXX-XXXX` (büyük/küçük harf, boşluk ve tire fark etmez) */
7297
+ code: string;
7298
+ /** Siparişin para birimi (ISO 4217, örn. TRY) */
7299
+ currency: string;
7300
+ amountMinor?: number;
7301
+ /** Siparişin indirimden önceki toplamı (kuruş); verilirse amountMinor onu aşamaz */
7302
+ orderTotalMinor?: number;
7303
+ }
7304
+ /** The `data` of `holdCheckoutCode`'s answer. */
7305
+ export interface HoldCheckoutCodeData {
7306
+ id: string;
7307
+ orderId: string;
7308
+ /** Kodun son 4 karakteri (sipariş notu için) */
7309
+ codeLast4: string;
7310
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7311
+ cardId: string | null;
7312
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7313
+ cardLast4: string;
7314
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7315
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7316
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7317
+ programId: string;
7318
+ programName: string;
7319
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7320
+ amountMinor: number;
7321
+ percent: number | null;
7322
+ currency: string;
7323
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7324
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7325
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7326
+ generation: number;
7327
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7328
+ heldUntil: string | null;
7329
+ capturedMinor: number;
7330
+ refundedMinor: number;
7331
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7332
+ late: boolean;
7333
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7334
+ createdAt: string;
7335
+ capturedAt: string | null;
7336
+ releasedAt: string | null;
7337
+ }
7338
+ /** Arguments of `holdCheckoutCode`. */
7339
+ export interface HoldCheckoutCodeArgs extends RequestOptions {
7340
+ /** Path parameters. */
7341
+ params: HoldCheckoutCodeParams;
7342
+ /** The JSON body. */
7343
+ body: HoldCheckoutCodeBody;
7344
+ /**
7345
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7346
+ *
7347
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7348
+ */
7349
+ merchant?: string | undefined;
7350
+ }
7351
+ /** Path parameters of `captureCheckoutOrder`. */
7352
+ export interface CaptureCheckoutOrderParams {
7353
+ id: string;
7354
+ /** Mağazanın sipariş numarası (WooCommerce: sipariş kimliği) */
7355
+ orderId: string;
7356
+ }
7357
+ /** Header parameters of `captureCheckoutOrder`, as sent on the wire. */
7358
+ export interface CaptureCheckoutOrderHeaders {
7359
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7360
+ 'Rewloy-Merchant'?: string;
7361
+ }
7362
+ /** Request body of `captureCheckoutOrder`. */
7363
+ export interface CaptureCheckoutOrderBody {
7364
+ captures?: {
7365
+ id: string;
7366
+ amountMinor: number;
7367
+ }[];
7368
+ }
7369
+ /** One item of `captureCheckoutOrder`'s list. */
7370
+ export interface CaptureCheckoutOrderItem {
7371
+ id: string;
7372
+ orderId: string;
7373
+ /** Kodun son 4 karakteri (sipariş notu için) */
7374
+ codeLast4: string;
7375
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7376
+ cardId: string | null;
7377
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7378
+ cardLast4: string;
7379
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7380
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7381
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7382
+ programId: string;
7383
+ programName: string;
7384
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7385
+ amountMinor: number;
7386
+ percent: number | null;
7387
+ currency: string;
7388
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7389
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7390
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7391
+ generation: number;
7392
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7393
+ heldUntil: string | null;
7394
+ capturedMinor: number;
7395
+ refundedMinor: number;
7396
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7397
+ late: boolean;
7398
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7399
+ createdAt: string;
7400
+ capturedAt: string | null;
7401
+ releasedAt: string | null;
7402
+ }
7403
+ /** The `data` of `captureCheckoutOrder`'s answer. */
7404
+ export type CaptureCheckoutOrderData = CaptureCheckoutOrderItem[];
7405
+ /** Arguments of `captureCheckoutOrder`. */
7406
+ export interface CaptureCheckoutOrderArgs extends RequestOptions {
7407
+ /** Path parameters. */
7408
+ params: CaptureCheckoutOrderParams;
7409
+ /** The JSON body. */
7410
+ body?: CaptureCheckoutOrderBody;
7411
+ /**
7412
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7413
+ *
7414
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7415
+ */
7416
+ merchant?: string | undefined;
7417
+ }
7418
+ /** Path parameters of `releaseCheckoutOrder`. */
7419
+ export interface ReleaseCheckoutOrderParams {
7420
+ id: string;
7421
+ /** Mağazanın sipariş numarası (WooCommerce: sipariş kimliği) */
7422
+ orderId: string;
7423
+ }
7424
+ /** Header parameters of `releaseCheckoutOrder`, as sent on the wire. */
7425
+ export interface ReleaseCheckoutOrderHeaders {
7426
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7427
+ 'Rewloy-Merchant'?: string;
7428
+ }
7429
+ /** Request body of `releaseCheckoutOrder`. */
7430
+ export interface ReleaseCheckoutOrderBody {
7431
+ reason?: 'cancelled' | 'failed' | 'shop';
7432
+ }
7433
+ /** One item of `releaseCheckoutOrder`'s list. */
7434
+ export interface ReleaseCheckoutOrderItem {
7435
+ id: string;
7436
+ orderId: string;
7437
+ /** Kodun son 4 karakteri (sipariş notu için) */
7438
+ codeLast4: string;
7439
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7440
+ cardId: string | null;
7441
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7442
+ cardLast4: string;
7443
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7444
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7445
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7446
+ programId: string;
7447
+ programName: string;
7448
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7449
+ amountMinor: number;
7450
+ percent: number | null;
7451
+ currency: string;
7452
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7453
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7454
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7455
+ generation: number;
7456
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7457
+ heldUntil: string | null;
7458
+ capturedMinor: number;
7459
+ refundedMinor: number;
7460
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7461
+ late: boolean;
7462
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7463
+ createdAt: string;
7464
+ capturedAt: string | null;
7465
+ releasedAt: string | null;
7466
+ }
7467
+ /** The `data` of `releaseCheckoutOrder`'s answer. */
7468
+ export type ReleaseCheckoutOrderData = ReleaseCheckoutOrderItem[];
7469
+ /** Arguments of `releaseCheckoutOrder`. */
7470
+ export interface ReleaseCheckoutOrderArgs extends RequestOptions {
7471
+ /** Path parameters. */
7472
+ params: ReleaseCheckoutOrderParams;
7473
+ /** The JSON body. */
7474
+ body?: ReleaseCheckoutOrderBody;
7475
+ /**
7476
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7477
+ *
7478
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7479
+ */
7480
+ merchant?: string | undefined;
7481
+ }
7482
+ /** Path parameters of `refundCheckoutOrder`. */
7483
+ export interface RefundCheckoutOrderParams {
7484
+ id: string;
7485
+ /** Mağazanın sipariş numarası (WooCommerce: sipariş kimliği) */
7486
+ orderId: string;
7487
+ }
7488
+ /** Header parameters of `refundCheckoutOrder`, as sent on the wire. */
7489
+ export interface RefundCheckoutOrderHeaders {
7490
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7491
+ 'Rewloy-Merchant'?: string;
7492
+ }
7493
+ /** Request body of `refundCheckoutOrder`. */
7494
+ export interface RefundCheckoutOrderBody {
7495
+ amountMinor?: number;
7496
+ redemptionId?: string;
7497
+ }
7498
+ /** The `data` of `refundCheckoutOrder`'s answer. */
7499
+ export interface RefundCheckoutOrderData {
7500
+ redemptions: {
7501
+ id: string;
7502
+ orderId: string;
7503
+ /** Kodun son 4 karakteri (sipariş notu için) */
7504
+ codeLast4: string;
7505
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7506
+ cardId: string | null;
7507
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7508
+ cardLast4: string;
7509
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7510
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7511
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7512
+ programId: string;
7513
+ programName: string;
7514
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7515
+ amountMinor: number;
7516
+ percent: number | null;
7517
+ currency: string;
7518
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7519
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7520
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7521
+ generation: number;
7522
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7523
+ heldUntil: string | null;
7524
+ capturedMinor: number;
7525
+ refundedMinor: number;
7526
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7527
+ late: boolean;
7528
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7529
+ createdAt: string;
7530
+ capturedAt: string | null;
7531
+ releasedAt: string | null;
7532
+ }[];
7533
+ unearned: {
7534
+ cardLast4: string;
7535
+ /** stamp, point, visit ya da try_minor (kuruş) */
7536
+ unit: string;
7537
+ earned: number;
7538
+ reversed: number;
7539
+ /** Kartta kalmadığı için geri alınamayan kısım */
7540
+ short: number;
7541
+ } | null;
7542
+ }
7543
+ /** Arguments of `refundCheckoutOrder`. */
7544
+ export interface RefundCheckoutOrderArgs extends RequestOptions {
7545
+ /** Path parameters. */
7546
+ params: RefundCheckoutOrderParams;
7547
+ /** The JSON body. */
7548
+ body?: RefundCheckoutOrderBody;
7549
+ /**
7550
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7551
+ *
7552
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7553
+ */
7554
+ merchant?: string | undefined;
7555
+ }
7556
+ /** Path parameters of `listShopRedemptions`. */
7557
+ export interface ListShopRedemptionsParams {
7558
+ id: string;
7559
+ }
7560
+ /** Query parameters of `listShopRedemptions`. */
7561
+ export interface ListShopRedemptionsQuery {
7562
+ state?: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7563
+ page?: number;
7564
+ limit?: number;
7565
+ }
7566
+ /** Header parameters of `listShopRedemptions`, as sent on the wire. */
7567
+ export interface ListShopRedemptionsHeaders {
7568
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7569
+ 'Rewloy-Merchant'?: string;
7570
+ }
7571
+ /** One item of `listShopRedemptions`'s list. */
7572
+ export interface ListShopRedemptionsItem {
7573
+ id: string;
7574
+ orderId: string;
7575
+ /** Kodun son 4 karakteri (sipariş notu için) */
7576
+ codeLast4: string;
7577
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7578
+ cardId: string | null;
7579
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7580
+ cardLast4: string;
7581
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7582
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7583
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7584
+ programId: string;
7585
+ programName: string;
7586
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7587
+ amountMinor: number;
7588
+ percent: number | null;
7589
+ currency: string;
7590
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7591
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7592
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7593
+ generation: number;
7594
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7595
+ heldUntil: string | null;
7596
+ capturedMinor: number;
7597
+ refundedMinor: number;
7598
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7599
+ late: boolean;
7600
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7601
+ createdAt: string;
7602
+ capturedAt: string | null;
7603
+ releasedAt: string | null;
7604
+ }
7605
+ /** Arguments of `listShopRedemptions`. */
7606
+ export interface ListShopRedemptionsArgs extends RequestOptions {
7607
+ /** Path parameters. */
7608
+ params: ListShopRedemptionsParams;
7609
+ /** Query parameters. */
7610
+ query?: ListShopRedemptionsQuery;
7611
+ /**
7612
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7613
+ *
7614
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7615
+ */
7616
+ merchant?: string | undefined;
7617
+ }
7618
+ /** Path parameters of `releaseShopRedemption`. */
7619
+ export interface ReleaseShopRedemptionParams {
7620
+ id: string;
7621
+ redemptionId: string;
7622
+ }
7623
+ /** Header parameters of `releaseShopRedemption`, as sent on the wire. */
7624
+ export interface ReleaseShopRedemptionHeaders {
7625
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7626
+ 'Rewloy-Merchant'?: string;
7627
+ }
7628
+ /** Request body of `releaseShopRedemption`. */
7629
+ export interface ReleaseShopRedemptionBody {
7630
+ /** Neden (kayda geçer, defter kaydının notu olur) */
7631
+ reason: string;
7632
+ }
7633
+ /** The `data` of `releaseShopRedemption`'s answer. */
7634
+ export interface ReleaseShopRedemptionData {
7635
+ id: string;
7636
+ orderId: string;
7637
+ /** Kodun son 4 karakteri (sipariş notu için) */
7638
+ codeLast4: string;
7639
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7640
+ cardId: string | null;
7641
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7642
+ cardLast4: string;
7643
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7644
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7645
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7646
+ programId: string;
7647
+ programName: string;
7648
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7649
+ amountMinor: number;
7650
+ percent: number | null;
7651
+ currency: string;
7652
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7653
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7654
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7655
+ generation: number;
7656
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7657
+ heldUntil: string | null;
7658
+ capturedMinor: number;
7659
+ refundedMinor: number;
7660
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7661
+ late: boolean;
7662
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7663
+ createdAt: string;
7664
+ capturedAt: string | null;
7665
+ releasedAt: string | null;
7666
+ }
7667
+ /** Arguments of `releaseShopRedemption`. */
7668
+ export interface ReleaseShopRedemptionArgs extends RequestOptions {
7669
+ /** Path parameters. */
7670
+ params: ReleaseShopRedemptionParams;
7671
+ /** The JSON body. */
7672
+ body: ReleaseShopRedemptionBody;
7673
+ /**
7674
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7675
+ *
7676
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7677
+ */
7678
+ merchant?: string | undefined;
7679
+ }
7680
+ /** Path parameters of `refundShopRedemption`. */
7681
+ export interface RefundShopRedemptionParams {
7682
+ id: string;
7683
+ redemptionId: string;
7684
+ }
7685
+ /** Header parameters of `refundShopRedemption`, as sent on the wire. */
7686
+ export interface RefundShopRedemptionHeaders {
7687
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7688
+ 'Rewloy-Merchant'?: string;
7689
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
7690
+ 'Idempotency-Key': string;
7691
+ }
7692
+ /** Request body of `refundShopRedemption`. */
7693
+ export interface RefundShopRedemptionBody {
7694
+ amountMinor: number;
7695
+ /** Neden (kayda geçer, defter kaydının notu olur) */
7696
+ reason: string;
7697
+ }
7698
+ /** The `data` of `refundShopRedemption`'s answer. */
7699
+ export interface RefundShopRedemptionData {
7700
+ id: string;
7701
+ orderId: string;
7702
+ /** Kodun son 4 karakteri (sipariş notu için) */
7703
+ codeLast4: string;
7704
+ /** Kartın bu mağazaya özel, opak kimliği: bir siparişteki kodların aynı karta ait olup olmadığını karşılaştırmak için; başka bir şey söylemez */
7705
+ cardId: string | null;
7706
+ /** Kart numarasının son 4 karakteri; seri numarası mağazaya verilmez */
7707
+ cardLast4: string;
7708
+ /** balance: bakiye (hediye kartı, cashback) · percent: yüzde indirim · amount: kuponun tutarı · link: değer yok, sipariş bu karta işlenir (damga, puan, VIP) */
7709
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7710
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7711
+ programId: string;
7712
+ programName: string;
7713
+ /** balance: ayrılan tutar; amount/percent: siparişe uygulanan indirim (bilgi için); link: 0 */
7714
+ amountMinor: number;
7715
+ percent: number | null;
7716
+ currency: string;
7717
+ /** held ayrıldı · captured düşüldü · released bırakıldı · expired süresi dolup bırakıldı · refunded iade edildi · unbacked karşılıksız (ayırma bittikten sonra ödendi, kartta değer kalmamıştı) */
7718
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
7719
+ /** Aynı sipariş aynı kodu bıraktıktan sonra yeniden ayırdıkça artar */
7720
+ generation: number;
7721
+ /** Ayrılmışken: ödenmezse tutarın karta döneceği an (bağlantının bekletme süresi) */
7722
+ heldUntil: string | null;
7723
+ capturedMinor: number;
7724
+ refundedMinor: number;
7725
+ /** Ayırmanın süresi dolduktan sonra düşüldü (ya da karşılıksız kaldı) */
7726
+ late: boolean;
7727
+ releaseReason: 'cancelled' | 'failed' | 'expired' | 'merchant' | 'shop' | null;
7728
+ createdAt: string;
7729
+ capturedAt: string | null;
7730
+ releasedAt: string | null;
7731
+ }
7732
+ /** Arguments of `refundShopRedemption`. */
7733
+ export interface RefundShopRedemptionArgs extends RequestOptions {
7734
+ /** Path parameters. */
7735
+ params: RefundShopRedemptionParams;
7736
+ /** The JSON body. */
7737
+ body: RefundShopRedemptionBody;
7738
+ /**
7739
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
7740
+ *
7741
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
7742
+ */
7743
+ idempotencyKey?: string | undefined;
7744
+ /**
7745
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7746
+ *
7747
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7748
+ */
7749
+ merchant?: string | undefined;
7750
+ }
7751
+ /** Path parameters of `setShopSettings`. */
7752
+ export interface SetShopSettingsParams {
7753
+ id: string;
7754
+ }
7755
+ /** Header parameters of `setShopSettings`, as sent on the wire. */
7756
+ export interface SetShopSettingsHeaders {
7757
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7758
+ 'Rewloy-Merchant'?: string;
7759
+ }
7760
+ /** Request body of `setShopSettings`. */
7761
+ export interface SetShopSettingsBody {
7762
+ tax?: {
7763
+ giftcard?: 'payment' | 'discount';
7764
+ cashback?: 'payment' | 'discount';
7765
+ voucher?: 'payment' | 'discount';
7766
+ };
7767
+ refundReverses?: 'code_orders' | 'all' | 'never';
7768
+ holdDays?: number;
7769
+ accepts?: {
7770
+ programIds: string[];
7771
+ };
7772
+ }
7773
+ /** The `data` of `setShopSettings`'s answer. */
7774
+ export interface SetShopSettingsData {
7775
+ id: string;
7776
+ platform: 'shopify' | 'woocommerce';
7777
+ programId: string;
7778
+ programName: string;
7779
+ programType: string;
7780
+ currency: string;
7781
+ /** order: her sipariş · amount: her `perAmountMinor` tutar için */
7782
+ rule: 'order' | 'amount';
7783
+ perAmountMinor: number;
7784
+ /** Her seferinde eklenen damga/puan/ziyaret (cashback kartında tutar oranla hesaplanır) */
7785
+ step: number;
7786
+ enabled: boolean;
7787
+ lastOrderAt: string | null;
7788
+ createdAt: string;
7789
+ /** Mağazanızın sipariş bildirimini göndereceği adres */
7790
+ webhookUrl: string;
7791
+ /** Kayıtlı siparişler sonucuna göre: credited işlendi · unmatched e-postası müşteriyle eşleşmedi · below eşiğin altında · paused bağlantı kapalıyken · currency para birimi farklı */
7792
+ orders: {
7793
+ credited: number;
7794
+ unmatched: number;
7795
+ below: number;
7796
+ paused: number;
7797
+ currency: number;
7798
+ };
7799
+ /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
7800
+ lastDelivery: {
7801
+ at: string;
7802
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
7803
+ } | null;
7804
+ /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
7805
+ lastRefusal: {
7806
+ at: string;
7807
+ reason: 'bad_signature';
7808
+ } | null;
7809
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
7810
+ pluginKey: {
7811
+ id: string;
7812
+ prefix: string;
7813
+ name: string;
7814
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
7815
+ abilities: Array<'view' | 'till'>;
7816
+ /** Kasa açıksa şubesi; değilse null */
7817
+ tillLocationId: string | null;
7818
+ /** Kasanın şubesinin adı; değilse null */
7819
+ tillLocationName: string | null;
7820
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
7821
+ tillArchived: boolean;
7822
+ } | null;
7823
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
7824
+ shopName: string | null;
7825
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
7826
+ settings: {
7827
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
7828
+ tax: {
7829
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
7830
+ giftcard: 'payment' | 'discount';
7831
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
7832
+ cashback: 'payment' | 'discount';
7833
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
7834
+ voucher: 'payment' | 'discount';
7835
+ };
7836
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
7837
+ refundReverses: 'code_orders' | 'all' | 'never';
7838
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
7839
+ holdDays: number;
7840
+ };
7841
+ accepts: {
7842
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
7843
+ programIds: string[];
7844
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
7845
+ ceiling: {
7846
+ id: string;
7847
+ name: string;
7848
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7849
+ }[] | null;
7850
+ };
7851
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
7852
+ unbacked: {
7853
+ count: number;
7854
+ lastAt: string | null;
7855
+ };
7856
+ }
7857
+ /** Arguments of `setShopSettings`. */
7858
+ export interface SetShopSettingsArgs extends RequestOptions {
7859
+ /** Path parameters. */
7860
+ params: SetShopSettingsParams;
7861
+ /** The JSON body. */
7862
+ body?: SetShopSettingsBody;
7863
+ /**
7864
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7865
+ *
7866
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7867
+ */
7868
+ merchant?: string | undefined;
7869
+ }
7870
+ /** Path parameters of `setShopCeiling`. */
7871
+ export interface SetShopCeilingParams {
7872
+ id: string;
7873
+ }
7874
+ /** Header parameters of `setShopCeiling`, as sent on the wire. */
7875
+ export interface SetShopCeilingHeaders {
7876
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
7877
+ 'Rewloy-Merchant'?: string;
7878
+ }
7879
+ /** Request body of `setShopCeiling`. */
7880
+ export interface SetShopCeilingBody {
7881
+ programIds: string[];
7882
+ }
7883
+ /** The `data` of `setShopCeiling`'s answer. */
7884
+ export interface SetShopCeilingData {
7885
+ id: string;
7886
+ platform: 'shopify' | 'woocommerce';
7887
+ programId: string;
7888
+ programName: string;
7889
+ programType: string;
7890
+ currency: string;
7891
+ /** order: her sipariş · amount: her `perAmountMinor` tutar için */
7892
+ rule: 'order' | 'amount';
7893
+ perAmountMinor: number;
7894
+ /** Her seferinde eklenen damga/puan/ziyaret (cashback kartında tutar oranla hesaplanır) */
7895
+ step: number;
7896
+ enabled: boolean;
7897
+ lastOrderAt: string | null;
7898
+ createdAt: string;
7899
+ /** Mağazanızın sipariş bildirimini göndereceği adres */
7900
+ webhookUrl: string;
7901
+ /** Kayıtlı siparişler sonucuna göre: credited işlendi · unmatched e-postası müşteriyle eşleşmedi · below eşiğin altında · paused bağlantı kapalıyken · currency para birimi farklı */
7902
+ orders: {
7903
+ credited: number;
7904
+ unmatched: number;
7905
+ below: number;
7906
+ paused: number;
7907
+ currency: number;
7908
+ };
7909
+ /** Mağazadan gelen son İMZALI istek: ne zaman ve ne oldu (credited işlendi · unmatched kartı yok · below eşiğin altında · paused bağlantı kapalıyken · currency başka para birimi · duplicate zaten kayıtlı siparişin tekrarı · ignored henüz ödenmemiş sipariş (kaydedilmez) · no_id sipariş numarası yok · bad_body gövde JSON değil). Hiç gelmediyse null. */
7910
+ lastDelivery: {
7911
+ at: string;
7912
+ result: 'credited' | 'unmatched' | 'below' | 'paused' | 'currency' | 'duplicate' | 'ignored' | 'no_id' | 'bad_body' | 'cancelled' | 'refunded';
7913
+ } | null;
7914
+ /** Bu adrese gelen ve imzası tutmadığı için reddedilen son istek (dakikada en çok bir kez yazılır). Sık görünüyorsa mağazadaki gizli anahtar bu bağlantınınki değildir. Hiç olmadıysa null. */
7915
+ lastRefusal: {
7916
+ at: string;
7917
+ reason: 'bad_signature';
7918
+ } | null;
7919
+ /** Bağlantı koduyla kurulduysa (`POST /v1/shops/connect`) eklentinin yalnız bu bağlantıya bağlı, etkin API anahtarı ve yetkileri; yoksa null. Bağlantı silinince anahtar da iptal edilir. Yetkiler `PUT /v1/shops/{id}/plugin-abilities` ile değişir. */
7920
+ pluginKey: {
7921
+ id: string;
7922
+ prefix: string;
7923
+ name: string;
7924
+ /** Anahtarın bağlantının dışında yapabildikleri (ADR 178): `view` Görüntüleme (kartlar, durumları, programın sayıları ve son işlemleri; kişisel veri yok), `till` Kasa (tek bir şubede) */
7925
+ abilities: Array<'view' | 'till'>;
7926
+ /** Kasa açıksa şubesi; değilse null */
7927
+ tillLocationId: string | null;
7928
+ /** Kasanın şubesinin adı; değilse null */
7929
+ tillLocationName: string | null;
7930
+ /** Kasanın şubesi arşivlendi: kasa orada çalışmaz ve `abilities` içinde `till` yoktur; başka bir şube seçilene kadar */
7931
+ tillArchived: boolean;
7932
+ } | null;
7933
+ /** Mağazanın adı (eklenti bağlanırken gönderdi): kart sahibi bir kodun nerede kullanıldığını bu adla görür. Yoksa null. */
7934
+ shopName: string | null;
7935
+ /** Ödeme adımındaki kart kodlarının ayarları (ADR 179). `PATCH /v1/shops/{id}/settings` değiştirir. */
7936
+ settings: {
7937
+ /** Kart değerinin siparişe nasıl uygulanacağı; eklenti uygular. Hangisinin doğru olduğu muhasebecinizin kararıdır. */
7938
+ tax: {
7939
+ /** Hediye kartı: `payment` (varsayılan) vergiden sonra, ödeme gibi — KDV değişmez; `discount` vergiden önce kupon gibi — KDV matrahı düşer */
7940
+ giftcard: 'payment' | 'discount';
7941
+ /** Cashback: `discount` (varsayılan) ya da `payment` */
7942
+ cashback: 'payment' | 'discount';
7943
+ /** Tutarlı kupon: `discount` (varsayılan) ya da `payment`. Yüzdelik indirim her zaman `discount` */
7944
+ voucher: 'payment' | 'discount';
7945
+ };
7946
+ /** İade edilen siparişin kazancı: `code_orders` (varsayılan) yalnız Rewloy kodu kullanılan siparişlerde geri alınır, `all` her iade edilen siparişte, `never` hiçbirinde. Hiçbir zaman sıfırın altına inmez. */
7947
+ refundReverses: 'code_orders' | 'all' | 'never';
7948
+ /** Bekletme süresi: ödenmeyen bir siparişin ayırdığı tutar en geç bu kadar gün sonra karta döner (varsayılan 7) */
7949
+ holdDays: number;
7950
+ };
7951
+ accepts: {
7952
+ /** İşletmenin bu mağazada kodu kabul edilen DİĞER programları (açık olanlar). Bağlantının kendi programı her zaman kabul edilir ve burada yer almaz. */
7953
+ programIds: string[];
7954
+ /** Eklentinin anahtarının açabileceği programlar (tavan, `PUT /v1/shops/{id}/ceiling`), her biri adı ve türüyle: eklentinin anahtarı yalnız kendi programını okuyabildiği için adları buradan alır (adlar işletmenin kendi adlarıdır). Eklentinin anahtarı yoksa null: o zaman kodu kullanan kimliğin kendi yetkileri karar verir. */
7955
+ ceiling: {
7956
+ id: string;
7957
+ name: string;
7958
+ type: 'stamp' | 'points' | 'discount' | 'vip' | 'giftcard' | 'voucher' | 'cashback';
7959
+ }[] | null;
7960
+ };
7961
+ /** Karşılıksız kalan kod kullanımları: ayırmanın süresi dolduktan sonra ödenen ve kartta artık yetecek değer bulunmayan siparişler (`GET /v1/shops/{id}/redemptions?state=unbacked`). */
7962
+ unbacked: {
7963
+ count: number;
7964
+ lastAt: string | null;
7965
+ };
7966
+ }
7967
+ /** Arguments of `setShopCeiling`. */
7968
+ export interface SetShopCeilingArgs extends RequestOptions {
7969
+ /** Path parameters. */
7970
+ params: SetShopCeilingParams;
7971
+ /** The JSON body. */
7972
+ body: SetShopCeilingBody;
7973
+ /**
7974
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
7975
+ *
7976
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
7977
+ */
7978
+ merchant?: string | undefined;
7979
+ }
7980
+ /** Path parameters of `holderCheckoutCodes`. */
7981
+ export interface HolderCheckoutCodesParams {
7982
+ /** Kart seri numarası, XXXX-XXXX-XXXX */
7983
+ serial: string;
7984
+ }
7985
+ /** The `data` of `holderCheckoutCodes`'s answer. */
7986
+ export interface HolderCheckoutCodesData {
7987
+ online: boolean;
7988
+ offer: {
7989
+ kind: 'balance' | 'percent' | 'amount' | 'link';
7990
+ currency: string;
7991
+ maxMinor: number | null;
7992
+ percent: number | null;
7993
+ amountMinor: number | null;
7994
+ /** Kupon ve indirim kartı: kullanım hakkı sınırlıysa kalan hak (açık ayırmalar düşülmüş); sınırsızsa ve diğer kartlarda null. 1 ise kod son hakkı ayırır. */
7995
+ usesLeft: number | null;
7996
+ } | null;
7997
+ refusal: string | null;
7998
+ holds: {
7999
+ amountMinor: number;
8000
+ heldUntil: string;
8001
+ shop: string;
8002
+ }[];
8003
+ codes: {
8004
+ id: string;
8005
+ last4: string;
8006
+ capMinor: number | null;
8007
+ /** open kullanılabilir · attached bir siparişe bağlandı · expired süresi doldu · cancelled iptal edildi */
8008
+ state: 'open' | 'attached' | 'expired' | 'cancelled';
8009
+ firstUseBy: string;
8010
+ attachBy: string;
8011
+ createdAt: string;
8012
+ order: {
8013
+ shop: string;
8014
+ amountMinor: number;
8015
+ state: 'held' | 'captured' | 'released' | 'expired' | 'refunded' | 'unbacked';
8016
+ heldUntil: string | null;
8017
+ kind: 'balance' | 'percent' | 'amount' | 'link';
8018
+ /** Bırakılan ya da süresi dolan ayırmada kimin ya da neyin bıraktığı: cancelled mağaza siparişi iptal etti · failed ödeme tamamlanmadı · shop mağaza bıraktı · merchant işletme elle bıraktı · expired süre doldu */
8019
+ releaseReason: 'cancelled' | 'failed' | 'shop' | 'merchant' | 'expired' | null;
8020
+ } | null;
8021
+ }[];
8022
+ }
8023
+ /** Arguments of `holderCheckoutCodes`. */
8024
+ export interface HolderCheckoutCodesArgs extends RequestOptions {
8025
+ /** Path parameters. */
8026
+ params: HolderCheckoutCodesParams;
8027
+ }
8028
+ /** Path parameters of `mintHolderCheckoutCode`. */
8029
+ export interface MintHolderCheckoutCodeParams {
8030
+ /** Kart seri numarası, XXXX-XXXX-XXXX */
8031
+ serial: string;
8032
+ }
8033
+ /** Request body of `mintHolderCheckoutCode`. */
8034
+ export interface MintHolderCheckoutCodeBody {
8035
+ amountMinor?: number;
8036
+ }
8037
+ /** The `data` of `mintHolderCheckoutCode`'s answer. */
8038
+ export interface MintHolderCheckoutCodeData {
8039
+ id: string;
8040
+ /** Kod: yalnız bu yanıtta; Rewloy saklamaz. Kişiye gösterin, "Kopyala" ile verin; günlüğe, adrese ya da bildirime yazmayın. */
8041
+ code: string;
8042
+ /** Bakiyeli kartta kodun en fazla düşebileceği tutar */
8043
+ capMinor: number | null;
8044
+ currency: string;
8045
+ kind: 'balance' | 'percent' | 'amount' | 'link';
8046
+ percent: number | null;
8047
+ /** Kupon: online tutarı */
8048
+ amountMinor: number | null;
8049
+ /** Kod bu ana kadar ödeme adımında kullanılmaya başlanmalı (15 dakika) */
8050
+ firstUseBy: string;
8051
+ /** Kullanılmaya başlanan kod bu ana kadar bir siparişe bağlanmalı (45 dakika) */
8052
+ attachBy: string;
8053
+ }
8054
+ /** Arguments of `mintHolderCheckoutCode`. */
8055
+ export interface MintHolderCheckoutCodeArgs extends RequestOptions {
8056
+ /** Path parameters. */
8057
+ params: MintHolderCheckoutCodeParams;
8058
+ /** The JSON body. */
8059
+ body?: MintHolderCheckoutCodeBody;
8060
+ }
8061
+ /** Path parameters of `cancelHolderCheckoutCode`. */
8062
+ export interface CancelHolderCheckoutCodeParams {
8063
+ /** Kart seri numarası, XXXX-XXXX-XXXX */
8064
+ serial: string;
8065
+ id: string;
8066
+ }
8067
+ /** Arguments of `cancelHolderCheckoutCode`. */
8068
+ export interface CancelHolderCheckoutCodeArgs extends RequestOptions {
8069
+ /** Path parameters. */
8070
+ params: CancelHolderCheckoutCodeParams;
8071
+ }
8072
+ /** Header parameters of `listTeam`, as sent on the wire. */
8073
+ export interface ListTeamHeaders {
8074
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
8075
+ 'Rewloy-Merchant'?: string;
8076
+ }
8077
+ /** The `data` of `listTeam`'s answer. */
8078
+ export interface ListTeamData {
8079
+ members: {
8080
+ seatId: string;
8081
+ email: string;
8082
+ isOwner: boolean;
8083
+ status: 'active' | 'suspended';
8084
+ createdAt: string;
8085
+ /** İki adımlı doğrulama açık */
8086
+ mfa: boolean;
8087
+ /** Son değişiklik yaptığı an (okutma, kayıt, gönderim); sayfa okumak kaydedilmez */
8088
+ lastAction: string | null;
8089
+ grants: {
8090
+ roleName: string;
8091
+ scopeText: string;
8092
+ }[];
8093
+ }[];
8094
+ invites: {
8095
+ id: string;
8096
+ email: string;
8097
+ roles: string | null;
8098
+ invitedBy: string | null;
8099
+ createdAt: string;
8100
+ expiresAt: string;
8101
+ }[];
8102
+ seats: {
8103
+ used: number;
8104
+ pendingInvites: number;
8105
+ limit: number | null;
8106
+ };
8107
+ require2fa: boolean;
8108
+ }
8109
+ /** Arguments of `listTeam`. */
8110
+ export interface ListTeamArgs extends RequestOptions {
8111
+ /**
8112
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
8113
+ *
8114
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
8115
+ */
8116
+ merchant?: string | undefined;
8117
+ }
8118
+ /** Header parameters of `listRoles`, as sent on the wire. */
8119
+ export interface ListRolesHeaders {
8120
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
8121
+ 'Rewloy-Merchant'?: string;
8122
+ }
8123
+ /** The `data` of `listRoles`'s answer. */
8124
+ export interface ListRolesData {
8125
+ roles: {
8126
+ id: string;
8127
+ key: string | null;
8128
+ name: string;
8129
+ permissions: string[];
8130
+ }[];
8131
+ permissions: {
8132
+ key: string;
8133
+ label: string;
8134
+ area: string | null;
8135
+ }[];
8136
+ }
8137
+ /** Arguments of `listRoles`. */
8138
+ export interface ListRolesArgs extends RequestOptions {
8139
+ /**
8140
+ * Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez).
8141
+ *
8142
+ * `Rewloy-Merchant`. Defaults to the client's `merchant`.
8143
+ */
8144
+ merchant?: string | undefined;
8145
+ }
8146
+ /** Path parameters of `getMember`. */
8147
+ export interface GetMemberParams {
8148
+ seatId: string;
8149
+ }
8150
+ /** Header parameters of `getMember`, as sent on the wire. */
8151
+ export interface GetMemberHeaders {
8152
+ /** Ekip oturumu birden fazla işletmede koltuk taşıyorsa hangi işletme için olduğu (tek işletmede gerekmez). */
8153
+ 'Rewloy-Merchant'?: string;
8154
+ }
8155
+ /** The `data` of `getMember`'s answer. */
8156
+ export interface GetMemberData {
8157
+ member: {
6577
8158
  seatId: string;
6578
8159
  email: string;
6579
8160
  isOwner: boolean;
@@ -7104,6 +8685,11 @@ export interface ListWebhooksItem {
7104
8685
  pending: number;
7105
8686
  };
7106
8687
  lastDelivered: string | null;
8688
+ /** Webhook'u ekleyen API anahtarı; bir kişi eklediyse null. Anahtar kaldırılınca, süresi dolunca ya da olayları okuyamaz olunca webhook kendiliğinden kapanır (`disabledReason`). Bir kişi onu yeniden açarsa webhook o kişinin olur (ADR 182). */
8689
+ createdByKey: {
8690
+ id: string;
8691
+ name: string;
8692
+ } | null;
7107
8693
  }
7108
8694
  /** The `data` of `listWebhooks`'s answer. */
7109
8695
  export type ListWebhooksData = ListWebhooksItem[];
@@ -7144,6 +8730,11 @@ export interface CreateWebhookData {
7144
8730
  pending: number;
7145
8731
  };
7146
8732
  lastDelivered: string | null;
8733
+ /** Webhook'u ekleyen API anahtarı; bir kişi eklediyse null. Anahtar kaldırılınca, süresi dolunca ya da olayları okuyamaz olunca webhook kendiliğinden kapanır (`disabledReason`). Bir kişi onu yeniden açarsa webhook o kişinin olur (ADR 182). */
8734
+ createdByKey: {
8735
+ id: string;
8736
+ name: string;
8737
+ } | null;
7147
8738
  };
7148
8739
  /** whsec_…; yalnız bu yanıtta */
7149
8740
  secret: string;
@@ -7185,6 +8776,11 @@ export interface GetWebhookData {
7185
8776
  pending: number;
7186
8777
  };
7187
8778
  lastDelivered: string | null;
8779
+ /** Webhook'u ekleyen API anahtarı; bir kişi eklediyse null. Anahtar kaldırılınca, süresi dolunca ya da olayları okuyamaz olunca webhook kendiliğinden kapanır (`disabledReason`). Bir kişi onu yeniden açarsa webhook o kişinin olur (ADR 182). */
8780
+ createdByKey: {
8781
+ id: string;
8782
+ name: string;
8783
+ } | null;
7188
8784
  }
7189
8785
  /** Arguments of `getWebhook`. */
7190
8786
  export interface GetWebhookArgs extends RequestOptions {
@@ -7227,6 +8823,11 @@ export interface SetWebhookStatusData {
7227
8823
  pending: number;
7228
8824
  };
7229
8825
  lastDelivered: string | null;
8826
+ /** Webhook'u ekleyen API anahtarı; bir kişi eklediyse null. Anahtar kaldırılınca, süresi dolunca ya da olayları okuyamaz olunca webhook kendiliğinden kapanır (`disabledReason`). Bir kişi onu yeniden açarsa webhook o kişinin olur (ADR 182). */
8827
+ createdByKey: {
8828
+ id: string;
8829
+ name: string;
8830
+ } | null;
7230
8831
  }
7231
8832
  /** Arguments of `setWebhookStatus`. */
7232
8833
  export interface SetWebhookStatusArgs extends RequestOptions {
@@ -8500,6 +10101,11 @@ export interface RemoveHolderPasskeyArgs extends RequestOptions {
8500
10101
  /** Path parameters. */
8501
10102
  params: RemoveHolderPasskeyParams;
8502
10103
  }
10104
+ /** Header parameters of `addHolderEmail`, as sent on the wire. */
10105
+ export interface AddHolderEmailHeaders {
10106
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
10107
+ 'Idempotency-Key'?: string;
10108
+ }
8503
10109
  /** Request body of `addHolderEmail`. */
8504
10110
  export interface AddHolderEmailBody {
8505
10111
  email: string;
@@ -8513,6 +10119,12 @@ export interface AddHolderEmailData {
8513
10119
  export interface AddHolderEmailArgs extends RequestOptions {
8514
10120
  /** The JSON body. */
8515
10121
  body: AddHolderEmailBody;
10122
+ /**
10123
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
10124
+ *
10125
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
10126
+ */
10127
+ idempotencyKey?: string | undefined;
8516
10128
  }
8517
10129
  /** Request body of `verifyHolderEmail`. */
8518
10130
  export interface VerifyHolderEmailBody {
@@ -8531,6 +10143,11 @@ export interface VerifyHolderEmailArgs extends RequestOptions {
8531
10143
  /** The JSON body. */
8532
10144
  body: VerifyHolderEmailBody;
8533
10145
  }
10146
+ /** Header parameters of `addHolderPhone`, as sent on the wire. */
10147
+ export interface AddHolderPhoneHeaders {
10148
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
10149
+ 'Idempotency-Key'?: string;
10150
+ }
8534
10151
  /** Request body of `addHolderPhone`. */
8535
10152
  export interface AddHolderPhoneBody {
8536
10153
  /** Bir Türkiye cep telefonu numarası: `+905321234567`, `05321234567`, `532 123 45 67` (boşluklar yok sayılır). Telefonla giriş açık değilse `501 NOT_ENABLED`. */
@@ -8549,6 +10166,12 @@ export interface AddHolderPhoneData {
8549
10166
  export interface AddHolderPhoneArgs extends RequestOptions {
8550
10167
  /** The JSON body. */
8551
10168
  body: AddHolderPhoneBody;
10169
+ /**
10170
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
10171
+ *
10172
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
10173
+ */
10174
+ idempotencyKey?: string | undefined;
8552
10175
  }
8553
10176
  /** Request body of `verifyHolderPhone`. */
8554
10177
  export interface VerifyHolderPhoneBody {
@@ -8615,6 +10238,11 @@ export interface RemoveHolderEmailArgs extends RequestOptions {
8615
10238
  export interface ReplaceHolderIdentityParams {
8616
10239
  id: string;
8617
10240
  }
10241
+ /** Header parameters of `replaceHolderIdentity`, as sent on the wire. */
10242
+ export interface ReplaceHolderIdentityHeaders {
10243
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
10244
+ 'Idempotency-Key'?: string;
10245
+ }
8618
10246
  /** Request body of `replaceHolderIdentity`. */
8619
10247
  export interface ReplaceHolderIdentityBody {
8620
10248
  /** Yeni e-posta (bir e-postanın yerine) */
@@ -8637,6 +10265,12 @@ export interface ReplaceHolderIdentityArgs extends RequestOptions {
8637
10265
  params: ReplaceHolderIdentityParams;
8638
10266
  /** The JSON body. */
8639
10267
  body?: ReplaceHolderIdentityBody;
10268
+ /**
10269
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
10270
+ *
10271
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
10272
+ */
10273
+ idempotencyKey?: string | undefined;
8640
10274
  }
8641
10275
  /** Path parameters of `verifyHolderIdentityReplace`. */
8642
10276
  export interface VerifyHolderIdentityReplaceParams {
@@ -8949,8 +10583,8 @@ export interface HolderNotificationsQuery {
8949
10583
  /** One item of `holderNotifications`'s list. */
8950
10584
  export interface HolderNotificationsItem {
8951
10585
  id: string;
8952
- /** campaign: bir işletmenin kampanyası; automation: otomatik mesaj ya da mesaj dizisinin adımı; reward_ready: "Ödülünüz hazır"; test: kişinin kendi denemesi; security: hesabın giriş yolunun değişmesi (yolda ya da yapıldı) ya da onaylanan bir kurtarma talebi */
8953
- kind: 'campaign' | 'automation' | 'reward_ready' | 'test' | 'security';
10586
+ /** campaign: bir işletmenin kampanyası; automation: otomatik mesaj ya da mesaj dizisinin adımı; reward_ready: "Ödülünüz hazır"; test: kişinin kendi denemesi; security: hesabın giriş yolunun değişmesi (yolda ya da yapıldı) ya da onaylanan bir kurtarma talebi; checkout_code: kartlarınızdan biri için online ödeme kodu oluşturuldu (bir İşlem bildirimi; kodu oluşturan cihaza gitmez) */
10587
+ kind: 'campaign' | 'automation' | 'reward_ready' | 'test' | 'security' | 'checkout_code';
8954
10588
  title: string;
8955
10589
  body: string;
8956
10590
  /** Bildirimin işletmesi (`merchantSlug`); denemede `null` */
@@ -9092,6 +10726,11 @@ export interface TestHolderDevicePushData {
9092
10726
  /** Arguments of `testHolderDevicePush`. */
9093
10727
  export interface TestHolderDevicePushArgs extends RequestOptions {
9094
10728
  }
10729
+ /** Header parameters of `startHolderRecovery`, as sent on the wire. */
10730
+ export interface StartHolderRecoveryHeaders {
10731
+ /** Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür. */
10732
+ 'Idempotency-Key'?: string;
10733
+ }
9095
10734
  /** Request body of `startHolderRecovery`. */
9096
10735
  export interface StartHolderRecoveryBody {
9097
10736
  /** Değişen: e-posta ya da numara (eski ve yeni aynı türden) */
@@ -9122,6 +10761,12 @@ export interface StartHolderRecoveryData {
9122
10761
  export interface StartHolderRecoveryArgs extends RequestOptions {
9123
10762
  /** The JSON body. */
9124
10763
  body: StartHolderRecoveryBody;
10764
+ /**
10765
+ * Aynı işlemin iki kez yapılmasını önler: aynı anahtarla tekrar, ilk sonucu döndürür.
10766
+ *
10767
+ * `Idempotency-Key`. When omitted, the client generates a UUID and sends the same one on every retry of this call.
10768
+ */
10769
+ idempotencyKey?: string | undefined;
9125
10770
  }
9126
10771
  /** Request body of `verifyHolderRecovery`. */
9127
10772
  export interface VerifyHolderRecoveryBody {
@@ -9204,16 +10849,19 @@ export interface Operations {
9204
10849
  result: IssuePassData;
9205
10850
  data: IssuePassData;
9206
10851
  responses: {
10852
+ 200: {
10853
+ data: IssuePassData;
10854
+ };
9207
10855
  201: {
9208
10856
  data: IssuePassData;
9209
10857
  };
9210
10858
  400: ErrorBody<'EMAIL_BLOCKED' | 'CUSTOMER_BLOCKED' | 'INVALID_CUSTOMER' | 'INVALID_PHONE' | 'INVALID_BIRTHDAY' | 'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
9211
10859
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
9212
- 403: ErrorBody<'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
10860
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'OWNER_EMAIL_UNVERIFIED' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
9213
10861
  404: ErrorBody<'PROGRAM_NOT_FOUND' | 'LOCATION_NOT_FOUND' | 'SHOP_NOT_FOUND'>;
9214
10862
  409: ErrorBody<'PASS_REFUSED' | 'TEST_LIMIT_REACHED' | 'SHOP_PROGRAM_MISMATCH' | 'IDEMPOTENCY_IN_PROGRESS'>;
9215
10863
  410: ErrorBody<'TOKEN_INVALID'>;
9216
- 422: ErrorBody<'CONSENT_REQUIRED' | 'IDEMPOTENCY_KEY_REUSED'>;
10864
+ 422: ErrorBody<'CONSENT_REQUIRED' | 'IDEMPOTENCY_KEY_REUSED' | 'CURRENCY_MISMATCH'>;
9217
10865
  429: ErrorBody<'RATE_LIMITED'>;
9218
10866
  500: ErrorBody<'INTERNAL'>;
9219
10867
  };
@@ -9246,7 +10894,7 @@ export interface Operations {
9246
10894
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
9247
10895
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
9248
10896
  403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
9249
- 404: ErrorBody<'PASS_NOT_FOUND'>;
10897
+ 404: ErrorBody<'PASS_NOT_FOUND' | 'LOCATION_NOT_FOUND'>;
9250
10898
  410: ErrorBody<'TOKEN_INVALID'>;
9251
10899
  429: ErrorBody<'RATE_LIMITED'>;
9252
10900
  500: ErrorBody<'INTERNAL'>;
@@ -9260,13 +10908,50 @@ export interface Operations {
9260
10908
  200: {
9261
10909
  data: PassActionData;
9262
10910
  };
9263
- 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED' | 'IDEMPOTENCY_KEY_REQUIRED'>;
10911
+ 400: ErrorBody<'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
9264
10912
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
9265
10913
  403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
9266
- 404: ErrorBody<'PASS_NOT_FOUND'>;
10914
+ 404: ErrorBody<'PASS_NOT_FOUND' | 'LOCATION_NOT_FOUND'>;
9267
10915
  409: ErrorBody<'WRONG_LOCATION' | 'INSUFFICIENT_BALANCE' | 'REWARD_NOT_READY' | 'VISIT_ALREADY_COUNTED' | 'PASS_INACTIVE' | 'PASS_EXPIRED' | 'PASS_USED_UP' | 'PASS_REFUSED'>;
9268
10916
  410: ErrorBody<'TOKEN_INVALID'>;
9269
- 422: ErrorBody<'WRONG_CARD_TYPE'>;
10917
+ 422: ErrorBody<'WRONG_CARD_TYPE' | 'IDEMPOTENCY_KEY_REUSED' | 'CURRENCY_MISMATCH'>;
10918
+ 429: ErrorBody<'RATE_LIMITED'>;
10919
+ 500: ErrorBody<'INTERNAL'>;
10920
+ };
10921
+ };
10922
+ recordSale: {
10923
+ args: RecordSaleArgs;
10924
+ result: RecordSaleData;
10925
+ data: RecordSaleData;
10926
+ responses: {
10927
+ 200: {
10928
+ data: RecordSaleData;
10929
+ };
10930
+ 400: ErrorBody<'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
10931
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
10932
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
10933
+ 404: ErrorBody<'PASS_NOT_FOUND' | 'LOCATION_NOT_FOUND'>;
10934
+ 409: ErrorBody<'WRONG_LOCATION' | 'PASS_INACTIVE' | 'PASS_EXPIRED'>;
10935
+ 410: ErrorBody<'TOKEN_INVALID'>;
10936
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED' | 'CURRENCY_MISMATCH'>;
10937
+ 429: ErrorBody<'RATE_LIMITED'>;
10938
+ 500: ErrorBody<'INTERNAL'>;
10939
+ };
10940
+ };
10941
+ reverseSale: {
10942
+ args: ReverseSaleArgs;
10943
+ result: ReverseSaleData;
10944
+ data: ReverseSaleData;
10945
+ responses: {
10946
+ 200: {
10947
+ data: ReverseSaleData;
10948
+ };
10949
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
10950
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
10951
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
10952
+ 404: ErrorBody<'PASS_NOT_FOUND' | 'LOCATION_NOT_FOUND' | 'SALE_NOT_FOUND'>;
10953
+ 409: ErrorBody<'SALE_AMBIGUOUS' | 'SALE_ALREADY_SPENT'>;
10954
+ 410: ErrorBody<'TOKEN_INVALID'>;
9270
10955
  429: ErrorBody<'RATE_LIMITED'>;
9271
10956
  500: ErrorBody<'INTERNAL'>;
9272
10957
  };
@@ -9359,6 +11044,22 @@ export interface Operations {
9359
11044
  500: ErrorBody<'INTERNAL'>;
9360
11045
  };
9361
11046
  };
11047
+ getMeta: {
11048
+ args: GetMetaArgs;
11049
+ result: GetMetaData;
11050
+ data: GetMetaData;
11051
+ responses: {
11052
+ 200: {
11053
+ data: GetMetaData;
11054
+ };
11055
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11056
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11057
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING'>;
11058
+ 410: ErrorBody<'TOKEN_INVALID'>;
11059
+ 429: ErrorBody<'RATE_LIMITED'>;
11060
+ 500: ErrorBody<'INTERNAL'>;
11061
+ };
11062
+ };
9362
11063
  openapi: {
9363
11064
  args: OpenapiArgs;
9364
11065
  result: unknown;
@@ -9439,7 +11140,9 @@ export interface Operations {
9439
11140
  202: {
9440
11141
  data: HolderLoginData;
9441
11142
  };
9442
- 400: ErrorBody<'INVALID_PHONE' | 'VALIDATION'>;
11143
+ 400: ErrorBody<'INVALID_PHONE' | 'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION'>;
11144
+ 409: ErrorBody<'IDEMPOTENCY_IN_PROGRESS'>;
11145
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
9443
11146
  429: ErrorBody<'RATE_LIMITED'>;
9444
11147
  500: ErrorBody<'INTERNAL'>;
9445
11148
  501: ErrorBody<'NOT_ENABLED'>;
@@ -9456,6 +11159,7 @@ export interface Operations {
9456
11159
  };
9457
11160
  400: ErrorBody<'CODE_INVALID' | 'VALIDATION'>;
9458
11161
  401: ErrorBody<'TOKEN_INVALID'>;
11162
+ 404: ErrorBody<'CODE_INVALID'>;
9459
11163
  410: ErrorBody<'FLOW_EXPIRED' | 'TOKEN_INVALID'>;
9460
11164
  429: ErrorBody<'CODE_LOCKED' | 'RATE_LIMITED'>;
9461
11165
  500: ErrorBody<'INTERNAL'>;
@@ -9645,9 +11349,12 @@ export interface Operations {
9645
11349
  201: {
9646
11350
  data: AcceptInviteData;
9647
11351
  };
9648
- 400: ErrorBody<'TEAM_REFUSED' | 'VALIDATION'>;
11352
+ 400: ErrorBody<'TEAM_REFUSED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
11353
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11354
+ 403: ErrorBody<'INVITE_OTHER_ACCOUNT' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
9649
11355
  404: ErrorBody<'INVITE_NOT_FOUND'>;
9650
- 409: ErrorBody<'SEAT_LIMIT'>;
11356
+ 409: ErrorBody<'INVITE_SIGN_IN' | 'SEAT_LIMIT'>;
11357
+ 410: ErrorBody<'TOKEN_INVALID'>;
9651
11358
  429: ErrorBody<'RATE_LIMITED'>;
9652
11359
  500: ErrorBody<'INTERNAL'>;
9653
11360
  };
@@ -10378,7 +12085,7 @@ export interface Operations {
10378
12085
  403: ErrorBody<'PLAN_FEATURE_MISSING' | 'OUT_OF_SCOPE' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
10379
12086
  404: ErrorBody<'PROGRAM_NOT_FOUND'>;
10380
12087
  410: ErrorBody<'TOKEN_INVALID'>;
10381
- 422: ErrorBody<'NOT_AN_INSTRUMENT' | 'INVALID_BATCH'>;
12088
+ 422: ErrorBody<'NOT_AN_INSTRUMENT' | 'INVALID_BATCH' | 'CURRENCY_MISMATCH'>;
10382
12089
  429: ErrorBody<'RATE_LIMITED'>;
10383
12090
  500: ErrorBody<'INTERNAL'>;
10384
12091
  };
@@ -10578,7 +12285,7 @@ export interface Operations {
10578
12285
  204: void;
10579
12286
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
10580
12287
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
10581
- 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
12288
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
10582
12289
  404: ErrorBody<'SEGMENT_NOT_FOUND'>;
10583
12290
  410: ErrorBody<'TOKEN_INVALID'>;
10584
12291
  422: ErrorBody<'INVALID_SEGMENT'>;
@@ -10614,7 +12321,7 @@ export interface Operations {
10614
12321
  };
10615
12322
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
10616
12323
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
10617
- 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
12324
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
10618
12325
  404: ErrorBody<'SEGMENT_NOT_FOUND'>;
10619
12326
  410: ErrorBody<'TOKEN_INVALID'>;
10620
12327
  422: ErrorBody<'INVALID_SEGMENT'>;
@@ -10736,7 +12443,7 @@ export interface Operations {
10736
12443
  };
10737
12444
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
10738
12445
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
10739
- 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
12446
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
10740
12447
  404: ErrorBody<'CAMPAIGN_NOT_FOUND'>;
10741
12448
  409: ErrorBody<'NOT_CANCELLABLE'>;
10742
12449
  410: ErrorBody<'TOKEN_INVALID'>;
@@ -11028,7 +12735,7 @@ export interface Operations {
11028
12735
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11029
12736
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11030
12737
  403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
11031
- 404: ErrorBody<'LOCATION_NOT_FOUND'>;
12738
+ 404: ErrorBody<'LOCATION_NOT_FOUND' | 'PROGRAM_NOT_FOUND'>;
11032
12739
  410: ErrorBody<'TOKEN_INVALID'>;
11033
12740
  429: ErrorBody<'RATE_LIMITED'>;
11034
12741
  500: ErrorBody<'INTERNAL'>;
@@ -11046,7 +12753,7 @@ export interface Operations {
11046
12753
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11047
12754
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11048
12755
  403: ErrorBody<'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
11049
- 404: ErrorBody<'LOCATION_NOT_FOUND'>;
12756
+ 404: ErrorBody<'LOCATION_NOT_FOUND' | 'PROGRAM_NOT_FOUND'>;
11050
12757
  410: ErrorBody<'TOKEN_INVALID'>;
11051
12758
  429: ErrorBody<'RATE_LIMITED'>;
11052
12759
  500: ErrorBody<'INTERNAL'>;
@@ -11077,7 +12784,7 @@ export interface Operations {
11077
12784
  200: string;
11078
12785
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11079
12786
  401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11080
- 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
12787
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
11081
12788
  410: ErrorBody<'TOKEN_INVALID'>;
11082
12789
  429: ErrorBody<'RATE_LIMITED'>;
11083
12790
  500: ErrorBody<'INTERNAL'>;
@@ -11542,7 +13249,7 @@ export interface Operations {
11542
13249
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11543
13250
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11544
13251
  403: ErrorBody<'STEP_UP_FAILED' | 'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
11545
- 404: ErrorBody<'PROGRAM_NOT_FOUND'>;
13252
+ 404: ErrorBody<'PROGRAM_NOT_FOUND' | 'LOCATION_NOT_FOUND'>;
11546
13253
  409: ErrorBody<'LIMIT'>;
11547
13254
  410: ErrorBody<'TOKEN_INVALID'>;
11548
13255
  422: ErrorBody<'NOT_AN_INSTRUMENT'>;
@@ -11575,12 +13282,288 @@ export interface Operations {
11575
13282
  };
11576
13283
  400: ErrorBody<'VALIDATION'>;
11577
13284
  403: ErrorBody<'PLAN_FEATURE_MISSING'>;
11578
- 404: ErrorBody<'CONNECT_TOKEN_INVALID'>;
13285
+ 404: ErrorBody<'CONNECT_TOKEN_INVALID' | 'LOCATION_NOT_FOUND'>;
11579
13286
  409: ErrorBody<'LIMIT'>;
11580
13287
  429: ErrorBody<'RATE_LIMITED'>;
11581
13288
  500: ErrorBody<'INTERNAL'>;
11582
13289
  };
11583
13290
  };
13291
+ setShopPluginAbilities: {
13292
+ args: SetShopPluginAbilitiesArgs;
13293
+ result: SetShopPluginAbilitiesData;
13294
+ data: SetShopPluginAbilitiesData;
13295
+ responses: {
13296
+ 200: {
13297
+ data: SetShopPluginAbilitiesData;
13298
+ };
13299
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13300
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13301
+ 403: ErrorBody<'STEP_UP_FAILED' | 'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13302
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'LOCATION_NOT_FOUND'>;
13303
+ 409: ErrorBody<'NO_PLUGIN_KEY'>;
13304
+ 410: ErrorBody<'TOKEN_INVALID'>;
13305
+ 429: ErrorBody<'RATE_LIMITED'>;
13306
+ 500: ErrorBody<'INTERNAL'>;
13307
+ };
13308
+ };
13309
+ quoteCheckoutCode: {
13310
+ args: QuoteCheckoutCodeArgs;
13311
+ result: QuoteCheckoutCodeData;
13312
+ data: QuoteCheckoutCodeData;
13313
+ responses: {
13314
+ 200: {
13315
+ data: QuoteCheckoutCodeData;
13316
+ };
13317
+ 400: ErrorBody<'CODE_INVALID' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
13318
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13319
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13320
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'CODE_INVALID'>;
13321
+ 409: ErrorBody<'CODE_USED' | 'CODE_RELEASED' | 'PASS_INACTIVE' | 'PASS_EXPIRED' | 'SHOP_PAUSED' | 'PASS_USED_UP' | 'INSUFFICIENT_BALANCE'>;
13322
+ 410: ErrorBody<'CODE_EXPIRED' | 'TOKEN_INVALID'>;
13323
+ 422: ErrorBody<'CODE_NOT_ACCEPTED_HERE' | 'CURRENCY_MISMATCH' | 'VOUCHER_NOT_ONLINE'>;
13324
+ 429: ErrorBody<'RATE_LIMITED'>;
13325
+ 500: ErrorBody<'INTERNAL'>;
13326
+ };
13327
+ };
13328
+ listOrderRedemptions: {
13329
+ args: ListOrderRedemptionsArgs;
13330
+ result: ListOrderRedemptionsData;
13331
+ data: ListOrderRedemptionsData;
13332
+ responses: {
13333
+ 200: {
13334
+ data: ListOrderRedemptionsData;
13335
+ };
13336
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13337
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13338
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
13339
+ 404: ErrorBody<'SHOP_NOT_FOUND'>;
13340
+ 410: ErrorBody<'TOKEN_INVALID'>;
13341
+ 429: ErrorBody<'RATE_LIMITED'>;
13342
+ 500: ErrorBody<'INTERNAL'>;
13343
+ };
13344
+ };
13345
+ holdCheckoutCode: {
13346
+ args: HoldCheckoutCodeArgs;
13347
+ result: HoldCheckoutCodeData;
13348
+ data: HoldCheckoutCodeData;
13349
+ responses: {
13350
+ 200: {
13351
+ data: HoldCheckoutCodeData;
13352
+ };
13353
+ 201: {
13354
+ data: HoldCheckoutCodeData;
13355
+ };
13356
+ 400: ErrorBody<'CODE_INVALID' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
13357
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13358
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13359
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'CODE_INVALID'>;
13360
+ 409: ErrorBody<'CODE_USED' | 'CODE_RELEASED' | 'PASS_INACTIVE' | 'PASS_EXPIRED' | 'SHOP_PAUSED' | 'PASS_USED_UP' | 'INSUFFICIENT_BALANCE' | 'CARD_IN_ORDER' | 'ORDER_CODES_LIMIT'>;
13361
+ 410: ErrorBody<'CODE_EXPIRED' | 'TOKEN_INVALID'>;
13362
+ 422: ErrorBody<'CODE_NOT_ACCEPTED_HERE' | 'CURRENCY_MISMATCH' | 'VOUCHER_NOT_ONLINE'>;
13363
+ 429: ErrorBody<'RATE_LIMITED'>;
13364
+ 500: ErrorBody<'INTERNAL'>;
13365
+ };
13366
+ };
13367
+ captureCheckoutOrder: {
13368
+ args: CaptureCheckoutOrderArgs;
13369
+ result: CaptureCheckoutOrderData;
13370
+ data: CaptureCheckoutOrderData;
13371
+ responses: {
13372
+ 200: {
13373
+ data: CaptureCheckoutOrderData;
13374
+ };
13375
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13376
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13377
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13378
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'REDEMPTION_NOT_FOUND'>;
13379
+ 409: ErrorBody<'HOLD_UNBACKED' | 'PASS_INACTIVE' | 'PASS_EXPIRED'>;
13380
+ 410: ErrorBody<'TOKEN_INVALID'>;
13381
+ 429: ErrorBody<'RATE_LIMITED'>;
13382
+ 500: ErrorBody<'INTERNAL'>;
13383
+ };
13384
+ };
13385
+ releaseCheckoutOrder: {
13386
+ args: ReleaseCheckoutOrderArgs;
13387
+ result: ReleaseCheckoutOrderData;
13388
+ data: ReleaseCheckoutOrderData;
13389
+ responses: {
13390
+ 200: {
13391
+ data: ReleaseCheckoutOrderData;
13392
+ };
13393
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13394
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13395
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13396
+ 404: ErrorBody<'SHOP_NOT_FOUND'>;
13397
+ 410: ErrorBody<'TOKEN_INVALID'>;
13398
+ 429: ErrorBody<'RATE_LIMITED'>;
13399
+ 500: ErrorBody<'INTERNAL'>;
13400
+ };
13401
+ };
13402
+ refundCheckoutOrder: {
13403
+ args: RefundCheckoutOrderArgs;
13404
+ result: RefundCheckoutOrderData;
13405
+ data: RefundCheckoutOrderData;
13406
+ responses: {
13407
+ 200: {
13408
+ data: RefundCheckoutOrderData;
13409
+ };
13410
+ 400: ErrorBody<'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
13411
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13412
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13413
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'REDEMPTION_NOT_FOUND'>;
13414
+ 409: ErrorBody<'REFUND_TOO_LARGE' | 'NOT_REFUNDABLE'>;
13415
+ 410: ErrorBody<'TOKEN_INVALID'>;
13416
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
13417
+ 429: ErrorBody<'RATE_LIMITED'>;
13418
+ 500: ErrorBody<'INTERNAL'>;
13419
+ };
13420
+ };
13421
+ listShopRedemptions: {
13422
+ args: ListShopRedemptionsArgs;
13423
+ result: Page<ListShopRedemptionsItem>;
13424
+ data: ListShopRedemptionsItem[];
13425
+ responses: {
13426
+ 200: {
13427
+ data: ListShopRedemptionsItem[];
13428
+ meta: PageMeta;
13429
+ };
13430
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13431
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13432
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
13433
+ 404: ErrorBody<'SHOP_NOT_FOUND'>;
13434
+ 410: ErrorBody<'TOKEN_INVALID'>;
13435
+ 429: ErrorBody<'RATE_LIMITED'>;
13436
+ 500: ErrorBody<'INTERNAL'>;
13437
+ };
13438
+ };
13439
+ releaseShopRedemption: {
13440
+ args: ReleaseShopRedemptionArgs;
13441
+ result: ReleaseShopRedemptionData;
13442
+ data: ReleaseShopRedemptionData;
13443
+ responses: {
13444
+ 200: {
13445
+ data: ReleaseShopRedemptionData;
13446
+ };
13447
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13448
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13449
+ 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13450
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'REDEMPTION_NOT_FOUND'>;
13451
+ 409: ErrorBody<'NOT_HELD'>;
13452
+ 410: ErrorBody<'TOKEN_INVALID'>;
13453
+ 422: ErrorBody<'REASON_REQUIRED'>;
13454
+ 429: ErrorBody<'RATE_LIMITED'>;
13455
+ 500: ErrorBody<'INTERNAL'>;
13456
+ };
13457
+ };
13458
+ refundShopRedemption: {
13459
+ args: RefundShopRedemptionArgs;
13460
+ result: RefundShopRedemptionData;
13461
+ data: RefundShopRedemptionData;
13462
+ responses: {
13463
+ 200: {
13464
+ data: RefundShopRedemptionData;
13465
+ };
13466
+ 400: ErrorBody<'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION' | 'MERCHANT_REQUIRED'>;
13467
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13468
+ 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13469
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'REDEMPTION_NOT_FOUND'>;
13470
+ 409: ErrorBody<'REFUND_TOO_LARGE' | 'NOT_REFUNDABLE'>;
13471
+ 410: ErrorBody<'TOKEN_INVALID'>;
13472
+ 422: ErrorBody<'REASON_REQUIRED' | 'IDEMPOTENCY_KEY_REUSED'>;
13473
+ 429: ErrorBody<'RATE_LIMITED'>;
13474
+ 500: ErrorBody<'INTERNAL'>;
13475
+ };
13476
+ };
13477
+ setShopSettings: {
13478
+ args: SetShopSettingsArgs;
13479
+ result: SetShopSettingsData;
13480
+ data: SetShopSettingsData;
13481
+ responses: {
13482
+ 200: {
13483
+ data: SetShopSettingsData;
13484
+ };
13485
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13486
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13487
+ 403: ErrorBody<'OUT_OF_SCOPE' | 'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13488
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'PROGRAM_NOT_FOUND'>;
13489
+ 410: ErrorBody<'TOKEN_INVALID'>;
13490
+ 429: ErrorBody<'RATE_LIMITED'>;
13491
+ 500: ErrorBody<'INTERNAL'>;
13492
+ };
13493
+ };
13494
+ setShopCeiling: {
13495
+ args: SetShopCeilingArgs;
13496
+ result: SetShopCeilingData;
13497
+ data: SetShopCeilingData;
13498
+ responses: {
13499
+ 200: {
13500
+ data: SetShopCeilingData;
13501
+ };
13502
+ 400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
13503
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13504
+ 403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13505
+ 404: ErrorBody<'SHOP_NOT_FOUND' | 'PROGRAM_NOT_FOUND'>;
13506
+ 409: ErrorBody<'NO_PLUGIN_KEY'>;
13507
+ 410: ErrorBody<'TOKEN_INVALID'>;
13508
+ 429: ErrorBody<'RATE_LIMITED'>;
13509
+ 500: ErrorBody<'INTERNAL'>;
13510
+ };
13511
+ };
13512
+ holderCheckoutCodes: {
13513
+ args: HolderCheckoutCodesArgs;
13514
+ result: HolderCheckoutCodesData;
13515
+ data: HolderCheckoutCodesData;
13516
+ responses: {
13517
+ 200: {
13518
+ data: HolderCheckoutCodesData;
13519
+ };
13520
+ 400: ErrorBody<'VALIDATION'>;
13521
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
13522
+ 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13523
+ 404: ErrorBody<'PASS_NOT_FOUND'>;
13524
+ 410: ErrorBody<'TOKEN_INVALID'>;
13525
+ 429: ErrorBody<'RATE_LIMITED'>;
13526
+ 500: ErrorBody<'INTERNAL'>;
13527
+ };
13528
+ };
13529
+ mintHolderCheckoutCode: {
13530
+ args: MintHolderCheckoutCodeArgs;
13531
+ result: MintHolderCheckoutCodeData;
13532
+ data: MintHolderCheckoutCodeData;
13533
+ responses: {
13534
+ 200: {
13535
+ data: MintHolderCheckoutCodeData;
13536
+ };
13537
+ 201: {
13538
+ data: MintHolderCheckoutCodeData;
13539
+ };
13540
+ 400: ErrorBody<'VALIDATION'>;
13541
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
13542
+ 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13543
+ 404: ErrorBody<'PASS_NOT_FOUND'>;
13544
+ 409: ErrorBody<'PASS_INACTIVE' | 'PASS_EXPIRED' | 'NOT_ONLINE' | 'INSUFFICIENT_BALANCE' | 'PASS_USED_UP' | 'TOO_MANY_CODES'>;
13545
+ 410: ErrorBody<'TOKEN_INVALID'>;
13546
+ 422: ErrorBody<'VOUCHER_NOT_ONLINE'>;
13547
+ 429: ErrorBody<'RATE_LIMITED'>;
13548
+ 500: ErrorBody<'INTERNAL'>;
13549
+ };
13550
+ };
13551
+ cancelHolderCheckoutCode: {
13552
+ args: CancelHolderCheckoutCodeArgs;
13553
+ result: void;
13554
+ data: void;
13555
+ responses: {
13556
+ 204: void;
13557
+ 400: ErrorBody<'VALIDATION'>;
13558
+ 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
13559
+ 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13560
+ 404: ErrorBody<'PASS_NOT_FOUND' | 'CODE_NOT_FOUND'>;
13561
+ 409: ErrorBody<'CODE_ATTACHED'>;
13562
+ 410: ErrorBody<'TOKEN_INVALID'>;
13563
+ 429: ErrorBody<'RATE_LIMITED'>;
13564
+ 500: ErrorBody<'INTERNAL'>;
13565
+ };
13566
+ };
11584
13567
  listTeam: {
11585
13568
  args: ListTeamArgs;
11586
13569
  result: ListTeamData;
@@ -11869,7 +13852,7 @@ export interface Operations {
11869
13852
  data: ListWebhooksData;
11870
13853
  };
11871
13854
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11872
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13855
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11873
13856
  403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
11874
13857
  410: ErrorBody<'TOKEN_INVALID'>;
11875
13858
  429: ErrorBody<'RATE_LIMITED'>;
@@ -11885,7 +13868,7 @@ export interface Operations {
11885
13868
  data: CreateWebhookData;
11886
13869
  };
11887
13870
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11888
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13871
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11889
13872
  403: ErrorBody<'PLAN_FEATURE_MISSING' | 'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
11890
13873
  409: ErrorBody<'LIMIT'>;
11891
13874
  410: ErrorBody<'TOKEN_INVALID'>;
@@ -11903,8 +13886,8 @@ export interface Operations {
11903
13886
  data: GetWebhookData;
11904
13887
  };
11905
13888
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11906
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11907
- 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13889
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13890
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
11908
13891
  404: ErrorBody<'WEBHOOK_NOT_FOUND'>;
11909
13892
  410: ErrorBody<'TOKEN_INVALID'>;
11910
13893
  429: ErrorBody<'RATE_LIMITED'>;
@@ -11920,8 +13903,8 @@ export interface Operations {
11920
13903
  data: SetWebhookStatusData;
11921
13904
  };
11922
13905
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11923
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11924
- 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13906
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13907
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
11925
13908
  404: ErrorBody<'WEBHOOK_NOT_FOUND'>;
11926
13909
  410: ErrorBody<'TOKEN_INVALID'>;
11927
13910
  429: ErrorBody<'RATE_LIMITED'>;
@@ -11938,8 +13921,8 @@ export interface Operations {
11938
13921
  meta: PageMeta;
11939
13922
  };
11940
13923
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11941
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11942
- 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
13924
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13925
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED'>;
11943
13926
  404: ErrorBody<'WEBHOOK_NOT_FOUND'>;
11944
13927
  410: ErrorBody<'TOKEN_INVALID'>;
11945
13928
  429: ErrorBody<'RATE_LIMITED'>;
@@ -11955,8 +13938,8 @@ export interface Operations {
11955
13938
  data: TestWebhookData;
11956
13939
  };
11957
13940
  400: ErrorBody<'VALIDATION' | 'MERCHANT_REQUIRED'>;
11958
- 401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
11959
- 403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
13941
+ 401: ErrorBody<'UNAUTHENTICATED' | 'INVALID_API_KEY' | 'TOKEN_INVALID' | 'MFA_REQUIRED'>;
13942
+ 403: ErrorBody<'FORBIDDEN' | 'PLAN_FEATURE_MISSING' | 'CREDENTIAL_NOT_ALLOWED' | 'READ_ONLY'>;
11960
13943
  404: ErrorBody<'WEBHOOK_NOT_FOUND'>;
11961
13944
  410: ErrorBody<'TOKEN_INVALID'>;
11962
13945
  429: ErrorBody<'RATE_LIMITED'>;
@@ -12621,10 +14604,12 @@ export interface Operations {
12621
14604
  202: {
12622
14605
  data: AddHolderEmailData;
12623
14606
  };
12624
- 400: ErrorBody<'VALIDATION'>;
14607
+ 400: ErrorBody<'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION'>;
12625
14608
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12626
14609
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
14610
+ 409: ErrorBody<'IDEMPOTENCY_IN_PROGRESS'>;
12627
14611
  410: ErrorBody<'TOKEN_INVALID'>;
14612
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
12628
14613
  429: ErrorBody<'RATE_LIMITED'>;
12629
14614
  500: ErrorBody<'INTERNAL'>;
12630
14615
  };
@@ -12640,6 +14625,7 @@ export interface Operations {
12640
14625
  400: ErrorBody<'CODE_INVALID' | 'VALIDATION'>;
12641
14626
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12642
14627
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
14628
+ 404: ErrorBody<'CODE_INVALID'>;
12643
14629
  409: ErrorBody<'MERGE_REQUIRED'>;
12644
14630
  410: ErrorBody<'FLOW_EXPIRED' | 'TOKEN_INVALID'>;
12645
14631
  429: ErrorBody<'CODE_LOCKED' | 'RATE_LIMITED'>;
@@ -12654,10 +14640,12 @@ export interface Operations {
12654
14640
  202: {
12655
14641
  data: AddHolderPhoneData;
12656
14642
  };
12657
- 400: ErrorBody<'INVALID_PHONE' | 'VALIDATION'>;
14643
+ 400: ErrorBody<'INVALID_PHONE' | 'IDEMPOTENCY_KEY_REQUIRED' | 'VALIDATION'>;
12658
14644
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12659
14645
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
14646
+ 409: ErrorBody<'IDEMPOTENCY_IN_PROGRESS'>;
12660
14647
  410: ErrorBody<'TOKEN_INVALID'>;
14648
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
12661
14649
  429: ErrorBody<'RATE_LIMITED'>;
12662
14650
  500: ErrorBody<'INTERNAL'>;
12663
14651
  501: ErrorBody<'NOT_ENABLED'>;
@@ -12675,6 +14663,7 @@ export interface Operations {
12675
14663
  400: ErrorBody<'CODE_INVALID' | 'VALIDATION'>;
12676
14664
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12677
14665
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
14666
+ 404: ErrorBody<'CODE_INVALID'>;
12678
14667
  409: ErrorBody<'MERGE_REQUIRED'>;
12679
14668
  410: ErrorBody<'FLOW_EXPIRED' | 'TOKEN_INVALID'>;
12680
14669
  429: ErrorBody<'CODE_LOCKED' | 'RATE_LIMITED'>;
@@ -12722,12 +14711,13 @@ export interface Operations {
12722
14711
  202: {
12723
14712
  data: ReplaceHolderIdentityData;
12724
14713
  };
12725
- 400: ErrorBody<'VALIDATION' | 'INVALID_PHONE'>;
14714
+ 400: ErrorBody<'VALIDATION' | 'INVALID_PHONE' | 'IDEMPOTENCY_KEY_REQUIRED'>;
12726
14715
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12727
14716
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
12728
14717
  404: ErrorBody<'NOT_FOUND'>;
12729
- 409: ErrorBody<'IDENT_SAME'>;
14718
+ 409: ErrorBody<'IDENT_SAME' | 'IDEMPOTENCY_IN_PROGRESS'>;
12730
14719
  410: ErrorBody<'TOKEN_INVALID'>;
14720
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
12731
14721
  429: ErrorBody<'RATE_LIMITED'>;
12732
14722
  500: ErrorBody<'INTERNAL'>;
12733
14723
  501: ErrorBody<'NOT_ENABLED'>;
@@ -12745,7 +14735,7 @@ export interface Operations {
12745
14735
  400: ErrorBody<'CODE_INVALID' | 'VALIDATION'>;
12746
14736
  401: ErrorBody<'UNAUTHENTICATED' | 'TOKEN_INVALID'>;
12747
14737
  403: ErrorBody<'FORBIDDEN' | 'CREDENTIAL_NOT_ALLOWED'>;
12748
- 404: ErrorBody<'NOT_FOUND'>;
14738
+ 404: ErrorBody<'CODE_INVALID' | 'NOT_FOUND'>;
12749
14739
  409: ErrorBody<'MERGE_REQUIRED' | 'IDENT_SAME'>;
12750
14740
  410: ErrorBody<'FLOW_EXPIRED' | 'TOKEN_INVALID'>;
12751
14741
  429: ErrorBody<'CODE_LOCKED' | 'RATE_LIMITED'>;
@@ -13120,7 +15110,9 @@ export interface Operations {
13120
15110
  202: {
13121
15111
  data: StartHolderRecoveryData;
13122
15112
  };
13123
- 400: ErrorBody<'VALIDATION' | 'INVALID_PHONE'>;
15113
+ 400: ErrorBody<'VALIDATION' | 'INVALID_PHONE' | 'IDEMPOTENCY_KEY_REQUIRED'>;
15114
+ 409: ErrorBody<'IDEMPOTENCY_IN_PROGRESS'>;
15115
+ 422: ErrorBody<'IDEMPOTENCY_KEY_REUSED'>;
13124
15116
  429: ErrorBody<'RATE_LIMITED'>;
13125
15117
  500: ErrorBody<'INTERNAL'>;
13126
15118
  501: ErrorBody<'NOT_ENABLED'>;
@@ -13136,6 +15128,7 @@ export interface Operations {
13136
15128
  data: VerifyHolderRecoveryData;
13137
15129
  };
13138
15130
  400: ErrorBody<'CODE_INVALID' | 'VALIDATION'>;
15131
+ 404: ErrorBody<'CODE_INVALID'>;
13139
15132
  410: ErrorBody<'FLOW_EXPIRED'>;
13140
15133
  429: ErrorBody<'CODE_LOCKED' | 'RATE_LIMITED'>;
13141
15134
  500: ErrorBody<'INTERNAL'>;
@@ -13159,6 +15152,6 @@ export interface Operations {
13159
15152
  /** Every operationId. */
13160
15153
  export type OperationId = keyof Operations;
13161
15154
  /** The paged lists: `Rewloy.paginate` walks them. */
13162
- export type PagedOperationId = 'listCustomers' | 'listCustomerCards' | 'customerTimeline' | 'listBlockedEmails' | 'listBlockedPhones' | 'listBatchCards' | 'listSegmentCards' | 'listCampaigns' | 'listCampaignRecipients' | 'listAutomationRecipients' | 'listSequenceRecipients' | 'listActivity' | 'listAccessLog' | 'listShopOrders' | 'listApiKeyRequests' | 'listWebhookDeliveries' | 'listTestMessages' | 'listNotifications' | 'listTickets' | 'holderNotifications';
15155
+ export type PagedOperationId = 'listCustomers' | 'listCustomerCards' | 'customerTimeline' | 'listBlockedEmails' | 'listBlockedPhones' | 'listBatchCards' | 'listSegmentCards' | 'listCampaigns' | 'listCampaignRecipients' | 'listAutomationRecipients' | 'listSequenceRecipients' | 'listActivity' | 'listAccessLog' | 'listShopOrders' | 'listShopRedemptions' | 'listApiKeyRequests' | 'listWebhookDeliveries' | 'listTestMessages' | 'listNotifications' | 'listTickets' | 'holderNotifications';
13163
15156
  /** The server-sent event streams: `Rewloy.stream` opens them. */
13164
15157
  export type StreamOperationId = 'liveFeed' | 'holderCardEvents';