Skip to main content
The Order object is created each time a subscription is billed or fulfilled, capturing the complete details of that transaction. Orders contain information about the products or services being delivered, pricing, discounts applied, shipping details, and payment status.

Search query fields

Reference

id
string
required
Minimum string length: 1
createdAt
string<date-time>
required
placedAt
null | string<date-time>
required
currencyCode
string
required
Required string length: 3
type
enum<string>
required

recurring is a scheduled renewal order, checkout the order that created the subscription, and instant a one-off purchase the customer made outside the schedule (an instant order) — it carries no billing cycle.

Available options:
checkout,
recurring,
instant
paymentStatus
enum<string>
required
deprecated

DEPRECATED: use financialStatus instead. For a postpaid invoice, this carries the invoice's own payment lifecycle (unpaid / overdue / paid), whether or not it already has a Shopify order. For any other tracked order, it's derived from the order's billing attempt (chargeback / refund / paid). Genuine one-time orders we never tracked default to "paid", since this proxy implementation cannot reliably derive a refund/chargeback signal for those. Migrate consumers to financialStatus.

Available options:
paid,
refund,
chargeback,
unpaid,
overdue
financialStatus
null | string
required
paidAt
null | string<date-time>
required

When the order was paid in full, or null if it never was. paidAt != null is therefore safe to read as "this order is paid": an order that is only partially paid, authorized but uncaptured, pending or abandoned reports null, never a partial date. A refunded or partially refunded order keeps its date, because it was paid in full and the money went back afterwards — financialStatus is what tells you that happened.

Shopify's Order exposes no such field, so this is derived: the earliest successful SALE/CAPTURE transaction on the Shopify order, falling back to the order's billing attempt (processedAt, else completedAt) when Shopify records no successful capture — the case for an invoice collected off-Shopify by Stripe/Mollie, and the only source at all for an invoice with no Shopify order yet.

fulfillmentStatus
null | string
required
subtotal
null | number
required
Required range: x >= 0
shipping
null | number
required
Required range: x >= 0
totalPrice
null | number
required
Required range: x >= 0
taxesAmount
null | number
required
Required range: x >= 0
taxesIncluded
null | boolean
required
items
OrderItem · object[]
required
Minimum array length: 1
discounts
OrderDiscount · object[]
required
deliveryMethod
OrderDeliveryMethod · object
required
paymentMethod
null | OrderPaymentMethod · object
required
deprecated

DEPRECATED: the proxy implementation backing GET /customer/v1/orders cannot reliably derive the customer's stored payment method per order, so this field is always null.

note
null | string
required
customAttributes
object[]
required
subscriptionIds
string[]
required

Ids of the Juo subscriptions this order belongs to — the same id space as GET /customer/v1/subscriptions, so these join directly against a subscription resource. Empty for a one-time order. Resolved from the order's own subscription links where we track the order, and otherwise by mapping each line item's Shopify subscription contract back to Subscription.externalId; a contract with no subscription of ours behind it is omitted rather than reported under its Shopify id.

Minimum string length: 1