/// <summary>
        /// Updates an order to include new offer data. For example, to update the credit card tied to the recurring subscription.
        /// </summary>
        /// <param name="offer">The product and pricing offer for the transaction.</param>
        public async Task UpdateOrderAsync(ApiOffer offer)
        {
            var query = new Dictionary <string, object?>
            {
                { "offer", offer }
            };

            await ApiRequest.PutAsync <object>(
                "transaction/order", query).ConfigureAwait(false);
        }
        /// <summary>
        /// Updates an order to include new offer data. For example, to update the credit card tied to the recurring subscription.
        /// </summary>
        /// <param name="offer">The product and pricing offer for the transaction.</param>
        public async Task UpdateOrderAsync(ApiOffer offer, CancellationToken cancellationToken = default)
        {
            offer.CheckNotNull(nameof(offer));

            var query = new Dictionary <string, object?>
            {
                { "offer", offer }
            };

            await ApiRequest.PutAsync <object>(
                "transaction/order", query, cancellationToken).ConfigureAwait(false);
        }