@zippendo/sdk 1.2.6 → 1.3.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.
Files changed (81) hide show
  1. package/dist/esm/models/BatchSendShipments200ResponseResultsInner.d.ts +1 -0
  2. package/dist/esm/models/BatchSendShipments200ResponseResultsInner.js +1 -0
  3. package/dist/esm/models/CreateOrder201ResponseOrderLinesInner.d.ts +6 -0
  4. package/dist/esm/models/CreateOrder201ResponseOrderLinesInner.js +2 -0
  5. package/dist/esm/models/CreateOrderRequestOrderLinesInner.d.ts +6 -0
  6. package/dist/esm/models/CreateOrderRequestOrderLinesInner.js +2 -0
  7. package/dist/esm/models/CreateShipment201ResponseParcelsInnerOrderLinesInner.d.ts +13 -1
  8. package/dist/esm/models/CreateShipment201ResponseParcelsInnerOrderLinesInner.js +4 -0
  9. package/dist/esm/models/CreateShipmentRequestParcelsInnerOrderLinesInner.d.ts +13 -1
  10. package/dist/esm/models/CreateShipmentRequestParcelsInnerOrderLinesInner.js +4 -0
  11. package/dist/esm/models/GetOrder200Response.d.ts +4 -4
  12. package/dist/esm/models/GetOrder200Response.js +3 -3
  13. package/dist/esm/models/GetOrder200ResponseOrderLinesInner.d.ts +162 -0
  14. package/dist/esm/models/GetOrder200ResponseOrderLinesInner.js +96 -0
  15. package/dist/esm/models/GetOrder200ResponseShipmentsInner.d.ts +7 -0
  16. package/dist/esm/models/GetOrder200ResponseShipmentsInner.js +5 -0
  17. package/dist/esm/models/GetOrder200ResponseShipmentsInnerParcelsInner.d.ts +68 -0
  18. package/dist/esm/models/GetOrder200ResponseShipmentsInnerParcelsInner.js +70 -0
  19. package/dist/esm/models/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.d.ts +50 -0
  20. package/dist/esm/models/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.js +51 -0
  21. package/dist/esm/models/ListApiTokens401Response.d.ts +1 -0
  22. package/dist/esm/models/ListApiTokens401Response.js +1 -0
  23. package/dist/esm/models/SendShipment422Response.d.ts +1 -0
  24. package/dist/esm/models/SendShipment422Response.js +1 -0
  25. package/dist/esm/models/UpdateOrderRequest.d.ts +6 -0
  26. package/dist/esm/models/UpdateOrderRequest.js +2 -0
  27. package/dist/esm/models/index.d.ts +3 -0
  28. package/dist/esm/models/index.js +3 -0
  29. package/dist/models/BatchSendShipments200ResponseResultsInner.d.ts +1 -0
  30. package/dist/models/BatchSendShipments200ResponseResultsInner.js +1 -0
  31. package/dist/models/CreateOrder201ResponseOrderLinesInner.d.ts +6 -0
  32. package/dist/models/CreateOrder201ResponseOrderLinesInner.js +2 -0
  33. package/dist/models/CreateOrderRequestOrderLinesInner.d.ts +6 -0
  34. package/dist/models/CreateOrderRequestOrderLinesInner.js +2 -0
  35. package/dist/models/CreateShipment201ResponseParcelsInnerOrderLinesInner.d.ts +13 -1
  36. package/dist/models/CreateShipment201ResponseParcelsInnerOrderLinesInner.js +4 -0
  37. package/dist/models/CreateShipmentRequestParcelsInnerOrderLinesInner.d.ts +13 -1
  38. package/dist/models/CreateShipmentRequestParcelsInnerOrderLinesInner.js +4 -0
  39. package/dist/models/GetOrder200Response.d.ts +4 -4
  40. package/dist/models/GetOrder200Response.js +3 -3
  41. package/dist/models/GetOrder200ResponseOrderLinesInner.d.ts +162 -0
  42. package/dist/models/GetOrder200ResponseOrderLinesInner.js +104 -0
  43. package/dist/models/GetOrder200ResponseShipmentsInner.d.ts +7 -0
  44. package/dist/models/GetOrder200ResponseShipmentsInner.js +5 -0
  45. package/dist/models/GetOrder200ResponseShipmentsInnerParcelsInner.d.ts +68 -0
  46. package/dist/models/GetOrder200ResponseShipmentsInnerParcelsInner.js +78 -0
  47. package/dist/models/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.d.ts +50 -0
  48. package/dist/models/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.js +58 -0
  49. package/dist/models/ListApiTokens401Response.d.ts +1 -0
  50. package/dist/models/ListApiTokens401Response.js +1 -0
  51. package/dist/models/SendShipment422Response.d.ts +1 -0
  52. package/dist/models/SendShipment422Response.js +1 -0
  53. package/dist/models/UpdateOrderRequest.d.ts +6 -0
  54. package/dist/models/UpdateOrderRequest.js +2 -0
  55. package/dist/models/index.d.ts +3 -0
  56. package/dist/models/index.js +3 -0
  57. package/docs/CreateOrder201ResponseOrderLinesInner.md +2 -0
  58. package/docs/CreateOrderRequestOrderLinesInner.md +2 -0
  59. package/docs/CreateShipment201ResponseParcelsInnerOrderLinesInner.md +4 -0
  60. package/docs/CreateShipmentRequestParcelsInnerOrderLinesInner.md +4 -0
  61. package/docs/GetOrder200Response.md +1 -1
  62. package/docs/GetOrder200ResponseOrderLinesInner.md +74 -0
  63. package/docs/GetOrder200ResponseShipmentsInner.md +2 -0
  64. package/docs/GetOrder200ResponseShipmentsInnerParcelsInner.md +42 -0
  65. package/docs/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.md +40 -0
  66. package/docs/UpdateOrderRequest.md +2 -0
  67. package/package.json +1 -1
  68. package/src/models/BatchSendShipments200ResponseResultsInner.ts +1 -0
  69. package/src/models/CreateOrder201ResponseOrderLinesInner.ts +8 -0
  70. package/src/models/CreateOrderRequestOrderLinesInner.ts +8 -0
  71. package/src/models/CreateShipment201ResponseParcelsInnerOrderLinesInner.ts +17 -1
  72. package/src/models/CreateShipmentRequestParcelsInnerOrderLinesInner.ts +17 -1
  73. package/src/models/GetOrder200Response.ts +12 -12
  74. package/src/models/GetOrder200ResponseOrderLinesInner.ts +241 -0
  75. package/src/models/GetOrder200ResponseShipmentsInner.ts +16 -0
  76. package/src/models/GetOrder200ResponseShipmentsInnerParcelsInner.ts +130 -0
  77. package/src/models/GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner.ts +91 -0
  78. package/src/models/ListApiTokens401Response.ts +1 -0
  79. package/src/models/SendShipment422Response.ts +1 -0
  80. package/src/models/UpdateOrderRequest.ts +8 -0
  81. package/src/models/index.ts +3 -0
