Skip to content
Log in

StoreConnect API

On this page

StoreConnect API allows external applications to interact with an online store. In short, it provides a set of endpoints to:

  • Submit Orders:
  • 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.
  • Submit Payments:
  • 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.
  • Retrieve Products:
  • The /products endpoint retrieves a paginated list of master products with basic information, while /products/{id} fetches extended details for a specific product.
  • Get Store Details:
  • The /store endpoint provides information about the store itself, including currency, locale, logo, name, and timezone.

Additionally, 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.

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

Open https://editor-next.swagger.io/ and paste the following API Specs to access the documentation.

```liquid

openapi: 3.0.1 info: title: StoreConnect API version: v1 paths: “/orders”: post: summary: Submits a new order parameters: [] responses: ‘201’: description: Created content: application/json: schema: “$ref”: “#/components/schemas/Order” ‘401’: description: Unauthorized ‘422’: description: Unprocessable Entity content: application/json: schema: “$ref”: “#/components/schemas/Error” requestBody: content: application/json: schema: “$ref”: “#/components/schemas/CreateOrderPayload” “/payments”: post: summary: Submits a new payment parameters: [] responses: ‘201’: description: Created content: application/json: schema: “$ref”: “#/components/schemas/Payment” ‘401’: description: Unauthorized ‘422’: description: Unprocessable Entity content: application/json: schema: “$ref”: “#/components/schemas/Error” requestBody: content: application/json: schema: “$ref”: “#/components/schemas/CreatePaymentPayload” “/products”: get: summary: Returns a list of master products parameters: - name: page in: query required: false schema: type: integer - name: per_page in: query required: false schema: type: integer responses: ‘200’: description: Ok headers: X-Pagination-Per-Page: schema: type: integer example: 5 default: 25 X-Pagination-Current-Page: schema: type: integer example: 3 X-Pagination-Total-Records: schema: type: integer example: 100 content: application/json: schema: type: array items: “$ref”: “#/components/schemas/ProductBasic” ‘401’: description: Unauthorized “/products/{id}”: get: summary: Returns extended details of a single product parameters: - name: id in: path required: true schema: type: string responses: ‘200’: description: Ok content: application/json: schema: “$ref”: “#/components/schemas/ProductExtended” ‘404’: description: Not Found ‘401’: description: Unauthorized “/store”: get: summary: Returns details for the store responses: ‘200’: description: Ok content: application/json: schema: “$ref”: “#/components/schemas/Store” ‘401’: description: Unauthorized components: schemas: Address: type: object properties: street: type: string example: 123 Main St city: type: string example: Sydney state: type: string example: NSW format: ISO 3166-2 country: type: string example: AU format: ISO 3166-1 alpha-2 postal_code: type: string example: 2000 Category: type: object required: - id - name properties: id: type: string example: 123456789-ABCDEFG name: type: string example: Clothing CollectionPoint: description: A collection point defines a physical location that an order can be picked up from type: object required: - id - name - geo - lead_time_duration - lead_time_units - description - phone properties: id: type: string example: 123456789-ABCDEFG name: type: string example: Members Pavilion geo: “$ref”: “#/components/schemas/LatLong” lead_time_duration: type: integer nullable: true example: 20 lead_time_units: type: string nullable: true enum: - days - hours - minutes example: minutes description: type: string nullable: true example: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. phone: type: string nullable: true example: “(555) 123 456” CreateOrderPayload: type: object required: - customer - items - billing_address - shipping_address properties: customer: “$ref”: “#/components/schemas/Customer” billing_address: “$ref”: “#/components/schemas/Address” shipping_address: “$ref”: “#/components/schemas/Address” items: type: array items: “$ref”: “#/components/schemas/OrderItemPayload” collection_point_id: type: string example: 123456789-ABCDEFG finalise_order: type: boolean example: false CreatePaymentPayload: type: object required: - order_id - amount - reference properties: order_id: type: string example: 123456789-ABCDEFG amount: type: number format: decimal example: 99.0 reference: type: string example: 123456789-ABCDEFG source: type: string example: Your App Name Currency: description: An object defining elements related to a Currency type: object required: - code - symbol properties: code: type: string example: AUD symbol: type: string example: “$” Customer: description: The contact details for a Customer type: object required: - first_name - last_name - email properties: first_name: type: string example: Roger last_name: type: string example: Ramjet email: “$ref”: “#/components/schemas/Email” phone: type: string example: “(555) 123 456” Email: description: A valid email address type: string example: person@example.com Error: description: An API Error type: object required: - error properties: error: type: object required: - type - details properties: type: type: string enum: - invalid - missing - not_found - request details: type: object example: param: quantity in: - root - items - 1 Image: description: image data including various urls for different sizes type: object required: - id - sizes properties: id: type: string example: 123456789-ABCDEFG sizes: type: object properties: original: “$ref”: “#/components/schemas/Url” 16x16: “$ref”: “#/components/schemas/Url” 32x32: “$ref”: “#/components/schemas/Url” 50x50: “$ref”: “#/components/schemas/Url” 100x100: “$ref”: “#/components/schemas/Url” 240x240: “$ref”: “#/components/schemas/Url” 480x480: “$ref”: “#/components/schemas/Url” 640x640: “$ref”: “#/components/schemas/Url” 1024x1024: “$ref”: “#/components/schemas/Url” 2048x2048: “$ref”: “#/components/schemas/Url” LatLong: description: Provides a pair of latitude and longitude coordinates required: - latitude - longitude type: object properties: latitude: type: number nullable: true format: float example: -33.891034 longitude: type: number nullable: true format: float example: 151.224045 OrderItemPayload: type: object required: - product_id - quantity properties: product_id: type: string example: 123456789-ABCDEFG quantity: type: integer example: 3 OrderItem: type: object required: - id - name - quantity - price - total - tax properties: id: type: string example: 123456789-ABCDEFG name: type: string example: My Product quantity: type: number format: decimal example: 3 price: type: number format: decimal total: type: number format: decimal tax: type: number format: decimal Order: type: object required: - id - reference - status - total_amount - total_tax - total_paid - total_payable - customer - items properties: id: type: string example: 123456789-ABCDEFG reference: type: string example: 169af09d8226 status: type: string example: Ready for pickup total_amount: type: number format: decimal total_tax: type: number format: decimal total_paid: type: number format: decimal total_payable: type: number format: decimal customer: “$ref”: “#/components/schemas/Customer” items: type: array items: “$ref”: “#/components/schemas/OrderItem” collection_point_id: type: string example: 123456789-ABCDEFG Payment: description: Payment details type: object required: - id - amount - order_id - paid_at - reference properties: id: type: string example: 123456789-ABCDEFG order_id: type: string example: 123456789-ABCDEFG amount: type: number format: decimal example: 99.0 reference: type: string example: 123456789-ABCDEFG paid_at: type: string format: iso-8601 example: ‘2025-02-24T05:37:33Z’ ProductBasic: description: basic information about a product allOf: - “$ref”: “#/components/schemas/ProductCommon” type: object required: - variants properties: variants: type: array items: “$ref”: “#/components/schemas/ProductVariant” ProductCommon: description: common product details type: object required: - id - code - images - name - pricing - stock - summary - tags - taxes properties: id: type: string example: 123456789-ABCDEFG code: type: string example: 1234ABCD images: type: array items: “$ref”: “#/components/schemas/Image” name: type: string example: My Product pricing: “$ref”: “#/components/schemas/ProductPricing” stock: “$ref”: “#/components/schemas/ProductStock” summary: “$ref”: “#/components/schemas/RichText” tags: type: array items: “$ref”: “#/components/schemas/Tag” taxes: type: array items: “$ref”: “#/components/schemas/Tax” ProductExtended: description: extended product details allOf: - “$ref”: “#/components/schemas/ProductCommon” type: object required: - master_id - content - variants properties: master_id: type: string example: 123456789-ABCDEFG nullable: true content: type: object example: Features: Lorem ipsum… Warranty: Lorem ipsum… variants: type: array items: “$ref”: “#/components/schemas/ProductVariant” ProductPricing: description: pricing information for a product type: object required: - original - current - tax_inclusive properties: original: type: number format: decimal description: the original price for a product example: 12.95 current: type: number format: decimal description: the current price for a product example: 9.95 tax_inclusive: type: boolean description: Indicates whether the tax is already included in this price example: true ProductStockLevel: description: Details of stock levels for a product type: object required: - id - available_to_sell - collection_points - online_fulfillment_options properties: id: type: string example: 123456789-ABCDEFG available_to_sell: type: integer nullable: true example: 24 collection_points: type: array items: “$ref”: “#/components/schemas/CollectionPoint” online_fulfillment_options: type: string enum: - no_online_fulfillment - shipping_only - click_and_collect_only - shipping_with_click_and_collect ProductStock: description: Stock information for a product type: object required: - total_available_to_sell - stock_levels properties: total_available_to_sell: type: integer nullable: true example: 24 stock_levels: type: array items: “$ref”: “#/components/schemas/ProductStockLevel” ProductVariant: description: product variant details type: object required: - id - variant_options properties: id: type: string example: 123456789-ABCDEFG variant_options: type: object example: Color: Red Size: Small RichText: description: text that may contain html type: string example: “Lorem ipsum dolor sit amet, consectetur adipiscing elit” Store: description: Store details type: object required: - currency - locale - logo - name - timezone properties: currency: “$ref”: “#/components/schemas/Currency” locale: type: string example: en-AU logo: “$ref”: “#/components/schemas/Image” name: type: string example: My Store timezone: type: string example: Australia/Sydney Tag: description: an object that defines a tag type: object required: - id - type - value properties: id: type: string example: 123456789-ABCDEFG type: type: string description: define what type of tag this is - can be used to target different tags in different contexts example: sale value: type: string description: the text to display for this tag example: Sale Tax: description: an object that defines a tax rate type: object required: - id - name - rate - effective_from - effective_to - zone properties: id: type: string example: 123456789-ABCDEFG name: type: string description: the name of the tax rate example: GST rate: type: number format: decimal description: the tax rate as a percentage example: 11.3 effective_from: type: string format: iso-8601 description: the date at which this rate became effective example: ‘2020-03-01’ effective_to: type: string nullable: true format: iso-8601 description: the date at which this rate is no-longer effective example: ‘2022-07-01’ zone: “$ref”: “#/components/schemas/Zone” Url: description: A fully qualified URL type: string example: https://example.com Zone: description: a Zone is made up a multiple Countries/States/Postcodes type: object required: - id - name - includes properties: id: type: string example: 123456789-ABCDEFG name: type: string description: a human-readable name for the Zone example: Asia-Pacific includes: description: a list of codes that are included in the Zone type: array items: required: - name - country properties: name: type: string description: a human-readable name for the codes in the Zone example: MELBOURNE, VICTORIA, AUSTRALIA postcode: type: string description: a postal/zip code that is in the Zone example: ‘3000’ state: type: string description: an ISO 3166-2 code for a State/Province that is in the Zone, without the country code prefix example: VIC country: type: string description: an ISO 3166-1 code for a Country that is in the Zone, in alpha-3 format example: AUS example: - name: MELBOURNE, VICTORIA, AUSTRALIA postcode: ‘3000’ state: VIC country: AUS - name: NEW ZEALAND country: NZL securitySchemes: bearer_auth: type: http scheme: bearer servers: - url: https://api.{domain}/{version} variables: domain: default: example.com version: default: v1 security: - bearer_auth: [] ```

Was this article helpful?

Was this article helpful?