LogoLogo
System Status
  • Commerce API
    • Test and use cases
    • Roles and permissions
    • Sending API calls
  • Shopper APIs
    • Shopper basics
      • Common use cases
        • Creating a customer
        • Applying store credit
        • Private store workflow
        • Guest checkout
    • OAuth
      • Authentication
      • OAuth 2.0 APIs
      • Token
      • Access tokens
      • Session-aware access tokens
      • Authorizing a shopper
    • Shoppers
      • Managing shoppers
        • User management
        • Single sign-on (SSO)
        • Data validation
        • Bulk user management
        • Bulk user account export
      • Managing a shopper's account
      • Managing a shopper's address
      • Managing payment options
    • Product discovery
      • Categories
      • Products
      • Product variations
      • Pricing
      • Inventory status
      • Financing
      • Offers
        • Understanding offers
        • How to use point of promotions (POPs)
          • Retrieving all point of promotion offers for a specific product
          • Retrieving all offers for a specific point of promotion
        • How to use offers
      • Private stores
        • Managing private stores
        • Submitting an order for a private store
        • Useful APIs
      • Fulfillment
        • Electronic Fulfillment Service (OFI)
        • Digital rights
        • Digital rights revocation
        • Physical fulfillment
          • EDI X12 832 definition data elements
          • EDI X12 846 definition data elements
          • EDI X12 850 definition data elements
          • EDI X12 855 definition data elements
          • EDI X12 856 definition data elements
          • EDI X12 180-1 definition data elements
          • EDI X12 180-2 definition of data elements
          • EDI X12 180-3 definition of data elements
    • Cart
      • Applying a shopper to a cart
      • Getting the current cart
      • Creating or updating a cart
        • Adding a product to a cart
          • Gifting
        • Capturing the customer's IP address
        • Providing address information
        • Managing the shipping or billing address
        • Providing subscription information
        • Managing payment methods
        • Capturing the Terms of Sale (TOS) acceptance
      • Managing offers in a cart
        • Applying an offer
        • Applying a coupon or promo code
        • Getting all applied offers
        • Removing an applied offer
        • Removing eligible offers
        • Reconciling conflicting offers
        • Dynamic offers/personalization
          • Skipping Global Commerce merchandising offer arbitration
          • Triggering a promotional URL offer
          • Overriding a promotional URL offer discount
      • Pricing
        • Landed cost
          • Mixed cart support
          • Tax-included pretty price
      • Redirecting to a Digital River-hosted cart
      • Configuring taxes
        • Managing tax identifiers
      • Managing shipping options
        • Getting shipping options
        • Providing a shipping discount
      • Managing line items
      • Applying a price override
      • Managing payment sessions
      • Managing web checkout
      • Submitting a cart
        • Initiating a charge
        • Authorization declines
      • Resuming cart submission
      • HGOP2
    • Orders
      • Getting orders
      • Selling entities
      • Retrieving addresses from an order
      • Retrieving line items from an order
      • Order lookup
      • Returns
        • Initiate an authenticated session
        • Setting up returns in Global Commerce
        • Managing returns
    • Subscriptions
      • Retrieve the subscription
        • Getting all orders for a subscription
        • Getting a subscription's pending actions
        • Getting all subscriptions for a shopper
        • Getting a subscription by identifier
      • Update subscription at the next renewal
        • Changing the subscription renewal type
        • Changing the subscription renewal quantity
        • Adding or updating a perpetual unit price
        • Changing the subscription's payment option
        • Changing the subscription's payment source
      • Immediately change the subscription
        • Updating the subscription's shipping address
        • Updating a subscription's billing and shipping email address
        • Cancelling a subscription
      • Immediately apply a midterm subscription change
        • Reducing the subscription renewal quantity
  • Admin APIs
    • Admin basics
      • Available Admin API calls
    • Order management
      • Getting the order's details
      • Downloading the invoice
    • Offer management
    • Refund management
      • Authorization
      • Refund reason codes
      • Creating a satisfaction refund
      • Getting the available refunds for a specific order
      • Getting refunds for a specific order
      • Getting refunds available for a shopper's order
      • Getting the JSON schema for an order refund
      • Managing a refund for a delayed payment method
      • Refund error scenarios
    • Subscription management
      • Retrieve the subscription
        • Getting all orders for a subscription
        • Getting a subscription's pending actions
        • Getting all subscriptions for a shopper
        • Getting a subscription by identifier
      • Update the subscription at the next renewal
        • Changing the subscription renewal type
        • Changing the subscription renewal product
        • Changing the subscription renewal price
        • Changing the subscription renewal quantity
        • Adding or updating a perpetual unit price
        • Changing the subscription's payment option
        • Changing the subscription's payment source
      • Immediately change the subscription
        • Activating a subscription
        • Changing the subscription's external reference identifier
        • Updating a subscription's billing and shipping email address
        • Cancelling a subscription
        • Updating the subscription's expiration date
      • Immediately apply a midterm subscription change
        • Applying a midterm change with price override
        • Reducing the subscription renewal quantity
      • Subscription notifications
        • Updating the subscriber's email address
        • Card Account Updater
        • Sending a payment information change notification
        • Sending an expired credit card notification
        • Sending an invalid payment account notification
        • Sending a payment failure notification
        • Sending a subscription renewal reminder notification
        • Setting up subscription renewal reminders
        • Setting up trial subscription renewal reminders
        • Setting up marketing reminders
      • Using the Expired Card Optimizer
    • Customer management
      • Retrieving customer details
      • Requesting PII removal for a customer
    • Site management
      • Configuring authorized shipping and billing countries
      • Getting a site's authorized billing countries
      • Getting a site's authorized shipping countries
    • Product management
      • Getting started
      • Manage products (asynchronous API)
        • Creating or updating a product
        • Adding or updating a product variation
        • Deploying a product
        • Applying live changes
        • Retiring a product
        • Deleting a product variation
        • Deleting a base or individual product's locale
      • Retrieve products (synchronous API)
        • Getting a product by locale
        • Getting a product variation
        • Getting a product variation by locale
      • Get the task status for a product (synchronous API)
        • Getting the latest information on a product task
        • Retrieving the tasks for a specific product
        • Retrieving the tasks for products
      • Bulk operation
        • Asynchronous bulk operations
          • Creating products in bulk
          • Updating products in bulk
          • Deploying products in bulk
          • Deleting product variations in bulk
        • Bulk product upload (BPU)
        • Bulk Product Export (BPE)
          • Line-item level satisfaction refund
          • Order-level satisfaction refund
          • Auto-created line-item level return product
          • Line-item level return product
    • File management
      • Downloading a file
  • Payments
    • Payments 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 BLIK
          • Configuring Boleto
          • 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
      • BLIK
      • Boleto
      • CCAvenue
      • Clearpay
      • Credit Cards
      • FPX Online Banking
      • Google Pay
      • iDEAL
      • Klarna
      • Konbini
      • Korea Bank Transfer (Online Banking)
      • Online Banking (IBP)
      • 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
    • Building payment workflows
      • Flows by payment type
      • Handling redirect payment methods
    • PSD2 and SCA
    • Payment testing scenarios
      • Testing standard payment methods
      • Testing redirect payment methods
      • Testing receiver payment methods
      • Testing the CCAvenue payment method
  • Events
    • Events overview
    • Responding to events
    • Event types
      • Delayed payment event types
        • Delayed payment expired event
          • Boleto
          • Konbini
          • Wire Transfer
        • Delayed payment reminder event
          • Boleto
          • Konbini
          • Wire Transfer
      • Subscription event types
        • Subscription created event
        • Subscription updated event
        • Subscription action processed event
        • Subscription cancelled event
        • Subscription credit card expired event
        • Subscription payment information changed event
        • Subscription renewal reminder event
        • Subscription renewed event
        • Subscription trial converted event
        • Subscription trial renewal reminder event
        • Subscription payment failed event
      • Post-order event types
        • Invoice created event
        • Refund credit memo event
      • Inventory event types
        • Inventory out of stock event
        • Inventory source and management
        • Inventory self-managed updated event
        • Inventory fulfiller-managed updated event
      • Post-order Notification Integration Guide
    • Webhooks
      • Commerce API safelist
      • Searching for a webhook
      • Creating a webhook
      • Using webhooks
      • Editing a webhook
      • Turning webhooks on or off
      • Revealing a webhook's secret
      • Rotating a webhook's secret
      • Viewing the webhook details
      • Deleting a webhook
  • Developer Resources
    • Postman collection
    • Commerce API references
    • Shopper APIs reference
    • Admin APIs 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 element
        • Online Banking elements
        • Tax Identifier element
        • Delayed payment instructions element
        • PayPal elements
      • Guidelines for capturing payment details
      • Security
      • Digital River payment objects
      • Error types, codes, and objects
  • General resources
    • Global Commerce
    • Global Commerce
      • Company hierarchy
      • Categories
        • Getting a list of categories
      • Products
        • Product scenarios
        • Individual products
          • Creating an individual product
        • Base product with variants
          • Creating a base product with variants
        • Bundle offers
          • Creating a prorated bundle offer with a subscription
        • Product combination
          • Creating a product combination
        • Gifting
        • Inventory status
      • Customer service
        • Log a shopper's request to remove PII
      • Customers
        • Creating a customer
        • Digital River-maintained customer login
        • Client-maintained customer login
      • Transparent Commerce purchase flow
    • eCompass
    • eCompass documentation
    • Release notes
      • 2024
      • 2024 latest
      • 2023
      • 2022
      • 2021
      • 2020