@@ -0,0 +1,241 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Zippendo Public API
5
+ * Public API documentation for Zippendo. Authenticate using your API token (Bearer token prefixed with zipp_). **Brands (sub-accounts).** An organization can be split into brands, each keeping its own orders, shipments and configuration separate. There are two ways to scope requests to one brand, and NEITHER changes any request body: 1. **Bind the token.** Create an API token with a `brandId` and every request it makes is confined to that brand — reads filtered, writes stamped. This is the recommended way to give a single brand\'s team its own credential. 2. **Send the `X-Zippendo-Brand` header.** An organization-wide token can scope an individual request by sending the brand\'s id or slug in this header. Most SDKs let you set it once on the client so every call inherits it. A brand-bound token that receives an `X-Zippendo-Brand` header naming a different brand is rejected with `403 BRAND_ACCESS_DENIED` — the binding is never widened. Omit both and requests cover the whole organization, which is the behaviour of every existing token. Records that belong to no brand carry `brandId: null`. Configuration (carriers, shipping rules, addresses) with a null brand is organization-wide and remains visible inside every brand; orders and shipments with a null brand are only visible organization-wide. List endpoints additionally take a `?brandScope=own|shared|both` parameter to narrow further within whichever brand context already applies. `own` returns only rows assigned to that brand, and requires a brand context — a brand-bound token, a resolved brand session, or the `X-Zippendo-Brand` header above — otherwise `400`. `shared` returns only the organization-wide rows (equivalent to filtering `brandId=none`). The default, `both`, keeps the existing behaviour: a brand context sees its own rows plus the organization-wide ones. Set `X-Zippendo-Brand-Scope` as a client default to apply the same choice to every request instead of repeating the query parameter on each call — an explicit `brandScope` query parameter always wins over the header, and a blank header value is ignored. Brands themselves are managed under the **Brands** tag. Retiring a brand is done with `POST /orgs/{orgId}/brands/{brandId}/archive` — permanent deletion is a dashboard-only action, since it is refused while any order, shipment, member or token still references the brand. Brands require a plan that includes them; creating one beyond your plan\'s limit returns `403`.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ * Contact: support@zippendo.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface GetOrder200ResponseOrderLinesInner
20
+ */
21
+ export interface GetOrder200ResponseOrderLinesInner {
22
+ /**
23
+ * Stock keeping unit identifier.
24
+ * @type {string}
25
+ * @memberof GetOrder200ResponseOrderLinesInner
26
+ */
27
+ sku?: string | null;
28
+ /**
29
+ * Product name.
30
+ * @type {string}
31
+ * @memberof GetOrder200ResponseOrderLinesInner
32
+ */
33
+ name: string;
34
+ /**
35
+ * Quantity ordered.
36
+ * @type {number}
37
+ * @memberof GetOrder200ResponseOrderLinesInner
38
+ */
39
+ quantity: number;
40
+ /**
41
+ * Price per unit.
42
+ * @type {number}
43
+ * @memberof GetOrder200ResponseOrderLinesInner
44
+ */
45
+ unitPrice?: number | null;
46
+ /**
47
+ * Total price for the line.
48
+ * @type {number}
49
+ * @memberof GetOrder200ResponseOrderLinesInner
50
+ */
51
+ totalPrice?: number | null;
52
+ /**
53
+ * ISO 4217 currency code.
54
+ * @type {string}
55
+ * @memberof GetOrder200ResponseOrderLinesInner
56
+ */
57
+ currency?: string | null;
58
+ /**
59
+ * Item weight in the given unit.
60
+ * @type {number}
61
+ * @memberof GetOrder200ResponseOrderLinesInner
62
+ */
63
+ weight?: number | null;
64
+ /**
65
+ * Unit of the weight value.
66
+ * @type {GetOrder200ResponseOrderLinesInnerWeightUnitEnum}
67
+ * @memberof GetOrder200ResponseOrderLinesInner
68
+ */
69
+ weightUnit?: GetOrder200ResponseOrderLinesInnerWeightUnitEnum | null;
70
+ /**
71
+ * Platform variant identifier.
72
+ * @type {string}
73
+ * @memberof GetOrder200ResponseOrderLinesInner
74
+ */
75
+ variantId?: string | null;
76
+ /**
77
+ * Platform product identifier.
78
+ * @type {string}
79
+ * @memberof GetOrder200ResponseOrderLinesInner
80
+ */
81
+ productId?: string | null;
82
+ /**
83
+ * Product image URL.
84
+ * @type {string}
85
+ * @memberof GetOrder200ResponseOrderLinesInner
86
+ */
87
+ imageUrl?: string | null;
88
+ /**
89
+ * Harmonized System customs code (6-13 digits).
90
+ * @type {string}
91
+ * @memberof GetOrder200ResponseOrderLinesInner
92
+ */
93
+ hsCode?: string | null;
94
+ /**
95
+ * ISO 3166-1 alpha-2 country of origin.
96
+ * @type {string}
97
+ * @memberof GetOrder200ResponseOrderLinesInner
98
+ */
99
+ countryOfOrigin?: string | null;
100
+ /**
101
+ * ISO 3166-2 province of origin.
102
+ * @type {string}
103
+ * @memberof GetOrder200ResponseOrderLinesInner
104
+ */
105
+ provinceOfOrigin?: string | null;
106
+ /**
107
+ * Item barcode (EAN/UPC).
108
+ * @type {string}
109
+ * @memberof GetOrder200ResponseOrderLinesInner
110
+ */
111
+ barcode?: string | null;
112
+ /**
113
+ * Whether the item requires shipping.
114
+ * @type {boolean}
115
+ * @memberof GetOrder200ResponseOrderLinesInner
116
+ */
117
+ requiresShipping?: boolean | null;
118
+ /**
119
+ * Whether the item is taxable.
120
+ * @type {boolean}
121
+ * @memberof GetOrder200ResponseOrderLinesInner
122
+ */
123
+ taxable?: boolean | null;
124
+ /**
125
+ * Whether the item is a gift card.
126
+ * @type {boolean}
127
+ * @memberof GetOrder200ResponseOrderLinesInner
128
+ */
129
+ giftCard?: boolean | null;
130
+ /**
131
+ * Vendor or brand name.
132
+ * @type {string}
133
+ * @memberof GetOrder200ResponseOrderLinesInner
134
+ */
135
+ vendor?: string | null;
136
+ /**
137
+ * Order line ID. Present once the line is a row. Absent for jsonb-only lines during the dual-write window — do not synthesise one, or an edit would re-point packed lines.
138
+ * @type {string}
139
+ * @memberof GetOrder200ResponseOrderLinesInner
140
+ */
141
+ id?: string;
142
+ /**
143
+ * Quantity already allocated to outbound shipments.
144
+ * @type {number}
145
+ * @memberof GetOrder200ResponseOrderLinesInner
146
+ */
147
+ packedQuantity: number;
148
+ }
149
+
150
+
151
+ /**
152
+ * @export
153
+ */
154
+ export const GetOrder200ResponseOrderLinesInnerWeightUnitEnum = {
155
+ Kg: 'kg',
156
+ G: 'g',
157
+ Lb: 'lb',
158
+ Oz: 'oz'
159
+ } as const;
160
+ export type GetOrder200ResponseOrderLinesInnerWeightUnitEnum = typeof GetOrder200ResponseOrderLinesInnerWeightUnitEnum[keyof typeof GetOrder200ResponseOrderLinesInnerWeightUnitEnum];
161
+
162
+
163
+ /**
164
+ * Check if a given object implements the GetOrder200ResponseOrderLinesInner interface.
165
+ */
166
+ export function instanceOfGetOrder200ResponseOrderLinesInner(value: object): value is GetOrder200ResponseOrderLinesInner {
167
+ if (!('name' in value) || value['name'] === undefined) return false;
168
+ if (!('quantity' in value) || value['quantity'] === undefined) return false;
169
+ if (!('packedQuantity' in value) || value['packedQuantity'] === undefined) return false;
170
+ return true;
171
+ }
172
+
173
+ export function GetOrder200ResponseOrderLinesInnerFromJSON(json: any): GetOrder200ResponseOrderLinesInner {
174
+ return GetOrder200ResponseOrderLinesInnerFromJSONTyped(json, false);
175
+ }
176
+
177
+ export function GetOrder200ResponseOrderLinesInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetOrder200ResponseOrderLinesInner {
178
+ if (json == null) {
179
+ return json;
180
+ }
181
+ return {
182
+
183
+ 'sku': json['sku'] === undefined ? undefined : json['sku'] === null ? null : json['sku'],
184
+ 'name': json['name'],
185
+ 'quantity': json['quantity'],
186
+ 'unitPrice': json['unitPrice'] === undefined ? undefined : json['unitPrice'] === null ? null : json['unitPrice'],
187
+ 'totalPrice': json['totalPrice'] === undefined ? undefined : json['totalPrice'] === null ? null : json['totalPrice'],
188
+ 'currency': json['currency'] === undefined ? undefined : json['currency'] === null ? null : json['currency'],
189
+ 'weight': json['weight'] === undefined ? undefined : json['weight'] === null ? null : json['weight'],
190
+ 'weightUnit': json['weightUnit'] === undefined ? undefined : json['weightUnit'] === null ? null : json['weightUnit'],
191
+ 'variantId': json['variantId'] === undefined ? undefined : json['variantId'] === null ? null : json['variantId'],
192
+ 'productId': json['productId'] === undefined ? undefined : json['productId'] === null ? null : json['productId'],
193
+ 'imageUrl': json['imageUrl'] === undefined ? undefined : json['imageUrl'] === null ? null : json['imageUrl'],
194
+ 'hsCode': json['hsCode'] === undefined ? undefined : json['hsCode'] === null ? null : json['hsCode'],
195
+ 'countryOfOrigin': json['countryOfOrigin'] === undefined ? undefined : json['countryOfOrigin'] === null ? null : json['countryOfOrigin'],
196
+ 'provinceOfOrigin': json['provinceOfOrigin'] === undefined ? undefined : json['provinceOfOrigin'] === null ? null : json['provinceOfOrigin'],
197
+ 'barcode': json['barcode'] === undefined ? undefined : json['barcode'] === null ? null : json['barcode'],
198
+ 'requiresShipping': json['requiresShipping'] === undefined ? undefined : json['requiresShipping'] === null ? null : json['requiresShipping'],
199
+ 'taxable': json['taxable'] === undefined ? undefined : json['taxable'] === null ? null : json['taxable'],
200
+ 'giftCard': json['giftCard'] === undefined ? undefined : json['giftCard'] === null ? null : json['giftCard'],
201
+ 'vendor': json['vendor'] === undefined ? undefined : json['vendor'] === null ? null : json['vendor'],
202
+ 'id': json['id'] == null ? undefined : json['id'],
203
+ 'packedQuantity': json['packedQuantity'],
204
+ };
205
+ }
206
+
207
+ export function GetOrder200ResponseOrderLinesInnerToJSON(json: any): GetOrder200ResponseOrderLinesInner {
208
+ return GetOrder200ResponseOrderLinesInnerToJSONTyped(json, false);
209
+ }
210
+
211
+ export function GetOrder200ResponseOrderLinesInnerToJSONTyped(value?: GetOrder200ResponseOrderLinesInner | null, ignoreDiscriminator: boolean = false): any {
212
+ if (value == null) {
213
+ return value;
214
+ }
215
+
216
+ return {
217
+
218
+ 'sku': value['sku'],
219
+ 'name': value['name'],
220
+ 'quantity': value['quantity'],
221
+ 'unitPrice': value['unitPrice'],
222
+ 'totalPrice': value['totalPrice'],
223
+ 'currency': value['currency'],
224
+ 'weight': value['weight'],
225
+ 'weightUnit': value['weightUnit'],
226
+ 'variantId': value['variantId'],
227
+ 'productId': value['productId'],
228
+ 'imageUrl': value['imageUrl'],
229
+ 'hsCode': value['hsCode'],
230
+ 'countryOfOrigin': value['countryOfOrigin'],
231
+ 'provinceOfOrigin': value['provinceOfOrigin'],
232
+ 'barcode': value['barcode'],
233
+ 'requiresShipping': value['requiresShipping'],
234
+ 'taxable': value['taxable'],
235
+ 'giftCard': value['giftCard'],
236
+ 'vendor': value['vendor'],
237
+ 'id': value['id'],
238
+ 'packedQuantity': value['packedQuantity'],
239
+ };
240
+ }
241
+
@@ -20,6 +20,13 @@ import {
20
20
  CreateShipment201ResponseDocumentsInnerToJSON,
21
21
  CreateShipment201ResponseDocumentsInnerToJSONTyped,
22
22
  } from './CreateShipment201ResponseDocumentsInner';
23
+ import type { GetOrder200ResponseShipmentsInnerParcelsInner } from './GetOrder200ResponseShipmentsInnerParcelsInner';
24
+ import {
25
+ GetOrder200ResponseShipmentsInnerParcelsInnerFromJSON,
26
+ GetOrder200ResponseShipmentsInnerParcelsInnerFromJSONTyped,
27
+ GetOrder200ResponseShipmentsInnerParcelsInnerToJSON,
28
+ GetOrder200ResponseShipmentsInnerParcelsInnerToJSONTyped,
29
+ } from './GetOrder200ResponseShipmentsInnerParcelsInner';
23
30
  import type { ListShipments200ResponseDataInnerCarrierSettings } from './ListShipments200ResponseDataInnerCarrierSettings';
24
31
  import {
25
32
  ListShipments200ResponseDataInnerCarrierSettingsFromJSON,
@@ -107,6 +114,12 @@ export interface GetOrder200ResponseShipmentsInner {
107
114
  * @memberof GetOrder200ResponseShipmentsInner
108
115
  */
109
116
  documents?: Array<CreateShipment201ResponseDocumentsInner>;
117
+ /**
118
+ * Compact parcels for the order fulfillment workspace (no QR/label payloads).
119
+ * @type {Array<GetOrder200ResponseShipmentsInnerParcelsInner>}
120
+ * @memberof GetOrder200ResponseShipmentsInner
121
+ */
122
+ parcels: Array<GetOrder200ResponseShipmentsInnerParcelsInner>;
110
123
  }
111
124
 
112
125
 
@@ -146,6 +159,7 @@ export function instanceOfGetOrder200ResponseShipmentsInner(value: object): valu
146
159
  if (!('carrierSettings' in value) || value['carrierSettings'] === undefined) return false;
147
160
  if (!('createdAt' in value) || value['createdAt'] === undefined) return false;
148
161
  if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;
162
+ if (!('parcels' in value) || value['parcels'] === undefined) return false;
149
163
  return true;
150
164
  }
