@vindentech/api-client 0.3.0-next.81 → 0.3.0-next.83

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.
@@ -2097,6 +2097,11 @@ export interface MeOrganizationDto {
2097
2097
  * @nullable
2098
2098
  */
2099
2099
  countryCode: string | null;
2100
+ /**
2101
+ * The language this account's order emails and invoices are written in. null = not stated: the language follows the billing account's country (SE → sv-SE, FI → fi-FI, otherwise en-GB).
2102
+ * @nullable
2103
+ */
2104
+ preferredLocale: string | null;
2100
2105
  /** Service tier of the account. PRO is the 3PL / Receive & Distribute tier; CORE is the default. A display hint for client-side feature gating only — no endpoint enforces it server-side, so a CORE account can still reach PRO-tier routes it otherwise has permission for. */
2101
2106
  serviceTier: MeOrganizationDtoServiceTier;
2102
2107
  /**
@@ -2214,6 +2219,15 @@ export interface OnboardingStatusDto {
2214
2219
  /** When status is token_refresh_required, the client must perform an OIDC refresh, replace both tokens, and call status again. A page reload is not a refresh. */
2215
2220
  tokenRefreshRequired: boolean;
2216
2221
  }
2222
+ /**
2223
+ * The language the customer chose: stored as the new organization's preferredLocale, the language of its order emails and invoices. Omitted means not stated, and the language follows the billing country. Applied only when the organization is created; change it later with PATCH /v1/me/organization.
2224
+ */
2225
+ export type OnboardMeDtoPreferredLocale = typeof OnboardMeDtoPreferredLocale[keyof typeof OnboardMeDtoPreferredLocale];
2226
+ export declare const OnboardMeDtoPreferredLocale: {
2227
+ readonly 'sv-SE': "sv-SE";
2228
+ readonly 'en-GB': "en-GB";
2229
+ readonly 'fi-FI': "fi-FI";
2230
+ };
2217
2231
  export interface OnboardMeDto {
2218
2232
  /** Terms-of-service version the caller accepted. */
2219
2233
  termsVersion: string;
@@ -2224,6 +2238,13 @@ export interface OnboardMeDto {
2224
2238
  * @maxLength 200
2225
2239
  */
2226
2240
  displayName?: string;
2241
+ /** The language the customer chose: stored as the new organization's preferredLocale, the language of its order emails and invoices. Omitted means not stated, and the language follows the billing country. Applied only when the organization is created; change it later with PATCH /v1/me/organization. */
2242
+ preferredLocale?: OnboardMeDtoPreferredLocale;
2243
+ /**
2244
+ * The customer's billing country, ISO-3166-1 alpha-2 in uppercase: stored as the new organization's invoice country and its billing account's country. Omitted means the tenant's own country. Applied only when the organization is created; change it later with PATCH /v1/billing/invoice-details.
2245
+ * @pattern ^[A-Z]{2}$
2246
+ */
2247
+ countryCode?: string;
2227
2248
  }
2228
2249
  /**
2229
2250
  * Opaque per-user preferences object (JSON object, ≤ 16 KB serialized); null clears it.
@@ -2262,6 +2283,23 @@ export interface UpdateMeDto {
2262
2283
  */
2263
2284
  preferences?: UpdateMeDtoPreferences;
2264
2285
  }