Powered by GitBook
On this page
  • Full SSO
  • Remote login
  • Remote user fetch
  • Remote session validation
  • Remote user create

Was this helpful?

  1. Shopper APIs
  2. Shoppers
  3. Managing shoppers

Single sign-on (SSO)

Understand single sign-on.

PreviousUser managementNextData validation

Last updated 11 months ago

Was this helpful?

The Remote User Management service is a Digital River single sign-on (SSO) API for clients. The API allows end-users to sign on once and navigate across multiple domains. You can choose to pass user attributes that you can use to customize session management or order management.

Example: You can customize the session management to target merchandising or customize order management to capture user attributes as part of the order.

When using SSO, you can assume the following:

  • Digital River is the primary record of user information

  • The client acts as a replica and updates user information from the primary as needed

  • Digital River allows the creation of new users and sends the registration information to the primary for validation

Digital River sites contain a MyAccount section for self-service activities that allows you to manage accounts, orders, billing options, and end-user subscriptions. With SSO in place, you can assume the following:

  • User information updates go to a page hosted on a client site. The page can be either a pop-up or a direct link with a return_to URL.

  • The Forgot Password link goes to a client site. (Usually a pop-up window.)

  • Digital River pages perform the order, billing options, and subscription management.

The following image shows the high-level overview diagram.