151
165
 
@@ -170,6 +184,7 @@ export function GetOrder200ResponseShipmentsInnerFromJSONTyped(json: any, ignore
170
184
  'updatedAt': json['updatedAt'],
171
185
  'shippingRuleId': json['shippingRuleId'] === undefined ? undefined : json['shippingRuleId'] === null ? null : json['shippingRuleId'],
172
186
  'documents': json['documents'] == null ? undefined : ((json['documents'] as Array<any>).map(CreateShipment201ResponseDocumentsInnerFromJSON)),
187
+ 'parcels': ((json['parcels'] as Array<any>).map(GetOrder200ResponseShipmentsInnerParcelsInnerFromJSON)),
173
188
  };
174
189
  }
175
190
 
@@ -195,6 +210,7 @@ export function GetOrder200ResponseShipmentsInnerToJSONTyped(value?: GetOrder200
195
210
  'updatedAt': value['updatedAt'],
196
211
  'shippingRuleId': value['shippingRuleId'],
197
212
  'documents': value['documents'] == null ? undefined : ((value['documents'] as Array<any>).map(CreateShipment201ResponseDocumentsInnerToJSON)),
213
+ 'parcels': ((value['parcels'] as Array<any>).map(GetOrder200ResponseShipmentsInnerParcelsInnerToJSON)),
198
214
  };
