LogoLogo
System Status
  • Digital River API
  • Getting started
  • Using our services
    • Local pricing
    • Item classification
    • Subscriptions
    • e-Invoicing
  • Integration options
    • Low-code checkouts
      • Implementing a Prebuilt Checkout
      • Implementing a Components checkout
      • Offering local pricing
      • Using a shipping endpoint
      • Processing subscription acquisitions
      • Adding custom fields
      • Offering store credit
      • Displaying policies and getting consent
      • Collecting e-invoice information
      • Handling completed checkout-sessions
    • Direct integrations
      • Standard flow
      • Building checkouts
        • Checking out guest and registered customers
        • Describing line items
          • Setting the price of an item
          • Managing items with shared SKU identifiers
        • Providing address information
        • Handling shipping choice
        • Tax identifiers
        • Applying a discount
        • Setting the customer type
        • Providing the IP address
        • Selecting a currency
        • Initiating a charge
        • Setting the purchase location
        • Configuring taxes
        • Accessing regulatory fee information
        • Localizing invoices and credit memos
        • Providing an upstream identifier
        • Applying store credit
        • Handling e-invoicing requirements
        • Landed cost
        • Tax calculation inputs
        • Selling entities
        • Payment sessions
        • Applying store credit (legacy)
        • Country specs
      • Building payment workflows
        • Handling redirect payment methods
        • Handling delayed payment methods
      • Subscription acquisitions
        • Handling subscription acquisitions
        • Handling external subscription acquisitions
        • Subscription information
      • Digital River coordinated fulfillments
        • Checking inventory levels
        • Using shipping quotes
        • Reserving inventory items
        • Managing a fulfillment order
        • Cancelling a fulfillment order
    • Connectors
  • Order management
    • Processing orders
    • Handling a rejected order
    • Accessing invoices and credit memos
    • Fulfilling goods and services
    • Capturing and cancelling charges
    • Payment reauthorizations
    • Handling reversals
      • Return basics
        • Digital River coordinated returns
        • Third party coordinated returns
      • Refund basics
        • Issuing refunds
        • Refunding asynchronous payment methods
      • Disputes and chargebacks
    • Customer notifications
    • Responding to events
      • Events
        • Key event types
        • All event types
      • Webhooks
        • Creating a webhook
        • Digital River API safelist
        • Digital River signature
      • Expanding events
      • Preventing webhooks from getting disabled
    • Distributor model
  • Subscription Management
    • Managing a subscription
    • Managing an external subscription
  • Payments
    • Payment solutions
      • Drop-in payments
        • How Drop-in payments work
        • Drop-in payments integration guide
      • DigitalRiver.js with Elements
        • Elements integration guide
        • Configuring payment methods
          • Configuring Afterpay
          • Configuring Alipay+ (cross-border)
          • Configuring Alipay (domestic)
          • Configuring Amazon Pay
          • Configuring Apple Pay
          • Configuring Bancontact
          • Configuring BNP Paribas
          • Configuring BLIK
          • Configuring CCAvenue
          • Configuring Clearpay
          • Configuring Credit Cards
          • Configuring FPX Online Banking
          • Configuring Google Pay
          • Configuring iDEAL
          • Configuring Klarna
          • Configuring Konbini
          • Configuring Online Banking (IBP)
          • Configuring Online Banking (Korea Bank Transfer)
          • Configuring PayCo
          • Configuring PayPal
          • Configuring SEPA Direct Debit
          • Configuring Trustly
          • Configuring Wire Transfer
          • Common payment sources
          • Common payment objects
    • Supported payment methods
      • Afterpay
      • Alipay (domestic)
      • Alipay+ (cross-border)
      • Amazon Pay
      • Apple Pay
      • Bancontact
      • BNP Paribas
      • BLIK
      • CCAvenue
      • Clearpay
      • Credit Cards
      • FPX Online Banking
      • Google Pay
      • iDEAL
      • Klarna
      • Konbini
      • Korea Bank Transfer (Online Banking)
      • Online Banking (IBP)
      • Pay with Installments France
      • PayCo
      • PayPal
      • PayPal Billing Agreement
      • PayPal Credit
      • PayPal Pay in 3
      • PayPal Pay in 4
      • PayPal RatenZahlung (Installment Payment)
      • SEPA Direct Debit
      • Trustly
      • Wire Transfer
    • Source basics
      • Managing sources
      • Handling credit card sources
      • Retrieving sources
    • Authorization declines
    • PSD2 and SCA
      • How to ensure SCA compliance
    • Payment testing scenarios
  • Product management
    • Product basics
    • Managing SKUs
    • Using product details
    • Grouping SKUs
    • SKU-inventory item pairs
    • Managing inventory items
    • Regulatory fees
      • What are regulatory fees?
        • Fees terminology
        • Regulatory fee management
        • European regulatory fees
        • Compliance obligations
        • WEEE directive requirements
        • Copyright directive requirements
        • Compliance challenges
      • Managing regulatory fees
  • Customer management
    • Customer basics
    • Creating and updating customers
    • Setting up tax exemptions
    • Recording a customer's request to be forgotten
  • Financial reporting
    • Financials basics
    • Sales transactions
      • Returning a list of sales transactions
      • Getting a sales transaction by ID
    • Sales summaries
      • Returning a list of sales summaries
      • Getting a sales summary by ID
    • Payouts
      • Returning a list of payouts
      • Getting a payout by ID
      • Get a list of transactions included in payout by ID
  • Developer resources
    • Digital River API reference
    • DigitalRiver.js reference
      • Including DigitalRiver.js
      • Initializing DigitalRiver.js
      • DigitalRiver object
      • Elements
        • Amazon Pay element
        • Apple Pay elements
        • Google Pay elements
        • IBAN element
        • iDEAL element
        • Konbini elements
        • Compliance element
        • Offline Refund elements
        • Online Banking elements
        • Tax Identifier element
        • Invoice attribute element
        • Delayed Payment Instructions element
        • PayPal elements
      • Guidelines for capturing payment details
      • Security
      • Digital River payment objects
      • Error types, codes, and objects
    • DigitalRiverCheckout.js reference
      • Including DigitalRiverCheckout.js
      • Initializing DigitalRiverCheckout.js
        • DigitalRiverCheckout configuration object
      • DigitalRiverCheckout object
        • Configuring Prebuilt Checkout
          • Performing actions
          • Defining experience
        • Components
          • Configuring components
          • Address component
          • Shipping component
          • Tax identifier component
          • Invoice component
          • Wallet component
          • Payment component
          • Compliance component
          • Order summary component
          • Thank you component
        • Rendering a checkout button
          • Performing actions on the checkout button
        • Determining the checkout's status
      • Accessing country and currency
    • DynamicPricing.js reference
    • Postman collection
  • administration
    • Sign in
    • Digital River Dashboard
      • Digital River Dashboard quick start guide
      • Key features
      • Reset your password
      • Test and production environments
      • Account
        • Adding an account
        • Switching accounts
        • Account access
      • Profile settings
        • Viewing your personal information
        • Changing your password
        • Updating your phone number
        • Enabling multi-factor authentication
      • Finance
        • Payouts
          • Viewing your payout details
          • Filtering your payouts
          • Exporting your payouts
        • Sales summaries
          • Viewing your sales summaries details
          • Filtering your sales summaries
          • Exporting your sales summaries
          • Exporting your sales summary details
        • Transactions
          • Viewing your transaction details
          • Filtering your transactions
          • Exporting your transactions
      • Order management
        • Orders
          • Searching for orders
          • Filtering your orders
          • Viewing the order details
          • Cancelling items
          • Fulfilling items
          • Downloading an invoice
          • Downloading a credit memo
          • Creating shipping labels
          • Recording a customer's request to be forgotten
          • Viewing returns and refunds
          • Creating a return
          • Accepting a return
          • Creating a refund
          • Viewing the order's timeline
        • Checkouts
          • Searching for checkouts
          • Filtering your checkouts
          • Viewing the checkout details
        • Prebuilt Checkout links
          • Generate Prebuilt Checkout links
          • View and work with Prebuilt Checkout link details
          • Add a customer during Prebuilt Checkout
          • Add a product during Prebuilt Checkout
      • Customers
        • Viewing customer details
        • Searching for customers
        • Filtering your customers
        • Editing account information
        • Adding a customer
        • Tax IDs and certificates
          • Adding a tax certificate
          • Adding a tax ID
          • Deleting a tax ID
        • Metadata
          • Adding metadata
          • Editing metadata
        • Manage subscriptions from the Customer Details page
        • Disabling a customer
        • Recording a customer's request to be forgotten
        • Deleting a customer
      • Catalog
        • SKUs
          • Viewing the SKU details
          • Searching for SKUs
          • Filtering your SKUs
          • Adding a SKU
          • Editing a SKU
          • Deleting a SKU
          • Adding a fee to a SKU
          • Editing a fee
          • Deleting a fee
          • Viewing product tariff codes
        • Managing customer subscriptions from Digital River Dashboard
      • Developers
        • API keys
          • Updating your API version
          • Getting your API keys
          • Changing the API version for your key
          • Creating a restricted key
          • Editing a restricted key
          • Deleting a restricted key
          • Rotating keys
        • Webhooks
          • Creating a webhook
          • Editing a webhook
          • Deleting a webhook
          • Rotating a webhook's secret
        • API logs
          • Filtering the API log
          • Viewing the API log details
        • Event logs
          • Filtering the events log
          • Viewing the event details
      • Settings
        • Users and roles
          • Roles
          • Searching for a user by name or email
          • Filtering your users and roles
          • Adding a user
          • Editing a user
          • Deleting a user
        • Prebuilt Checkout
        • Payment methods
          • Viewing your payment methods
          • Viewing payment method details
            • Enabling currencies
            • Managing countries
          • Enabling or disabling a payment method
  • General Resources
    • eCompass
    • eCompass documentation
    • Release notes
      • 2024
      • 2023
      • 2022
      • 2021
      • 2020
      • 2019
    • Standards and certifications
      • Certification process
      • Compliance requirements
      • Documentation requirements
      • Integration checklists
        • Admin portal
        • Products and SKUs
        • Customers and tax exemptions
        • Checkouts, payment sources, and orders
        • Disclosures, compliance statements, and emails
        • Fulfillments and cancellations
        • Customer portal
        • Order refund synchronization
        • Reversals
        • Error handling
      • Test and use cases
    • Commerce infrastructure
    • Versioning
    • Glossary
