DataContractGate

Cloud Free needs no credit card

Sign inSign up
← Catalog
Commerce

Shopify — data contract (compatible with Shopify’s documented schema; not affiliated with Shopify)

Shopify orders CSV export — core columns from the Store admin Orders export. Compatible with Shopify's documented orders CSV; not affiliated with Shopify. Values are CSV strings; money columns are validated as decimal strings.

Validate a client's Shopify export at ingest into your warehouse, or with POST /egress before sending the same shape to a partner, reverse ETL, or an AI agent.

Download YAML

Also available: ODCS v3.1.0 YAML. “Use this contract” forks it into your org, then opens the validation playground so you can upload the client file.

Fields

NameTypeRequiredRuleDescription
Namestringrequiredpattern /^#?[A-Za-z_-]{0,20}[0-9]{1,12}[A-Za-z0-9_-]{0,20}$/Order name as shown in the admin. The default is #1001; stores often add a prefix or suffix, for example SH1001 or 1001-A.
Emailstringoptionalemail format—
Financial Statusstringoptionalone of: pending, authorized, paid, partially_paid, refunded, voided, partially_refunded, expiredAdmin payment status (the values behind displayFinancialStatus). expired is included. unpaid is not a status — Shopify uses it as a filter grouping of authorized, pending, expired, and partially paid orders. The legacy REST financial_status field still omits expired and reports those orders as pending.
Fulfillment Statusstringoptionalone of: fulfilled, unfulfilled, partial, restocked—
Currencystringrequiredpattern /^[A-Z]{3}$/—
Subtotalstringoptionalpattern /^-?[0-9]+(\.[0-9]{1,2})?$/—
Shippingstringoptionalpattern /^-?[0-9]+(\.[0-9]{1,2})?$/—
Taxesstringoptionalpattern /^-?[0-9]+(\.[0-9]{1,2})?$/—
Totalstringrequiredpattern /^-?[0-9]+(\.[0-9]{1,2})?$/Order total in the order currency.
Created atstringoptional——

Sample rows

Three synthetic rows we wrote. They validate against this contract with zero violations. No real customer data.

[
  {
    "Created at": "2026-01-15 09:30:00 -0500",
    "Currency": "USD",
    "Email": "shopper@example.com",
    "Financial Status": "paid",
    "Fulfillment Status": "fulfilled",
    "Name": "#1001",
    "Shipping": "5.00",
    "Subtotal": "42.00",
    "Taxes": "3.36",
    "Total": "50.36"
  },
  {
    "Created at": "2026-01-16 14:05:00 -0500",
    "Currency": "USD",
    "Email": "buyer@example.org",
    "Financial Status": "pending",
    "Fulfillment Status": "unfulfilled",
    "Name": "#1002",
    "Shipping": "0.00",
    "Subtotal": "19.99",
    "Taxes": "1.60",
    "Total": "21.59"
  },
  {
    "Created at": "2026-01-17 11:45:00 -0500",
    "Currency": "CAD",
    "Email": "returns@example.com",
    "Financial Status": "refunded",
    "Fulfillment Status": "restocked",
    "Name": "SH1003",
    "Shipping": "12.50",
    "Subtotal": "120.00",
    "Taxes": "17.16",
    "Total": "149.66"
  }
]

Provenance

Checked
2026-11-06
Version
v1.0
Author
DataContractGate
License
MIT

Spotted a mismatch with the vendor’s current schema? Report an issue.

Stripe, Shopify, QuickBooks, Xero, HubSpot, Salesforce, Google Analytics and Square are trademarks of their respective owners. DataContractGate is not affiliated with or endorsed by them. These contracts describe data shaped like these vendors’ documented schemas; they are not official and are not certified by any vendor.