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

# Get an order

> One order with everything its page shows: its lines and what each delivered, its payments, the buyer, its timeline, where it came from, `refund`, which says which ways it can be refunded, and `requests`: what Shoply sent your servers about it, each try of each webhook about the order and each line's dynamic delivery, newest first, with the first 300 characters of what came back. `customPayment` is for an order paid with one of your custom payment methods, and null for any other: the method's name, `status` (`open`, `review` while it waits for you to approve or reject it, `paid` or `rejected`), the amount, and `proof`, what the buyer sent when they said they paid (the reference, whether a proof of payment was sent, and when).

Needs the `orders.read` permission (Read Orders).



## OpenAPI

````yaml /api-reference/openapi.json get /stores/{storeId}/orders/{orderId}
openapi: 3.1.0
info:
  title: Shoply API
  version: '1'
  description: >-
    Everything a store's own server can do with a secret API key: its catalogue,
    orders, customers, marketing, finance and the rest of what the dashboard
    does. And the Customer API, which a buyer's own device asks with a token of
    theirs.
servers:
  - url: https://api.shoply.gg/v1
security:
  - apiKey: []
tags:
  - name: API key
  - name: Store
  - name: Domain
  - name: Payment methods
  - name: Analytics
  - name: Storefronts
  - name: Storefront code
  - name: Payment Routing
  - name: Custom payment methods
  - name: Products
  - name: Product pictures
  - name: Stock
  - name: Categories
  - name: Upsells
  - name: Subscriptions
  - name: Orders
  - name: Invoices
  - name: Reviews
  - name: Coupons
  - name: Coupon categories
  - name: Coupon pop-up
  - name: Sales
  - name: Blog
  - name: Search settings
  - name: Redirects
  - name: Sitemap
  - name: Cart Recovery
  - name: Email Marketing
  - name: Email Templates
  - name: Customers
  - name: Affiliates
  - name: Support Tickets
  - name: Blacklist
  - name: Fraud protection
  - name: Disputes
  - name: Finance
  - name: Tax
  - name: Expenses
  - name: Expense setup
  - name: API requests
  - name: Webhook endpoints
  - name: Webhook deliveries
  - name: Customer API