High-level overview diagram

The following list describes the entire SSO process:

  • A customer can either sign on to the site/offering at the client site or Digital River. Remote Login calls verify the login request.

  • The client hosts the My Profile pages, where customers can update their email address and address book. The client can also collect additional information that is not required by Digital River.

Example: Employee Identification Number (EIN), etc.

  • Digital River hosts the My Payment Information and My Order History pages. Customers can update billing account information and view order details through Digital River.

  • The Remote Login Request/Response occurs when a customer signs on through Digital River. This sign-on allows the customer to log in to Digital River and the client site simultaneously.

  • The Remote Session Validation Request contains a client-validated token. The Remote Session Validation Response passes the client's Unique Authenticating ID to Digital River as the External Reference ID.

  • The Get User Profile Request/Response retrieves updated customer information from the client. The customer initiates the call when they sign on to Digital River, ensuring that Digital River has the most up-to-date information from the client.

  • At the time of purchase, the Create User Request/Response validates the new customer accounts at the client site. When the customer creates a new account, the call to the client retrieves a new Unique Authenticating ID (External Reference ID) for the new customer account.

Full SSO

Digital River only supports the full SSO implementation. The Digital River SSO solution consists of the following APIs:

The default timeout on a Digital River-hosted site is 60 minutes. However, it can be customized per site.

When a user clicks a Logout button, Digital River can redirect the user to a client-provided URL and pass a successful URL parameter. The client redirects the user to the URL value defined by the successful URL parameter to complete the logout operation. Digital River does not provide an XML-based logout API.

