--- title: >- Discouraging use of receiptJson on OrderTransaction in the GraphQL Admin API - Shopify developer changelog description: >- Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities. source_url: html: >- https://shopify.dev/changelog/discouraging-use-of-receiptjson-on-ordertransaction-in-the-graphql-admin-api md: >- https://shopify.dev/changelog/discouraging-use-of-receiptjson-on-ordertransaction-in-the-graphql-admin-api.md metadata: effectiveApiVersion: null affectedApi: - displayName: Admin GraphQL API handle: admin-graphql primaryTag: displayName: API handle: api secondaryTag: displayName: Update handle: update indicatesActionRequired: false createdAt: '2025-12-09T15:50:15-05:00' postedAt: '2026-01-29T16:10:00-05:00' updatedAt: '2026-01-29T16:35:26-05:00' effectiveAt: '2025-12-10T12:00:00-05:00' --- January 29, 2026 Tags: * Admin GraphQL API # Discouraging use of `receiptJson` on `OrderTransaction` in the GraphQL Admin API We’re **discouraging** use of [`OrderTransaction.receiptJson`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-OrderTransaction.fields.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 * `OrderTransaction` object: * API versioning and compatibility: