> ## 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.

# Create order channel

> Creates a new order channel for an organization.



## OpenAPI

````yaml https://api.zippendo.com/public/json post /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:
    post:
      tags:
        - Order Channels
      summary: Create order channel
      description: Creates a new order channel for an organization.
      operationId: createOrderChannel
      parameters:
        - schema:
            type: string
            example: org_8f3kd92ld0
          in: path
          name: orgId
          required: true
          description: Organization ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Display name for the channel.
                  example: Anna's webshop
                type:
                  type: string
                  enum:
                    - manual
                    - custom
                  description: >-
                    Type of the order channel. Platform channels (Shopify,
                    WooCommerce) are created via their connect flows.
                  example: custom
                brandId:
                  description: Brand this channel belongs to; null for organization-wide
                  example: brnd_8f3kd92ld0
                  nullable: true
                  type: string
                enabled:
                  default: true
                  description: Whether the channel is active.
                  example: true
                  type: boolean
                settings:
                  default:
                    useWebhooks: true
                    autoSync: false
                    syncIntervalMinutes: 15
                    autoShipOnCreate: false
                    syncOnlyUnfulfilled: true
                    servicePointCount: 6
                  type: object
                  properties:
                    useWebhooks:
                      default: true
                      description: Use webhooks for real-time order sync.
                      example: true
                      type: boolean
                    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
                    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
                    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:
                - name
                - type
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                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
        '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.createOrderChannel({ orgId: "...",
            createOrderChannelRequest: { /* ... */ } })
        - 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).create_order_channel("...", zippendo.CreateOrderChannelRequest())
        - 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->createOrderChannel("...", new
            \Zippendo\Sdk\Model\CreateOrderChannelRequest([]));
        - 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.CreateOrderChannel(ctx,
            "...").CreateOrderChannelRequest(*zippendo.NewCreateOrderChannelRequest()).Execute()
        - lang: ruby
          label: Ruby
          source: >-
            require "zippendo"


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

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

````