Release notes

Keep track of changes and updates to the Digital River API.

The terms used below include information about how your integration may be affected by new code releases. There are non-breaking and breaking changes:

  • Non-breaking changes include incremental or "safe" changes and some new features.

  • Breaking changes include changes that involve major refactoring or rewrites. They are listed on this page with an orange banner indicator .

  • Known issues are items we are aware of and are indicated with a red banner.

See the Versioning page for more details.

2021/2/23

Breaking changes

We made the following changes in version 2021-02-23:

  • You can now access the tax identifiers resource.

  • Tax identifiers must be created using the Tax Identifiers API. You can no longer use the Customers API to perform this operation.

  • Once you've upgraded, any tax identifiers you previously created with the Customers API will no longer be available. Please contact us to have your data migrated.

2021/2/16

For Digital River coordinated fulfillments, you should now send shipment identifiers in POST/fulfillments requests.

2021/1/18

You can now use the Digital River API to manage an order's physical fulfillment.

2021/1/15

You can now use the authenticateSource method to determine whether the saved payment source selected by a customer during the checkout process requires Strong Customer Authentication (SCA).

2021/1/11

2020/12/30

2020/12/28

We updated the supported geographies for Klarna to show the minimum and maximum order amount and the payment method type.

2020/12/17

Breaking changes

We made the following changes in version 2020-12-17:

2020/12/10

We added more custom styles for styling an element container in DigitalRiver.js.

2020/11/19

We added support for Pay in 4 to the PayPal payment method.

2020/11/17

When you delete a SKU, we now delete any Fee objects associated with that SKU.

2020/11/10

We added information on where you can find error codes for DigitalRiver.js.

2020/11/5

As part of the PSD2 Strong Customer Authentication (SCA) initiative, payment processors require extra information when processing merchant-initiated credit card transactions. To ensure that you adhere to the new mandate, you can now make use of billing agreements.

2020/10/29

You can now subscribe to receive the latest Digital River API information.

2020/10/13

The Fees API now supports packaging and batteries fee types. Additionally, the attributes that were previously represented as metadata have been deprecated. These data points are now first-class attributes.

2020/10/12

We added information on the tax identifier element to DigitalRiver.js.

2020/10/6

When classifying a product as digital or physical, we now use the tax code that you specify in the SKU.

2020/10/1

We added support for Union Pay to Credit Cards.

2020/09/30

Breaking change

For version 2020-09-30, we added the Invoices resource. You can use it to create an invoice when billing a customer, charging a customer for a recurring event, or providing information in response to a fulfillment.

2020/9/24

We added support for the Japan COD and Korea – PayCo payment methods.

2020/9/23

We added support for the Klarna payment method.

2020/9/18

We updated the Drop-in documentation.

2020/9/16

  • You can now update the ship from and subscription information at the item-level in update Checkout requests.

  • POST and GET Checkout requests now return a unique item-level identifier.

2020/9/9

2020/8/20

  • You can now test a single API request without upgrading the key.

  • We added the Country-Specs resource to help you determine whether address and tax identifier information is required and also whether it is properly formatted.

  • You can now use the postalCode parameter in the Address object to support ZIP+4 codes.

  • You can now create multiple Customer objects with the same email address.

  • We added the linkExpiresTime parameter to the Files resource.

2020/8/11

You can now access the Dashboard documentation.

2020/8/5

2020/6/16

  • You can now create checkouts and orders containing duplicate SKU items with different prices and metadata.

  • You can now only request refunds for amounts or percentages less than, or equal to, those available to refund on an order, order item, invoice, or invoice item.

  • It is no longer possible to create multiple tax identifiers of the same type for Customers or Checkouts.

  • We can no use any tax identifiers you pas us on the checkout rather than any tax identifiers associated with the customer.

  • You can now retry failed order refunds by making a new refund request when a refund fails.

  • You can now only request refunds for amounts or percentages less than, or equal to, those available to refund on an order or order item.

  • We now automatically retry any failed order charge captures for up to 30 days with exponential backoff.

2020/6/3

  • We made it easier to see the amounts available to refund for an order by adding availableToRefundAmount attributes to Orders.

  • You can now receive an order.charge.complete webhook when an order charge has been captured.

  • You can now receive an order.charge.pending webhook when an order charge has been created but not yet processed.

  • You can now receive an order.charge.processing webhook when an order charge is processing.

  • You can now receive an order.charge.cancelled webhook when Digital River cancels an order charge.

  • You can now receive order.charge.capture.complete webhook when an order charge capture is complete for all payment methods (including PayPal and Direct Debit).

2020/5/26

You can now search for Orders using the following filters: submitted timestamp, accepted timestamp, complete timestamp, browserIp, chargeType, subscriptionId, and refundedAmount.

2020/5/19

  • You can now create Checkouts and Orders with a phoneticName parameter. The phoneticName parameter allows Customer Service Representatives and couriers who need this information to correctly pronounce a customer's name in Japan. See Japanese phonetics and divisions for more information.

  • You can now create Checkouts and Orders with a division parameter. The division parameter allows customers to provide their division within an organization when they provide their business addresses in Japan.

