Release date Date version is no longer supported
July 2, 2020 July 2, 2021
The 2020-07 release contains changes to support AWS EventBridge integration, annual billing through the Shopify Billing API, and better errors in GraphQL. This release also offers more flexible explicit discounts, exposes tips on orders, and extends locale-specific support for collecting additional information at checkout. **What’s new in 2020-07** The following features were added in version 2020-07 of Shopify's APIs. - Apps now support integration with Amazon EventBridge to receive Shopify webhooks using an event bus. As a result, [Webhooks]/api/admin/rest/reference/events/webhook) now support ARN addresses. - Shopify's [Billing API](/docs/apps/launch/billing) now offers annual billing in GraphQL. - Access errors in GraphQL now reference the denied resource, rather than returning a generic `access denied` error. - The CPF/CNPJ can now be collected at checkout for merchants in Brazil. This information is exposed through the API using a new [`localizationExtensions` connection](/docs/apps/build/markets/add-locally-required-order-data). - The total tip amount received on an order is now available via `Order.totalTipReceived`. - The API now offers [additional data on domains](/docs/api/admin-graphql/latest/objects/shop) associated with a given shop using the new `shop.domains` field and webhook events. ## Breaking changes These changes require special attention. If your app uses these API resources, and you don’t adjust your usage of the resources according to the following instructions, then your app might break when you update to this API version. ### Allocation method for discounts We updated the allocation method for discounts that have set the `target_selection` as `explicit`. Previously, Shopify applied these discounts to a single line item, which corresponded to an allocation method of `one`. With this change, the allocation methods will instead include `each` and `across`. We've made this change to simplify the discount syntax, as `one` and `across` functionally both discount the final price by a set amount. ### Product variant resource The deprecated `images` value was removed from object type `ProductVariant`. ## GraphQL Admin API changes Below are all the changes currently introduced in the 2020-07 version of the GraphQL Admin API.

Removed field

ONE value was removed from enum DiscountApplicationAllocationMethod. ACROSS is returned in its place as the meaning is the same for explicit discounts.

The following changes were made to the ProductVariant resource:

Removed field

  • images value was removed from object type ProductVariant

Access errors in GraphQL now reference the denied resource, rather than returning a generic access denied error. Responses now also include extensions, which consist of an error code, link to necessary documentation, and the name of the required access scope.

Learn more about access scopes in our documentation.

The localizationExtensions field was added to the order object. For more information, refer to Manage country fields using localization extensions.

New fields

  • localizationExtensions was added to object type Order
  • totalTipReceived was added to object type Order

New types

  • LocalizationExtension was added
  • LocalizationExtensionPurpose enum was added

A new field was added to the BulkOperation resource.

New fields

  • rootObjectCount was added to object type BulkOperation

A new field was added to the Customer resource.

New fields

  • multipassIdentifier was added to object type Customer

A new field was added to the DraftOrder resource.

New fields

  • ready was added to object type DraftOrder

You can now create annual billing subscriptions for your apps. To learn more, refer to Create an annual subscription.

New fields

  • interval was added to input object type AppRecurringPricingInput

Updated types

  • ANNUAL value was added to enum AppPricingInterval

You can now query a shop's localized domains and subscribe to domain event webhooks.

New fields

  • localization was added to object type Domain
  • domains was added to object type Shop

New types

  • DomainLocalization was added

Updated types

  • DOMAINS_UPDATE value was added to enum WebhookSubscriptionTopic
  • DOMAINS_DESTROY value was added to enum WebhookSubscriptionTopic
  • DOMAINS_CREATE value was added to enum WebhookSubscriptionTopic

New fields

  • localizationExtensions was added to object type Order

New types

  • LocalizationExtensionEdge was added
  • LocalizationExtension was added
  • HasLocalizationExtensions was added
  • LocalizationExtensionPurpose was added
  • LocalizationExtensionConnection was added

The endpoint field of type WebhookSubscriptionEndpoint was added to the webhook subscription object. This replaces the callbackUrl field. New create and update mutations were added to support EventBridge webhook subscriptions.

New fields

  • endpoint was added to object type WebhookSubscription

New types

  • WebhookSubscriptionEndpoint was added
  • WebhookEventBridgeEndpoint was added
  • WebhookHttpEndpoint was added
  • EventBridgeWebhookSubscriptionUpdatePayload was added
  • EventBridgeWebhookSubscriptionInput was added
  • EventBridgeWebhookSubscriptionCreatePayload was added
  • ARN was added

New mutations

  • EventBridgeWebhookSubscriptionCreate was added
  • EventBridgeWebhookSubscriptionUpdate was added
## REST Admin API changes Below are all the changes currently introduced in the 2020-07 version of the REST Admin API.

Removed field

one value was removed from allocation_method in the Order resource. across is returned in its place as the meaning is the same for explicit discounts.

You can now subscribe to domain event webhooks.

New topics

The following changes have been made to the Webhook resource.

The Webhook resource was updated to support EventBridge webhook subscriptions.

Updated properties

  • address property was updated to accept a URI or an EventBridge event source ARN.
## Storefront API changes Below are all the changes introduced in the 2020-07 version of the Storefront API.

A new error code was added to CheckoutErrorCode.

Updated types

  • DISCOUNT_ALREADY_APPLIED was added to enum CheckoutErrorCode

Access errors in GraphQL now reference the denied resource, rather than returning a generic access denied error. Responses now also include extensions, which consist of an error code, link to necessary documentation, and the name of the required access scope.

Learn more about access scopes in our documentation.