Powered by GitBook
On this page
  • Integration checklist
  • Checkouts
  • Payment sources
  • Orders
  • Integration standards
  • Provide required product data
  • Provide required compliance product data
  • Reference product identifier in product details
  • Reference required SKU group in product details
  • Indicate whether taxes are included in the retail price
  • Provide the customer's public IP address
  • Ensure the specified upstream identifier matches your order identifier
  • Supply required shipping address information
  • Synchronize checkout data
  • Set charge type to customer-initiated in subscription acquisitions
  • Set charge type to merchant initiated in subscription auto-renewals
  • Send subscription information
  • Send the subscription's terms
  • Generate a subscription identifier
  • Specify a subscription's renewal method
  • Send the billing agreement identifier in renewals
  • Provide a start and end time for Klarna-funded subscriptions
  • Use Drop-in to display available payment methods and create a source
  • Provide option to save payment information for future use
  • Save ready-for-storage payment sources to the customer's account
  • Respond to on success event and display the order review page
  • Display reusable payment sources
  • Acquire customer's acceptance of subscription and payment storage terms
  • Save ready for storage source to customer's account
  • Create an order with the checkout identifier
  • Notify the customer of the order status
  • Capture the order's identifier
  • Align order states
  • Capture the order's payment state
  • Capture the order's fraud state
  • Listen for and handle the order accepted event
  • Listen for and handle order failed events
  • Persist the billing agreement identifier
  • API interfaces
  1. General Resources
  2. Standards and certifications
  3. Integration checklists

