SellOrchard

API reference

Purchase orders

Dropshipping / print-on-demand purchase orders (read only).
On this page

List purchase orders

get/purchase-orders

Required scopes:read_orders

Query parameters

NameTypeDescription
limitintegerPage size, 1–250 (default 50).

default 50 · min 1 · max 250

cursorstringnext_cursor from the previous page.
updated_sincestring<date-time>Only objects changed at or after this ISO-8601 time.
created_sincestring<date-time>Only objects created at or after this ISO-8601 time.
statusstringStatus.

One of:draftsentacceptedshippedcancelledfailed

order_idintegerFor this order.
supplier_idintegerTo this supplier.

Example request

curl
curl "https://api.sellorchard.com/v1/purchase-orders?limit=50" \
  -H "Authorization: Bearer $SELLORCHARD_API_KEY"

Response200Purchase orders.

Show response schema
  • dataarray of PurchaseOrderrequired
    Show item attributes
    • objectstringrequired
    • idintegerrequired

      Id.

    • numberstringrequired

      PO number.

    • statusstringrequired

      Status.

      One of:draftsentacceptedshippedcancelledfailed

    • supplier_idinteger | nullrequired

      Supplier (dropshipping).

    • providerstring | nullrequired

      Print-on-demand provider.

      One of:printfulprintify

    • order_idinteger | nullrequired

      Order.

    • line_itemsarray of objectrequired
      Show item attributes
      • order_item_idinteger | null

        Order line.

      • variant_idinteger | null

        Variant.

      • namestring | null

        Name.

      • skustring | null

        SKU.

      • supplier_skustring | null

        Supplier SKU.

      • quantityinteger

        Units.

      • unit_coststring | null

        Unit cost.

        pattern ^-?\d+\.\d{2}$

    • ship_toobject | nullrequired

      Name, company, line1, line2, city, region, postcode, country, phone and email.

      Show child attributes
      • __PHP_Incomplete_Class_Nameany
    • currencystring | nullrequired

      Cost currency.

    • cost_totalstring | nullrequired

      Total cost.

      pattern ^-?\d+\.\d{2}$

    • trackingarray of objectrequired

      Shipments reported (carrier, number, url).

      Show item attributes
      • __PHP_Incomplete_Class_Nameany
    • test_modebooleanrequired

      Recorded but never sent (free trial).

    • sent_atstring<date-time> | nullrequired

      Sent.

    • shipped_atstring<date-time> | nullrequired

      Shipped.

    • cancelled_atstring<date-time> | nullrequired

      Cancelled.

    • created_atstring<date-time>required

      Created.

    • updated_atstring<date-time>required

      Last changed.

  • has_morebooleanrequired

    More pages after this one.

  • next_cursorstring | nullrequired

    Pass as cursor for the next page; null on the last page.

