zippendo 1.1.2 → 1.1.3
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.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/docs/AddressesApi.md +5 -1
- data/docs/CarriersApi.md +5 -1
- data/docs/ConnectCarrierRequest.md +3 -1
- data/docs/CreateAddressRequest.md +3 -1
- data/docs/CreateOrgWebhook201Response.md +2 -0
- data/docs/CreateOrgWebhookRequest.md +3 -1
- data/docs/CreateShippingRule201Response.md +2 -0
- data/docs/CreateShippingRuleRequest.md +3 -1
- data/docs/GetBillingUsage200Response.md +3 -1
- data/docs/GetBillingUsage200ResponseZippyMessages.md +20 -0
- data/docs/ListAddresses200ResponseDataInner.md +2 -0
- data/docs/ListCarriers200ResponseDataInner.md +2 -0
- data/docs/ListOrgWebhooks200ResponseDataInner.md +2 -0
- data/docs/ListShipments200ResponseDataInnerAddress.md +2 -0
- data/docs/ListShippingRules200ResponseDataInner.md +2 -0
- data/docs/ListShippingRules200ResponseDataInnerCarrier.md +2 -0
- data/docs/OrdersApi.md +2 -0
- data/docs/RulesApi.md +5 -1
- data/docs/ShipmentsApi.md +3 -1
- data/docs/UpdateAddressRequest.md +3 -1
- data/docs/UpdateCarrierRequest.md +3 -1
- data/docs/UpdateOrgWebhookRequest.md +3 -1
- data/docs/UpdateShippingRuleRequest.md +3 -1
- data/docs/WebhooksApi.md +5 -1
- data/lib/zippendo/api/addresses_api.rb +11 -1
- data/lib/zippendo/api/billing_api.rb +1 -1
- data/lib/zippendo/api/brands_api.rb +1 -1
- data/lib/zippendo/api/carrier_catalog_api.rb +1 -1
- data/lib/zippendo/api/carriers_api.rb +11 -1
- data/lib/zippendo/api/orders_api.rb +8 -1
- data/lib/zippendo/api/orgs_api.rb +1 -1
- data/lib/zippendo/api/quotes_api.rb +1 -1
- data/lib/zippendo/api/rules_api.rb +11 -1
- data/lib/zippendo/api/shipments_api.rb +8 -1
- data/lib/zippendo/api/system_api.rb +1 -1
- data/lib/zippendo/api/tokens_api.rb +1 -1
- data/lib/zippendo/api/webhooks_api.rb +11 -1
- data/lib/zippendo/api_client.rb +1 -1
- data/lib/zippendo/api_error.rb +1 -1
- data/lib/zippendo/api_model_base.rb +1 -1
- data/lib/zippendo/configuration.rb +1 -1
- data/lib/zippendo/models/batch_send_shipments200_response.rb +1 -1
- data/lib/zippendo/models/batch_send_shipments200_response_results_inner.rb +3 -3
- data/lib/zippendo/models/batch_send_shipments200_response_summary.rb +1 -1
- data/lib/zippendo/models/batch_send_shipments_request.rb +1 -1
- data/lib/zippendo/models/batch_split_shipment201_response.rb +1 -1
- data/lib/zippendo/models/batch_split_shipment_request.rb +1 -1
- data/lib/zippendo/models/batch_split_shipment_request_shipments_inner.rb +1 -1
- data/lib/zippendo/models/batch_split_shipment_request_shipments_inner_order_lines_inner.rb +1 -1
- data/lib/zippendo/models/check_brand_slug200_response.rb +1 -1
- data/lib/zippendo/models/connect_carrier_request.rb +31 -5
- data/lib/zippendo/models/create_address_request.rb +31 -5
- data/lib/zippendo/models/create_api_token201_response.rb +1 -1
- data/lib/zippendo/models/create_api_token_request.rb +1 -1
- data/lib/zippendo/models/create_order201_response.rb +1 -1
- data/lib/zippendo/models/create_order201_response_order_lines_inner.rb +1 -1
- data/lib/zippendo/models/create_order201_response_shipping_address.rb +1 -1
- data/lib/zippendo/models/create_order_request.rb +1 -1
- data/lib/zippendo/models/create_order_request_order_lines_inner.rb +1 -1
- data/lib/zippendo/models/create_order_request_shipping_address.rb +1 -1
- data/lib/zippendo/models/create_org_brand_request.rb +1 -1
- data/lib/zippendo/models/create_org_webhook201_response.rb +15 -2
- data/lib/zippendo/models/create_org_webhook_request.rb +31 -5
- data/lib/zippendo/models/create_shipment201_response.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_activities_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_documents_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_errors_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_logs_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_parcels_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_parcels_inner_dimensions.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_parcels_inner_order_lines_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_parties_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_parties_inner_attributes_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_pickup_details.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_shipping_rule.rb +1 -1
- data/lib/zippendo/models/create_shipment201_response_tracking.rb +1 -1
- data/lib/zippendo/models/create_shipment_request.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_carrier_settings.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_parcels_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_parcels_inner_dimensions.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_parcels_inner_order_lines_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_parties_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_parties_inner_attributes_inner.rb +1 -1
- data/lib/zippendo/models/create_shipment_request_pickup_details.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote200_response.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote200_response_rates_inner.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote400_response.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote404_response.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote_request.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote_request_destination.rb +1 -1
- data/lib/zippendo/models/create_shipping_quote_request_items_inner.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule201_response.rb +15 -2
- data/lib/zippendo/models/create_shipping_rule_request.rb +31 -5
- data/lib/zippendo/models/create_shipping_rule_request_additional_parameters_value.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_additional_parameters_value_any_of.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner_one_of.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner_one_of1.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner_one_of2.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner_one_of3.rb +1 -1
- data/lib/zippendo/models/create_shipping_rule_request_conditions_inner_one_of4.rb +1 -1
- data/lib/zippendo/models/delete_org_webhook200_response.rb +1 -1
- data/lib/zippendo/models/delete_shipping_rule200_response.rb +1 -1
- data/lib/zippendo/models/get_billing_usage200_response.rb +14 -5
- data/lib/zippendo/models/get_billing_usage200_response_add_ons_inner.rb +3 -3
- data/lib/zippendo/models/get_billing_usage200_response_current_period.rb +1 -1
- data/lib/zippendo/models/get_billing_usage200_response_limits.rb +1 -1
- data/lib/zippendo/models/get_billing_usage200_response_limits_team_members.rb +1 -1
- data/lib/zippendo/models/get_billing_usage200_response_shipments.rb +1 -1
- data/lib/zippendo/models/get_billing_usage200_response_zippy_messages.rb +193 -0
- data/lib/zippendo/models/get_order200_response.rb +1 -1
- data/lib/zippendo/models/get_order200_response_shipments_inner.rb +1 -1
- data/lib/zippendo/models/get_order200_response_shipping_rule.rb +1 -1
- data/lib/zippendo/models/get_org200_response.rb +1 -1
- data/lib/zippendo/models/get_org200_response_count.rb +1 -1
- data/lib/zippendo/models/get_org_branding200_response.rb +1 -1
- data/lib/zippendo/models/health_check200_response.rb +1 -1
- data/lib/zippendo/models/list_addresses200_response.rb +1 -1
- data/lib/zippendo/models/list_addresses200_response_data_inner.rb +15 -2
- data/lib/zippendo/models/list_api_tokens200_response.rb +1 -1
- data/lib/zippendo/models/list_api_tokens200_response_data_inner.rb +1 -1
- data/lib/zippendo/models/list_api_tokens200_response_data_inner_created_by.rb +1 -1
- data/lib/zippendo/models/list_api_tokens401_response.rb +3 -3
- data/lib/zippendo/models/list_available_carriers200_response_inner.rb +1 -1
- data/lib/zippendo/models/list_available_carriers200_response_inner_required_fields_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_product_service_points200_response_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_product_service_points200_response_inner_address.rb +1 -1
- data/lib/zippendo/models/list_carrier_product_service_points_request.rb +1 -1
- data/lib/zippendo/models/list_carrier_products200_response_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_products200_response_inner_additional_parameters_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_products200_response_inner_additional_parameters_inner_options_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_products200_response_inner_services_inner.rb +1 -1
- data/lib/zippendo/models/list_carrier_products200_response_inner_weight_limits.rb +1 -1
- data/lib/zippendo/models/list_carriers200_response.rb +1 -1
- data/lib/zippendo/models/list_carriers200_response_data_inner.rb +15 -2
- data/lib/zippendo/models/list_carriers200_response_data_inner_config_value.rb +1 -1
- data/lib/zippendo/models/list_orders200_response.rb +1 -1
- data/lib/zippendo/models/list_orders200_response_data_inner.rb +1 -1
- data/lib/zippendo/models/list_orders200_response_data_inner_order_channel.rb +1 -1
- data/lib/zippendo/models/list_org_brands200_response.rb +1 -1
- data/lib/zippendo/models/list_org_brands200_response_data_inner.rb +1 -1
- data/lib/zippendo/models/list_org_webhook_deliveries200_response.rb +1 -1
- data/lib/zippendo/models/list_org_webhook_deliveries200_response_data_inner.rb +1 -1
- data/lib/zippendo/models/list_org_webhooks200_response.rb +1 -1
- data/lib/zippendo/models/list_org_webhooks200_response_data_inner.rb +15 -2
- data/lib/zippendo/models/list_shipments200_response.rb +1 -1
- data/lib/zippendo/models/list_shipments200_response_data_inner.rb +1 -1
- data/lib/zippendo/models/list_shipments200_response_data_inner_address.rb +15 -2
- data/lib/zippendo/models/list_shipments200_response_data_inner_carrier_settings.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner.rb +15 -2
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_additional_parameters_value.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_additional_parameters_value_any_of.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_additional_parameters_value_any_of_coordinates_inner.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_carrier.rb +15 -2
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner_one_of.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner_one_of1.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner_one_of2.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner_one_of3.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_conditions_inner_one_of4.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_label_printer.rb +1 -1
- data/lib/zippendo/models/list_shipping_rules200_response_data_inner_return_shipping_rule.rb +1 -1
- data/lib/zippendo/models/revoke_api_token200_response.rb +1 -1
- data/lib/zippendo/models/send_shipment422_response.rb +3 -3
- data/lib/zippendo/models/send_shipment422_response_errors_inner.rb +1 -1
- data/lib/zippendo/models/split_shipment201_response.rb +1 -1
- data/lib/zippendo/models/split_shipment_parcel200_response.rb +1 -1
- data/lib/zippendo/models/split_shipment_parcel_request.rb +1 -1
- data/lib/zippendo/models/split_shipment_parcel_request_parcels_inner.rb +1 -1
- data/lib/zippendo/models/split_shipment_request.rb +1 -1
- data/lib/zippendo/models/test_org_webhook200_response.rb +1 -1
- data/lib/zippendo/models/track_shipment200_response.rb +1 -1
- data/lib/zippendo/models/track_shipment200_response_events_inner.rb +1 -1
- data/lib/zippendo/models/update_address_request.rb +31 -5
- data/lib/zippendo/models/update_api_token_request.rb +1 -1
- data/lib/zippendo/models/update_carrier_request.rb +31 -5
- data/lib/zippendo/models/update_order_request.rb +1 -1
- data/lib/zippendo/models/update_org200_response.rb +1 -1
- data/lib/zippendo/models/update_org_brand_request.rb +1 -1
- data/lib/zippendo/models/update_org_branding_request.rb +1 -1
- data/lib/zippendo/models/update_org_request.rb +1 -1
- data/lib/zippendo/models/update_org_webhook_request.rb +31 -5
- data/lib/zippendo/models/update_shipment_request.rb +1 -1
- data/lib/zippendo/models/update_shipping_rule_request.rb +31 -5
- data/lib/zippendo/models/verify_api_token200_response.rb +1 -1
- data/lib/zippendo/models/verify_api_token_request.rb +1 -1
- data/lib/zippendo/version.rb +2 -2
- data/lib/zippendo.rb +2 -1
- data/spec/spec_helper.rb +1 -1
- data/zippendo.gemspec +2 -2
- metadata +18 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -392,6 +392,8 @@ module Zippendo
|
|
|
392
392
|
# @param [Hash] opts the optional parameters
|
|
393
393
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
394
394
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
395
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
396
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
395
397
|
# @return [ListCarriers200Response]
|
|
396
398
|
def list_carriers(org_id, opts = {})
|
|
397
399
|
data, _status_code, _headers = list_carriers_with_http_info(org_id, opts)
|
|
@@ -404,6 +406,8 @@ module Zippendo
|
|
|
404
406
|
# @param [Hash] opts the optional parameters
|
|
405
407
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
406
408
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
409
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
410
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
407
411
|
# @return [Array<(ListCarriers200Response, Integer, Hash)>] ListCarriers200Response data, response status code and response headers
|
|
408
412
|
def list_carriers_with_http_info(org_id, opts = {})
|
|
409
413
|
if @api_client.config.debugging
|
|
@@ -429,6 +433,10 @@ module Zippendo
|
|
|
429
433
|
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CarriersApi.list_carriers, must be greater than or equal to 1.'
|
|
430
434
|
end
|
|
431
435
|
|
|
436
|
+
allowable_values = ["own", "shared", "both"]
|
|
437
|
+
if @api_client.config.client_side_validation && opts[:'brand_scope'] && !allowable_values.include?(opts[:'brand_scope'])
|
|
438
|
+
fail ArgumentError, "invalid value for \"brand_scope\", must be one of #{allowable_values}"
|
|
439
|
+
end
|
|
432
440
|
# resource path
|
|
433
441
|
local_var_path = '/orgs/{orgId}/carriers'.sub('{orgId}', CGI.escape(org_id.to_s))
|
|
434
442
|
|
|
@@ -436,6 +444,8 @@ module Zippendo
|
|
|
436
444
|
query_params = opts[:query_params] || {}
|
|
437
445
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
438
446
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
447
|
+
query_params[:'brandId'] = opts[:'brand_id'] if !opts[:'brand_id'].nil?
|
|
448
|
+
query_params[:'brandScope'] = opts[:'brand_scope'] if !opts[:'brand_scope'].nil?
|
|
439
449
|
|
|
440
450
|
# header parameters
|
|
441
451
|
header_params = opts[:header_params] || {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -238,6 +238,7 @@ module Zippendo
|
|
|
238
238
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
239
239
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
240
240
|
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
241
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
241
242
|
# @option opts [String] :status Order fulfilment status derived from its shipments.
|
|
242
243
|
# @option opts [String] :order_channel_id Filter by order channel ID.
|
|
243
244
|
# @option opts [String] :search Search by order number or customer name/email.
|
|
@@ -254,6 +255,7 @@ module Zippendo
|
|
|
254
255
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
255
256
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
256
257
|
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
258
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
257
259
|
# @option opts [String] :status Order fulfilment status derived from its shipments.
|
|
258
260
|
# @option opts [String] :order_channel_id Filter by order channel ID.
|
|
259
261
|
# @option opts [String] :search Search by order number or customer name/email.
|
|
@@ -282,6 +284,10 @@ module Zippendo
|
|
|
282
284
|
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling OrdersApi.list_orders, must be greater than or equal to 1.'
|
|
283
285
|
end
|
|
284
286
|
|
|
287
|
+
allowable_values = ["own", "shared", "both"]
|
|
288
|
+
if @api_client.config.client_side_validation && opts[:'brand_scope'] && !allowable_values.include?(opts[:'brand_scope'])
|
|
289
|
+
fail ArgumentError, "invalid value for \"brand_scope\", must be one of #{allowable_values}"
|
|
290
|
+
end
|
|
285
291
|
allowable_values = ["pending", "processing", "partially_fulfilled", "fulfilled", "error", "cancelled"]
|
|
286
292
|
if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
|
|
287
293
|
fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
|
|
@@ -294,6 +300,7 @@ module Zippendo
|
|
|
294
300
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
295
301
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
296
302
|
query_params[:'brandId'] = opts[:'brand_id'] if !opts[:'brand_id'].nil?
|
|
303
|
+
query_params[:'brandScope'] = opts[:'brand_scope'] if !opts[:'brand_scope'].nil?
|
|
297
304
|
query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
|
|
298
305
|
query_params[:'orderChannelId'] = opts[:'order_channel_id'] if !opts[:'order_channel_id'].nil?
|
|
299
306
|
query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -237,6 +237,8 @@ module Zippendo
|
|
|
237
237
|
# @param [Hash] opts the optional parameters
|
|
238
238
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
239
239
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
240
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
241
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
240
242
|
# @return [ListShippingRules200Response]
|
|
241
243
|
def list_shipping_rules(org_id, opts = {})
|
|
242
244
|
data, _status_code, _headers = list_shipping_rules_with_http_info(org_id, opts)
|
|
@@ -249,6 +251,8 @@ module Zippendo
|
|
|
249
251
|
# @param [Hash] opts the optional parameters
|
|
250
252
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
251
253
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
254
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
255
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
252
256
|
# @return [Array<(ListShippingRules200Response, Integer, Hash)>] ListShippingRules200Response data, response status code and response headers
|
|
253
257
|
def list_shipping_rules_with_http_info(org_id, opts = {})
|
|
254
258
|
if @api_client.config.debugging
|
|
@@ -274,6 +278,10 @@ module Zippendo
|
|
|
274
278
|
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling RulesApi.list_shipping_rules, must be greater than or equal to 1.'
|
|
275
279
|
end
|
|
276
280
|
|
|
281
|
+
allowable_values = ["own", "shared", "both"]
|
|
282
|
+
if @api_client.config.client_side_validation && opts[:'brand_scope'] && !allowable_values.include?(opts[:'brand_scope'])
|
|
283
|
+
fail ArgumentError, "invalid value for \"brand_scope\", must be one of #{allowable_values}"
|
|
284
|
+
end
|
|
277
285
|
# resource path
|
|
278
286
|
local_var_path = '/orgs/{orgId}/shipping-rules'.sub('{orgId}', CGI.escape(org_id.to_s))
|
|
279
287
|
|
|
@@ -281,6 +289,8 @@ module Zippendo
|
|
|
281
289
|
query_params = opts[:query_params] || {}
|
|
282
290
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
283
291
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
292
|
+
query_params[:'brandId'] = opts[:'brand_id'] if !opts[:'brand_id'].nil?
|
|
293
|
+
query_params[:'brandScope'] = opts[:'brand_scope'] if !opts[:'brand_scope'].nil?
|
|
284
294
|
|
|
285
295
|
# header parameters
|
|
286
296
|
header_params = opts[:header_params] || {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -544,6 +544,7 @@ module Zippendo
|
|
|
544
544
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
545
545
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
546
546
|
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
547
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
547
548
|
# @return [ListShipments200Response]
|
|
548
549
|
def list_shipments(org_id, opts = {})
|
|
549
550
|
data, _status_code, _headers = list_shipments_with_http_info(org_id, opts)
|
|
@@ -557,6 +558,7 @@ module Zippendo
|
|
|
557
558
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
558
559
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
559
560
|
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
561
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
560
562
|
# @return [Array<(ListShipments200Response, Integer, Hash)>] ListShipments200Response data, response status code and response headers
|
|
561
563
|
def list_shipments_with_http_info(org_id, opts = {})
|
|
562
564
|
if @api_client.config.debugging
|
|
@@ -582,6 +584,10 @@ module Zippendo
|
|
|
582
584
|
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ShipmentsApi.list_shipments, must be greater than or equal to 1.'
|
|
583
585
|
end
|
|
584
586
|
|
|
587
|
+
allowable_values = ["own", "shared", "both"]
|
|
588
|
+
if @api_client.config.client_side_validation && opts[:'brand_scope'] && !allowable_values.include?(opts[:'brand_scope'])
|
|
589
|
+
fail ArgumentError, "invalid value for \"brand_scope\", must be one of #{allowable_values}"
|
|
590
|
+
end
|
|
585
591
|
# resource path
|
|
586
592
|
local_var_path = '/orgs/{orgId}/shipments'.sub('{orgId}', CGI.escape(org_id.to_s))
|
|
587
593
|
|
|
@@ -590,6 +596,7 @@ module Zippendo
|
|
|
590
596
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
591
597
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
592
598
|
query_params[:'brandId'] = opts[:'brand_id'] if !opts[:'brand_id'].nil?
|
|
599
|
+
query_params[:'brandScope'] = opts[:'brand_scope'] if !opts[:'brand_scope'].nil?
|
|
593
600
|
|
|
594
601
|
# header parameters
|
|
595
602
|
header_params = opts[:header_params] || {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -328,6 +328,8 @@ module Zippendo
|
|
|
328
328
|
# @param [Hash] opts the optional parameters
|
|
329
329
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
330
330
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
331
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
332
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
331
333
|
# @return [ListOrgWebhooks200Response]
|
|
332
334
|
def list_org_webhooks(org_id, opts = {})
|
|
333
335
|
data, _status_code, _headers = list_org_webhooks_with_http_info(org_id, opts)
|
|
@@ -340,6 +342,8 @@ module Zippendo
|
|
|
340
342
|
# @param [Hash] opts the optional parameters
|
|
341
343
|
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
342
344
|
# @option opts [Integer] :limit Items per page (max 100) (default to 20)
|
|
345
|
+
# @option opts [String] :brand_id Filter by brand. Pass a brand ID, or \"none\" for records not assigned to any brand.
|
|
346
|
+
# @option opts [String] :brand_scope How the brand context narrows this list: \"own\" returns only rows assigned to the current brand (requires a brand session, a brand-bound token, or the X-Zippendo-Brand header), \"shared\" returns only unassigned organization-wide rows, \"both\" (default) returns both. The X-Zippendo-Brand-Scope header supplies a default when the parameter is omitted. For strictly brand-owned records (orders, shipments), a brand-scoped request combined with \"shared\" returns no rows, since those records are never visible organization-wide from within a brand context.
|
|
343
347
|
# @return [Array<(ListOrgWebhooks200Response, Integer, Hash)>] ListOrgWebhooks200Response data, response status code and response headers
|
|
344
348
|
def list_org_webhooks_with_http_info(org_id, opts = {})
|
|
345
349
|
if @api_client.config.debugging
|
|
@@ -365,6 +369,10 @@ module Zippendo
|
|
|
365
369
|
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling WebhooksApi.list_org_webhooks, must be greater than or equal to 1.'
|
|
366
370
|
end
|
|
367
371
|
|
|
372
|
+
allowable_values = ["own", "shared", "both"]
|
|
373
|
+
if @api_client.config.client_side_validation && opts[:'brand_scope'] && !allowable_values.include?(opts[:'brand_scope'])
|
|
374
|
+
fail ArgumentError, "invalid value for \"brand_scope\", must be one of #{allowable_values}"
|
|
375
|
+
end
|
|
368
376
|
# resource path
|
|
369
377
|
local_var_path = '/orgs/{orgId}/webhooks'.sub('{orgId}', CGI.escape(org_id.to_s))
|
|
370
378
|
|
|
@@ -372,6 +380,8 @@ module Zippendo
|
|
|
372
380
|
query_params = opts[:query_params] || {}
|
|
373
381
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
374
382
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
383
|
+
query_params[:'brandId'] = opts[:'brand_id'] if !opts[:'brand_id'].nil?
|
|
384
|
+
query_params[:'brandScope'] = opts[:'brand_scope'] if !opts[:'brand_scope'].nil?
|
|
375
385
|
|
|
376
386
|
# header parameters
|
|
377
387
|
header_params = opts[:header_params] || {}
|
data/lib/zippendo/api_client.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
data/lib/zippendo/api_error.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -157,7 +157,7 @@ module Zippendo
|
|
|
157
157
|
return false if @status.nil?
|
|
158
158
|
status_validator = EnumAttributeValidator.new('String', ["sent", "failed"])
|
|
159
159
|
return false unless status_validator.valid?(@status)
|
|
160
|
-
code_validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS"])
|
|
160
|
+
code_validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
|
|
161
161
|
return false unless code_validator.valid?(@code)
|
|
162
162
|
true
|
|
163
163
|
end
|
|
@@ -185,7 +185,7 @@ module Zippendo
|
|
|
185
185
|
# Custom attribute writer method checking allowed values (enum).
|
|
186
186
|
# @param [Object] code Object to be assigned
|
|
187
187
|
def code=(code)
|
|
188
|
-
validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS"])
|
|
188
|
+
validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
|
|
189
189
|
unless validator.valid?(code)
|
|
190
190
|
fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
|
|
191
191
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Zippendo Public API
|
|
3
3
|
|
|
4
|
-
#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. 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`.
|
|
4
|
+
#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`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@zippendo.com
|