2286
+ /**
2287
+ * The language this account's order emails and invoices are written in. null = not stated: the language follows the billing account's country (SE → sv-SE, FI → fi-FI, otherwise en-GB).
2288
+ * @nullable
2289
+ */
2290
+ export type UpdateMeOrganizationDtoPreferredLocale = typeof UpdateMeOrganizationDtoPreferredLocale[keyof typeof UpdateMeOrganizationDtoPreferredLocale] | null;
2291
+ export declare const UpdateMeOrganizationDtoPreferredLocale: {
2292
+ readonly 'sv-SE': "sv-SE";
2293
+ readonly 'en-GB': "en-GB";
2294
+ readonly 'fi-FI': "fi-FI";
2295
+ };
2296
+ export interface UpdateMeOrganizationDto {
2297
+ /**
2298
+ * The language this account's order emails and invoices are written in. null = not stated: the language follows the billing account's country (SE → sv-SE, FI → fi-FI, otherwise en-GB).
2299
+ * @nullable
2300
+ */
2301
+ preferredLocale?: UpdateMeOrganizationDtoPreferredLocale;
2302
+ }
2265
2303
  export interface UpdateIdentityNumberDto {
2266
2304
  /** Swedish personal identity number — YYMMDDNNNN, YYMMDD-NNNN, YYMMDD+NNNN, YYYYMMDDNNNN or YYYYMMDD-NNNN, with a valid Luhn check digit. Stored digits-only. Never returned by any endpoint. */
2267
2305
  personalIdentityNumber: string;
@@ -2436,6 +2474,12 @@ export interface CartLocationDto {
2436
2474
  latitude: string | null;
2437
2475
  /** @nullable */
2438
2476
  longitude: string | null;
2477
+ /** @nullable */
2478
+ doorCode: string | null;
2479
+ /** @nullable */
2480
+ stairwell: string | null;
2481
+ /** @nullable */
2482
+ apartmentNumber: string | null;
2439
2483
  }
2440
2484
  /**
2441
2485
  * @nullable
@@ -2472,6 +2516,12 @@ export interface CartDeliveryLocationDto {
2472
2516
  /** @nullable */
2473
2517
  longitude: string | null;
2474
2518
  /** @nullable */
2519
+ doorCode: string | null;
2520
+ /** @nullable */
2521
+ stairwell: string | null;
2522
+ /** @nullable */
2523
+ apartmentNumber: string | null;
2524
+ /** @nullable */
2475
2525
  servicePointId: string | null;
2476
2526
  /** @nullable */
2477
2527
  servicePointProvider: CartDeliveryLocationDtoServicePointProvider;
@@ -2897,6 +2947,24 @@ export interface CartLocationInputDto {
2897
2947
  * @nullable
2898
2948
  */
2899
2949
  longitude?: number | null;
2950
+ /**
2951
+ * Door or entry code at the address. Copied onto this side's transport legs at placement.
2952
+ * @maxLength 64
2953
+ * @nullable
2954
+ */
2955
+ doorCode?: string | null;
2956
+ /**
2957
+ * Staircase within the building (e.g. A, B). Copied onto this side's transport legs at placement.
2958
+ * @maxLength 64
2959
+ * @nullable
2960
+ */
2961
+ stairwell?: string | null;
2962
+ /**
2963
+ * Apartment or unit within the building (e.g. 12, 1102). Copied onto this side's transport legs at placement.
2964
+ * @maxLength 64
2965
+ * @nullable
2966
+ */
2967
+ apartmentNumber?: string | null;
2900
2968
  }
2901
2969
  /**
2902
2970
  * Required alongside servicePointId.
@@ -2950,7 +3018,25 @@ export interface CartDeliveryLocationInputDto {
2950
3018
  */
2951
3019
  longitude?: number | null;
2952
3020
  /**
2953
- * Opaque provider-specific id; requires servicePointProvider alongside it.
3021
+ * Door or entry code at the address. Copied onto this side's transport legs at placement.
3022
+ * @maxLength 64
3023
+ * @nullable
3024
+ */
3025
+ doorCode?: string | null;
3026
+ /**
3027
+ * Staircase within the building (e.g. A, B). Copied onto this side's transport legs at placement.
3028
+ * @maxLength 64
3029
+ * @nullable
3030
+ */
3031
+ stairwell?: string | null;
3032
+ /**
3033
+ * Apartment or unit within the building (e.g. 12, 1102). Copied onto this side's transport legs at placement.
3034
+ * @maxLength 64
3035
+ * @nullable
3036
+ */
3037
+ apartmentNumber?: string | null;
3038
+ /**
3039
+ * Opaque provider-specific id; requires servicePointProvider alongside it. Placement still requires the delivery address (addressLine1, zipCode, city) and a contact phone: the provider puts the receiver's own address and mobile on the parcel and sends the arrival notice to that phone.
2954
3040
  * @nullable
2955
3041
  */
2956
3042
  servicePointId?: string | null;
@@ -3141,15 +3227,25 @@ export interface SlotPriceDto {
3141
3227
  /** @nullable */
3142
3228
  baseFeeExVat?: string | null;
3143
3229
  /**
3144
- * Money, ex VAT: what the slot's service zone adds ON TOP of the base transport price — show it as "+X". Null when the cart would add none: the slot has no zone of its own (a pooled slot), or no zone surcharge rule lists the slot's zone above 0.
3230
+ * Money, ex VAT: what the slot's service zone adds ON TOP of the base transport price — show it as "+X". Null when the cart would add none: the slot has no zone of its own (a pooled slot), no zone surcharge rule lists the slot's zone above 0, or the zone is priced per m³ (zoneSurchargePerM3ExVat).
3145
3231
  * @nullable
3146
3232
  */
3147
3233
  zoneSurchargeExVat: string | null;
3148
3234
  /**
3149
- * Money, ex VAT: what this window adds ON TOP of the base transport price — show it as "+X". Null when the cart would add none: the window carries no surcharge, or no pricing rule bills it.
3235
+ * Money per m³, ex VAT: what the slot's service zone adds ON TOP of the base transport price for each m³ the order's transport bills, after its minimum billable volumes — show it as "+X/m³". Null when the zone adds nothing per m³; never set beside zoneSurchargeExVat.
3236
+ * @nullable
3237
+ */
3238
+ zoneSurchargePerM3ExVat: string | null;
3239
+ /**
3240
+ * Money, ex VAT: what this window adds ON TOP of the base transport price — show it as "+X". Null when the cart would add none: the window carries no surcharge, no pricing rule bills it, or the window is priced per m³ (windowSurchargePerM3ExVat).
3150
3241
  * @nullable
3151
3242
  */
3152
3243
  windowSurchargeExVat: string | null;
3244
+ /**
3245
+ * Money per m³, ex VAT: what this window adds ON TOP of the base transport price for each m³ the order's transport bills, after its minimum billable volumes — show it as "+X/m³". Null when the window adds nothing per m³ or no pricing rule bills it; never set beside windowSurchargeExVat.
3246
+ * @nullable
3247
+ */
3248
+ windowSurchargePerM3ExVat: string | null;
3153
3249
  /** @nullable */
3154
3250
  vatRate: string | null;
3155
3251
  /** @nullable */
@@ -3685,7 +3781,7 @@ export declare const SlotConfigDtoSlotKind: {
3685
3781
  readonly PICKUP_WINDOW: "PICKUP_WINDOW";
3686
3782
  };
3687
3783
  /**
3688
- * Per-weekday window schedule, returned as written (each window's base_max_orders, express_surcharge_ex_vat and order_cutoff_lead_minutes included). A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier.
3784
+ * Per-weekday window schedule, returned as written (each window's base_max_orders, express_surcharge_ex_vat or express_surcharge_per_m3_ex_vat, and order_cutoff_lead_minutes included). A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier.
3689
3785
  * @nullable
3690
3786
  */
3691
3787
  export type SlotConfigDtoWeeklySchedule = {
@@ -3706,7 +3802,7 @@ export interface SlotConfigDto {
3706
3802
  slotKind: SlotConfigDtoSlotKind;
3707
3803
  timezone: string;
3708
3804
  /**
3709
- * Per-weekday window schedule, returned as written (each window's base_max_orders, express_surcharge_ex_vat and order_cutoff_lead_minutes included). A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier.
3805
+ * Per-weekday window schedule, returned as written (each window's base_max_orders, express_surcharge_ex_vat or express_surcharge_per_m3_ex_vat, and order_cutoff_lead_minutes included). A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier.
3710
3806
  * @nullable
3711
3807
  */
3712
3808
  weeklySchedule: SlotConfigDtoWeeklySchedule;
@@ -3749,7 +3845,7 @@ export declare const CreateSlotConfigDtoSlotKind: {
3749
3845
  readonly PICKUP_WINDOW: "PICKUP_WINDOW";
3750
3846
  };
3751
3847
  /**
3752
- * Per-weekday windows (incl. per-slot base_max_orders / express_surcharge_ex_vat / order_cutoff_lead_minutes). express_surcharge_ex_vat (>= 0) is added on top of the price book's base price. A window carries no price of its own: price_ex_vat is refused. A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier. NULL = daily-cap-only.
3848
+ * Per-weekday windows (incl. per-slot base_max_orders / express_surcharge_ex_vat / express_surcharge_per_m3_ex_vat / order_cutoff_lead_minutes). express_surcharge_ex_vat (>= 0) is added once per order on top of the price book's base price; express_surcharge_per_m3_ex_vat (>= 0) instead adds that much per m³ the order's transport bills. A window sets at most one of the two (both is a 400). A window carries no price of its own: price_ex_vat is refused. A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier. NULL = daily-cap-only.
3753
3849
  */
3754
3850
  export type CreateSlotConfigDtoWeeklySchedule = {
3755
3851
  [key: string]: unknown;
@@ -3760,7 +3856,7 @@ export interface CreateSlotConfigDto {
3760
3856
  /** NULL = daily-cap-only (no concrete slots). */
3761
3857
  slotKind?: CreateSlotConfigDtoSlotKind;
3762
3858
  timezone?: string;
3763
- /** Per-weekday windows (incl. per-slot base_max_orders / express_surcharge_ex_vat / order_cutoff_lead_minutes). express_surcharge_ex_vat (>= 0) is added on top of the price book's base price. A window carries no price of its own: price_ex_vat is refused. A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier. NULL = daily-cap-only. */
3859
+ /** Per-weekday windows (incl. per-slot base_max_orders / express_surcharge_ex_vat / express_surcharge_per_m3_ex_vat / order_cutoff_lead_minutes). express_surcharge_ex_vat (>= 0) is added once per order on top of the price book's base price; express_surcharge_per_m3_ex_vat (>= 0) instead adds that much per m³ the order's transport bills. A window sets at most one of the two (both is a 400). A window carries no price of its own: price_ex_vat is refused. A window's order_cutoff_lead_minutes (a JSON integer >= 0; absent or null = the config's orderCutoffLeadMinutes) is its own booking cutoff: its slots' order_cutoff_at = window_start − this many minutes, counted as elapsed time, so across a DST change the wall-clock cutoff moves by an hour. It applies to slots generated afterwards; existing slots keep their cutoff unless regenerated. An order's editable_until is the earliest cutoff of its held slots, so a stricter window also closes order editing earlier. NULL = daily-cap-only. */
3764
3860
  weeklySchedule?: CreateSlotConfigDtoWeeklySchedule;
3765
3861
  dayMaxOrders?: number;
3766
3862
  /** bigint */
@@ -3942,6 +4038,11 @@ export interface SlotDto {
3942
4038
  * @nullable
3943
4039
  */
3944
4040
  expressSurchargeExVat: string | null;
4041
+ /**
4042
+ * money per m³ — the window surcharge priced per m³: what this window adds on top of the price book's base price for each m³ the order's transport bills, after its minimum billable volumes (>= 0), in the order's currency. Never set beside expressSurchargeExVat.
4043
+ * @nullable
4044
+ */
4045
+ expressSurchargePerM3ExVat: string | null;
3945
4046
  status: string;
3946
4047
  manuallyClosed: boolean;
3947
4048
  /** @nullable */
@@ -4001,8 +4102,10 @@ export declare const PatchSlotDtoStatus: {
4001
4102
  export interface PatchSlotDto {
4002
4103
  status?: PatchSlotDtoStatus;
4003
4104
  manuallyClosed?: boolean;
4004
- /** money — the window surcharge, added on top of the price book's base price; never negative. */
4105
+ /** money — the window surcharge, added once per order on top of the price book's base price; never negative. Setting it clears expressSurchargePerM3ExVat: a window has one surcharge. */
4005
4106
  expressSurchargeExVat?: string;
4107
+ /** money per m³ — the window surcharge priced per m³ of the order's billed transport volume, in place of expressSurchargeExVat; never negative. Setting it clears expressSurchargeExVat, and setting both in one request is a 400. */
4108
+ expressSurchargePerM3ExVat?: string;
4006
4109
  windowStart?: string;
4007
4110
  windowEnd?: string;
4008
4111
  orderCutoffAt?: string;
@@ -4078,6 +4181,11 @@ export interface SlotWithAvailabilityDto {
4078
4181
  * @nullable
4079
4182
  */
4080
4183
  expressSurchargeExVat: string | null;
4184
+ /**
4185
+ * money per m³ — the window surcharge priced per m³: what this window adds on top of the price book's base price for each m³ the order's transport bills, after its minimum billable volumes (>= 0), in the order's currency. Never set beside expressSurchargeExVat.
4186
+ * @nullable
4187
+ */
4188
+ expressSurchargePerM3ExVat: string | null;
4081
4189
  status: string;
4082
4190
  manuallyClosed: boolean;
4083
4191
  /** @nullable */
@@ -6035,6 +6143,68 @@ export interface DisposalRequestResultDto {
6035
6143
  /** True when this response replays a previous run of the key. */
6036
6144
  idempotent: boolean;
6037
6145
  }
6146
+ export type QuoteDisposalRequestDtoType = typeof QuoteDisposalRequestDtoType[keyof typeof QuoteDisposalRequestDtoType];
6147
+ export declare const QuoteDisposalRequestDtoType: {
6148
+ readonly RECYCLE: "RECYCLE";
6149
+ readonly DONATE: "DONATE";
6150
+ };
6151
+ export interface QuoteDisposalRequestDto {
6152
+ /** The owning org (server validates scope). */
6153
+ organizationId: string;
6154
+ type: QuoteDisposalRequestDtoType;
6155
+ /** The warehouse holding the goods, as on the request itself. */
6156
+ warehouseId: string;
6157
+ /** At least one line. */
6158
+ products: WarehouseOrderProductLineDto[];
6159
+ }
6160
+ export interface DisposalRequestQuoteLineDto {
6161
+ /** The pricing component, e.g. recycling_fee. */
6162
+ componentCode: string;
6163
+ /** Items or m³, per unitCode. */
6164
+ quantity: number;
6165
+ /** unit_of_measure code of the rule, e.g. each or m3_month. */
6166
+ unitCode: string;
6167
+ /**
6168
+ * Minor units, ex VAT.
6169
+ * @nullable
6170
+ */
6171
+ unitPriceExVatMinor: number | null;
6172
+ /** Minor units, ex VAT. */
6173
+ totalExVatMinor: number;
6174
+ /** VAT percentage, e.g. 25.5. */
6175
+ vatRate: number;
6176
+ /** Minor units. */
6177
+ vatAmountMinor: number;
6178
+ }
6179
+ export type DisposalRequestQuoteResultDtoType = typeof DisposalRequestQuoteResultDtoType[keyof typeof DisposalRequestQuoteResultDtoType];
6180
+ export declare const DisposalRequestQuoteResultDtoType: {
6181
+ readonly RECYCLE: "RECYCLE";
6182
+ readonly DONATE: "DONATE";
6183
+ };
6184
+ export interface DisposalRequestQuoteResultDto {
6185
+ type: DisposalRequestQuoteResultDtoType;
6186
+ /**
6187
+ * The billing account's currency, which the fee is charged in. Null only on a DONATE quote for an organization with no billing account.
6188
+ * @nullable
6189
+ */
6190
+ currencyCode: string | null;
6191
+ lines: DisposalRequestQuoteLineDto[];
6192
+ /** Minor units, ex VAT. */
6193
+ totalExVatMinor: number;
6194
+ /** Minor units. */
6195
+ totalVatMinor: number;
6196
+ /** Minor units, VAT included. The fee as the price book prices it: a discount rule, code or account credit the customer's invoice applies is not taken off here. */
6197
+ totalIncVatMinor: number;
6198
+ /** RECYCLING_FEE when the price book has no rule that prices this request, or its rule cannot (a per-m³ rule on goods with no recorded size). The totals are then 0 and the invoice bills no fee either. Empty for a DONATE request, which is free. */
6199
+ deferred: string[];
6200
+ /** Items in storage the request covers: what a per-item fee bills. */
6201
+ itemCount: number;
6202
+ /**
6203
+ * Their volume in cm³; null when one of them has no recorded size.
6204
+ * @nullable
6205
+ */
6206
+ billableVolumeCm3: number | null;
6207
+ }
6038
6208
  export interface CancelDisposalRequestDto {
6039
6209
  /**
6040
6210
  * Why the request is being withdrawn.
@@ -7871,6 +8041,16 @@ export interface UpdateBillingAccountDto {
7871
8041
  currencyCode?: string;
7872
8042
  languageCode?: string;
7873
8043
  }
8044
+ export interface InvoiceNowDto {
8045
+ /** The last day whose charges are invoiced (YYYY-MM-DD), in the tenant's billing calendar. Must be before today there; defaults to yesterday. */
8046
+ throughDate?: string;
8047
+ /**
8048
+ * Why the account is invoiced now (recorded in the audit log).
8049
+ * @minLength 1
8050
+ * @maxLength 500
8051
+ */
8052
+ reason: string;
8053
+ }
7874
8054
  export interface InvoiceDto {
7875
8055
  invoiceId: string;
7876
8056
  tenantId: string;
@@ -7927,6 +8107,14 @@ export interface InvoiceDto {
7927
8107
  /** @nullable */
7928
8108
  snapshotCorporateIdentityNumber: string | null;
7929
8109
  }
8110
+ export interface InvoiceNowResponseDto {
8111
+ /** The draft invoices created (status CREATED), earliest invoice window first: one per window, as the monthly run would cut them. Usually one; more when a month before this one still had charges no invoice held. */
8112
+ invoices: InvoiceDto[];
8113
+ /** The day the account was invoiced through. */
8114
+ throughDate: string;
8115
+ /** The last day through which every charge of the account is priced, and so on these invoices or an earlier one: throughDate, or the day before the earliest charge still being priced. A storage night priced after this call is billed by a later invoice. */
8116
+ coveredThrough: string;
8117
+ }
7930
8118
  export interface PaginatedInvoicesDto {
7931
8119
  /** The page of rows. */
7932
8120
  items: InvoiceDto[];
@@ -10712,7 +10900,7 @@ export interface CreateNotificationRuleDto {
10712
10900
  /** Defaults to the event's category. Only operational ↔ transactional relabelling is permitted (02 §3). */
10713
10901
  category?: CreateNotificationRuleDtoCategory;
10714
10902
  /**
10715
- * NULL falls back to the platform system template for (event, channel, locale).
10903
+ * NULL resolves the template per event: the event organization's override, then the tenant default, then the system template, each in the recipient's locale. Enabling an unbound rule needs a published tenant default or system template for the event and channel; an organization override alone does not satisfy it.
10716
10904
  * @nullable
10717
10905
  */
10718
10906
  notificationTemplateId?: string | null;