Skip to main content

Discouraging use of receiptJson on OrderTransaction in the GraphQL Admin API

We’re discouraging use of OrderTransaction.receiptJson. You should stop relying on receiptJson in production apps.

receiptJson is gateway-defined, inconsistently shaped, and may change without notice. Because its structure isn’t stable or typed, changes can lead to unexpected app failures.


What’s changing

  • OrderTransaction.receiptJson should be treated as unstable, gateway-specific data.
  • The field remains available, but Shopify does not guarantee a consistent schema or long-term compatibility for its contents.
  • Changes to the shape or keys inside receiptJson may occur without being treated as a breaking API change.

Why this is changing

receiptJson is not a reliable integration surface:

  • Different payment gateways format it differently.
  • The same gateway can change its structure across versions or configurations.
  • Apps that parse it can break unexpectedly, impacting merchants.

We want to reduce production incidents caused by treating receiptJson as a stable contract.

What you need to do

We recommend removing dependencies on receiptJson as soon as possible:

  • Don’t add new dependencies on receiptJson.
  • Migrate existing logic to stable, typed fields on OrderTransaction and related objects wherever possible.
  • If you require provider-specific details that aren’t available as typed fields, fetch them directly from the payment provider (when applicable) and store only the minimal data your system needs.

Documentation

Was this section helpful?