Digital River places a Forgot Password link on the website to a client-provided URL, allowing customers to change their passwords. Digital River does not support a Forgot Password API.

Digital River can integrate with a client-owned SSO API. This integration requires custom work.

The successful operation of SSO APIs requires reliable communication. The following list describes the default behavior when there are communication failures:

  • RemoteSessionValidation: The error message is not visible as the issue is transparent, and the user session lacks authentication.

  • RemoteUserFetch: The user does not see an error message because the failure is transparent. The user profile is not updated.

  • RemoteLogin: The user sees an error message, which typically prompts the user to retry the request.

  • RemoteCreateUser: The user sees an error message, which typically prompts the user to retry the request.

Remote login

The remote login process validates a login operation on the Digital River-hosted store.

All SSO communication occurs using an HTTPS endpoint. Digital River can encrypt a password using a prearranged symmetric key for added security.

The extended attributes element under the Remote Login Request/Response complex type allows you to pass custom information as a key/value pair. Passing custom information requires extra work.

The following image shows the Remote login (MyAccount) flow diagram.

The following image shows the Remote login (on checkout) flow diagram.

{
	"LoginRequest": {
		"userKey": {
			"userID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"externalReferenceID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"companyID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"loginID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"__text": "demo@digitalriver.com"
			},
			"siteID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:ns2": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns2:UserKey"
		},
		"password": {
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
			"_xsi:type": "xsd:string",
			"__text": "123123"
		},
		"extendedAttributes": {
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:ns3": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns3:ExtendedAttributesInfoArray",
			"_xsi:nil": "true"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"__prefix": "ns1"
	}
}
{
	"LoginResponse": {
		"successful": {
			"_xsi:type": "xsd:boolean",
			"__text": "false"
		},
		"errorCode": {
			"_xsi:type": "xsd:string",
			"__text": "5"
		},
		"errorMessage": {
			"_xsi:type": "xsd:string",
			"__text": "Invalid login"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"_xsi:type": "ns1:LoginResponse",
		"__prefix": "ns1"
	}
}
{
	"LoginResponse": {
		"successful": {
			"_xsi:type": "xsd:boolean",
			"__text": "true"
		},
		"userKey": {
			"loginID": {
				"_xsi:type": "xsd:string",
				"__text": "demo@digitalriver.com"
			},
			"externalReferenceID": {
				"_xsi:type": "xsd:string",
				"__text": "D05B4D68-F49D-11DA-8019-88F835DA4C6C"
			},
			"siteID": {
				"_xsi:type": "xsd:string",
				"__text": "headwtr"
			},
			"_xmlns:ns2": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns2:UserKey",
			"__prefix": "ns2"
		},
		"extendedAttributes": {
			"item": {
				"name": {
					"_xsi:type": "xsd:string",
					"__text": "crmSession"
				},
				"value": {
					"_xsi:type": "xsd:string",
					"__text": "F3CB68D6-1643-11DD-8402-E6326E64542C/8443"
				},
				"valueDataType": {
					"_xsi:type": "xsd:string",
					"__text": "string"
				},
				"_xsi:type": "common:ExtendedAttributesInfo"
			},
			"_xmlns:common": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "common:ExtendedAttributesInfoArray",
			"__prefix": "common"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"_xsi:type": "ns1:LoginResponse",
		"__prefix": "ns1"
	}
}

Remote user fetch

Use Remote User Fetch to get additional user information. This call is available for clients who want to provide separate APIs for fetching user information. It allows Digital River to get the latest user profile information. The examples in this section depict the typical usage for this call.

When users click a link to update their profile information on a Digital River-hosted store, they are redirected to a client site to complete their profile updates. When the user has finished updating their profile, the client uses a redirect to return the user to the Digital River-hosted page, where you can set up a real-time call to get the latest profile information. The Remote User Fetch allows both parties to have up-to-date user profile information.

All SSO communication occurs using an HTTPS endpoint. Digital River can encrypt a password using a prearranged symmetric key for added security.

The extended attributes element under the Remote User Fetch Request/Response complex type allows you to pass custom information as a key/value pair. Passing custom information requires extra work.

{
	"GetUserProfileRequest": {
		"userKey": {
			"userID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"externalReferenceID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"__text": "D05B4D68-F49D-11DA-8019-88F835DA4C6C"
			},
			"companyID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"__text": "headwtr"
			},
			"loginID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"_xsi:nil": "true"
			},
			"siteID": {
				"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"_xsi:type": "xsd:string",
				"__text": "headwtr"
			},
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:ns2": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns2:UserKey"
		},
		"sessionToken": {
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
			"_xsi:type": "xsd:string",
			"_xsi:nil": "true"
		},
		"extendedAttributes": {
			"item": {
				"name": {
					"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
					"_xsi:type": "xsd:string",
					"__text": "crmSession"
				},
				"value": {
					"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
					"_xsi:type": "xsd:string",
					"__text": "F3CB68D6-1643-11DD-8402-E6326E64542C/8443"
				},
				"valueDataType": {
					"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
					"_xsi:type": "xsd:string",
					"_xsi:nil": "true"
				},
				"_xsi:type": "ns3:ExtendedAttributesInfo"
			},
			"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
			"_xmlns:ns3": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns3:ExtendedAttributesInfoArray"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"__prefix": "ns1"
	}
}
JSON{
	"GetUserProfileResponse": {
		"userInfo": {
			"userKey": {
				"loginID": {
					"_xsi:type": "xsd:string",
					"__text": "D05B4D68-F49D-11DA-8019-88F835DA4C6C"
				},
				"externalReferenceID": {
					"_xsi:type": "xsd:string",
					"__text": "D05B4D68-F49D-11DA-8019-88F835DA4C6C"
				},
				"siteID": {
					"_xsi:type": "xsd:string",
					"__text": "headwtr"
				},
				"_xsi:type": "ns2:UserKey"
			},
			"firstName": {
				"_xsi:type": "xsd:string",
				"__text": "Amit å"
			},
			"lastName": {
				"_xsi:type": "xsd:string",
				"__text": "Bartake ä"
			},
			"email": {
				"_xsi:type": "xsd:string",
				"__text": "abartake@digitalriver.com"
			},
			"homePhone": {
				"_xsi:type": "xsd:string",
				"__text": "9522538664"
			},
			"shippingAddress": {
				"name1": {
					"_xsi:type": "xsd:string",
					"__text": "Demo"
				},
				"name2": {
					"_xsi:type": "xsd:string",
					"__text": "Tester"
				},
				"line1": {
					"_xsi:type": "xsd:string",
					"__text": "1234 Test Avenue"
				},
				"line2": {
					"_xsi:type": "xsd:string"
				},
				"line3": {
					"_xsi:type": "xsd:string"
				},
				"city": {
					"_xsi:type": "xsd:string",
					"__text": "Eden Prairie"
				},
				"country": {
					"_xsi:type": "xsd:string",
					"__text": "US"
				},
				"countryName": {
					"_xsi:type": "xsd:string",
					"__text": "United States"
				},
				"postalCode": {
					"_xsi:type": "xsd:string",
					"__text": "55344"
				},
				"email": {
					"_xsi:type": "xsd:string",
					"__text": "demo@digitalriver.com"
				},
				"phoneNumber": {
					"_xsi:type": "xsd:string",
					"__text": "952-111-2222"
				},
				"_xsi:type": "ns2:AddressInfo"
			},
			"billingAddress": {
				"name1": {
					"_xsi:type": "xsd:string",
					"__text": "Demo"
				},
				"name2": {
					"_xsi:type": "xsd:string",
					"__text": "Tester"
				},
				"line1": {
					"_xsi:type": "xsd:string",
					"__text": "1234 Test Avenue"
				},
				"line2": {
					"_xsi:type": "xsd:string"
				},
				"line3": {
					"_xsi:type": "xsd:string"
				},
				"city": {
					"_xsi:type": "xsd:string",
					"__text": "Eden Prairie"
				},
				"country": {
					"_xsi:type": "xsd:string",
					"__text": "US"
				},
				"countryName": {
					"_xsi:type": "xsd:string",
					"__text": "United States"
				},
				"postalCode": {
					"_xsi:type": "xsd:string",
					"__text": "55344"
				},
				"email": {
					"_xsi:type": "xsd:string",
					"__text": "demo@digitalriver.com"
				},
				"phoneNumber": {
					"_xsi:type": "xsd:string",
					"__text": "952-111-2222"
				},
				"_xsi:type": "ns2:AddressInfo"
			},
			"_xmlns:ns2": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "ns2:UserInfo",
			"__prefix": "ns2"
		},
		"errorMessage": {
			"_xsi:type": "xsd:string"
		},
		"extendedAttributes": {
			"item": {
				"name": {
					"_xsi:type": "xsd:string",
					"__text": "hasAcceptedTermsNConditions"
				},
				"value": {
					"_xsi:type": "xsd:string",
					"__text": "yes"
				},
				"valueDataType": {
					"_xsi:type": "xsd:string",
					"__text": "string"
				},
				"_xsi:type": "common:ExtendedAttributesInfo"
			},
			"_xmlns:common": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:type": "common:ExtendedAttributesInfoArray",
			"__prefix": "common"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"_xsi:type": "ns1:GetUserProfileResponse",
		"__prefix": "ns1"
	}
}
{
	"GetUserProfileResponse": {
		"userInfo": {
			"_xmlns:ns2": "http://integration.digitalriver.com/Common/1.0",
			"_xsi:nil": "true",
			"_xsi:type": "ns2:UserInfo",
			"__prefix": "ns2"
		},
		"errorMessage": {
			"_xsi:type": "xsd:string",
			"__text": "User not active"
		},
		"_xmlns:ns1": "http://integration.digitalriver.com/RemoteUserManagement/1.0",
		"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"_xsi:type": "ns1:GetUserProfileResponse",
		"__prefix": "ns1"
	}
}

Remote session validation

An important element of a seamless single sign-on process is validating a remotely-authenticated user. Digital River initiates this process by searching the HTTP header for a predetermined cookie. This remote session token cookie allows Digital River to contact the client and validate the user. Once Digital River validates the token and receives a corresponding authenticated user ID from the client, it instantiates an authenticated user session.

A session token is an encrypted key passed either as a cookie, an HTTP URL parameter or through some other means. Digital River reads the token and uses it to create a Remote Session Validation call. You can pass multiple tokens as extended attributes of the Validate Session Request.

The extended attributes element under the Validate Session Request/Response complex type allows you to pass custom information as a key/value pair. Passing custom information requires extra work.

demo@digitalriver.com D05B4D68-F49D-11DA-8019-88F835DA4C6C
true demo@digitalriver.com D05B4D68-F49D-11DA-8019-88F835DA4C6C headwtr crmSession 
F3CB68D6-1643-11DD-8402-E6326E64542C/8443 string

Remote user create

Suppose a customer never signs on and creates a new account during checkout. In that case, Digital River will forward the customer information to the client and then create a local user for that customer.

All SSO communication occurs using an HTTPS endpoint. For added security, Digital River can encrypt a password using a prearranged symmetric key.

The extended attributes element under the Create User Profile Request/Response complex type allows you to pass custom information as a key/value pair. Passing custom information requires extra work.

demo@digitalriver.com DR Demo demo@digitalriver.com en_US 95888914269 
Minnetonka MN United States 10380 Bren Road W DR 
Demo 9522251234 55343 MN demo@digitalriver.com DR 123123
true D05B4D68-F49D-11DA-8019-88F835DA4C6C demo@digitalriver.com 
D05B4D68-F49D-11DA-8019-88F835DA4C6C crmSession 
F3CB68D6-1643-11DD-8402-E6326E64542C/8443 string
false 5 Email already used

Schemas

The remote user create schema defines the structure and required elements for creating a user profile in Digital River’s system. It includes detailed specifications for required fields such as email, locale, and address information and instructions on handling custom attributes through the attributes element. The schema can vary by version:

Version
Schema Components Table
Raw Schema
Sample XML

6 (Current)

5

4

Remote login (MyAccount)
Remote login (on check out)

Remote login
Remote user fetch
Remote session validation
Remote user create
View
View
View
View
View
View
View
View
View