Checkouts, payment sources, and orders

Learn more about the standards related to processing checkouts, payment sources, and orders.

PreviousCustomers and tax exemptionsNextDisclosures, compliance statements, and emails

Last updated 2 months ago

This section's and standards cover how to process -compliant checkouts, subscriptions, payment sources, and orders.

Integration checklist

Click any checklist item for information on meeting the , , and -related integration standards.

Checkouts

Checkouts with subscriptions

Payment sources

Payment sources with subscriptions

Orders

Orders with subscriptions

Integration standards

The checkout, payment source, and order standards that apply to your integration depend on which of the above checklists you're using.

Provide required product data

Provide required compliance product data

Reference product identifier in product details

Reference required SKU group in product details

Indicate whether taxes are included in the retail price

Provide the customer's public IP address

Ensure the specified upstream identifier matches your order identifier

Supply required shipping address information

Synchronize checkout data

Additionally, you should display these response values in your interface so customers can review tax and product totals during the checkout process.

Set charge type to customer-initiated in subscription acquisitions

Set charge type to merchant initiated in subscription auto-renewals

Send subscription information

Send the subscription's terms

Generate a subscription identifier

Specify a subscription's renewal method

Send the billing agreement identifier in renewals

Provide a start and end time for Klarna-funded subscriptions

