{"title":"StoreConnect API","slug":"storeconnect-api","url":"https://support.storeconnect.com/articles/storeconnect-api","url_markdown":"https://support.storeconnect.com/articles/storeconnect-api.md","subtitle":null,"summary":"REST API endpoints for submitting orders and payments, retrieving products, and accessing store details. Includes the full OpenAPI 3.0 specification with schemas.","type":"Developer_Documentation","video_url":"","keywords":"storeconnect api, rest api, api endpoints, openapi, orders api, payments api, products api, store api, api integration, external integration, openapi 3.0, bearer authentication","last_modified":"2026-07-30T00:28:16+0000","body_markdown":"StoreConnect API allows external applications to interact with an online store. In short, it provides a set of endpoints to:\n\n-   **Submit Orders:**\n-   The `/orders` endpoint lets you create new orders. You provide customer details, billing and shipping addresses, a list of order items, and optionally a collection point and a flag to finalize the order.\n-   **Submit Payments:**\n-   The `/payments` endpoint is used to register a new payment against an order. It requires details like the order ID, payment amount, and a reference, along with optional source information.\n-   **Retrieve Products:**\n-   The `/products` endpoint retrieves a paginated list of master products with basic information, while `/products/{id}` fetches extended details for a specific product.\n-   **Get Store Details:**\n-   The `/store` endpoint provides information about the store itself, including currency, locale, logo, name, and timezone.\n\nAdditionally, the specification includes comprehensive data models (schemas) for addresses, customers, orders, payments, product details, and more. This structured approach ensures that both successful and error responses (like unauthorized access or validation errors) are well defined.\n\nThe API feature is designed to support key e-commerce operations, enabling seamless order management, payment processing, product catalog browsing, and access to store configuration details.\n\nOpen [https://editor-next.swagger.io/](https://editor-next.swagger.io/) and paste the following API Specs to access the documentation.\n\n```yaml\n\n---\nopenapi: 3.0.1\ninfo:\n  title: StoreConnect API\n  version: v1\npaths:\n  \"/orders\":\n    post:\n      summary: Submits a new order\n      parameters: []\n      responses:\n        '201':\n          description: Created\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/Order\"\n        '401':\n          description: Unauthorized\n        '422':\n          description: Unprocessable Entity\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/Error\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              \"$ref\": \"#/components/schemas/CreateOrderPayload\"\n  \"/payments\":\n    post:\n      summary: Submits a new payment\n      parameters: []\n      responses:\n        '201':\n          description: Created\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/Payment\"\n        '401':\n          description: Unauthorized\n        '422':\n          description: Unprocessable Entity\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/Error\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              \"$ref\": \"#/components/schemas/CreatePaymentPayload\"\n  \"/products\":\n    get:\n      summary: Returns a list of master products\n      parameters:\n      - name: page\n        in: query\n        required: false\n        schema:\n          type: integer\n      - name: per_page\n        in: query\n        required: false\n        schema:\n          type: integer\n      responses:\n        '200':\n          description: Ok\n          headers:\n            X-Pagination-Per-Page:\n              schema:\n                type: integer\n                example: 5\n                default: 25\n            X-Pagination-Current-Page:\n              schema:\n                type: integer\n                example: 3\n            X-Pagination-Total-Records:\n              schema:\n                type: integer\n                example: 100\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  \"$ref\": \"#/components/schemas/ProductBasic\"\n        '401':\n          description: Unauthorized\n  \"/products/{id}\":\n    get:\n      summary: Returns extended details of a single product\n      parameters:\n      - name: id\n        in: path\n        required: true\n        schema:\n          type: string\n      responses:\n        '200':\n          description: Ok\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/ProductExtended\"\n        '404':\n          description: Not Found\n        '401':\n          description: Unauthorized\n  \"/store\":\n    get:\n      summary: Returns details for the store\n      responses:\n        '200':\n          description: Ok\n          content:\n            application/json:\n              schema:\n                \"$ref\": \"#/components/schemas/Store\"\n        '401':\n          description: Unauthorized\ncomponents:\n  schemas:\n    Address:\n      type: object\n      properties:\n        street:\n          type: string\n          example: 123 Main St\n        city:\n          type: string\n          example: Sydney\n        state:\n          type: string\n          example: NSW\n          format: ISO 3166-2\n        country:\n          type: string\n          example: AU\n          format: ISO 3166-1 alpha-2\n        postal_code:\n          type: string\n          example: 2000\n    Category:\n      type: object\n      required:\n      - id\n      - name\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        name:\n          type: string\n          example: Clothing\n    CollectionPoint:\n      description: A collection point defines a physical location that an order can\n        be picked up from\n      type: object\n      required:\n      - id\n      - name\n      - geo\n      - lead_time_duration\n      - lead_time_units\n      - description\n      - phone\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        name:\n          type: string\n          example: Members Pavilion\n        geo:\n          \"$ref\": \"#/components/schemas/LatLong\"\n        lead_time_duration:\n          type: integer\n          nullable: true\n          example: 20\n        lead_time_units:\n          type: string\n          nullable: true\n          enum:\n          - days\n          - hours\n          - minutes\n          example: minutes\n        description:\n          type: string\n          nullable: true\n          example: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n            eiusmod tempor incididunt ut labore et dolore magna aliqua.\n        phone:\n          type: string\n          nullable: true\n          example: \"(555) 123 456\"\n    CreateOrderPayload:\n      type: object\n      required:\n      - customer\n      - items\n      - billing_address\n      - shipping_address\n      properties:\n        customer:\n          \"$ref\": \"#/components/schemas/Customer\"\n        billing_address:\n          \"$ref\": \"#/components/schemas/Address\"\n        shipping_address:\n          \"$ref\": \"#/components/schemas/Address\"\n        items:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/OrderItemPayload\"\n        collection_point_id:\n          type: string\n          example: 123456789-ABCDEFG\n        finalise_order:\n          type: boolean\n          example: false\n    CreatePaymentPayload:\n      type: object\n      required:\n      - order_id\n      - amount\n      - reference\n      properties:\n        order_id:\n          type: string\n          example: 123456789-ABCDEFG\n        amount:\n          type: number\n          format: decimal\n          example: 99.0\n        reference:\n          type: string\n          example: 123456789-ABCDEFG\n        source:\n          type: string\n          example: Your App Name\n    Currency:\n      description: An object defining elements related to a Currency\n      type: object\n      required:\n      - code\n      - symbol\n      properties:\n        code:\n          type: string\n          example: AUD\n        symbol:\n          type: string\n          example: \"$\"\n    Customer:\n      description: The contact details for a Customer\n      type: object\n      required:\n      - first_name\n      - last_name\n      - email\n      properties:\n        first_name:\n          type: string\n          example: Roger\n        last_name:\n          type: string\n          example: Ramjet\n        email:\n          \"$ref\": \"#/components/schemas/Email\"\n        phone:\n          type: string\n          example: \"(555) 123 456\"\n    Email:\n      description: A valid email address\n      type: string\n      example: person@example.com\n    Error:\n      description: An API Error\n      type: object\n      required:\n      - error\n      properties:\n        error:\n          type: object\n          required:\n          - type\n          - details\n          properties:\n            type:\n              type: string\n              enum:\n              - invalid\n              - missing\n              - not_found\n              - request\n            details:\n              type: object\n              example:\n                param: quantity\n                in:\n                - root\n                - items\n                - 1\n    Image:\n      description: image data including various urls for different sizes\n      type: object\n      required:\n      - id\n      - sizes\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        sizes:\n          type: object\n          properties:\n            original:\n              \"$ref\": \"#/components/schemas/Url\"\n            16x16:\n              \"$ref\": \"#/components/schemas/Url\"\n            32x32:\n              \"$ref\": \"#/components/schemas/Url\"\n            50x50:\n              \"$ref\": \"#/components/schemas/Url\"\n            100x100:\n              \"$ref\": \"#/components/schemas/Url\"\n            240x240:\n              \"$ref\": \"#/components/schemas/Url\"\n            480x480:\n              \"$ref\": \"#/components/schemas/Url\"\n            640x640:\n              \"$ref\": \"#/components/schemas/Url\"\n            1024x1024:\n              \"$ref\": \"#/components/schemas/Url\"\n            2048x2048:\n              \"$ref\": \"#/components/schemas/Url\"\n    LatLong:\n      description: Provides a pair of latitude and longitude coordinates\n      required:\n      - latitude\n      - longitude\n      type: object\n      properties:\n        latitude:\n          type: number\n          nullable: true\n          format: float\n          example: -33.891034\n        longitude:\n          type: number\n          nullable: true\n          format: float\n          example: 151.224045\n    OrderItemPayload:\n      type: object\n      required:\n      - product_id\n      - quantity\n      properties:\n        product_id:\n          type: string\n          example: 123456789-ABCDEFG\n        quantity:\n          type: integer\n          example: 3\n    OrderItem:\n      type: object\n      required:\n      - id\n      - name\n      - quantity\n      - price\n      - total\n      - tax\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        name:\n          type: string\n          example: My Product\n        quantity:\n          type: number\n          format: decimal\n          example: 3\n        price:\n          type: number\n          format: decimal\n        total:\n          type: number\n          format: decimal\n        tax:\n          type: number\n          format: decimal\n    Order:\n      type: object\n      required:\n      - id\n      - reference\n      - status\n      - total_amount\n      - total_tax\n      - total_paid\n      - total_payable\n      - customer\n      - items\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        reference:\n          type: string\n          example: 169af09d8226\n        status:\n          type: string\n          example: Ready for pickup\n        total_amount:\n          type: number\n          format: decimal\n        total_tax:\n          type: number\n          format: decimal\n        total_paid:\n          type: number\n          format: decimal\n        total_payable:\n          type: number\n          format: decimal\n        customer:\n          \"$ref\": \"#/components/schemas/Customer\"\n        items:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/OrderItem\"\n        collection_point_id:\n          type: string\n          example: 123456789-ABCDEFG\n    Payment:\n      description: Payment details\n      type: object\n      required:\n      - id\n      - amount\n      - order_id\n      - paid_at\n      - reference\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        order_id:\n          type: string\n          example: 123456789-ABCDEFG\n        amount:\n          type: number\n          format: decimal\n          example: 99.0\n        reference:\n          type: string\n          example: 123456789-ABCDEFG\n        paid_at:\n          type: string\n          format: iso-8601\n          example: '2025-02-24T05:37:33Z'\n    ProductBasic:\n      description: basic information about a product\n      allOf:\n      - \"$ref\": \"#/components/schemas/ProductCommon\"\n      type: object\n      required:\n      - variants\n      properties:\n        variants:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/ProductVariant\"\n    ProductCommon:\n      description: common product details\n      type: object\n      required:\n      - id\n      - code\n      - images\n      - name\n      - pricing\n      - stock\n      - summary\n      - tags\n      - taxes\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        code:\n          type: string\n          example: 1234ABCD\n        images:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/Image\"\n        name:\n          type: string\n          example: My Product\n        pricing:\n          \"$ref\": \"#/components/schemas/ProductPricing\"\n        stock:\n          \"$ref\": \"#/components/schemas/ProductStock\"\n        summary:\n          \"$ref\": \"#/components/schemas/RichText\"\n        tags:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/Tag\"\n        taxes:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/Tax\"\n    ProductExtended:\n      description: extended product details\n      allOf:\n      - \"$ref\": \"#/components/schemas/ProductCommon\"\n      type: object\n      required:\n      - master_id\n      - content\n      - variants\n      properties:\n        master_id:\n          type: string\n          example: 123456789-ABCDEFG\n          nullable: true\n        content:\n          type: object\n          example:\n            Features: Lorem ipsum...\n            Warranty: Lorem ipsum...\n        variants:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/ProductVariant\"\n    ProductPricing:\n      description: pricing information for a product\n      type: object\n      required:\n      - original\n      - current\n      - tax_inclusive\n      properties:\n        original:\n          type: number\n          format: decimal\n          description: the original price for a product\n          example: 12.95\n        current:\n          type: number\n          format: decimal\n          description: the current price for a product\n          example: 9.95\n        tax_inclusive:\n          type: boolean\n          description: Indicates whether the tax is already included in this price\n      example: true\n    ProductStockLevel:\n      description: Details of stock levels for a product\n      type: object\n      required:\n      - id\n      - available_to_sell\n      - collection_points\n      - online_fulfillment_options\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        available_to_sell:\n          type: integer\n          nullable: true\n          example: 24\n        collection_points:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/CollectionPoint\"\n        online_fulfillment_options:\n          type: string\n          enum:\n          - no_online_fulfillment\n          - shipping_only\n          - click_and_collect_only\n          - shipping_with_click_and_collect\n    ProductStock:\n      description: Stock information for a product\n      type: object\n      required:\n      - total_available_to_sell\n      - stock_levels\n      properties:\n        total_available_to_sell:\n          type: integer\n          nullable: true\n          example: 24\n        stock_levels:\n          type: array\n          items:\n            \"$ref\": \"#/components/schemas/ProductStockLevel\"\n    ProductVariant:\n      description: product variant details\n      type: object\n      required:\n      - id\n      - variant_options\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        variant_options:\n          type: object\n          example:\n            Color: Red\n            Size: Small\n    RichText:\n      description: text that may contain html\n      type: string\n      example: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit\"\n    Store:\n      description: Store details\n      type: object\n      required:\n      - currency\n      - locale\n      - logo\n      - name\n      - timezone\n      properties:\n        currency:\n          \"$ref\": \"#/components/schemas/Currency\"\n        locale:\n          type: string\n          example: en-AU\n        logo:\n          \"$ref\": \"#/components/schemas/Image\"\n        name:\n          type: string\n          example: My Store\n        timezone:\n          type: string\n          example: Australia/Sydney\n    Tag:\n      description: an object that defines a tag\n      type: object\n      required:\n      - id\n      - type\n      - value\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        type:\n          type: string\n          description: define what type of tag this is - can be used to target different\n            tags in different contexts\n          example: sale\n        value:\n          type: string\n          description: the text to display for this tag\n          example: Sale\n    Tax:\n      description: an object that defines a tax rate\n      type: object\n      required:\n      - id\n      - name\n      - rate\n      - effective_from\n      - effective_to\n      - zone\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        name:\n          type: string\n          description: the name of the tax rate\n          example: GST\n        rate:\n          type: number\n          format: decimal\n          description: the tax rate as a percentage\n          example: 11.3\n        effective_from:\n          type: string\n          format: iso-8601\n          description: the date at which this rate became effective\n          example: '2020-03-01'\n        effective_to:\n          type: string\n          nullable: true\n          format: iso-8601\n          description: the date at which this rate is no-longer effective\n          example: '2022-07-01'\n        zone:\n          \"$ref\": \"#/components/schemas/Zone\"\n    Url:\n      description: A fully qualified URL\n      type: string\n      example: https://example.com\n    Zone:\n      description: a Zone is made up a multiple Countries/States/Postcodes\n      type: object\n      required:\n      - id\n      - name\n      - includes\n      properties:\n        id:\n          type: string\n          example: 123456789-ABCDEFG\n        name:\n          type: string\n          description: a human-readable name for the Zone\n          example: Asia-Pacific\n        includes:\n          description: a list of codes that are included in the Zone\n          type: array\n          items:\n            required:\n            - name\n            - country\n            properties:\n              name:\n                type: string\n                description: a human-readable name for the codes in the Zone\n                example: MELBOURNE, VICTORIA, AUSTRALIA\n              postcode:\n                type: string\n                description: a postal/zip code that is in the Zone\n                example: '3000'\n              state:\n                type: string\n                description: an ISO 3166-2 code for a State/Province that is in the\n                  Zone, without the country code prefix\n                example: VIC\n              country:\n                type: string\n                description: an ISO 3166-1 code for a Country that is in the Zone,\n                  in alpha-3 format\n                example: AUS\n            example:\n            - name: MELBOURNE, VICTORIA, AUSTRALIA\n              postcode: '3000'\n              state: VIC\n              country: AUS\n            - name: NEW ZEALAND\n              country: NZL\n  securitySchemes:\n    bearer_auth:\n      type: http\n      scheme: bearer\nservers:\n- url: https://api.{domain}/{version}\n  variables:\n    domain:\n      default: example.com\n    version:\n      default: v1\nsecurity:\n- bearer_auth: []\n```"}