@fire-spark/types 0.2.0 → 0.3.1

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.
Files changed (2) hide show
  1. package/dist/index.d.ts +903 -106
  2. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -68,7 +68,11 @@ interface ChannelManifest {
68
68
  /** Port of `pnpm start`: 3000 for the server, 3001+ for channels. */
69
69
  port: number;
70
70
  platforms: ChannelPlatform[];
71
- /** Default locale first, then up to 2 extra locales. */
71
+ /**
72
+ * Canonical BCP 47 tags, deduped: the merchant's locale first (`es` or
73
+ * `es-EC`), then up to 2 extra locales. Apps without a catalog for a tag
74
+ * use its language one (`es-EC` → `es`), then the template default.
75
+ */
72
76
  locales: string[];
73
77
  web?: ChannelManifestWeb;
74
78
  native?: ChannelManifestNative;
@@ -705,6 +709,7 @@ type OrderFulfillment = {
705
709
  mappedStatus: string;
706
710
  milestone?: string | undefined;
707
711
  checkout_release?: boolean | undefined;
712
+ payment_scope?: "digital" | "in_person" | undefined;
708
713
  joinPolicy?: "all" | "any" | undefined;
709
714
  actions?: {
710
715
  id: string;
@@ -821,7 +826,7 @@ type OrderFulfillment = {
821
826
  channel_id: string;
822
827
  brand_id: string;
823
828
  primitive: "boolean";
824
- type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag";
829
+ type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag" | "Payment captured" | "Payment is mixed";
825
830
  operator: "is" | "is not";
826
831
  value: boolean;
827
832
  invalidMessage?: string | undefined;
@@ -914,6 +919,7 @@ type MerchantPayment = {
914
919
  id: string;
915
920
  payment_provider_id: string;
916
921
  payment_method_id: string;
922
+ name?: string | null | undefined;
917
923
  rules: {
918
924
  minimum_order_value: number;
919
925
  maximum_order_value: number;
@@ -969,7 +975,7 @@ type MerchantPayment = {
969
975
  channel_id: string;
970
976
  brand_id: string;
971
977
  primitive: "boolean";
972
- type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag";
978
+ type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag" | "Payment captured" | "Payment is mixed";
973
979
  operator: "is" | "is not";
974
980
  value: boolean;
975
981
  invalidMessage?: string | undefined;
@@ -1023,7 +1029,7 @@ type MerchantPayment = {
1023
1029
  };
1024
1030
  method: {
1025
1031
  id: string;
1026
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
1032
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
1027
1033
  name: string;
1028
1034
  version: string;
1029
1035
  config?: {
@@ -1183,7 +1189,7 @@ type StorefrontAvailabilityInput = {
1183
1189
  channel_id?: string | undefined;
1184
1190
  brand_id?: string | undefined;
1185
1191
  payment_id?: string | undefined;
1186
- payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET" | undefined;
1192
+ payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET" | undefined;
1187
1193
  };
1188
1194
  /** Availability slice of `GET /storefront/v1/preferences`. */
1189
1195
  type StorefrontAvailability = {
@@ -1217,7 +1223,7 @@ type StorefrontPreferencesInput = {
1217
1223
  channel_id?: string | undefined;
1218
1224
  brand_id?: string | undefined;
1219
1225
  payment_id?: string | undefined;
1220
- payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET" | undefined;
1226
+ payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET" | undefined;
1221
1227
  };
1222
1228
  /** Resolved merchant preferences (`GET /storefront/v1/preferences` `data`). */
1223
1229
  type StorefrontPreferences = {
@@ -1273,6 +1279,17 @@ type StorefrontPreferences = {
1273
1279
  ios_store_url: string;
1274
1280
  android_store_url: string;
1275
1281
  };
1282
+ payments: {
1283
+ mixed: {
1284
+ max_methods: number;
1285
+ max_items_per_method: number | null;
1286
+ max_amount_per_method: number | null;
1287
+ per_method: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
1288
+ max_amount: number | null;
1289
+ max_items: number | null;
1290
+ }>>;
1291
+ } | null;
1292
+ };
1276
1293
  country?: string | undefined;
1277
1294
  locale?: string | undefined;
1278
1295
  currency?: {
@@ -1528,7 +1545,7 @@ type StorefrontRealtimeTokenInput = {
1528
1545
  channel_id?: string | undefined;
1529
1546
  brand_id?: string | undefined;
1530
1547
  payment_id?: string | undefined;
1531
- payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET" | undefined;
1548
+ payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET" | undefined;
1532
1549
  };
1533
1550
  /** Token payload (`POST /storefront/v1/realtime/token` `data`). */
1534
1551
  type StorefrontRealtimeToken = {
@@ -1784,6 +1801,10 @@ type OrderLine = {
1784
1801
  discount_amount?: number | undefined;
1785
1802
  before_taxes?: boolean | undefined;
1786
1803
  expires_at?: string | undefined;
1804
+ payment_id?: string | undefined;
1805
+ amount?: number | undefined;
1806
+ points?: number | undefined;
1807
+ program?: string | undefined;
1787
1808
  }[];
1788
1809
  quantity: number;
1789
1810
  tax_rate: number | null;
@@ -1813,6 +1834,10 @@ type OrderRedeem = {
1813
1834
  discount_amount?: number | undefined;
1814
1835
  before_taxes?: boolean | undefined;
1815
1836
  expires_at?: string | undefined;
1837
+ payment_id?: string | undefined;
1838
+ amount?: number | undefined;
1839
+ points?: number | undefined;
1840
+ program?: string | undefined;
1816
1841
  };
1817
1842
  /** Redeem as sent by callers (`quantity` defaults to 1). */
1818
1843
  type OrderRedeemInput = {
@@ -1822,6 +1847,10 @@ type OrderRedeemInput = {
1822
1847
  discount_amount?: number | undefined;
1823
1848
  before_taxes?: boolean | undefined;
1824
1849
  expires_at?: string | undefined;
1850
+ payment_id?: string | undefined;
1851
+ amount?: number | undefined;
1852
+ points?: number | undefined;
1853
+ program?: string | undefined;
1825
1854
  };
1826
1855
  /** Order or line snapshot before/after a redemption step. */
1827
1856
  type OrderRedemptionState = {
@@ -1908,6 +1937,10 @@ type Order = {
1908
1937
  discount_amount?: number | undefined;
1909
1938
  before_taxes?: boolean | undefined;
1910
1939
  expires_at?: string | undefined;
1940
+ payment_id?: string | undefined;
1941
+ amount?: number | undefined;
1942
+ points?: number | undefined;
1943
+ program?: string | undefined;
1911
1944
  }[];
1912
1945
  quantity: number;
1913
1946
  tax_rate: number | null;
@@ -1936,6 +1969,10 @@ type Order = {
1936
1969
  discount_amount?: number | undefined;
1937
1970
  before_taxes?: boolean | undefined;
1938
1971
  expires_at?: string | undefined;
1972
+ payment_id?: string | undefined;
1973
+ amount?: number | undefined;
1974
+ points?: number | undefined;
1975
+ program?: string | undefined;
1939
1976
  }[];
1940
1977
  redemption_steps: {
1941
1978
  reward_id: string;
@@ -2014,12 +2051,20 @@ type Order = {
2014
2051
  } | null | undefined;
2015
2052
  };
2016
2053
  payment_intents: {
2017
- id?: string | undefined;
2018
- payment_id?: string | undefined;
2019
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2020
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2021
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2022
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2054
+ id: string;
2055
+ status: "ABANDONED" | "COMPLETED" | "DRAFT" | "LOCKED";
2056
+ is_mixed: boolean;
2057
+ rules_snapshot: {
2058
+ enabled: boolean;
2059
+ max_methods: number;
2060
+ max_items_per_method: number | null;
2061
+ max_amount_per_method: number | null;
2062
+ per_method: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
2063
+ max_amount: number | null;
2064
+ max_items: number | null;
2065
+ }>>;
2066
+ } | null;
2067
+ primary_tender_id: string | null;
2023
2068
  totals: {
2024
2069
  currency: string;
2025
2070
  subtotal: number;
@@ -2029,10 +2074,114 @@ type Order = {
2029
2074
  tax_total: number;
2030
2075
  total: number;
2031
2076
  };
2032
- error_message?: string | undefined;
2033
- placed_at: string;
2077
+ placed_at: string | null;
2034
2078
  resolved_at?: string | undefined;
2035
2079
  metadata: Record<string, unknown>;
2080
+ tenders: {
2081
+ id: string;
2082
+ sequence: number;
2083
+ attempt_reference: string;
2084
+ previous_attempt_references: string[];
2085
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2086
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2087
+ payment_id?: string | undefined;
2088
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2089
+ status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2090
+ amount: {
2091
+ currency: string;
2092
+ subtotal: number;
2093
+ discount_total: number;
2094
+ tax_total: number;
2095
+ fees: number;
2096
+ tip: number;
2097
+ delivery: number;
2098
+ redemptions_applied: number;
2099
+ total: number;
2100
+ };
2101
+ refunded_total: number;
2102
+ allocation: {
2103
+ lines: {
2104
+ line_uid: string;
2105
+ units?: number | undefined;
2106
+ }[];
2107
+ fees: string[];
2108
+ amounts: {
2109
+ line_uid: string;
2110
+ units?: number | undefined;
2111
+ subtotal: number;
2112
+ discount: number;
2113
+ tax: number;
2114
+ total: number;
2115
+ children: {
2116
+ line_uid: string;
2117
+ quantity: number;
2118
+ subtotal: number;
2119
+ discount: number;
2120
+ tax: number;
2121
+ total: number;
2122
+ }[];
2123
+ }[];
2124
+ } | null;
2125
+ details: {
2126
+ method: "REDEMPTION";
2127
+ program?: string | undefined;
2128
+ rewards: {
2129
+ reward_id: string;
2130
+ quantity: number;
2131
+ points: number;
2132
+ points_value: number;
2133
+ }[];
2134
+ points: number;
2135
+ points_value: number;
2136
+ loyalty_transaction_id?: string | undefined;
2137
+ } | {
2138
+ brand: string;
2139
+ last4: string;
2140
+ auth_code?: string | undefined;
2141
+ installments?: number | undefined;
2142
+ method: "CARD";
2143
+ } | {
2144
+ brand: string;
2145
+ last4: string;
2146
+ auth_code?: string | undefined;
2147
+ installments?: number | undefined;
2148
+ method: "PIN_PAD";
2149
+ terminal_id: string;
2150
+ } | {
2151
+ method: "CASH";
2152
+ tendered: number;
2153
+ change: number;
2154
+ } | {
2155
+ method: "BANK_TRANSFER";
2156
+ reference: string;
2157
+ bank?: string | undefined;
2158
+ } | {
2159
+ method: "WALLET";
2160
+ wallet: string;
2161
+ reference: string;
2162
+ } | {
2163
+ method: "FINANCING";
2164
+ provider_reference: string;
2165
+ installments: number;
2166
+ } | {
2167
+ method: "REDEMPTION";
2168
+ program: string;
2169
+ loyalty_transaction_id?: string | undefined;
2170
+ rewards: {
2171
+ reward_id: string;
2172
+ quantity: number;
2173
+ points: number;
2174
+ points_value: number;
2175
+ }[];
2176
+ points: number;
2177
+ points_value: number;
2178
+ } | null;
2179
+ replaces_tender_id?: string | undefined;
2180
+ error_message?: string | undefined;
2181
+ placed_at: string | null;
2182
+ resolved_at?: string | undefined;
2183
+ metadata: Record<string, unknown>;
2184
+ }[];
2036
2185
  }[];
2037
2186
  totals: {
2038
2187
  currency: string;
@@ -2079,17 +2228,25 @@ type BillingInfo = {
2079
2228
  metadata: Record<string, unknown> | null;
2080
2229
  };
2081
2230
  /** Payment method enum on order payment intents. */
2082
- type PaymentMethod = "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2231
+ type PaymentMethod = "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2083
2232
  /** Payment provider enum on order payment intents. */
2084
2233
  type PaymentProvider = "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2085
- /** A recorded payment intent on an order. */
2234
+ /** How an order is paid: one or more tenders (`orders.payment_intents[]`). */
2086
2235
  type PaymentIntent = {
2087
- id?: string | undefined;
2088
- payment_id?: string | undefined;
2089
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2090
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2091
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2092
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2236
+ id: string;
2237
+ status: "ABANDONED" | "COMPLETED" | "DRAFT" | "LOCKED";
2238
+ is_mixed: boolean;
2239
+ rules_snapshot: {
2240
+ enabled: boolean;
2241
+ max_methods: number;
2242
+ max_items_per_method: number | null;
2243
+ max_amount_per_method: number | null;
2244
+ per_method: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
2245
+ max_amount: number | null;
2246
+ max_items: number | null;
2247
+ }>>;
2248
+ } | null;
2249
+ primary_tender_id: string | null;
2093
2250
  totals: {
2094
2251
  currency: string;
2095
2252
  subtotal: number;
@@ -2099,19 +2256,131 @@ type PaymentIntent = {
2099
2256
  tax_total: number;
2100
2257
  total: number;
2101
2258
  };
2102
- error_message?: string | undefined;
2103
- placed_at: string;
2259
+ placed_at: string | null;
2104
2260
  resolved_at?: string | undefined;
2105
2261
  metadata: Record<string, unknown>;
2262
+ tenders: {
2263
+ id: string;
2264
+ sequence: number;
2265
+ attempt_reference: string;
2266
+ previous_attempt_references: string[];
2267
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2268
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2269
+ payment_id?: string | undefined;
2270
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2271
+ status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2272
+ amount: {
2273
+ currency: string;
2274
+ subtotal: number;
2275
+ discount_total: number;
2276
+ tax_total: number;
2277
+ fees: number;
2278
+ tip: number;
2279
+ delivery: number;
2280
+ redemptions_applied: number;
2281
+ total: number;
2282
+ };
2283
+ refunded_total: number;
2284
+ allocation: {
2285
+ lines: {
2286
+ line_uid: string;
2287
+ units?: number | undefined;
2288
+ }[];
2289
+ fees: string[];
2290
+ amounts: {
2291
+ line_uid: string;
2292
+ units?: number | undefined;
2293
+ subtotal: number;
2294
+ discount: number;
2295
+ tax: number;
2296
+ total: number;
2297
+ children: {
2298
+ line_uid: string;
2299
+ quantity: number;
2300
+ subtotal: number;
2301
+ discount: number;
2302
+ tax: number;
2303
+ total: number;
2304
+ }[];
2305
+ }[];
2306
+ } | null;
2307
+ details: {
2308
+ method: "REDEMPTION";
2309
+ program?: string | undefined;
2310
+ rewards: {
2311
+ reward_id: string;
2312
+ quantity: number;
2313
+ points: number;
2314
+ points_value: number;
2315
+ }[];
2316
+ points: number;
2317
+ points_value: number;
2318
+ loyalty_transaction_id?: string | undefined;
2319
+ } | {
2320
+ brand: string;
2321
+ last4: string;
2322
+ auth_code?: string | undefined;
2323
+ installments?: number | undefined;
2324
+ method: "CARD";
2325
+ } | {
2326
+ brand: string;
2327
+ last4: string;
2328
+ auth_code?: string | undefined;
2329
+ installments?: number | undefined;
2330
+ method: "PIN_PAD";
2331
+ terminal_id: string;
2332
+ } | {
2333
+ method: "CASH";
2334
+ tendered: number;
2335
+ change: number;
2336
+ } | {
2337
+ method: "BANK_TRANSFER";
2338
+ reference: string;
2339
+ bank?: string | undefined;
2340
+ } | {
2341
+ method: "WALLET";
2342
+ wallet: string;
2343
+ reference: string;
2344
+ } | {
2345
+ method: "FINANCING";
2346
+ provider_reference: string;
2347
+ installments: number;
2348
+ } | {
2349
+ method: "REDEMPTION";
2350
+ program: string;
2351
+ loyalty_transaction_id?: string | undefined;
2352
+ rewards: {
2353
+ reward_id: string;
2354
+ quantity: number;
2355
+ points: number;
2356
+ points_value: number;
2357
+ }[];
2358
+ points: number;
2359
+ points_value: number;
2360
+ } | null;
2361
+ replaces_tender_id?: string | undefined;
2362
+ error_message?: string | undefined;
2363
+ placed_at: string | null;
2364
+ resolved_at?: string | undefined;
2365
+ metadata: Record<string, unknown>;
2366
+ }[];
2106
2367
  };
2107
- /** Input shape for `placeOrder` `payment.intents` (`metadata` optional). */
2368
+ /** Stored payment intent as accepted on input (defaults optional). */
2108
2369
  type PaymentIntentInput = {
2109
- id?: string | undefined;
2110
- payment_id?: string | undefined;
2111
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2112
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2113
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2114
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2370
+ id: string;
2371
+ status: "ABANDONED" | "COMPLETED" | "DRAFT" | "LOCKED";
2372
+ is_mixed?: boolean | undefined;
2373
+ rules_snapshot?: {
2374
+ enabled?: boolean | undefined;
2375
+ max_methods?: number | undefined;
2376
+ max_items_per_method?: number | null | undefined;
2377
+ max_amount_per_method?: number | null | undefined;
2378
+ per_method?: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
2379
+ max_amount?: number | null | undefined;
2380
+ max_items?: number | null | undefined;
2381
+ }>> | undefined;
2382
+ } | null | undefined;
2383
+ primary_tender_id: string | null;
2115
2384
  totals: {
2116
2385
  currency: string;
2117
2386
  subtotal: number;
@@ -2121,11 +2390,501 @@ type PaymentIntentInput = {
2121
2390
  tax_total: number;
2122
2391
  total: number;
2123
2392
  };
2393
+ placed_at?: string | null | undefined;
2394
+ resolved_at?: string | undefined;
2395
+ metadata?: Record<string, unknown> | undefined;
2396
+ tenders: {
2397
+ id: string;
2398
+ sequence: number;
2399
+ attempt_reference: string;
2400
+ previous_attempt_references?: string[] | undefined;
2401
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2402
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2403
+ payment_id?: string | undefined;
2404
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2405
+ status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2406
+ amount: {
2407
+ currency: string;
2408
+ subtotal: number;
2409
+ discount_total: number;
2410
+ tax_total: number;
2411
+ fees?: number | undefined;
2412
+ tip?: number | undefined;
2413
+ delivery?: number | undefined;
2414
+ redemptions_applied?: number | undefined;
2415
+ total: number;
2416
+ };
2417
+ refunded_total?: number | undefined;
2418
+ allocation?: {
2419
+ lines?: {
2420
+ line_uid: string;
2421
+ units?: number | undefined;
2422
+ }[] | undefined;
2423
+ fees?: string[] | undefined;
2424
+ amounts?: {
2425
+ line_uid: string;
2426
+ units?: number | undefined;
2427
+ subtotal: number;
2428
+ discount: number;
2429
+ tax: number;
2430
+ total: number;
2431
+ children?: {
2432
+ line_uid: string;
2433
+ quantity: number;
2434
+ subtotal: number;
2435
+ discount: number;
2436
+ tax: number;
2437
+ total: number;
2438
+ }[] | undefined;
2439
+ }[] | undefined;
2440
+ } | null | undefined;
2441
+ details?: {
2442
+ method: "REDEMPTION";
2443
+ reward_id: string;
2444
+ program: string;
2445
+ points: number;
2446
+ points_value: number;
2447
+ loyalty_transaction_id?: string | undefined;
2448
+ } | {
2449
+ brand: string;
2450
+ last4: string;
2451
+ auth_code?: string | undefined;
2452
+ installments?: number | undefined;
2453
+ method: "CARD";
2454
+ } | {
2455
+ brand: string;
2456
+ last4: string;
2457
+ auth_code?: string | undefined;
2458
+ installments?: number | undefined;
2459
+ method: "PIN_PAD";
2460
+ terminal_id: string;
2461
+ } | {
2462
+ method: "CASH";
2463
+ tendered: number;
2464
+ change: number;
2465
+ } | {
2466
+ method: "BANK_TRANSFER";
2467
+ reference: string;
2468
+ bank?: string | undefined;
2469
+ } | {
2470
+ method: "WALLET";
2471
+ wallet: string;
2472
+ reference: string;
2473
+ } | {
2474
+ method: "FINANCING";
2475
+ provider_reference: string;
2476
+ installments: number;
2477
+ } | {
2478
+ method: "REDEMPTION";
2479
+ program?: string | undefined;
2480
+ rewards: {
2481
+ reward_id: string;
2482
+ quantity?: number | undefined;
2483
+ points: number;
2484
+ points_value: number;
2485
+ }[];
2486
+ points: number;
2487
+ points_value: number;
2488
+ loyalty_transaction_id?: string | undefined;
2489
+ } | null | undefined;
2490
+ replaces_tender_id?: string | undefined;
2491
+ error_message?: string | undefined;
2492
+ placed_at?: string | null | undefined;
2493
+ resolved_at?: string | undefined;
2494
+ metadata?: Record<string, unknown> | undefined;
2495
+ }[];
2496
+ };
2497
+ /** Lifecycle of a payment intent (`DRAFT` → `LOCKED` → `COMPLETED`). */
2498
+ type PaymentIntentStatus = "ABANDONED" | "COMPLETED" | "DRAFT" | "LOCKED";
2499
+ /** Tender / order `payment_status`. */
2500
+ type PaymentStatus = "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2501
+ /** Where a tender is collected. */
2502
+ type PaymentCollectAt = "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2503
+ /** `payment_scope` of a `PAYING` workflow node. */
2504
+ type PaymentScope = "digital" | "in_person";
2505
+ /** One payment method inside an intent. */
2506
+ type PaymentTender = {
2507
+ id: string;
2508
+ sequence: number;
2509
+ attempt_reference: string;
2510
+ previous_attempt_references: string[];
2511
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2512
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2513
+ payment_id?: string | undefined;
2514
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2515
+ status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2516
+ amount: {
2517
+ currency: string;
2518
+ subtotal: number;
2519
+ discount_total: number;
2520
+ tax_total: number;
2521
+ fees: number;
2522
+ tip: number;
2523
+ delivery: number;
2524
+ redemptions_applied: number;
2525
+ total: number;
2526
+ };
2527
+ refunded_total: number;
2528
+ allocation: {
2529
+ lines: {
2530
+ line_uid: string;
2531
+ units?: number | undefined;
2532
+ }[];
2533
+ fees: string[];
2534
+ amounts: {
2535
+ line_uid: string;
2536
+ units?: number | undefined;
2537
+ subtotal: number;
2538
+ discount: number;
2539
+ tax: number;
2540
+ total: number;
2541
+ children: {
2542
+ line_uid: string;
2543
+ quantity: number;
2544
+ subtotal: number;
2545
+ discount: number;
2546
+ tax: number;
2547
+ total: number;
2548
+ }[];
2549
+ }[];
2550
+ } | null;
2551
+ details: {
2552
+ method: "REDEMPTION";
2553
+ program?: string | undefined;
2554
+ rewards: {
2555
+ reward_id: string;
2556
+ quantity: number;
2557
+ points: number;
2558
+ points_value: number;
2559
+ }[];
2560
+ points: number;
2561
+ points_value: number;
2562
+ loyalty_transaction_id?: string | undefined;
2563
+ } | {
2564
+ brand: string;
2565
+ last4: string;
2566
+ auth_code?: string | undefined;
2567
+ installments?: number | undefined;
2568
+ method: "CARD";
2569
+ } | {
2570
+ brand: string;
2571
+ last4: string;
2572
+ auth_code?: string | undefined;
2573
+ installments?: number | undefined;
2574
+ method: "PIN_PAD";
2575
+ terminal_id: string;
2576
+ } | {
2577
+ method: "CASH";
2578
+ tendered: number;
2579
+ change: number;
2580
+ } | {
2581
+ method: "BANK_TRANSFER";
2582
+ reference: string;
2583
+ bank?: string | undefined;
2584
+ } | {
2585
+ method: "WALLET";
2586
+ wallet: string;
2587
+ reference: string;
2588
+ } | {
2589
+ method: "FINANCING";
2590
+ provider_reference: string;
2591
+ installments: number;
2592
+ } | {
2593
+ method: "REDEMPTION";
2594
+ program: string;
2595
+ loyalty_transaction_id?: string | undefined;
2596
+ rewards: {
2597
+ reward_id: string;
2598
+ quantity: number;
2599
+ points: number;
2600
+ points_value: number;
2601
+ }[];
2602
+ points: number;
2603
+ points_value: number;
2604
+ } | null;
2605
+ replaces_tender_id?: string | undefined;
2124
2606
  error_message?: string | undefined;
2125
- placed_at: string;
2607
+ placed_at: string | null;
2126
2608
  resolved_at?: string | undefined;
2609
+ metadata: Record<string, unknown>;
2610
+ };
2611
+ /** Money one tender charges. */
2612
+ type TenderAmount = {
2613
+ currency: string;
2614
+ subtotal: number;
2615
+ discount_total: number;
2616
+ tax_total: number;
2617
+ fees: number;
2618
+ tip: number;
2619
+ delivery: number;
2620
+ redemptions_applied: number;
2621
+ total: number;
2622
+ };
2623
+ /** Lines / fees a tender covers, with server-computed amounts. */
2624
+ type TenderAllocation = {
2625
+ lines: {
2626
+ line_uid: string;
2627
+ units?: number | undefined;
2628
+ }[];
2629
+ fees: string[];
2630
+ amounts: {
2631
+ line_uid: string;
2632
+ units?: number | undefined;
2633
+ subtotal: number;
2634
+ discount: number;
2635
+ tax: number;
2636
+ total: number;
2637
+ children: {
2638
+ line_uid: string;
2639
+ quantity: number;
2640
+ subtotal: number;
2641
+ discount: number;
2642
+ tax: number;
2643
+ total: number;
2644
+ }[];
2645
+ }[];
2646
+ };
2647
+ /** Allocation sent by clients (no `amounts`). */
2648
+ type TenderAllocationInput = {
2649
+ lines?: {
2650
+ line_uid: string;
2651
+ units?: number | undefined;
2652
+ }[] | undefined;
2653
+ fees?: string[] | undefined;
2654
+ };
2655
+ /** Non-sensitive tender data, discriminated by `method`. */
2656
+ type TenderDetails = {
2657
+ method: "REDEMPTION";
2658
+ program?: string | undefined;
2659
+ rewards: {
2660
+ reward_id: string;
2661
+ quantity: number;
2662
+ points: number;
2663
+ points_value: number;
2664
+ }[];
2665
+ points: number;
2666
+ points_value: number;
2667
+ loyalty_transaction_id?: string | undefined;
2668
+ } | {
2669
+ brand: string;
2670
+ last4: string;
2671
+ auth_code?: string | undefined;
2672
+ installments?: number | undefined;
2673
+ method: "CARD";
2674
+ } | {
2675
+ brand: string;
2676
+ last4: string;
2677
+ auth_code?: string | undefined;
2678
+ installments?: number | undefined;
2679
+ method: "PIN_PAD";
2680
+ terminal_id: string;
2681
+ } | {
2682
+ method: "CASH";
2683
+ tendered: number;
2684
+ change: number;
2685
+ } | {
2686
+ method: "BANK_TRANSFER";
2687
+ reference: string;
2688
+ bank?: string | undefined;
2689
+ } | {
2690
+ method: "WALLET";
2691
+ wallet: string;
2692
+ reference: string;
2693
+ } | {
2694
+ method: "FINANCING";
2695
+ provider_reference: string;
2696
+ installments: number;
2697
+ } | {
2698
+ method: "REDEMPTION";
2699
+ program: string;
2700
+ loyalty_transaction_id?: string | undefined;
2701
+ rewards: {
2702
+ reward_id: string;
2703
+ quantity: number;
2704
+ points: number;
2705
+ points_value: number;
2706
+ }[];
2707
+ points: number;
2708
+ points_value: number;
2709
+ };
2710
+ /** One tender in `PUT /storefront/v1/orders/{id}/payment-intent`. */
2711
+ type PaymentTenderInput = {
2712
+ id?: string | undefined;
2713
+ attempt_reference?: string | undefined;
2714
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2715
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2716
+ payment_id?: string | undefined;
2717
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2718
+ allocation?: {
2719
+ lines?: {
2720
+ line_uid: string;
2721
+ units?: number | undefined;
2722
+ }[] | undefined;
2723
+ fees?: string[] | undefined;
2724
+ } | null | undefined;
2725
+ details?: {
2726
+ method: "REDEMPTION";
2727
+ reward_id: string;
2728
+ program: string;
2729
+ points: number;
2730
+ points_value: number;
2731
+ loyalty_transaction_id?: string | undefined;
2732
+ } | {
2733
+ brand: string;
2734
+ last4: string;
2735
+ auth_code?: string | undefined;
2736
+ installments?: number | undefined;
2737
+ method: "CARD";
2738
+ } | {
2739
+ brand: string;
2740
+ last4: string;
2741
+ auth_code?: string | undefined;
2742
+ installments?: number | undefined;
2743
+ method: "PIN_PAD";
2744
+ terminal_id: string;
2745
+ } | {
2746
+ method: "CASH";
2747
+ tendered: number;
2748
+ change: number;
2749
+ } | {
2750
+ method: "BANK_TRANSFER";
2751
+ reference: string;
2752
+ bank?: string | undefined;
2753
+ } | {
2754
+ method: "WALLET";
2755
+ wallet: string;
2756
+ reference: string;
2757
+ } | {
2758
+ method: "FINANCING";
2759
+ provider_reference: string;
2760
+ installments: number;
2761
+ } | {
2762
+ method: "REDEMPTION";
2763
+ program?: string | undefined;
2764
+ rewards: {
2765
+ reward_id: string;
2766
+ quantity?: number | undefined;
2767
+ points: number;
2768
+ points_value: number;
2769
+ }[];
2770
+ points: number;
2771
+ points_value: number;
2772
+ loyalty_transaction_id?: string | undefined;
2773
+ } | null | undefined;
2774
+ };
2775
+ /** `PUT /storefront/v1/orders/{id}/payment-intent` body. */
2776
+ type PaymentIntentPutInput = {
2777
+ tenders: {
2778
+ id?: string | undefined;
2779
+ attempt_reference?: string | undefined;
2780
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2781
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2782
+ payment_id?: string | undefined;
2783
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2784
+ allocation?: {
2785
+ lines?: {
2786
+ line_uid: string;
2787
+ units?: number | undefined;
2788
+ }[] | undefined;
2789
+ fees?: string[] | undefined;
2790
+ } | null | undefined;
2791
+ details?: {
2792
+ method: "REDEMPTION";
2793
+ reward_id: string;
2794
+ program: string;
2795
+ points: number;
2796
+ points_value: number;
2797
+ loyalty_transaction_id?: string | undefined;
2798
+ } | {
2799
+ brand: string;
2800
+ last4: string;
2801
+ auth_code?: string | undefined;
2802
+ installments?: number | undefined;
2803
+ method: "CARD";
2804
+ } | {
2805
+ brand: string;
2806
+ last4: string;
2807
+ auth_code?: string | undefined;
2808
+ installments?: number | undefined;
2809
+ method: "PIN_PAD";
2810
+ terminal_id: string;
2811
+ } | {
2812
+ method: "CASH";
2813
+ tendered: number;
2814
+ change: number;
2815
+ } | {
2816
+ method: "BANK_TRANSFER";
2817
+ reference: string;
2818
+ bank?: string | undefined;
2819
+ } | {
2820
+ method: "WALLET";
2821
+ wallet: string;
2822
+ reference: string;
2823
+ } | {
2824
+ method: "FINANCING";
2825
+ provider_reference: string;
2826
+ installments: number;
2827
+ } | {
2828
+ method: "REDEMPTION";
2829
+ program?: string | undefined;
2830
+ rewards: {
2831
+ reward_id: string;
2832
+ quantity?: number | undefined;
2833
+ points: number;
2834
+ points_value: number;
2835
+ }[];
2836
+ points: number;
2837
+ points_value: number;
2838
+ loyalty_transaction_id?: string | undefined;
2839
+ } | null | undefined;
2840
+ }[];
2127
2841
  metadata?: Record<string, unknown> | undefined;
2128
2842
  };
2843
+ /** `POST …/tenders/{tenderId}/replace` body. */
2844
+ type TenderReplaceInput = {
2845
+ method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET";
2846
+ payment_id: string;
2847
+ provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2848
+ collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2849
+ };
2850
+ /** `POST …/tenders/{tenderId}/void` body. */
2851
+ type TenderVoidInput = {
2852
+ idempotency_key: string;
2853
+ reason?: string | undefined;
2854
+ };
2855
+ /** `POST …/tenders/{tenderId}/refund` body. */
2856
+ type TenderRefundInput = {
2857
+ idempotency_key: string;
2858
+ amount?: number | undefined;
2859
+ items?: {
2860
+ line_uid: string;
2861
+ units?: number | undefined;
2862
+ }[] | undefined;
2863
+ reason?: string | undefined;
2864
+ };
2865
+ /** Mixed payments limits exposed in storefront preferences. */
2866
+ type MixedPaymentsLimits = {
2867
+ max_methods: number;
2868
+ max_items_per_method: number | null;
2869
+ max_amount_per_method: number | null;
2870
+ per_method: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
2871
+ max_amount: number | null;
2872
+ max_items: number | null;
2873
+ }>>;
2874
+ };
2875
+ /** Effect of a merchant `mixed_payments` rule. */
2876
+ type MixedPaymentsEffect = {
2877
+ enabled: boolean;
2878
+ max_methods: number;
2879
+ max_items_per_method: number | null;
2880
+ max_amount_per_method: number | null;
2881
+ per_method: Partial<Record<"BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET", {
2882
+ max_amount: number | null;
2883
+ max_items: number | null;
2884
+ }>>;
2885
+ };
2886
+ /** `details.code` of intent / tender API errors. */
2887
+ type PaymentErrorCode = "MIXED_PAYMENTS_DISABLED" | "PAYMENT_AMOUNT_EXCEEDED" | "PAYMENT_INTENT_LOCKED" | "PAYMENT_INTENT_STALE" | "PAYMENT_INVALID_ALLOCATION" | "PAYMENT_INVALID_COMBINATION" | "PAYMENT_INVALID_PRIMARY" | "PAYMENT_LINE_NOT_SPLITTABLE" | "PAYMENT_METHOD_UNAVAILABLE" | "PAYMENT_REDEMPTION_EXCEEDED" | "PAYMENT_REDEMPTION_MISMATCH" | "PAYMENT_TOO_MANY_ITEMS" | "PAYMENT_TOO_MANY_METHODS" | "PAYMENT_UNALLOCATED_LINES" | "REDEEM_PAYMENT_METHOD_NOT_CONFIGURED";
2129
2888
  /** `POST /storefront/v1/orders` body. */
2130
2889
  type OrderInsertInput = {
2131
2890
  id: string;
@@ -2201,6 +2960,10 @@ type OrderInsertInput = {
2201
2960
  discount_amount?: number | undefined;
2202
2961
  before_taxes?: boolean | undefined;
2203
2962
  expires_at?: string | undefined;
2963
+ payment_id?: string | undefined;
2964
+ amount?: number | undefined;
2965
+ points?: number | undefined;
2966
+ program?: string | undefined;
2204
2967
  }[] | undefined;
2205
2968
  quantity: number;
2206
2969
  tax_rate: number | null;
@@ -2229,6 +2992,10 @@ type OrderInsertInput = {
2229
2992
  discount_amount?: number | undefined;
2230
2993
  before_taxes?: boolean | undefined;
2231
2994
  expires_at?: string | undefined;
2995
+ payment_id?: string | undefined;
2996
+ amount?: number | undefined;
2997
+ points?: number | undefined;
2998
+ program?: string | undefined;
2232
2999
  }[] | undefined;
2233
3000
  redemption_steps?: {
2234
3001
  reward_id: string;
@@ -2273,28 +3040,6 @@ type OrderInsertInput = {
2273
3040
  total: number;
2274
3041
  } | undefined;
2275
3042
  metadata?: Record<string, unknown> | undefined;
2276
- payment_intents?: {
2277
- id?: string | undefined;
2278
- payment_id?: string | undefined;
2279
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2280
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2281
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2282
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2283
- totals: {
2284
- currency: string;
2285
- subtotal: number;
2286
- discount_rate: number;
2287
- discount_total: number;
2288
- tax_rate: number;
2289
- tax_total: number;
2290
- total: number;
2291
- };
2292
- error_message?: string | undefined;
2293
- placed_at: string;
2294
- resolved_at?: string | undefined;
2295
- metadata?: Record<string, unknown> | undefined;
2296
- }[] | undefined;
2297
- payment_status?: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED" | undefined;
2298
3043
  };
2299
3044
  /** `PATCH /storefront/v1/orders/{id}` body. */
2300
3045
  type OrderUpdateInput = {
@@ -2369,6 +3114,10 @@ type OrderUpdateInput = {
2369
3114
  discount_amount?: number | undefined;
2370
3115
  before_taxes?: boolean | undefined;
2371
3116
  expires_at?: string | undefined;
3117
+ payment_id?: string | undefined;
3118
+ amount?: number | undefined;
3119
+ points?: number | undefined;
3120
+ program?: string | undefined;
2372
3121
  }[] | undefined;
2373
3122
  quantity: number;
2374
3123
  tax_rate: number | null;
@@ -2397,6 +3146,10 @@ type OrderUpdateInput = {
2397
3146
  discount_amount?: number | undefined;
2398
3147
  before_taxes?: boolean | undefined;
2399
3148
  expires_at?: string | undefined;
3149
+ payment_id?: string | undefined;
3150
+ amount?: number | undefined;
3151
+ points?: number | undefined;
3152
+ program?: string | undefined;
2400
3153
  }[] | undefined;
2401
3154
  redemption_steps?: {
2402
3155
  reward_id: string;
@@ -2441,28 +3194,6 @@ type OrderUpdateInput = {
2441
3194
  total: number;
2442
3195
  } | undefined;
2443
3196
  metadata?: Record<string, unknown> | undefined;
2444
- payment_intents?: {
2445
- id?: string | undefined;
2446
- payment_id?: string | undefined;
2447
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2448
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2449
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2450
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2451
- totals: {
2452
- currency: string;
2453
- subtotal: number;
2454
- discount_rate: number;
2455
- discount_total: number;
2456
- tax_rate: number;
2457
- tax_total: number;
2458
- total: number;
2459
- };
2460
- error_message?: string | undefined;
2461
- placed_at: string;
2462
- resolved_at?: string | undefined;
2463
- metadata?: Record<string, unknown> | undefined;
2464
- }[] | undefined;
2465
- payment_status?: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED" | undefined;
2466
3197
  };
2467
3198
  /** `GET /storefront/v1/orders` query. */
2468
3199
  type OrderListInput = {
@@ -2505,6 +3236,10 @@ type OrderValidateInput = {
2505
3236
  discount_amount?: number | undefined;
2506
3237
  before_taxes?: boolean | undefined;
2507
3238
  expires_at?: string | undefined;
3239
+ payment_id?: string | undefined;
3240
+ amount?: number | undefined;
3241
+ points?: number | undefined;
3242
+ program?: string | undefined;
2508
3243
  }[] | undefined;
2509
3244
  quantity: number;
2510
3245
  tax_rate: number | null;
@@ -2533,6 +3268,10 @@ type OrderValidateInput = {
2533
3268
  discount_amount?: number | undefined;
2534
3269
  before_taxes?: boolean | undefined;
2535
3270
  expires_at?: string | undefined;
3271
+ payment_id?: string | undefined;
3272
+ amount?: number | undefined;
3273
+ points?: number | undefined;
3274
+ program?: string | undefined;
2536
3275
  }[] | undefined;
2537
3276
  redemption_steps?: {
2538
3277
  reward_id: string;
@@ -2577,7 +3316,7 @@ type OrderValidateInput = {
2577
3316
  total: number;
2578
3317
  };
2579
3318
  payment_id?: string | undefined;
2580
- payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET" | undefined;
3319
+ payment_method?: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "REDEMPTION" | "WALLET" | undefined;
2581
3320
  };
2582
3321
  /** `POST /storefront/v1/orders/validate` success `data`. */
2583
3322
  type OrderValidateOutput = {
@@ -2589,30 +3328,62 @@ type OrderReorderInput = {
2589
3328
  };
2590
3329
  /** `POST /storefront/v1/orders/{id}/payments` body. */
2591
3330
  type OrderRecordPaymentInput = {
2592
- intent: {
2593
- id?: string | undefined;
2594
- payment_id?: string | undefined;
2595
- method: "BANK_TRANSFER" | "CARD" | "CASH" | "FINANCING" | "PIN_PAD" | "WALLET";
2596
- provider: "amipass" | "cashea" | "clisitef" | "credibanco" | "datafast" | "deuna" | "edenred" | "firespark" | "kushki" | "mach" | "medianet" | "mercadopago" | "niubiz" | "paymentz" | "paypal" | "payphone" | "place_to_pay" | "pluxee" | "posnet" | "redeban" | "rutpay" | "sitef_venezuela" | "stripe" | "transbank" | "yape";
2597
- collect_at: "COUNTER" | "DEVICE" | "DOOR" | "KIOSK" | "OTHER";
2598
- status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
2599
- totals: {
2600
- currency: string;
2601
- subtotal: number;
2602
- discount_rate: number;
2603
- discount_total: number;
2604
- tax_rate: number;
2605
- tax_total: number;
2606
- total: number;
2607
- };
2608
- error_message?: string | undefined;
2609
- placed_at: string;
2610
- resolved_at?: string | undefined;
2611
- metadata: {
2612
- [x: string]: unknown;
2613
- attempt_reference: string;
2614
- };
2615
- };
3331
+ tender_id: string;
3332
+ attempt_reference: string;
3333
+ status: "CANCELLED" | "FAILED" | "IDLE" | "PAID" | "PENDING" | "REFUNDED";
3334
+ details?: {
3335
+ method: "REDEMPTION";
3336
+ reward_id: string;
3337
+ program: string;
3338
+ points: number;
3339
+ points_value: number;
3340
+ loyalty_transaction_id?: string | undefined;
3341
+ } | {
3342
+ brand: string;
3343
+ last4: string;
3344
+ auth_code?: string | undefined;
3345
+ installments?: number | undefined;
3346
+ method: "CARD";
3347
+ } | {
3348
+ brand: string;
3349
+ last4: string;
3350
+ auth_code?: string | undefined;
3351
+ installments?: number | undefined;
3352
+ method: "PIN_PAD";
3353
+ terminal_id: string;
3354
+ } | {
3355
+ method: "CASH";
3356
+ tendered: number;
3357
+ change: number;
3358
+ } | {
3359
+ method: "BANK_TRANSFER";
3360
+ reference: string;
3361
+ bank?: string | undefined;
3362
+ } | {
3363
+ method: "WALLET";
3364
+ wallet: string;
3365
+ reference: string;
3366
+ } | {
3367
+ method: "FINANCING";
3368
+ provider_reference: string;
3369
+ installments: number;
3370
+ } | {
3371
+ method: "REDEMPTION";
3372
+ program?: string | undefined;
3373
+ rewards: {
3374
+ reward_id: string;
3375
+ quantity?: number | undefined;
3376
+ points: number;
3377
+ points_value: number;
3378
+ }[];
3379
+ points: number;
3380
+ points_value: number;
3381
+ loyalty_transaction_id?: string | undefined;
3382
+ } | null | undefined;
3383
+ approved_amount?: number | undefined;
3384
+ provider_reference?: string | undefined;
3385
+ error_message?: string | undefined;
3386
+ metadata?: Record<string, unknown> | undefined;
2616
3387
  };
2617
3388
  //#endregion
2618
3389
  //#region .flat/src/pos.d.ts
@@ -2756,6 +3527,10 @@ type PosOrderInput = {
2756
3527
  discount_amount?: number | undefined;
2757
3528
  before_taxes?: boolean | undefined;
2758
3529
  expires_at?: string | undefined;
3530
+ payment_id?: string | undefined;
3531
+ amount?: number | undefined;
3532
+ points?: number | undefined;
3533
+ program?: string | undefined;
2759
3534
  }[] | undefined;
2760
3535
  quantity: number;
2761
3536
  tax_rate: number | null;
@@ -2791,6 +3566,19 @@ type PosOrderInput = {
2791
3566
  tendered?: number | undefined;
2792
3567
  change?: number | undefined;
2793
3568
  };
3569
+ tenders?: {
3570
+ payment_id: string;
3571
+ method?: string | undefined;
3572
+ collect_at?: "COUNTER" | undefined;
3573
+ allocation: {
3574
+ lines?: {
3575
+ line_uid: string;
3576
+ units?: number | undefined;
3577
+ }[] | undefined;
3578
+ fees?: string[] | undefined;
3579
+ };
3580
+ attempt_reference?: string | undefined;
3581
+ }[] | undefined;
2794
3582
  occurred_at?: string | undefined;
2795
3583
  notes?: string | undefined;
2796
3584
  };
@@ -2824,6 +3612,7 @@ type PosKioskSettleInput = {
2824
3612
  authorizer_pin?: string | undefined;
2825
3613
  client_id?: string | undefined;
2826
3614
  order_id: string;
3615
+ tender_id?: string | undefined;
2827
3616
  };
2828
3617
  /** `POST /storefront/v1/pos/kiosk-orders/settle` `data`. */
2829
3618
  interface PosKioskSettleResult {
@@ -2884,7 +3673,7 @@ type Condition = {
2884
3673
  channel_id: string;
2885
3674
  brand_id: string;
2886
3675
  primitive: "boolean";
2887
- type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag";
3676
+ type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag" | "Payment captured" | "Payment is mixed";
2888
3677
  operator: "is" | "is not";
2889
3678
  value: boolean;
2890
3679
  invalidMessage?: string | undefined;
@@ -2980,7 +3769,7 @@ type AndConditions = ({
2980
3769
  channel_id: string;
2981
3770
  brand_id: string;
2982
3771
  primitive: "boolean";
2983
- type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag";
3772
+ type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag" | "Payment captured" | "Payment is mixed";
2984
3773
  operator: "is" | "is not";
2985
3774
  value: boolean;
2986
3775
  invalidMessage?: string | undefined;
@@ -3076,7 +3865,7 @@ type OrConditions = ({
3076
3865
  channel_id: string;
3077
3866
  brand_id: string;
3078
3867
  primitive: "boolean";
3079
- type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag";
3868
+ type: "Customer is anonymous" | "Is anonymous order" | "Order includes product with tag" | "Payment captured" | "Payment is mixed";
3080
3869
  operator: "is" | "is not";
3081
3870
  value: boolean;
3082
3871
  invalidMessage?: string | undefined;
@@ -3163,9 +3952,17 @@ interface RulesEngineParams {
3163
3952
  };
3164
3953
  payment?: {
3165
3954
  id?: string;
3955
+ /** Single-tender facts; `collect_ats` / `methods` win when present. */
3166
3956
  collect_at?: string;
3167
3957
  method?: string;
3168
3958
  status?: string;
3959
+ /** Every live real tender (positive operators = some, negative = none). */
3960
+ collect_ats?: string[];
3961
+ methods?: string[];
3962
+ /** 2+ live real tenders (REDEMPTION excluded). */
3963
+ is_mixed?: boolean;
3964
+ /** Some live tender (real or REDEMPTION) is `PAID`. */
3965
+ captured?: boolean;
3169
3966
  };
3170
3967
  monitoring?: RulesEngineMonitoring;
3171
3968
  referenceDate?: string;
@@ -3197,4 +3994,4 @@ interface CheckoutResolved {
3197
3994
  billingFields: Record<string, CheckoutMode>;
3198
3995
  }
3199
3996
  //#endregion
3200
- export type { AddressInfo, AndConditions, BillingInfo, BillingProfile, BundledItem, Category, CategoryAvailability, CategoryItem, ChannelManifest, ChannelManifestNative, ChannelManifestWeb, ChannelPlatform, ChannelTemplate, CheckoutMode, CheckoutResolved, CmsBlock, CmsBlockItem, Condition, Customer, CustomerGender, CustomerIdentifyInput, CustomerRegisterInput, CustomerUpdateInput, DayOfWeek, DeliveryAddress, Fulfillment, FulfillmentListInput, GroupDisplayType, KioskAdminGesture, KioskAppState, KioskCommandPayload, KioskCommandType, KioskConfigChangedPayload, KioskDeviceConfig, KioskDeviceConfigDevice, KioskDeviceConfigPayment, KioskDeviceConfigScope, KioskDeviceConfigSettings, KioskDeviceOverrides, KioskHealthBatchInput, KioskHealthBatchResult, KioskHealthSample, KioskHeartbeatHealth, KioskHeartbeatInput, KioskHeartbeatResult, KioskOrderPager, KioskPagerSide, KioskPagersOverrides, KioskPagersSettings, KioskRealtimeToken, MatchResult, MatchableRule, Menu, MenuLookup, MerchantPayment, Metadata, ModifierControlType, ModifierGroup, MultiLanguageText, OrConditions, Order, OrderChangedCallback, OrderChangedCallbackError, OrderChangedCheckoutState, OrderChangedError, OrderChangedPayload, OrderChangedRunStatus, OrderFulfillment, OrderInsertInput, OrderLine, OrderListInput, OrderRecordPaymentInput, OrderRedeem, OrderRedeemInput, OrderRedemptionState, OrderRedemptionStep, OrderReorderInput, OrderTotals, OrderUpdateInput, OrderValidateInput, OrderValidateOutput, Payment, PaymentIntent, PaymentIntentInput, PaymentMethod, PaymentProvider, PlaceOrderResult, PosActorKind, PosCashBreakdownItem, PosCatalog, PosDenominationKind, PosDeviceConfigDevice, PosDeviceConfigScope, PosDeviceOverrides, PosErrorCode, PosHealthBatchInput, PosHealthBatchResult, PosHealthSample, PosHeartbeatHealth, PosHeartbeatInput, PosHeartbeatResult, PosKioskOrder, PosKioskSettleInput, PosKioskSettleResult, PosOrderInput, PosOrderResult, PosStaff, PricingModifier, PricingVariant, Product, ProductAvailability, ProductPricing, ProductRecommendationLink, Recommendation, RecurringDateCronExpression, RecurringDateCronRepeat, RecurringDateCronResult, RecurringDateCronValues, RuleInterpretation, RulesEngineMonitoring, RulesEngineOrder, RulesEngineOrderLine, RulesEngineParams, RulesEngineRuntime, Schedule, ScheduleDay, SchedulePeriod, SdkLogContext, SdkLogEntry, SdkLogErrorInfo, SdkLogIngestResult, SdkLogLevel, SdkLogOptions, Store, StoreAvailabilityFilters, StoreGetInput, StoreListInput, StoreNearbyInput, StorefrontAvailability, StorefrontAvailabilityChangedPayload, StorefrontAvailabilityInput, StorefrontAvailabilityRule, StorefrontCmsChangedPayload, StorefrontMenu, StorefrontMenuChangedPayload, StorefrontMenuScope, StorefrontMenuStreamOptions, StorefrontPaymentsListInput, StorefrontPreferences, StorefrontPreferencesInput, StorefrontRealtimeToken, StorefrontRealtimeTokenInput, StorefrontWorkspaceChangedPayload, StringMatchCaseOptions, Variant, VariantGroup };
3997
+ export type { AddressInfo, AndConditions, BillingInfo, BillingProfile, BundledItem, Category, CategoryAvailability, CategoryItem, ChannelManifest, ChannelManifestNative, ChannelManifestWeb, ChannelPlatform, ChannelTemplate, CheckoutMode, CheckoutResolved, CmsBlock, CmsBlockItem, Condition, Customer, CustomerGender, CustomerIdentifyInput, CustomerRegisterInput, CustomerUpdateInput, DayOfWeek, DeliveryAddress, Fulfillment, FulfillmentListInput, GroupDisplayType, KioskAdminGesture, KioskAppState, KioskCommandPayload, KioskCommandType, KioskConfigChangedPayload, KioskDeviceConfig, KioskDeviceConfigDevice, KioskDeviceConfigPayment, KioskDeviceConfigScope, KioskDeviceConfigSettings, KioskDeviceOverrides, KioskHealthBatchInput, KioskHealthBatchResult, KioskHealthSample, KioskHeartbeatHealth, KioskHeartbeatInput, KioskHeartbeatResult, KioskOrderPager, KioskPagerSide, KioskPagersOverrides, KioskPagersSettings, KioskRealtimeToken, MatchResult, MatchableRule, Menu, MenuLookup, MerchantPayment, Metadata, MixedPaymentsEffect, MixedPaymentsLimits, ModifierControlType, ModifierGroup, MultiLanguageText, OrConditions, Order, OrderChangedCallback, OrderChangedCallbackError, OrderChangedCheckoutState, OrderChangedError, OrderChangedPayload, OrderChangedRunStatus, OrderFulfillment, OrderInsertInput, OrderLine, OrderListInput, OrderRecordPaymentInput, OrderRedeem, OrderRedeemInput, OrderRedemptionState, OrderRedemptionStep, OrderReorderInput, OrderTotals, OrderUpdateInput, OrderValidateInput, OrderValidateOutput, Payment, PaymentCollectAt, PaymentErrorCode, PaymentIntent, PaymentIntentInput, PaymentIntentPutInput, PaymentIntentStatus, PaymentMethod, PaymentProvider, PaymentScope, PaymentStatus, PaymentTender, PaymentTenderInput, PlaceOrderResult, PosActorKind, PosCashBreakdownItem, PosCatalog, PosDenominationKind, PosDeviceConfigDevice, PosDeviceConfigScope, PosDeviceOverrides, PosErrorCode, PosHealthBatchInput, PosHealthBatchResult, PosHealthSample, PosHeartbeatHealth, PosHeartbeatInput, PosHeartbeatResult, PosKioskOrder, PosKioskSettleInput, PosKioskSettleResult, PosOrderInput, PosOrderResult, PosStaff, PricingModifier, PricingVariant, Product, ProductAvailability, ProductPricing, ProductRecommendationLink, Recommendation, RecurringDateCronExpression, RecurringDateCronRepeat, RecurringDateCronResult, RecurringDateCronValues, RuleInterpretation, RulesEngineMonitoring, RulesEngineOrder, RulesEngineOrderLine, RulesEngineParams, RulesEngineRuntime, Schedule, ScheduleDay, SchedulePeriod, SdkLogContext, SdkLogEntry, SdkLogErrorInfo, SdkLogIngestResult, SdkLogLevel, SdkLogOptions, Store, StoreAvailabilityFilters, StoreGetInput, StoreListInput, StoreNearbyInput, StorefrontAvailability, StorefrontAvailabilityChangedPayload, StorefrontAvailabilityInput, StorefrontAvailabilityRule, StorefrontCmsChangedPayload, StorefrontMenu, StorefrontMenuChangedPayload, StorefrontMenuScope, StorefrontMenuStreamOptions, StorefrontPaymentsListInput, StorefrontPreferences, StorefrontPreferencesInput, StorefrontRealtimeToken, StorefrontRealtimeTokenInput, StorefrontWorkspaceChangedPayload, StringMatchCaseOptions, TenderAllocation, TenderAllocationInput, TenderAmount, TenderDetails, TenderRefundInput, TenderReplaceInput, TenderVoidInput, Variant, VariantGroup };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fire-spark/types",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Fire Spark public TypeScript types",
5
5
  "type": "module",
6
6
  "sideEffects": false,