Use Drop-in to display available payment methods and create a source

Provide option to save payment information for future use

Save ready-for-storage payment sources to the customer's account

Respond to on success event and display the order review page

Display reusable payment sources

Acquire customer's acceptance of subscription and payment storage terms

Save ready for storage source to customer's account

Create an order with the checkout identifier

Notify the customer of the order status

Capture the order's identifier

Align order states

POST/orders response

Due to...

Ready to fulfill?

No

No

No

No

Yes

Capture the order's payment state

Capture the order's fraud state

Listen for and handle the order accepted event

Listen for and handle order failed events

Upon receipt of either event, retrieve state, fraudState, and charges[].state from the payload and use these values to update the corresponding attributes in the upstream commerce platform's order.

Persist the billing agreement identifier

API interfaces

Documentation
Direct API
PHP SDK

When each must include a identifier or a object. Each line item in the request must also have a defined and a .

When each must include productDetails and within that object, you must specify a skuGroupId.

If you're sending in , your integration should pass your system's unique product identifier as the object's id.

For more information, refer to the section on the .

If you're sending in , your integration must reference the product's associated . You do this by specifying a skuGroupId in the productDetails object.

For more information, refer to the section on the .

When , use the taxInclusive flag to indicate whether the in an order should be treated as .

When , provide the IP address of the customer's browser used to place the order.

For tracking purposes, specify an during the that matches the identifier of the corresponding order in your commerce platform.

Orders that contain must provide and address information.

Each time you create or update a checkout, to update price, fee, and tax information in the upstream commerce platform. These updates should be performed for the entire transaction and each line item. This ensures that the values in your system stay in sync with those in our system.

Since the customer actively participates in a subscription acquisition, you should set to .

During a subscription's autorenewal, the customer is not an active participant. As a result, when to process an autorenewal, you should set to .

Any transaction that includes a recurring product or service must provide information that describes that subscription. So, when , provide these details in the hash table.

For , you must display the subscription's terms and acquire the customer's active acceptance of them. So, before , pass these agreed-upon terms in the checkout's parameter. This ensures that they are recorded in the .