paths:
  /stores/{storeId}/orders/{orderId}:
    get:
      tags:
        - Orders
      summary: Get an order
      description: >-
        One order with everything its page shows: its lines and what each
        delivered, its payments, the buyer, its timeline, where it came from,
        `refund`, which says which ways it can be refunded, and `requests`: what
        Shoply sent your servers about it, each try of each webhook about the
        order and each line's dynamic delivery, newest first, with the first 300
        characters of what came back. `customPayment` is for an order paid with
        one of your custom payment methods, and null for any other: the method's
        name, `status` (`open`, `review` while it waits for you to approve or
        reject it, `paid` or `rejected`), the amount, and `proof`, what the
        buyer sent when they said they paid (the reference, whether a proof of
        payment was sent, and when).


        Needs the `orders.read` permission (Read Orders).
      operationId: orders.show
      parameters:
        - name: storeId
          in: path
          required: true
          description: >-
            The store's ID. A key reaches the store it was made in: `GET /key`
            answers which.
          schema:
            type: string
        - name: orderId
          in: path
          required: true
          description: The order. The ID in a checkout's address is the order's ID.
          schema:
            type: string
      responses:
        '200':
          description: It worked.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    nullable: true
                  code:
                    nullable: true
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      dateCreated:
                        type: string
                      email:
                        type: string
                      customerId:
                        type: string
                      productId:
                        type: string
                      productName:
                        type: string
                      variantId:
                        type: string
                      variantName:
                        type: string
                      itemCount:
                        type: integer
                      subtotal:
                        type: number
                      discount:
                        type: integer
                      fee:
                        type: integer
                      balanceUsed:
                        type: integer
                      tax:
                        nullable: true
                      amount:
                        type: number
                      currencyCode:
                        type: string
                      charged:
                        nullable: true
                      status:
                        type: string
                      gateway:
                        type: string
                      couponCode:
                        nullable: true
                      returning:
                        type: boolean
                      country:
                        nullable: true
                      billing:
                        type: object
                        properties:
                          name:
                            type: string
                          line1:
                            type: string
                          line2:
                            type: string
                          city:
                            type: string
                          state:
                            type: string
                          postalCode:
                            type: string
                          country:
                            type: string
                      ip:
                        nullable: true
                      userAgent:
                        nullable: true
                      source:
                        type: string
                      subscriptionId:
                        nullable: true
                      transactionId:
                        type: string
                      paidAt:
                        type: string
                      note:
                        type: string
                      customFields:
                        type:
                          - array
                          - object
                      emailState:
                        type: string
                      emailError:
                        type: string
                      emailAttempts:
                        type: integer
                      emailSentAt:
                        type: string
                      notifyState:
                        type: string
                      notifyError:
                        type: string
                      notifyAttempts:
                        type: integer
                      notifySentAt:
                        nullable: true
                      summary:
                        type: string
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            productId:
                              type: string
                            productName:
                              type: string
                            variantId:
                              type: string
                            variantName:
                              type: string
                            amount:
                              type: number
                            unitPrice:
                              type: number
                            quantity:
                              type: integer
                            lineTotal:
                              type: number
                            upsellId:
                              nullable: true
                            addonOf:
                              nullable: true
                            deliveredKeys:
                              type: array
                              items:
                                type: string
                            redeliveryCount:
                              type: integer
                            lastRedeliveredAt:
                              nullable: true
                            deliveryInstructions:
                              type: string
                            dynamicState:
                              type: string
                            dynamicMessage:
                              type: string
                            dynamicItems:
                              type:
                                - array
                                - object
                            previousDynamicItems:
                              type:
                                - array
                                - object
                            dynamicDeliveredAt:
                              nullable: true
                            dynamicError:
                              type: string
                            dynamicAttempts:
                              type: integer
                            redeliverable:
                              type: boolean
                            stockAvailable:
                              type: integer
                            previousKeys:
                              type:
                                - array
                                - object
                      refund:
                        type: object
                        properties:
                          amount:
                            type: number
                          currency:
                            type: string
                          fromBalance:
                            type: integer
                          paid:
                            type: number
                          source:
                            type: object
                            properties:
                              available:
                                type: boolean
                              why:
                                type: string
                              provider:
                                type: string
                              name:
                                type: string
                          balance:
                            type: object
                            properties:
                              available:
                                type: boolean
                              why:
                                type: string
                          record:
                            type: object
                            properties:
                              available:
                                type: boolean
                              why:
                                type: string
                      productSlug:
                        type: string
                      imageUrl:
                        nullable: true
                      customer:
                        type: object
                        properties:
                          id:
                            type: string
                          emailAddress:
                            type: string
                          dateCreated:
                            type: string
                      visit:
                        nullable: true
                      affiliate:
                        nullable: true
                      timeline:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            kind:
                              type: string
                            detail:
                              type: string
                            actor:
                              type: string
                            at:
                              type: string
                      testPayment:
                        type: boolean
                      payments:
                        type:
                          - array
                          - object
                      invoice:
                        nullable: true
                      disputes:
                        type:
                          - array
                          - object
                      review:
                        nullable: true
                      requests:
                        type:
                          - array
                          - object
                      customPayment:
                        nullable: true
                      customerTotals:
                        type: object
                        properties:
                          totalOrders:
                            type: integer
                          totalSpend:
                            type: number
                          paidOrders:
                            type: integer
                      customerOrders:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            productName:
                              type: string
                            variantName:
                              type: string
                            itemCount:
                              type: integer
                            amount:
                              type: number
                            status:
                              type: string
                            dateCreated:
                              type: string
              example:
                success: true
                message: null
                code: null
                data:
                  id: eab50b8e-fca6-4712-9b55-2f910b4bddf0
                  dateCreated: '2026-10-22T16:20:19Z'
                  email: ada@example.com
                  customerId: f637fc21-973d-43ec-a7db-f819a9ebf73a
                  productId: f463e265-097a-4235-bc2f-5239b19a9874
                  productName: Northwind Pro
                  variantId: 00e1d395-9ba2-4db3-900a-cb5e2811a2a9
                  variantName: 1 month
                  itemCount: 1
                  subtotal: 9.99
                  discount: 0
                  fee: 0
                  balanceUsed: 0
                  tax: null
                  amount: 9.99
                  currencyCode: USD
                  charged: null
                  status: completed
                  gateway: manual
                  couponCode: null
                  returning: false
                  country: null
                  billing:
                    name: ''
                    line1: ''
                    line2: ''
                    city: ''
                    state: ''
                    postalCode: ''
                    country: ''
                  ip: null
                  userAgent: null
                  source: storefront
                  subscriptionId: null
                  transactionId: bank-transfer-1042
                  paidAt: '2026-10-22T16:20:19Z'
                  note: ''
                  customFields: []
                  emailState: sent
                  emailError: ''
                  emailAttempts: 1
                  emailSentAt: '2026-10-22T16:20:19Z'
                  notifyState: ''
                  notifyError: ''
                  notifyAttempts: 0
                  notifySentAt: null
                  summary: Northwind Pro (1 month)
                  items:
                    - id: '272733'
                      productId: f463e265-097a-4235-bc2f-5239b19a9874
                      productName: Northwind Pro
                      variantId: 00e1d395-9ba2-4db3-900a-cb5e2811a2a9
                      variantName: 1 month
                      amount: 9.99
                      unitPrice: 9.99
                      quantity: 1
                      lineTotal: 9.99
                      upsellId: null
                      addonOf: null
                      deliveredKeys:
                        - NWPRO-7F3K-22LM-9QXA
                      redeliveryCount: 0
                      lastRedeliveredAt: null
                      deliveryInstructions: ''
                      dynamicState: ''
                      dynamicMessage: ''
                      dynamicItems: []
                      previousDynamicItems: []
                      dynamicDeliveredAt: null
                      dynamicError: ''
                      dynamicAttempts: 0
                      redeliverable: true
                      stockAvailable: 1
                      previousKeys: []
                  refund:
                    amount: 9.99
                    currency: USD
                    fromBalance: 0
                    paid: 9.99
                    source:
                      available: false
                      why: >-
                        This order was marked as paid by hand, with no payment
                        through a provider, so there is nothing to send back.
                      provider: ''
                      name: ''
                    balance:
                      available: true
                      why: ''
                    record:
                      available: true
                      why: ''
                  productSlug: northwind-pro
                  imageUrl: null
                  customer:
                    id: f637fc21-973d-43ec-a7db-f819a9ebf73a
                    emailAddress: ada@example.com
                    dateCreated: '2026-10-22T16:20:18Z'
                  visit: null
                  affiliate: null
                  timeline:
                    - id: '227821'
                      kind: paid
                      detail: >-
                        Marked paid by the seller, transaction
                        bank-transfer-1042.
                      actor: merchant
                      at: '2026-10-22T16:20:19Z'
                    - id: '227822'
                      kind: delivered
                      detail: 1 item delivered.
                      actor: system
                      at: '2026-10-22T16:20:19Z'
                  testPayment: false
                  payments: []
                  invoice: null
                  disputes: []
                  review: null
                  requests: []
                  customPayment: null
                  customerTotals:
                    totalOrders: 1
                    totalSpend: 9.99
                    paidOrders: 1
                  customerOrders:
                    - id: eab50b8e-fca6-4712-9b55-2f910b4bddf0
                      productName: Northwind Pro
                      variantName: 1 month
                      itemCount: 1
                      amount: 9.99
                      status: completed
                      dateCreated: '2026-10-22T16:20:19Z'
        '401':
          $ref: '#/components/responses/NoKey'
        '403':
          $ref: '#/components/responses/NotAllowed'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooMany'
      x-codeSamples:
        - lang: javascript
          label: Node.js
          source: |
            import Shoply from "@shoplygg/node";

            const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });

            const result = await shoply.orders.show("ORDER_ID");
        - lang: php
          label: PHP
          source: |
            <?php

            require 'vendor/autoload.php';

            $shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);

            $result = $shoply->orders->show('ORDER_ID');
        - lang: python
          label: Python
          source: |
            import shoply

            client = shoply.Client()  # reads SHOPLY_API_KEY

            result = client.orders.show("ORDER_ID")
components:
  responses:
    NoKey:
      description: >-
        No API key was sent, or the one sent is not a live key:
        `api_key_required`, `invalid_api_key`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
    NotAllowed:
      description: >-
        The key is real and may not do this: `missing_scope` (with
        `requiredScope`), `ip_not_allowed`, `account_unavailable`, or
        `dashboard_only` for something only a person in the dashboard may do.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
    NotFound:
      description: >-
        There is no such thing in this store: `not_found`. A store that is not
        the key's own is answered the same way.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
    TooMany:
      description: >-
        The key has used up its budget for now: `rate_limited`. `Retry-After`
        says how many seconds to wait.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
  schemas:
    Refusal:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          description: What is wrong, in words for a person.
        code:
          type: string
          description: What is wrong, as a word that does not change.
        data:
          nullable: true
        errors:
          type: object
          description: >-
            For `validation_failed`: what is wrong with each field, by the
            field's name.
          additionalProperties:
            type: string
      required:
        - success
        - message
        - code
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        A secret API key, made under Developers in the dashboard:
        `Authorization: Bearer shoply_sk_...`

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.