> ## Documentation Index
> Fetch the complete documentation index at: https://www.zippendo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List order channels

> Returns a paginated list of order channels for an organization.



## OpenAPI

````yaml https://api.zippendo.com/public/json get /orgs/{orgId}/order-channels
openapi: 3.0.0
info:
  title: Zippendo Public API
  description: >-
    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`.
  version: 1.0.0
  contact:
    name: Zippendo Support
    email: support@zippendo.com
    url: https://zippendo.com/support
  license:
    name: Proprietary
    url: https://www.zippendo.com/legal
  termsOfService: https://www.zippendo.com/legal/terms-of-service
servers:
  - url: https://api.zippendo.com
    description: Zippendo API
security:
  - bearerAuth: []
paths:
  /orgs/{orgId}/order-channels:
    get:
      tags:
        - Order Channels
      summary: List order channels
      description: Returns a paginated list of order channels for an organization.
      operationId: listOrderChannels
      parameters:
        - schema:
            default: 1
            example: 1
            type: integer
            minimum: 1
            maximum: 9007199254740991
          in: query
          name: page
          required: false
          description: Page number (1-based)
        - schema:
            default: 20
            example: 20
            type: integer
            minimum: 1
            maximum: 100
          in: query
          name: limit
          required: false
          description: Items per page (max 100)
        - schema:
            type: string
            example: brnd_8f3kd92ld0
          in: query
          name: brandId
          required: false
          description: >-
            Filter by brand. Pass a brand ID, or "none" for records not assigned
            to any brand.
        - schema:
            example: own
            type: string
            enum:
              - own
              - shared
              - both
          in: query
          name: brandScope
          required: false
          description: >-
            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.
        - schema:
            example: shopify
            type: string
            enum:
              - shopify
              - woocommerce
              - manual
              - custom
          in: query
          name: type
          required: false
          description: Filter by channel type.
        - schema:
            example: true
            type: string
          in: query
          name: enabled
          required: false
          description: Filter by enabled state.
        - schema:
            example: Anna's Shopify Store
            type: string
          in: query
          name: search
          required: false
          description: Search by channel name.
        - schema:
            type: string
            example: org_8f3kd92ld0
          in: path
          name: orgId
          required: true
          description: Organization ID
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Unique order channel ID.
                          example: clz9k2f0a0001abcd1234efgh
                        name:
                          type: string
                          description: Display name of the channel.
                          example: Anna's Shopify Store
                        type:
                          type: string
                          enum:
                            - shopify
                            - woocommerce
                            - manual
                            - custom
                          description: Type of the order channel (sales platform).
                          example: shopify
                        enabled:
                          type: boolean
                          description: Whether the channel is active.
                          example: true
                        brandId:
                          nullable: true
                          description: >-
                            Brand this channel belongs to, or null for
                            organization-wide. Orders synced from this channel
                            inherit it, and so do the shipments and documents
                            made from them.
                          example: brnd_8f3kd92ld0
                          type: string
                        hasCredentials:
                          type: boolean
                          description: >-
                            Whether credentials are configured (values are never
                            exposed).
                          example: true
                        settings:
                          type: object
                          properties:
                            useWebhooks:
                              default: true
                              description: Use webhooks for real-time order sync.
                              example: true
                              type: boolean
                            webhookId:
                              nullable: true
                              description: External webhook identifier for management.
                              example: gid://shopify/WebhookSubscription/12345
                              type: string
                            webhookIds:
                              description: Registered WooCommerce webhook ids.
                              example:
                                - 12
                                - 13
                                - 14
                              type: array
                              items:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            webhookSecretCreatedAt:
                              nullable: true
                              description: >-
                                When the custom channel's webhook signing secret
                                was issued. A non-secret signal so clients can
                                show that a secret exists; the secret itself is
                                never returned after creation.
                              example: '2026-06-22T14:30:00.000Z'
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            siteUrl:
                              description: WooCommerce store URL.
                              example: https://butik.dk
                              type: string
                              format: uri
                            autoFulfill:
                              description: >-
                                Push tracking back to the platform when a
                                shipment is dispatched. Enabled by default
                                (opt-out) — set to false to disable write-back;
                                an unset value still syncs.
                              example: true
                              type: boolean
                            checkoutTokenCreatedAt:
                              nullable: true
                              description: >-
                                When the checkout token was issued (internal;
                                never exposed in API responses).
                              example: '2026-06-22T14:30:00.000Z'
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            autoSync:
                              default: false
                              description: Periodically poll the channel for new orders.
                              example: false
                              type: boolean
                            syncIntervalMinutes:
                              default: 15
                              description: Polling interval in minutes (5-1440).
                              example: 15
                              type: integer
                              minimum: 5
                              maximum: 1440
                            autoShipOnCreate:
                              default: false
                              description: >-
                                Create a shipment automatically when an order
                                arrives.
                              example: false
                              type: boolean
                            defaultCarrierId:
                              nullable: true
                              description: Default carrier ID for auto-shipping.
                              example: clz9k2f0a0006abcd1357yzab
                              type: string
                            defaultProductId:
                              nullable: true
                              description: Default carrier product ID for auto-shipping.
                              example: postnord-home-delivery
                              type: string
                            defaultAddressId:
                              nullable: true
                              description: Default sender address ID for auto-shipping.
                              example: clz9k2f0a0005abcd7890uvwx
                              type: string
                            shippingMethodMappings:
                              description: >-
                                Map imported shipping-method titles to shipping
                                rules, for channels without checkout rate
                                integration.
                              example:
                                - match: GLS Hjemmelevering
                                  shippingRuleId: clz9k2f0a0007abcd2468qrst
                              type: array
                              items:
                                type: object
                                properties:
                                  match:
                                    type: string
                                    minLength: 1
                                    description: >-
                                      Shipping-method title to match against
                                      imported orders (trimmed,
                                      case-insensitive, exact).
                                    example: GLS Hjemmelevering
                                  shippingRuleId:
                                    type: string
                                    minLength: 1
                                    description: >-
                                      Shipping rule applied to orders whose
                                      shipping-method title matches.
                                    example: clz9k2f0a0007abcd2468qrst
                                  servicePointSelection:
                                    description: >-
                                      For rules whose product delivers to a
                                      service point: 'nearest' auto-selects the
                                      closest point to the recipient address;
                                      'manual' keeps the shipment in draft for
                                      manual selection.
                                    example: nearest
                                    type: string
                                    enum:
                                      - nearest
                                      - manual
                                required:
                                  - match
                                  - shippingRuleId
                                additionalProperties: false
                            syncOnlyUnfulfilled:
                              default: true
                              description: Only import orders that are not yet fulfilled.
                              example: true
                              type: boolean
                            syncOrdersSince:
                              nullable: true
                              description: >-
                                Only sync orders placed at or after this
                                timestamp.
                              example: '2026-05-22T00:00:00.000Z'
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            servicePointCount:
                              default: 6
                              description: >-
                                Number of service points to show at checkout
                                (1-20).
                              example: 6
                              type: integer
                              minimum: 1
                              maximum: 20
                          required:
                            - useWebhooks
                            - autoSync
                            - syncIntervalMinutes
                            - autoShipOnCreate
                            - syncOnlyUnfulfilled
                            - servicePointCount
                          additionalProperties: false
                          description: >-
                            Channel settings (webhook secret and checkout token
                            hash omitted).
                        webhooksEnabled:
                          description: Whether real-time webhooks are enabled.
                          example: true
                          type: boolean
                        lastSyncAt:
                          nullable: true
                          description: Timestamp of the last successful sync.
                          example: '2026-06-22T14:30:00.000Z'
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        lastSyncError:
                          nullable: true
                          description: Error message from the last failed sync.
                          example: Invalid API credentials
                          type: string
                        shippingRuleIds:
                          description: IDs of shipping rules linked to this channel.
                          example:
                            - clz9k2f0a0002abcd5678ijkl
                          type: array
                          items:
                            type: string
                        orgId:
                          type: string
                          description: Owning organization ID.
                          example: clz9k2f0a0000abcd0000zzzz
                        createdAt:
                          type: string
                          description: Creation timestamp (ISO 8601).
                          example: '2026-06-22T14:30:00.000Z'
                        updatedAt:
                          type: string
                          description: Last update timestamp (ISO 8601).
                          example: '2026-06-22T14:30:00.000Z'
                      required:
                        - id
                        - name
                        - type
                        - enabled
                        - brandId
                        - hasCredentials
                        - settings
                        - orgId
                        - createdAt
                        - updatedAt
                      additionalProperties: false
                    description: Page of results
                  total:
                    type: number
                    description: Total matching items across all pages
                    example: 137
                  page:
                    type: number
                    description: Current page number (1-based)
                    example: 1
                  limit:
                    type: number
                    description: Items per page
                    example: 20
                  totalPages:
                    type: number
                    description: Total number of pages
                    example: 7
                required:
                  - data
                  - total
                  - page
                  - limit
                  - totalPages
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: >-
                      Machine-readable error code (translate by this on the
                      client)
                    example: CARRIER_GLS_WRONG_ADDRESS
                    type: string
                    enum:
                      - 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
                      - CAPTCHA_FAILED
                      - EMAIL_DOMAIN_BLOCKED
                      - VAT_INVALID
                      - 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
                      - TERMS_NOT_ACCEPTED
                      - 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
                      - ZIPPY_MESSAGE_LIMIT_REACHED
                      - SHIPMENT_NOT_FOUND
                      - SHIPMENT_DOCUMENT_NOT_FOUND
                      - SHIPMENT_ALREADY_SENT
                      - SHIPMENT_INVALID_STATE
                      - SHIPMENT_SERVICE_POINT_REQUIRED
                      - SHIPMENT_SEND_NOT_ATTEMPTED
                      - 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_EXISTS
                      - 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
                  error:
                    type: string
                    description: Short human title
                    example: Bad Request
                  message:
                    type: string
                    description: Human-readable English detail (i18n fallback)
                    example: Failed to create address
                required:
                  - error
                  - message
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: >-
                      Machine-readable error code (translate by this on the
                      client)
                    example: CARRIER_GLS_WRONG_ADDRESS
                    type: string
                    enum:
                      - 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
                      - CAPTCHA_FAILED
                      - EMAIL_DOMAIN_BLOCKED
                      - VAT_INVALID
                      - 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
                      - TERMS_NOT_ACCEPTED
                      - 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
                      - ZIPPY_MESSAGE_LIMIT_REACHED
                      - SHIPMENT_NOT_FOUND
                      - SHIPMENT_DOCUMENT_NOT_FOUND
                      - SHIPMENT_ALREADY_SENT
                      - SHIPMENT_INVALID_STATE
                      - SHIPMENT_SERVICE_POINT_REQUIRED
                      - SHIPMENT_SEND_NOT_ATTEMPTED
                      - 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_EXISTS
                      - 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
                  error:
                    type: string
                    description: Short human title
                    example: Bad Request
                  message:
                    type: string
                    description: Human-readable English detail (i18n fallback)
                    example: Failed to create address
                required:
                  - error
                  - message
                additionalProperties: false
      x-codeSamples:
        - lang: typescript
          label: TypeScript
          source: >-
            import { Configuration, OrderChannelsApi } from "@zippendo/sdk"


            const api = new OrderChannelsApi(new Configuration({ accessToken:
            process.env.ZIPPENDO_API_TOKEN }))

            const result = await api.listOrderChannels({ orgId: "..." })
        - lang: python
          label: Python
          source: >-
            import os

            import zippendo


            config =
            zippendo.Configuration(access_token=os.environ["ZIPPENDO_API_TOKEN"])

            with zippendo.ApiClient(config) as client:
                result = zippendo.OrderChannelsApi(client).list_order_channels("...")
        - lang: php
          label: PHP
          source: >-
            <?php

            $config =
            Zippendo\Sdk\Configuration::getDefaultConfiguration()->setAccessToken(getenv("ZIPPENDO_API_TOKEN"));

            $api = new Zippendo\Sdk\Api\OrderChannelsApi(new
            GuzzleHttp\Client(), $config);

            $result = $api->listOrderChannels("...");
        - lang: go
          label: Go
          source: >-
            client := zippendo.NewAPIClient(zippendo.NewConfiguration())

            ctx := context.WithValue(context.Background(),
            zippendo.ContextAccessToken, os.Getenv("ZIPPENDO_API_TOKEN"))

            result, _, err := client.OrderChannelsAPI.ListOrderChannels(ctx,
            "...").Execute()
        - lang: ruby
          label: Ruby
          source: >-
            require "zippendo"


            Zippendo.configure { |c| c.access_token = ENV["ZIPPENDO_API_TOKEN"]
            }

            result = Zippendo::OrderChannelsApi.new.list_order_channels("...")
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token or API token (prefixed with zipp_)

````