During the acquisition process, you can optionally generate a unique subscription identifier and assign it to .

For every recurring product or service, you must use the parameter to tell us whether the subscription is automatically or manually renewed.

During the renewal process, send the generated during the subscription's acquisition.

When acquiring or renewing a subscription with the payment method, you must .

are our all-in-one solution for handling payments and ensuring compliance. We recommend you use this solution as a quick and easy way to start accepting payments.

During the checkout experience, you can use the to present available payment methods and safely and securely capture a customer's payment details. The returned in the can then be before the customer arrives on your order review page.

During checkout flows, we recommend you allow customers to save their payment information for future transactions. When for and purchases, you can to customers.

In the event, if returns true or mandate is populated, then the customer agrees to save that transaction's payment information for future use. Your integration should .

Whenever successfully create a , we send you the . Once you receive this event, redirect the customer to the order review page. The customer can review the order's details before deciding whether to purchase.

When a customer purchases an auto-renewing subscription, the payment methods that display must . To ensure that Drop-in only displays , set to true in a POST/checkouts or POST/checkouts/{id} request. You then use Drop-in's configurable to set showTermsOfSaleDisclosure to true.

When acquiring an auto-renewing subscription, customers must agree to save the transaction's payment source to their account so that it can be applied to renewals. So, you must configure to display the combined subscription save payment agreement terms and then acquire the customer's active acceptance.

You do this by first setting to true in a POST/checkouts or POST/checkouts/{id} request. You then use Drop-in's configurable to set showTermsOfSaleDisclosure to true.

When the event returns a source that is , you should save the source to the customer's account. This operation flips its reusable value to true. As a result, the source can be used in subscription auto-renewals.

After you display the review order page to the customer and the customer actively accepts Digital River's and then submits the order on the storefront, you should . Digital River creates an based on the data in a . Providing checkoutId in the payload of POST/orders acts primarily as a call to authorize payment and trigger a fraud review.

When a customer uses a such as a to pay for a transaction, the almost always immediately returns an or order. When the order succeeds, direct the customer to the "Thank you" page. If the order fails, use the error's message to inform the customer of the issue through the user interface.

When the returns a status code, retrieve the order's id from the payload and use that value to set the corresponding attribute in the upstream commerce platform's order.

Use the to set the status of the upstream commerce platform's order.

a

a

a

an

an

When the returns a status code, retrieve charges[].state from the payload and use that value to set the corresponding attribute in the upstream commerce platform's order.

For set the commerce platform's order payment status to failed.

When the returns a status code, retrieve fraudState from the payload and use that value to set the corresponding attribute in the upstream commerce platform's order.

For set the commerce platform's order fraud status to blocked.

We send the event when Digital River successfully authorizes payment and completes its fraud review. This event indicates that the order is ready to be fulfilled. Upon receipt, retrieve state, fraudState, and charges[].state from the payload and use these values to update the corresponding attributes in the upstream commerce platform's order.

An asynchronous payment authorization failure triggers an event. When Digital River asynchronously detects an anomaly during its fraud review or the customer is determined to be on the , we send an event.

For each subscription product or service you create, store the that Digital River generates so that it can be sent in the renewal request.

: order.accepted, order.review_opened, order.pending_review, order.pending_payment, order.blocked, order.charge.failed, order.complete