200 response
{
  "data": [
    {
      "object": "purchase_order",
      "id": 9,
      "number": "PO-1009",
      "status": "sent",
      "supplier_id": 2,
      "provider": null,
      "order_id": 5521,
      "line_items": [
        {
          "order_item_id": 9001,
          "variant_id": 311,
          "name": "Organic cotton tee",
          "sku": "TEE-BL-L",
          "supplier_sku": "AC-TEE-77",
          "quantity": 2,
          "unit_cost": "9.50"
        }
      ],
      "ship_to": {
        "name": "Ann Lee",
        "company": null,
        "line1": "1 Main St",
        "line2": "Apt 2",
        "city": "Austin",
        "region": "TX",
        "postcode": "73301",
        "country": "US",
        "phone": "+15125550199",
        "email": "ann@example.com"
      },
      "currency": "USD",
      "cost_total": "19.00",
      "tracking": [],
      "test_mode": false,
      "sent_at": "2026-11-02T15:00:00Z",
      "shipped_at": null,
      "cancelled_at": null,
      "created_at": "2026-11-02T15:00:00Z",
      "updated_at": "2026-11-02T15:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Error responses

  • 400invalid_requestMalformed request (e.g. a bad cursor).
  • 401authenticationMissing, invalid, expired or revoked API key.
  • 403permissionThe key lacks the scope, or the store's plan doesn't include the API.
  • 422invalid_requestInvalid parameters; errors lists each field.
  • 429rate_limitedToo many requests.
  • 500serverSomething went wrong on our side; safe to retry with the same Idempotency-Key.

Get a purchase order

get/purchase-orders/{id}

Required scopes:read_orders

Path parameters

NameTypeDescription
idrequiredintegerThe object id.

Example request

curl
curl "https://api.sellorchard.com/v1/purchase-orders/120" \
  -H "Authorization: Bearer $SELLORCHARD_API_KEY"

Response200A purchase order.

Show response schema
  • dataPurchaseOrderrequired
    Show child attributes
    • objectstringrequired
    • idintegerrequired

      Id.

    • numberstringrequired

      PO number.

    • statusstringrequired

      Status.

      One of:draftsentacceptedshippedcancelledfailed

    • supplier_idinteger | nullrequired

      Supplier (dropshipping).

    • providerstring | nullrequired

      Print-on-demand provider.

      One of:printfulprintify

    • order_idinteger | nullrequired

      Order.

    • line_itemsarray of objectrequired
      Show item attributes
      • order_item_idinteger | null

        Order line.

      • variant_idinteger | null

        Variant.

      • namestring | null

        Name.

      • skustring | null

        SKU.

      • supplier_skustring | null

        Supplier SKU.

      • quantityinteger

        Units.

      • unit_coststring | null

        Unit cost.

        pattern ^-?\d+\.\d{2}$

    • ship_toobject | nullrequired

      Name, company, line1, line2, city, region, postcode, country, phone and email.

      Show child attributes
      • __PHP_Incomplete_Class_Nameany
    • currencystring | nullrequired

      Cost currency.

    • cost_totalstring | nullrequired

      Total cost.

      pattern ^-?\d+\.\d{2}$

    • trackingarray of objectrequired

      Shipments reported (carrier, number, url).

      Show item attributes
      • __PHP_Incomplete_Class_Nameany
    • test_modebooleanrequired

      Recorded but never sent (free trial).

    • sent_atstring<date-time> | nullrequired

      Sent.

    • shipped_atstring<date-time> | nullrequired

      Shipped.

    • cancelled_atstring<date-time> | nullrequired

      Cancelled.

    • created_atstring<date-time>required

      Created.

    • updated_atstring<date-time>required

      Last changed.

200 response
{
  "data": {
    "object": "purchase_order",
    "id": 9,
    "number": "PO-1009",
    "status": "sent",
    "supplier_id": 2,
    "provider": null,
    "order_id": 5521,
    "line_items": [
      {
        "order_item_id": 9001,
        "variant_id": 311,
        "name": "Organic cotton tee",
        "sku": "TEE-BL-L",
        "supplier_sku": "AC-TEE-77",
        "quantity": 2,
        "unit_cost": "9.50"
      }
    ],
    "ship_to": {
      "name": "Ann Lee",
      "company": null,
      "line1": "1 Main St",
      "line2": "Apt 2",
      "city": "Austin",
      "region": "TX",
      "postcode": "73301",
      "country": "US",
      "phone": "+15125550199",
      "email": "ann@example.com"
    },
    "currency": "USD",
    "cost_total": "19.00",
    "tracking": [],
    "test_mode": false,
    "sent_at": "2026-11-02T15:00:00Z",
    "shipped_at": null,
    "cancelled_at": null,
    "created_at": "2026-11-02T15:00:00Z",
    "updated_at": "2026-11-02T15:00:00Z"
  }
}

Error responses

  • 401authenticationMissing, invalid, expired or revoked API key.
  • 403permissionThe key lacks the scope, or the store's plan doesn't include the API.
  • 404not_foundNo such object in this store.
  • 429rate_limitedToo many requests.
  • 500serverSomething went wrong on our side; safe to retry with the same Idempotency-Key.