2020/5/5

  • You can now create SKUs with description, image, and url parameters to power a first-class user experience.

  • You can now create Refunds for delayed repayment methods (such as Wire Transfer and bPay) that require the handling of additional customer information.

  • We will inform you if a tax identifier is required and is missing for customers with multiple tax identifiers, and apply those tax identifiers to the order.

2020/4/21

  • You can now receive an order.accepted webhook when an order has successfully passed Digital River's fraud checks and has a capturable charge.

  • You can now create Checkouts with tax-inclusive shipping choice amounts. ??? Update links. ???

  • You can now create Checkout items with a new freeTrial parameter.

  • You can now receive order.charge.cancel.pending and order.charge.cancel.pending information, and order.charge.cancel.failed and order.charge.cancel.complete events and webhooks.

  • We made it easier to see the amounts available to refund for an order by adding the availableToRefund amount attribute to Orders.

2020/4/7

  • You can now create Checkout items with an aggregatePrice parameter that represents the aggregate (or quantity) price of that line item.

  • You can now receive a sales_transaction.created webhook as soon as we create a (costed) sales transaction for you.

  • You can now receive an order.chargeback webhook when a chargeback occurs for an order.

  • We extended the Orders endpoint so you can determine if an order item was for a subscription renewal.

  • We made it easier to see if an Order has been fulfilled and its charge has been captured by adding a complete state to the state enumeration.

  • You now have the option for Digital River to calculate the landed costs of your cross-border orders for you in the dutiesTotal attribute.

2020/3/31

  • We now create event webhooks for all events supported in production in test mode.

  • We now create refunds in a pending state and publish a refund.pending event. We removed the refund.created event.

  • You can now view detailed information about your costed sales and Digital River's payouts to you with the new Payouts, Payout transactions, Sales summaries, and Sales transactions API resources.

2020/3/24

  • Checkout sourceId now uses the default source identifier of the customer.

  • We will return tax rates as simple amounts rather than percentages (0.067 not 6.75).

  • You can now receive order.charge.capture.pending, order.charge.refund.pending, order.charge.refund.complete, and refund.complete event webhooks. We no longer support the order.charge.capture.created, order.charge.refund.created, order.charge.refund.completed, and refund.completed webhooks.

  • Renamed order.charge.created to order.charge.pending and order.charge.capture.completed to order.charge.capture.complete.

  • We extended Checkouts and Orders to return a tax.amount for shipping choices.

2020/3/20

In live mode, we will attempt to deliver your webhooks for up to three days with an exponential backoff; in test mode, we will retry four times over a couple of hours.

2020/3/19

You can now sync your SKU records with Digital River more easily by upserting SKUs using the SKUs resource.

2020/3/17

  • We extended the supported list of valid US states to include territories such as Guam (GU).

  • You can now retrieve a source with the new clientSecret attribute.

2020/3/10

We have changed item-level amounts, so they now represent the amount to pay for an item–inclusive of any item-level discounts.

2020/2/14

You can now create Checkouts with shippingChoice parameters with zero-dollar amounts.

2020/1/31

  • Orders now have a cancelledAmount attribute, which represents the total charge amount cancelled.

  • You can now receive an order.charge.refund.failed webhook when a charge refund attempt fails for your customer's order.

2020/1/28

We made it easier to refund items by not requiring you to specify a refund quantity unless you want that quantity to be different from the ordered quantity.

2020/1/15

  • You can now create an Order without first creating a Checkout by passing a Checkout request rather than a reference to an existing Checkout at order creation.

  • You can now create Checkouts with an aggregatePrice parameter that represents the aggregate price for a quantity of SKUs rather than their unit price.

  • Orders now have a capturedAmount attribute, which represents the total charge amount captured.

  • You can now provide an applicationId parameter when you create a checkout. You can use this attribute to segment your orders by application source.

  • You can now specify the ship from country or address in the Checkout with the new shipFrom parameter.

  • We have now added a sellingEntity attribute to checkouts and orders that you can use to display Digital River's Terms & Conditions and policies to your customers.

  • Digital River now validates the following addresses:

    • Checkout and Customer shipTo and shipping addresses

    • Source owner addresses

    This ensures the customer provided all address parameters required to successfully ship your physical goods anywhere in the world, to successfully create a payment charge, to comply with local invoicing regulations, and to calculate local taxes accurately.

  • Improved availability returns.

  • We will now return standardized card decline codes when you create an order, and the card networks decline the charges.

  • We have now added price and aggregatePrice attributes to checkouts and orders.

2020/01/07

Breaking change

Version 2020-01-07 is the base version of the Digital River API.

2019/12/31

  • Improved availability refunds.

  • You can now receive a credit_memo.created webhook when a credit memo is created for a customer.

  • You can now receive an order.charge.created webhook when a charge is created for your customer's order.

  • You can now receive an order.charge.capturable webhook when a charge becomes capturable for your customer's order.

  • You can now receive an order.charge.refund.created webhook when a charge refund is created for your customer's order.

  • You can now receive an order.charge.refund.completed webhook when a charge refund completes for your customer's order.