building a checkout
upstream identifier
checkout process
use the response from the Checkouts API
Drop-in payments
Drop-in payments
Do you use Drop-in payments to display available payment methods and create a payment source?
Do you provide customers the option to save payment information for future use?
During transaction flows, if customers elect to save payment information for future purchases, do you save the source to their account?
Does the onSuccess event fired by Drop-in payments trigger a final step in your checkout process that allows the customer to review all order and tax totals before making the purchase?
When customers acquire an auto-renewing subscription, do Drop-in payments only display payment methods supporting reusability?
Do you configure Drop-in payments to display and acquire the customer's acceptance of the combined subscription and payment storage terms?
Do you save ready-for-storage payment sources to a customer's account?
After a customer places an order on the storefront, do you pass the checkout identifier to a POST/orders request?
Do you use the POST/orders response to update the storefront's UI with an order success or order failed message?
Do you use the POST/orders response to set the order status in your upstream commerce platform?
Do you capture the order's identifier?
Do you capture the order's payment status?
Do you capture the order's fraud status?
Do you listen for and handle the order accepted event?
Do you listen for and handle order failed events?
Do you persist in the billing agreement identifier generated during the acquisition process for auto-renewing subscriptions?
Checkouts
Checkouts
Sources
Sources
Orders
DigitalRiver.js
DigitalRiver.js Drop-in
Events
Orders
items[]
price or aggregate price
items[]
productDetails
Describing line items page
productDetails
SKU group
Describing line items page
building a checkout
price of items
chargeType
building a checkout
chargeType
building a checkout
Klarna
configurable Drop-in object
payment source
building your payment workflows
Drop-in payments
payment source
Drop-in payments
Checkout
credit card
Denied Persons List
checklist items
checkouts
payment sources
orders
In POST/checkouts requests, does your integration provide us with the required product data?
In POST/checkouts requests, does your integration provide us the required compliance product data?
If you're sending productDetails in creating checkout requests, does your integration pass your system's unique product identifier as the object's id?
If you're sending productDetails in creating checkout requests, does your integration reference the associated SKU group by specifying a skuGroupId?
Do you use the taxInclusive flag to indicate whether the total cost of an order's items should be treated as tax-inclusive or exclusive?
Does your integration provide the customer's public IP address?
Do you use your commerce platform's unique order identifier (UUID) as the upstream identifier?
For orders that contain physical products, do you specify shipTo and shipFrom values?
After Digital River responds to a create or update checkout request, does your integration use the data provided by Digital River to update the commerce system's product and shipping tax data and then ensure that the values in both systems match?
During subscription acquisitions, do you set the charge type to customer-initiated?
When auto-renewing a subscription, do you set the charge type to merchant-initiated?
Do you send subscription information for every subscription product or service included in a transaction?
After the customer accepts the terms of an auto-renewing subscription, do you pass them to Digital River?
Does your subscription management system generate a subscription identifier during the acquisition process?
Do you specify a subscription's renewal method?
During the renewal process, do you send the same billing agreement identifier generated during the subscription's acquisition?
If a customer pays for a subscription with Klarna, do you provide the start and end time?
tax-inclusive or exclusive
MOR/SOR
productDetails
physical products
customer_initiated
merchant_initiated
subscriptionInfo
subscriptionId
autoRenewal
billingAgreementId
provide a start and end time
billingAgreementId
merchant-initiated
auto-renewing subscriptions
terms
billing agreement
autoRenewal
autoRenewal
associating SKU groups with upstream product data in create checkout requests
sending product data in checkouts
sending product data in checkouts
sending product data in create checkout requests
quantity
attached to the checkout
attach the payment source to the customer's record
support recurring transactions
synchronous payment method
onSuccess event
onSuccess
readyForStorage
onSuccess event
options
onSuccess
readyForStorage
configure Drop-in payments to present the save payment option
options
ship from
ship to
one-off
subscription
SKU
create checkout requests
create checkout requests
Checkouts
Sources
Orders
reusable payment methods
order
disclosure terms
converting a checkout to an order
convert the checkout to an order
POST /orders request
accepted
failed
POST /orders response
201 Created
POST /orders response
POST /orders response
201 Created
409 Conflict errors generated by a payment authorization failure
POST /orders response
201 Created
409 Conflict errors generated by a fraud review failure
order.accepted
order.charge.failed
order.blocked
409 Conflict
payment authorization failure
409 Conflict
fraud review failure
201 Created
pending payment
201 Created
in-process secondary fraud review
201 Created
accepted order