> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
title: "Changelog"
description: "What's new at Rye?"
sidebarTitle: "2024"
---

<Note>
  **Want to get alerted when we make changes in real-time?** Subscribe to our RSS feed by [following our guide](/rss-updates).
</Note>

<AccordionGroup>
  <Accordion title="December 2024" defaultOpen>
    <Info>
      **Happy holidays from the Rye team!** We've been prioritizing stability and reliability over the holiday season to make sure everyone gets their presents. We have a lot of exciting features coming down the pipe for 2025, and we can't wait to share them with you next year.
    </Info>

    ### Affiliate (experimental)

    * Affiliate commission tracking is now more consistent. We were previously seeing cases where [affiliate commission webhooks](/webhooks/events#affiliate-related-webhooks) would be delayed.

    ### Bug fixes

    * Our API was incorrectly masking some Amazon cart errors as `PRODUCT_NOT_FOUND`. We now send back the correct error code in these cases.
    * Fixed an issue where 0.01% of submitted carts were incorrectly returning an internal server error, despite the operation actually succeeding.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="November 2024">
    <Info>
      In addition to our usual releases this month, we've also been hard at work on API stability ahead of the holiday gifting season.
    </Info>

    ### API Features

    * The [`submitCart`](/api-reference/submitcart) mutation indicates whether cart submission errors can be safely retried.
    * Added `reasonCode` and `retryable` fields to [`OrderFailedOrderEvent`](/api-reference/orderfailedorderevent), to clearly categorize order placement errors and communicate when order placement errors can be safely retried.
      * Check out our [guide on handling errors](/get-started/ordering/handling-errors) for specific guidance.
    * [Webhooks](/webhooks) with payloads containing unicode characters were being incorrectly decoded by some web frameworks. We now send a [charset parameter](https://www.w3.org/International/articles/http-charset/index) as part of the webhook delivery headers to better support these frameworks.

    ### Rye Console

    * Billing data exports now complete significantly faster.
    * Billing data exports now include additional columns breaking down commissions more granularly.

    ### Bug fixes

    * Fixed a bug which prevented carts from being created when they contained a mixture of Sell Anything and Sync products from the same merchant.
    * Fixed a bug where some Amazon products which aren't available for purchase were being incorrectly advertised as in stock by our API.
    * Fixed a bug where [`ShopifyOffer.notAvailableIds`](/api-reference/shopifyoffer) was not being populated correctly for Sync API-enabled merchants.
    * Fixed a bug where carts containing Amazon products would incorrectly fail with an `INTERNAL_SERVER_ERROR` code instead of `SUBMIT_STORE_FAILED` when the cart's buyer identity was invalid.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="October 2024">
    ### API Features

    * Enhanced error messages for input validation errors
    * Added [rate limits](/api-reference/ratelimits) for GraphQL queries and mutations
    * New Billing page in the [Rye Console](https://console.rye.com/billing) for managing your billing information.

    ### Third-party Logistics (3PL)

    Due to order stability issues we have paused support for 3PL shipping options on Shopify stores given the following scenrios:

    * For sync api if products not published to the sales channel
    * Password protected storefront
      If you are placing orders to stores that match these scenrios, either reach out to the store to enable Shopify's default shipping options or refrain from placing orders through Rye as these orders are likely to fail.

    ### Fixes

    * Fixed error updating account information in Rye Console.
    * Enhancements around order reliability and scalability in preparation for the holiday season.
    * Fixed required actions not showing for 3ds cards
    * Fixed affiliate merchants catalog filtering
    * Fixed tracking update issues with Sell Anything orders
    * [`createCart`](/api-reference/checkoutbycartid) no longer returns shipping methods when offers are not available.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="September 2024">
    ### API Features

    * GraphQL queries with a complexity above 1000 will now be rejected. The complexity of a given query can be found in the
      `extensions` response field. The limit is subject to change.
    * Added multiple fields to [`Order`](/api-reference/order), for retrieving price breakdowns and customer data.
      * `cart`: A reference to the [`Cart`](/api-reference/cart) that was used at checkout.
      * `tax`: The tax value applied to the order.
      * `shipping`: The tax value applied to the order.
      * `subtotal`: The value of all items on the order void of shipping and tax.
      * `total`: The total value of the order.
      * `createdAt`: The time the order was created.

    ### Affiliate (experimental)

    * When a merchant leaves an affiliate network, they will now be removed from Rye's affiliate catalog.

    <Info>
      [Affiliate commissions](/affiliate-commissions) for Shopify Sell Anything are currently an experimental feature, but we are gearing up for general availability over the next couple of months.
    </Info>

    ### Docs

    * Updated [Webhooks](/webhooks) documentation and code samples that pertain to responding to webhook challenges.
    * Added note about partially setting the buyer identity in [`BuyerIdentityInput`](/api-reference/buyeridentityinput).
    * Clarified guidance about credit card tokens. We do not recommend retokenizing a payment method for every order, as Spreedly imposes rate limits.

    ### Fixes

    * We've made numerous changes to improve order reliability, particularly for our Sell Anything offering.
    * [`checkoutByCartID`](/api-reference/checkoutbycartid) now returns required actions when using a 3D Secure (3DS) card.

    ### Deprecations

    * Deprecated `cartId` on [`Order`](/api-reference/order). Please use the new `cart` field instead.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="August 2024">
    ### API Features

    * [`requestShopifyProductByURL`](/api-reference/requestshopifyproductbyurl) mutation now returns the selected variant ID from the product URL. If no variant is selected, the first variant ID is returned.
    * Easier bank charge identification: [Statement descriptors](/payments-and-ordering/order-placement#charges) for Rye charges now include parts of the merchant name and Rye order ID so it is easier to link bank charges back to Rye orders.
    * Added [`productsConnection`](/api-reference/shopifyProductsConnection) field to the [`IntegratedShopifyStore`](/api-reference/integratedShopifyStore-object) GraphQL type. This makes it easier to paginate through  Shopify products within a store.
    * For carts with no selected shipping option, we now ensure the smoothest checkout experience by automatically selecting the most affordable shipping option.
    * We now load 3PL shipping options from Shopify for integrated stores that are password protected.
    * We now provide both the query complexity and the allowed limit to give users clearer insights into the complexity of their GraphQL queries.
    * Introduced the `ORDER_REQUIRES_ACTION` [webhook](/webhooks/events#order-requires-action-webhooks) to notify when orders require additional steps, like a 3DS challenge.

    ### Affiliate (experimental)

    * We have disambiguated the "unconfirmed" and "finalized" webhooks. For orders which are fully refunded or canceled will now immediately finish tracking. You'll receive the "finalized" webhook.

    <Info>
      [Affiliate commissions](/affiliate-commissions) for Shopify Sell Anything are currently an experimental feature, but we are gearing up for general availability over the next couple of months.
    </Info>

    ### Docs

    * Documented the scenario where the list of available [shipping option](/get-started/cart-management/attach-shopper-info) can be empty for some Shopify stores.
    * Added the missing [root errors](/api-reference/root-errors) from our GraphQL endpoint.
    * Updated the expected behavior for [orderByID](/api-reference/orderbyid) endpoint for carts that are not yet submitted.
    * Clarified the behavior when [multiple selected shipping options](/api-reference/updatecartselectedshippingoptionsinput) are provided for a cart.
    * Updated the docs for [Affiliate (experimental)](/affiliate-commissions) to include more details of the lifecycle of an affiliate order.
    * Rye's docs now link to Rye's [status page](https://ryestatus.com).

    ### Fixes

    * Fixed the error when sending a completely malformed JSON request, the request was stuck for the 60 seconds and reached the timeout
    * `Order.cartID` field type changed from `String` to `ID!`
    * Fixed the error where the incorrect commission rate was returned in the Rye Console.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="July 2024">
    ### API Features

    * Added an [`ORDER_DELIVERY_DELAYED`](/webhooks/events#tracking-related-webhooks) webhook for Amazon orders. This fires when your order will be delivered later than estimated. You can use this to better inform your shoppers.
    * Added a new error message for when you try to purchase a Shopify product tracked by our system that is no longer available from the merchant.
    * Added a new error message for when a Shopify store no longer exists.

    ### Affiliate (experimental)

    <Info>
      [Affiliate commissions](/affiliate-commissions) for Shopify Sell Anything are currently an experimental feature, but we are gearing up for general availability over the next couple of months.
    </Info>

    * We have added new webhooks for tracking the lifecycle of affiliate commission payouts.
      * [`ExperimentalAffiliateCommissionUpdated`](/api-reference/experimentalAffiliateCommissionUpdated) - Fired after the commission is confirmed, this event communicates changes to the commission value (e.g. because an item in the order was returned by the shopper).
      * [`ExperimentalAffiliateCommissionFinalized`](/api-reference/experimentalAffiliateCommissionFinalized) - The final state for a successful affiliate commission. The commission value on this event is locked in, and will be paid out to you according to our [affiliate payout timeline](/affiliate-commissions#example-timeline).
    * Fixed an issue with order placement which prevented certain stores (such as [Lounge](https://lounge.com)) from tracking affiliate commissions correctly. You'll now get paid correctly when placing orders on these stores.
    * Orders which are fully refunded or canceled will now immediately finish tracking. You'll receive either an "unconfirmed" or "finalized" webhook, depending on whether you had previously received a "confirmed" webhook.

    ### Documentation

    * We've rewrote our guide on [Sync API localization](/localization) to use the [`@inContext`](/api-reference/directives#incontext) GraphQL directive.
    * We did a pass over our docs and fixed many typos!

    ### Rye Console

    * There's a new "Merchants" tab in the Console, which shows all of your connected Sync API merchants alongside the commission rates they are offering you.
    * The Console now verifies your webhook URL is working correctly before saving it. This helps you identify typos or broken endpoints faster. The [getting started](/webhooks#getting-started-with-webhooks) guide explains how you can respond to the endpoint verification challenge.

    ### Bug fixes

    * [`requestShopifyProductByURL`](/api-reference/requestshopifyproductbyurl) was failing to recognize the currency of certain Shopify stores. This has been fixed.
    * Fixed the [`ORDER_FAILED`](/webhooks/events#order-placed-and-failure-related-webhooks) webhook occasionally getting fired prematurely for some Amazon.
    * Fixed 3PL shipping methods not loading correctly for some UK shipping addresses when `provinceCode` was not provided.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="June 2024">
    ### API Features

    * Implemented [`ORDER_DELIVERED`](/webhooks/events#tracking-related-webhooks) webhook for Amazon orders
    * Added trace IDs to GraphQL error messages

    ### Fixes

    * The [cart settings](/api-reference/cartsettingsinput) specified during [`createCart`](/api-reference/createcart) are now correctly used when submitting the cart
    * Implemented multiple fixes to enhance the reliability and accuracy of the order tracking system
    * Fixed a bug where the currency of a Shopify product could be incorrect for up to 12 hours after being requested
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="May 2024">
    ### API Features

    * Redirect shortened Amazon URLs to final product URLs
    * Add [`attributes`](/api-reference/attribute) field to [`Cart`](/api-reference/cart)
    * Expose `expectedDeliveryDate` in [`orderByID`](/api-reference/orderbyid)
    * Add per cart line markup
    * Add attributes to shopify carts
    * Expose shopify cart checkout URL in  [`ShopifyStore`](/api-reference/shopifystore)

    ### Fixes

    * Fixed createCart failure where products are added from a Sync API store that was previously added via Sell Anything API
    * Fixed unavailable products being added to Shopify carts
    * Return more helpful error message when devs pass an API key for a different environment
    * Improved error message when dev uses product ID instead of variant ID for Shopify products
    * Fix tax being added to offers when Amazon is not charging tax for a purchase
    * Handle edge case where 3DS succeeds, but payment then goes on to fail
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="April 2024">
    ### API Features

    * Launched [`productsByIds`](/api-reference/productsbyids) query which allows you to fetch product data given a list of product IDs as input.
    * Added `product` field to `ShopifyCartLine` Object.

    ### Fixes

    * Fixed province validation for Shopify orders
    * Added more descriptive error messages when developers pass invalid product IDs
    * Added order failure reasons when orders are cancelled by Amazon merchants
    * Fixed shipping options when there are multiple products from the same store in the cart

    ### Experimental

    * Launched [`experimentalAffiliateMerchantsConnection`](/api-reference/experimentalAffiliateMerchantsConnection) query to fetch affiliate merchants data.
    * Launched [`experimentalAffiliateCommission`](/api-reference/experimentalAffiliateCommission) query to fetch commission data for orders.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="March 2024">
    ### API Features

    * **Apple Pay can now be used to pay for orders placed using the Sync API!** Using Apple Pay can significantly improve checkout rates compared to a regular credit card form. Check out our new Apple Pay integration guide for instructions.
      * Apple Pay for Sell Anything API is on our roadmap.
      * Google Pay support for both APIs is on our roadmap.
    * Developers now receive [`PRODUCT_UPDATED`](/webhooks/events#product-related-webhooks) webhooks whenever products they have requested tracking for have their data updated. This removes the need to poll our API for changes via cron.
      * This new event currently only works for Sell Anything API products, but we are working on having Sync API products use this new webhook as well to unify behavior.
    * Developers now receive a `SHOPIFY_PRODUCT_DELETED` webhook when products are removed or unpublished from Shopify stores they are integrated with via the Sync API.
    * Rye now sends an [`ORDER_FAILED`](/webhooks/events#order-placed-and-failure-related-webhooks) webhook when [3DS authentication](/3ds-challenge) times out or fails. This removes the need to poll [`checkoutByCartID`](/api-reference/checkoutbycartid) to identify this form of order failure.

    ### Developer Console

    * You can now view your current API usage and limits from the [Requests](https://console.rye.com/requests) tab.
    * Fixed [orders](https://console.rye.com/orders) containing Amazon products incorrectly showing the current product price rather than the purchase price.

    ### Changes

    * Rye API operations will now resolve Shopify store domains to the correct canonical store domain, which improves our data quality and makes tracking Shopify products and stores easier. You can find technical details on this behavior [here](/sync-api/shopify-merchant-onboarding/shopify-store-domains).
    * The [`requestProductByURL`](/api-reference/requestproductbyurl) mutation has been deprecated in favor of marketplace-specific [`requestAmazonProductByURL`](/api-reference/requestamazonproductbyurl) and [`requestShopifyProductByURL`](/api-reference/requestshopifyproductbyurl) mutations.
    * [`requestStoreByURL`](/api-reference/requeststorebyurl) now returns descriptive error codes when things go wrong, which makes debugging easier.
    * The `requestId` field on the [`AmazonStore`](/api-reference/amazonstore) and [`ShopifyStore`](/api-reference/shopifystore) objects has been deprecated in favor of `orderId` for improved clarity.
    * [`ShopifyVariant.weight`](/api-reference/shopifyvariant) field is now typed as `Float` instead of an `Int`, as it is possible for an item's weight to be a decimal value.

    ### Fixes

    * Shopping carts containing only digital products now have their cost calculated correctly
    * Running [`requestStoreByURL`](/api-reference/requeststorebyurl) for a store you have previously requested while at the API usage limit will no longer error.
    * The [`SHOPIFY_APP_CONNECTED`](/webhooks/events#developer-related-webhooks) webhook will now fire when a merchant who has already installed the Rye app [follows your installation link](/sync-api/shopify-merchant-onboarding/shopify-generate-installation-link).
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="February 2024">
    ### Features

    * Added `returnOrder` mutation. For more details, refer to the [documentation](https://docs.rye.com/returns).
    * Added `returnByID` query. Additional information in available in the [API Reference](https://docs.rye.com/api-reference/returnById).
    * Added new webhook types for `RETURN_REQUESTED`, `RETURN_REQUEST_ACCEPTED`, `RETURN_APPROVED`, `RETURN_DENIED`, and `RETURN_CLOSED` events. See [documentation](https://docs.rye.com/webhooks/events#returns-related-webhooks-shopify-sync-api) for more details.
    * Implemented webhook event signing to ensure authenticity and integrity. Refer to [Webhook Updates documentation](https://docs.rye.com/webhooks/events#webhook-verification) for details.
    * Published Postman collection for Rye API. Access it [here](https://www.postman.com/rye-team/workspace/rye/overview).
    * Released Typescript SDK for Rye API. Find it on [npm](https://www.npmjs.com/package/@rye-api/rye-sdk).
    * Enabled affiliate commission feature for selected customers.
    * Implemented a feature to generate Amazon tracking URL for orders shipped using Amazon Logistics.
    * Exposed JWT Issuer ID in the developer console [UI](https://console.rye.com/account).
    * Exposed the `IntegratedShopifyStore.email` field in the GraphQL schema.

    ### Fixes

    * Changed `weight` field type from `Int!` to `Float!` in `ShopifyVariant`.
    * Fixed bug in `requestStoreByURL` where URLs not starting with http(s), such as `example.myshopify.com`, could not be requested.
    * The `ShopifyVariant.priceCents` field is now properly localized.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="January 2024">
    ### Features

    * Enable JWT token expiration is now self serve. See [docs](/jwt-authentication) for more details.
    * Expose marketplace order id and shipment information in `checkoutByCartID` and `orderByID` queries. See [Order](/api-reference/order) type for more details.
    * Expose delivery range for amazon orders in `createCart` query
    * Added `priceCents` field to `ShopifyVariant` Object type.
    * Added a common input validation mechanism to our GQL API.
    * Created a new Staging environment for testing. See [Staging](https://staging.console.rye.com/) for more details.

    ### Fixes

    * Enhanced zip code validation, ensuring accurate province association.
    * Fix issue where shipping and tax details are not returned in `createCart` mutation for amazon orders where developers are using their own amazon business account
    * Return an error when placing an order with an amazon product that is not available in the buyers location
  </Accordion>
</AccordionGroup>


---

*Powered by [holocron.so](https://holocron.so)*