199
215
  }
200
216
 
@@ -0,0 +1,130 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Zippendo Public API
5
+ * Public API documentation for Zippendo. Authenticate using your API token (Bearer token prefixed with zipp_). **Brands (sub-accounts).** An organization can be split into brands, each keeping its own orders, shipments and configuration separate. There are two ways to scope requests to one brand, and NEITHER changes any request body: 1. **Bind the token.** Create an API token with a `brandId` and every request it makes is confined to that brand — reads filtered, writes stamped. This is the recommended way to give a single brand\'s team its own credential. 2. **Send the `X-Zippendo-Brand` header.** An organization-wide token can scope an individual request by sending the brand\'s id or slug in this header. Most SDKs let you set it once on the client so every call inherits it. A brand-bound token that receives an `X-Zippendo-Brand` header naming a different brand is rejected with `403 BRAND_ACCESS_DENIED` — the binding is never widened. Omit both and requests cover the whole organization, which is the behaviour of every existing token. Records that belong to no brand carry `brandId: null`. Configuration (carriers, shipping rules, addresses) with a null brand is organization-wide and remains visible inside every brand; orders and shipments with a null brand are only visible organization-wide. List endpoints additionally take a `?brandScope=own|shared|both` parameter to narrow further within whichever brand context already applies. `own` returns only rows assigned to that brand, and requires a brand context — a brand-bound token, a resolved brand session, or the `X-Zippendo-Brand` header above — otherwise `400`. `shared` returns only the organization-wide rows (equivalent to filtering `brandId=none`). The default, `both`, keeps the existing behaviour: a brand context sees its own rows plus the organization-wide ones. Set `X-Zippendo-Brand-Scope` as a client default to apply the same choice to every request instead of repeating the query parameter on each call — an explicit `brandScope` query parameter always wins over the header, and a blank header value is ignored. Brands themselves are managed under the **Brands** tag. Retiring a brand is done with `POST /orgs/{orgId}/brands/{brandId}/archive` — permanent deletion is a dashboard-only action, since it is refused while any order, shipment, member or token still references the brand. Brands require a plan that includes them; creating one beyond your plan\'s limit returns `403`.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ * Contact: support@zippendo.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner } from './GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner';
17
+ import {
18
+ GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSON,
19
+ GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSONTyped,
20
+ GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSON,
21
+ GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSONTyped,
22
+ } from './GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner';
23
+ import type { CreateShipment201ResponseParcelsInnerDimensions } from './CreateShipment201ResponseParcelsInnerDimensions';
24
+ import {
25
+ CreateShipment201ResponseParcelsInnerDimensionsFromJSON,
26
+ CreateShipment201ResponseParcelsInnerDimensionsFromJSONTyped,
27
+ CreateShipment201ResponseParcelsInnerDimensionsToJSON,
28
+ CreateShipment201ResponseParcelsInnerDimensionsToJSONTyped,
29
+ } from './CreateShipment201ResponseParcelsInnerDimensions';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface GetOrder200ResponseShipmentsInnerParcelsInner
35
+ */
36
+ export interface GetOrder200ResponseShipmentsInnerParcelsInner {
37
+ /**
38
+ * Parcel ID.
39
+ * @type {string}
40
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInner
41
+ */
42
+ id: string;
43
+ /**
44
+ * Parcel weight in the given unit.
45
+ * @type {number}
46
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInner
47
+ */
48
+ weight: number;
49
+ /**
50
+ * Unit of measurement for parcel weight.
51
+ * @type {GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum}
52
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInner
53
+ */
54
+ weightUnit: GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum;
55
+ /**
56
+ *
57
+ * @type {CreateShipment201ResponseParcelsInnerDimensions}
58
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInner
59
+ */
60
+ dimensions: CreateShipment201ResponseParcelsInnerDimensions;
61
+ /**
62
+ * Contents of this parcel.
63
+ * @type {Array<GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner>}
64
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInner
65
+ */
66
+ orderLines: Array<GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner>;
67
+ }
68
+
69
+
70
+ /**
71
+ * @export
72
+ */
73
+ export const GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum = {
74
+ Kg: 'kg',
75
+ G: 'g',
76
+ Lb: 'lb',
77
+ Oz: 'oz'
78
+ } as const;
79
+ export type GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum = typeof GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum[keyof typeof GetOrder200ResponseShipmentsInnerParcelsInnerWeightUnitEnum];
80
+
81
+
82
+ /**
83
+ * Check if a given object implements the GetOrder200ResponseShipmentsInnerParcelsInner interface.
84
+ */
85
+ export function instanceOfGetOrder200ResponseShipmentsInnerParcelsInner(value: object): value is GetOrder200ResponseShipmentsInnerParcelsInner {
86
+ if (!('id' in value) || value['id'] === undefined) return false;
87
+ if (!('weight' in value) || value['weight'] === undefined) return false;
88
+ if (!('weightUnit' in value) || value['weightUnit'] === undefined) return false;
89
+ if (!('dimensions' in value) || value['dimensions'] === undefined) return false;
90
+ if (!('orderLines' in value) || value['orderLines'] === undefined) return false;
91
+ return true;
92
+ }
93
+
94
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerFromJSON(json: any): GetOrder200ResponseShipmentsInnerParcelsInner {
95
+ return GetOrder200ResponseShipmentsInnerParcelsInnerFromJSONTyped(json, false);
96
+ }
97
+
98
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetOrder200ResponseShipmentsInnerParcelsInner {
99
+ if (json == null) {
100
+ return json;
101
+ }
102
+ return {
103
+
104
+ 'id': json['id'],
105
+ 'weight': json['weight'],
106
+ 'weightUnit': json['weightUnit'],
107
+ 'dimensions': CreateShipment201ResponseParcelsInnerDimensionsFromJSON(json['dimensions']),
108
+ 'orderLines': ((json['orderLines'] as Array<any>).map(GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSON)),
109
+ };
110
+ }
111
+
112
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerToJSON(json: any): GetOrder200ResponseShipmentsInnerParcelsInner {
113
+ return GetOrder200ResponseShipmentsInnerParcelsInnerToJSONTyped(json, false);
114
+ }
115
+
116
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerToJSONTyped(value?: GetOrder200ResponseShipmentsInnerParcelsInner | null, ignoreDiscriminator: boolean = false): any {
117
+ if (value == null) {
118
+ return value;
119
+ }
120
+
121
+ return {
122
+
123
+ 'id': value['id'],
124
+ 'weight': value['weight'],
125
+ 'weightUnit': value['weightUnit'],
126
+ 'dimensions': CreateShipment201ResponseParcelsInnerDimensionsToJSON(value['dimensions']),
127
+ 'orderLines': ((value['orderLines'] as Array<any>).map(GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSON)),
128
+ };
129
+ }
130
+
@@ -0,0 +1,91 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Zippendo Public API
5
+ * Public API documentation for Zippendo. Authenticate using your API token (Bearer token prefixed with zipp_). **Brands (sub-accounts).** An organization can be split into brands, each keeping its own orders, shipments and configuration separate. There are two ways to scope requests to one brand, and NEITHER changes any request body: 1. **Bind the token.** Create an API token with a `brandId` and every request it makes is confined to that brand — reads filtered, writes stamped. This is the recommended way to give a single brand\'s team its own credential. 2. **Send the `X-Zippendo-Brand` header.** An organization-wide token can scope an individual request by sending the brand\'s id or slug in this header. Most SDKs let you set it once on the client so every call inherits it. A brand-bound token that receives an `X-Zippendo-Brand` header naming a different brand is rejected with `403 BRAND_ACCESS_DENIED` — the binding is never widened. Omit both and requests cover the whole organization, which is the behaviour of every existing token. Records that belong to no brand carry `brandId: null`. Configuration (carriers, shipping rules, addresses) with a null brand is organization-wide and remains visible inside every brand; orders and shipments with a null brand are only visible organization-wide. List endpoints additionally take a `?brandScope=own|shared|both` parameter to narrow further within whichever brand context already applies. `own` returns only rows assigned to that brand, and requires a brand context — a brand-bound token, a resolved brand session, or the `X-Zippendo-Brand` header above — otherwise `400`. `shared` returns only the organization-wide rows (equivalent to filtering `brandId=none`). The default, `both`, keeps the existing behaviour: a brand context sees its own rows plus the organization-wide ones. Set `X-Zippendo-Brand-Scope` as a client default to apply the same choice to every request instead of repeating the query parameter on each call — an explicit `brandScope` query parameter always wins over the header, and a blank header value is ignored. Brands themselves are managed under the **Brands** tag. Retiring a brand is done with `POST /orgs/{orgId}/brands/{brandId}/archive` — permanent deletion is a dashboard-only action, since it is refused while any order, shipment, member or token still references the brand. Brands require a plan that includes them; creating one beyond your plan\'s limit returns `403`.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ * Contact: support@zippendo.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner
20
+ */
21
+ export interface GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner {
22
+ /**
23
+ * Parcel content line ID.
24
+ * @type {string}
25
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner
26
+ */
27
+ id: string;
28
+ /**
29
+ * SKU of the packed item.
30
+ * @type {string}
31
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner
32
+ */
33
+ sku?: string | null;
34
+ /**
35
+ * Quantity packed in this parcel.
36
+ * @type {number}
37
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner
38
+ */
39
+ quantity: number;
40
+ /**
41
+ * Product description.
42
+ * @type {string}
43
+ * @memberof GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner
44
+ */
45
+ description?: string | null;
46
+ }
47
+
48
+ /**
49
+ * Check if a given object implements the GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner interface.
50
+ */
51
+ export function instanceOfGetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner(value: object): value is GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner {
52
+ if (!('id' in value) || value['id'] === undefined) return false;
53
+ if (!('quantity' in value) || value['quantity'] === undefined) return false;
54
+ return true;
55
+ }
56
+
57
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSON(json: any): GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner {
58
+ return GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSONTyped(json, false);
59
+ }
60
+
61
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner {
62
+ if (json == null) {
63
+ return json;
64
+ }
65
+ return {
66
+
67
+ 'id': json['id'],
68
+ 'sku': json['sku'] === undefined ? undefined : json['sku'] === null ? null : json['sku'],
69
+ 'quantity': json['quantity'],
70
+ 'description': json['description'] === undefined ? undefined : json['description'] === null ? null : json['description'],
71
+ };
72
+ }
73
+
74
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSON(json: any): GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner {
75
+ return GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSONTyped(json, false);
76
+ }
77
+
78
+ export function GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInnerToJSONTyped(value?: GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner | null, ignoreDiscriminator: boolean = false): any {
79
+ if (value == null) {
80
+ return value;
81
+ }
82
+
83
+ return {
84
+
85
+ 'id': value['id'],
86
+ 'sku': value['sku'],
87
+ 'quantity': value['quantity'],
88
+ 'description': value['description'],
89
+ };
90
+ }
91
+
@@ -122,6 +122,7 @@ export const ListApiTokens401ResponseCodeEnum = {
122
122
  CarrierAuthFailed: 'CARRIER_AUTH_FAILED',
123
123
  CarrierNotFound: 'CARRIER_NOT_FOUND',
124
124
  CarrierProductNotFound: 'CARRIER_PRODUCT_NOT_FOUND',
125
+ CarrierProductRouteUnsupported: 'CARRIER_PRODUCT_ROUTE_UNSUPPORTED',
125
126
  CarrierConfigInvalid: 'CARRIER_CONFIG_INVALID',
126
127
  CarrierParameterInvalid: 'CARRIER_PARAMETER_INVALID',
127
128
  CarrierServerUnavailable: 'CARRIER_SERVER_UNAVAILABLE',
@@ -136,6 +136,7 @@ export const SendShipment422ResponseCodeEnum = {
136
136
  CarrierAuthFailed: 'CARRIER_AUTH_FAILED',
137
137
  CarrierNotFound: 'CARRIER_NOT_FOUND',
138
138
  CarrierProductNotFound: 'CARRIER_PRODUCT_NOT_FOUND',
139
+ CarrierProductRouteUnsupported: 'CARRIER_PRODUCT_ROUTE_UNSUPPORTED',
139
140
  CarrierConfigInvalid: 'CARRIER_CONFIG_INVALID',
140
141
  CarrierParameterInvalid: 'CARRIER_PARAMETER_INVALID',
141
142
  CarrierServerUnavailable: 'CARRIER_SERVER_UNAVAILABLE',
@@ -100,6 +100,12 @@ export interface UpdateOrderRequest {
100
100
  * @memberof UpdateOrderRequest
101
101
  */
102
102
  shippingRuleId?: string | null;
103
+ /**
104
+ * Service point (parcel shop) ID to apply to unsent outbound shipments.
105
+ * @type {string}
106
+ * @memberof UpdateOrderRequest
107
+ */
108
+ servicePointId?: string | null;
103
109
  }
104
110
 
105
111
 
@@ -145,6 +151,7 @@ export function UpdateOrderRequestFromJSONTyped(json: any, ignoreDiscriminator:
145
151
  'notes': json['notes'] === undefined ? undefined : json['notes'] === null ? null : json['notes'],
146
152
  'status': json['status'] == null ? undefined : json['status'],
147
153
  'shippingRuleId': json['shippingRuleId'] === undefined ? undefined : json['shippingRuleId'] === null ? null : json['shippingRuleId'],
154
+ 'servicePointId': json['servicePointId'] === undefined ? undefined : json['servicePointId'] === null ? null : json['servicePointId'],
148
155
  };
149
156
  }
150
157
 
@@ -170,6 +177,7 @@ export function UpdateOrderRequestToJSONTyped(value?: UpdateOrderRequest | null,
170
177
  'notes': value['notes'],
171
178
  'status': value['status'],
172
179
  'shippingRuleId': value['shippingRuleId'],
180
+ 'servicePointId': value['servicePointId'],
173
181
  };
174
182
  }
175
183
 
@@ -75,7 +75,10 @@ export * from './GetBillingUsage200ResponseLimitsTeamMembers';
75
75
  export * from './GetBillingUsage200ResponseShipments';
76
76
  export * from './GetBillingUsage200ResponseZippyMessages';
77
77
  export * from './GetOrder200Response';
78
+ export * from './GetOrder200ResponseOrderLinesInner';
78
79
  export * from './GetOrder200ResponseShipmentsInner';
80
+ export * from './GetOrder200ResponseShipmentsInnerParcelsInner';
81
+ export * from './GetOrder200ResponseShipmentsInnerParcelsInnerOrderLinesInner';
79
82
  export * from './GetOrder200ResponseShippingRule';
80
83
  export * from './GetOrderChannelWebhookStatus200Response';
81
84
  export * from './GetOrderChannelWebhookStatus200ResponseWebhooksInner';