> For the complete documentation index, see [llms.txt](https://docs.digitalriver.com/digital-river-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalriver.com/digital-river-api/general-resources/release-notes/2020.md).

# 2020

## 2020/12/30

* We now offer a [PHP SDK](https://github.com/DigitalRiver/digital-river-php) to help you integrate the Digital River API into your commerce application. Before building your integration, we recommend reviewing our [standards and certifications](/digital-river-api/general-resources/standards-and-certifications.md). You'll find information on the [certification process](/digital-river-api/general-resources/standards-and-certifications/certification-process.md), our [compliance requirements](/digital-river-api/general-resources/standards-and-certifications/compliance-requirements.md), and the available [integration checklists](/digital-river-api/general-resources/standards-and-certifications/integration-checklists.md).
* You can now [apply store credit](/digital-river-api/integration-options/checkouts/creating-checkouts/applying-a-store-credit.md) to non-recurring transactions. Store credit allows merchants to offer customers a store credit as a payment type at checkout.

## 2020/12/28

We updated [Klarna](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/klarna.md)'s [supported geographies](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/klarna.md#supported-geographies) to show the minimum and maximum order amount and the payment method type.

## 2020/12/17

{% hint style="warning" %}
**Breaking changes**

We made the following changes in the [version](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/versioning) `2020-12-17`:

* You can no longer set the `visible` boolean parameter in a [create](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/fees#fees-1) or [update a fee](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/fees#fees-id-1) request. By default, all [fees are now visible](/digital-river-api/product-management/regulatory-fees/managing-regulatory-fees.md#displaying-fees) to customers.

* [Landed cost](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md) taxes are no longer included in the `totalTax` of an order. They are now returned in [`totalImporterTax`](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md#order-level-attributes).
  {% endhint %}

* We now return several attributes at the [order](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md#order-level-attributes) and [item levels](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md#item-level-attributes) representing the [landed cost](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md) on an order. We now also provide the ability to [refund importer taxes](/digital-river-api/order-management/returns-and-refunds-1/refunds/issuing-refunds.md#specifying-the-type-of-refund).

* We now return [fee details at the item level](/digital-river-api/integration-options/checkouts/creating-checkouts/accessing-regulatory-fee-information.md#getting-information-on-individual-fees).

* We added the best practices for using the Digital River API, which includes [API keys](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/api-structure#api-keys), [versioning](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/versioning), [versioning and API keys](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/best-practices#versioning-and-keys), [robustness](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/best-practices#robustness), and [fraud detection](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/best-practices#fraud-detection).

* We made the following changes to the [Digital River Dashboard](/digital-river-api/administration/dashboard.md):
  * You can apply a different [API version](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/api-structure#api-keys) to each individual key ([standard ](/digital-river-api/administration/dashboard/developers/api-keys.md#standard-keys)and [restricted keys](/digital-river-api/administration/dashboard/developers/api-keys/creating-a-restricted-key.md)), or you can[ update the version on all keys](/digital-river-api/administration/dashboard/developers/api-keys/updating-your-api-version.md) simultaneously in the current mode (test or production).
  * You can now [rotate a webhook's secret](/digital-river-api/administration/dashboard/developers/webhooks/rotating-a-webhooks-secret.md).
  * Changed the Orders section to [Order management](/digital-river-api/administration/dashboard/order-management.md).
  * Changed the All orders topic to [Orders](/digital-river-api/administration/dashboard/order-management/orders.md).
  * The [Order details page](/digital-river-api/administration/dashboard/order-management/orders/viewing-the-order-details.md) now displays the item discount, purchase amount, and payment and billing details.
  * Added [Checkouts](/digital-river-api/administration/dashboard/order-management/checkouts.md) to the [Order management](/digital-river-api/administration/dashboard/order-management.md) section.

## 2020/12/10

We added more [custom styles](/digital-river-api/developer-resources/reference/elements.md#available-custom-styles) for [styling an element container](/digital-river-api/developer-resources/reference/elements.md#styling-an-element-container) in [DigitalRiver.js](https://github.com/DigitalRiver/GitBook/blob/Digital-River-API-latest/payments/payment-integrations-1/digitalriver.js).

## 2020/11/19

We added support for [Pay in 4](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/paypal.md#pay-in-4) to the [PayPal ](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/paypal.md#paypal)payment method.

## 2020/11/17

When you [delete a SKU](/digital-river-api/administration/dashboard/catalog/skus/deleting-a-sku.md), we now [delete any Fee objects](/digital-river-api/product-management/regulatory-fees/managing-regulatory-fees.md#deleting-a-fee) associated with that SKU.

## 2020/11/10

We added information on where you can find [error codes](/digital-river-api/developer-resources/reference/error-types-codes-and-objects.md#error-codes) for DigitalRiver.js.

## 2020/11/5

As part of the [PSD2 Strong Customer Authentication (SCA)](/digital-river-api/payments/psd2-and-sca.md) initiative, payment processors require extra information when processing [merchant-initiated](/digital-river-api/integration-options/checkouts/creating-checkouts/initiating-a-charge.md#merchant-initiated) credit card transactions. To ensure that you adhere to the new mandate, you can now use [billing agreements](/digital-river-api/integration-options/checkouts/subscriptions/subscription-information-1.md#billing-agreement-identifier).

## 2020/10/13

The [Fees API](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/fees) now supports packaging and battery [fee types](/digital-river-api/product-management/regulatory-fees/managing-regulatory-fees.md#type). 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](/digital-river-api/developer-resources/reference/elements/tax-identifier-element.md) to [DigitalRiver.js](https://github.com/DigitalRiver/GitBook/blob/Digital-River-API/payments/payment-integrations-1/digitalriver.js).

## 2020/10/6

When [classifying a product as digital or physical](/digital-river-api/product-management/creating-and-updating-skus.md#how-products-are-specified-as-physical-or-digital), we now use the [tax code](/digital-river-api/product-management/creating-and-updating-skus.md#tax-code) you specify in the SKU.

## 2020/10/1

We added support for Union Pay to [Credit Cards](https://github.com/DigitalRiver/GitBook/blob/Digital-River-API-latest/general-resources/broken-reference/README.md).

## 2020/09/30

{% hint style="warning" %}
**Breaking change**

For [version ](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/versioning)`2020-09-30`, we added the [invoices resource](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/invoices). You can use it to [create an invoice](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/invoices#invoices-1) when billing a customer, charging a customer for a recurring event, or providing information in response to a fulfillment.
{% endhint %}

* We added support for [PSD2 and SCA](/digital-river-api/payments/psd2-and-sca.md) to [Payment integrations](/digital-river-api/payments/payment-integrations-1.md).
* We added information on [payment sessions](/digital-river-api/integration-options/checkouts/creating-checkouts/payment-sessions.md) to [Payment integrations](/digital-river-api/payments/payment-integrations-1.md).
* We added the following parameters to the `subscriptonInfo` block in [Checkouts ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/checkouts)and [Orders](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/orders).
  * `startTime`
  * `endTime`
* Added new features to the [Digital River Dashboard ](/digital-river-api/administration/dashboard.md)that allow you to:
  * [Create a test account](/digital-river-api/quick-start-guide.md#step-1-create-a-test-account)
  * [Update to or rollback from the latest version](/digital-river-api/administration/dashboard/developers/api-keys/updating-your-api-version.md) of Digital River API
  * [Enabling two-factor authentication](/digital-river-api/administration/dashboard/profile-settings/enabling-two-factor-authentication.md) for your user account

## 2020/9/24

We added support for the [Korea – PayCo](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/payco.md) payment method.

## 2020/9/23

We added support for the [Klarna ](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/klarna.md)payment method.

## 2020/9/18

We updated the [Drop-in](/digital-river-api/payments/payment-integrations-1/drop-in.md) documentation.

## 2020/9/16

* You can now update the ship from and subscription information at the item-level in [update checkout](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/checkouts#checkouts-1) requests.
* `POST` and `GET` Checkout requests now return a unique item-level identifier.

## 2020/9/9

* Updated the [Digital River App for Salesforce B2B Commerce](https://docs.digitalriver.com/salesforce-b2b/) documentation.
* We added Spark from Tryzens for the Salesforce Commerce Cloud to our [Connectors](https://docs.digitalriver.com/partner-integrations/).

## 2020/8/20

* You can now [test a single API request](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/versioning#testing-a-version-with-a-single-api-request) without upgrading the key.
* We added the [Country-Specs](/digital-river-api/integration-options/checkouts/creating-checkouts/country-specs.md) 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](/digital-river-api/integration-options/checkouts/creating-checkouts/providing-address-information.md#basic-address-information) in the Address object to support ZIP+4 codes.
* You can now create multiple Customer objects with the [same email address](/digital-river-api/integration-options/checkouts/creating-checkouts/providing-address-information.md#basic-address-information).
* We added the `linkExpiresTime` parameter to the [files](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/files) resource.

## 2020/8/11

You can now access the [Digital River Dashboard documentation](/digital-river-api/administration/dashboard.md).

## 2020/8/5

* You can now use [DigitalRiver.js](/digital-river-api/developer-resources/reference.md) to retrieve an array of [available payment methods](/digital-river-api/developer-resources/reference/digitalriver-object.md#retrieving-available-payment-methods).
* You can now use [DigitalRiver.js](/digital-river-api/developer-resources/reference.md) to trigger a [return event](/digital-river-api/developer-resources/reference/elements.md#return) when a customer presses the Return key while the input field has focus.

## 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.
* Creating multiple tax identifiers of the same type for [Customers ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/customers)or [Checkouts](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/checkouts) is no longer possible.
* We can not use any tax identifiers you pass us on the checkout, rather than any tax identifiers associated with the customer.
* You can now retry failed order refunds by requesting a new refund 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](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/orders).
* You can now receive an `order.charge.complete` [webhook ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)when an order charge has been captured.
* You can now receive an `order.charge.pending` [webhook ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)when an order charge has been created but not yet processed.
* You can now receive an `order.charge.processing` [webhook ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)when an order charge is processed.
* You can now receive an `order.charge.cancelled` [webhook ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)when Digital River cancels an order charge.
* You can now receive `order.charge.capture.complete` [webhook ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)when an order charge capture is complete for all payment methods (including PayPal and SEPA Direct Debit).

## 2020/5/26

You can now search for [Orders](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/orders) using the following filters: submitted timestamp, accepted timestamp, complete timestamp, `browserIp`, `chargeType`, `subscriptionId`, and `refundedAmount`.

## 2020/5/19

* You can now create [Checkouts ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/checkouts)and [Orders ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/orders)with a `phoneticName` parameter. The `phoneticName` parameter allows customer service representatives and couriers who need this information to pronounce a customer's name correctly in Japan. See [Japanese phonetics and divisions](/digital-river-api/integration-options/checkouts/creating-checkouts/providing-address-information.md#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](/digital-river-api/product-management/creating-and-updating-skus.md#creating-and-updating-a-sku) with `description`, `image`, and `url` parameters to power a first-class user experience.
* You can now create Refunds for [delayed repayment methods](/digital-river-api/integration-options/checkouts/building-you-workflows/handling-delayed-payment-methods.md) (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](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md) when an order successfully passes Digital River's fraud checks and has a capturable charge.
* You can now create [Checkouts ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/checkouts)with [tax-inclusive shipping choice amounts](/digital-river-api/integration-options/checkouts/creating-checkouts/configuring-taxes.md#setting-tax-inclusive-prices).
* 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](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/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](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md) as soon as we create a (costed) sales transaction.
* You can now receive an `order.chargeback` webhook when a chargeback occurs for an order.
* We extended the [Orders ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/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](/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs.md) of your cross-border orders for you in the `dutiesTotal` attribute.

## 2020/3/31

* We now create event [webhooks](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md) 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.
* With the new [Payouts](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/payouts), [Payout transactions](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/payouts), [Sales summaries](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/sales-summaries), and [Sales transactions](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/sales-transactions) API resources, you can now view detailed information about your costed sales and Digital River's payouts.

## 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 ](https://www.digitalriver.com/docs/digital-river-api-reference/#tag/Checkouts)and [Orders ](https://www.digitalriver.com/docs/digital-river-api-reference/#tag/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 ](/digital-river-api/product-management/creating-and-updating-skus.md#upserting-a-sku)using the [SKUs ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/skus)resource.

## 2020/3/17

* We extended the supported list of [valid US states](/digital-river-api/integration-options/checkouts/creating-checkouts/providing-address-information.md#us-states-and-territories) 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 to represent the amount to pay for an item, including 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 ](/digital-river-api/order-management/events-and-webhooks-1/webhooks.md)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 it to differ from the ordered quantity.

## 2020/1/15

* You can now create an Order without 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](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items/price-of-an-item.md#defining-an-aggregate-price) for a quantity of SKUs rather than their unit price.
* [Orders ](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/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](/digital-river-api/integration-options/checkouts/creating-checkouts.md#creating-and-updating-the-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](/digital-river-api/integration-options/checkouts.md) 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 provides all address parameters required to successfully ship physical goods anywhere in the world, create a payment charge, comply with local invoicing regulations, and accurately calculate local taxes.
* Improved availability returns.
* When you create an order, We will return standardized card decline codes, and the card networks will decline the charges.
* We have now added `price` and `aggregatePrice` attributes to checkouts and orders.

## 2020/01/07

{% hint style="warning" %}
**Breaking change**

[Version](https://docs.digitalriver.com/digital-river-api-reference/digital-river-api-reference-guide/versioning) `2020-01-07` is the base version of the Digital River API.
{% endhint %}
