Building payment workflows
Learn how to create SCA-compliant workflows using Drop-in payments or Elements.
Last updated
Learn how to create SCA-compliant workflows using Drop-in payments or Elements.
Last updated
Using or , you can create compliant workflows for and .
Whatever payment solution you use, all SCA requirements are managed by Digital River. Two-factor authentication is handled by our . Our card acquirers use the protocol to communicate with issuing banks. This protocol operates "behind the scenes" and requires no developer interaction.
The following chart lists key settings and methods for building purchase and account management flows. It's meant to be read from left-to-right and top-to-bottom. For example:
In in which customers , you should set the checkout's to customer_initiated
. If you're using , use the method's to set to checkout
and to convenience
. With , use the method's configuration object to set futureUse
to true
and to convenience
.
When customers are , and decide to , set the checkout's chargeType
to customer_initiated
and to true
. In this flow type, is not supported. Instead, you'll need to use the method.
Yes
Yes
Yes
Step four: Drop-in payments are rendered in the designated container on your checkout page.
Yes
Yes
Yes
Step four: Drop-in payments are rendered in the designated container on your checkout page.
Yes
No
Yes
In this flow, customers save payment information to their account and use that payment source to acquire an auto-renewing subscription.
Yes
Yes
Yes
Step four: Drop-in payments are rendered in the designated container on your checkout page.
In this flow, customers select a credit card they previously saved to their account and use it to acquire an auto-renewing subscription.
Yes
No
Yes
In this workflow, a merchant initiates a subscription's auto-renewal. Although this type of workflow doesn't require SCA, you should ensure you correctly handle auto-renewing subscriptions.
No
N/A
N/A
No
Yes
Yes
Step four: Drop-in payments are rendered in the designated container on your checkout page.
Customers use their account portal to save payment information for future transactions in this flow.
Yes
Yes
Yes
Step four: Drop-in payments are rendered in the designated container on your checkout page.
In this flow, customers use their account portal to update their saved credit card's expiration date or billing address.
No
No
Yes
For any workflow that uses , whether it's intended to handle or , you first need to perform the following steps:
​.
​.
​.
​.
If you're using to build workflows, . We assume you are familiar with and .
For almost all , , and transactions, Digital River supports workflows using or .‌
‌One-off workflows allow customers to , , and their payment information while making one-time purchases.
‌In this flow, customers supply their payment information but don't save it to their account.
Prerequisites: Perform the .
Step one: with all tax, shipping, duty, and fee amounts in a final state and a that is customer_initiated
.
Step two: Retrieve the checkout's , and use it to set in the. In options
, set to checkout
and to convenience
.
Step three: Pass the configuration object to the .
Customers enter their payment information and click the pay now button.
If customers complete any that may be required, returns a .
Step five: .
Step six: .
Prerequisites: Refer to the section.
Step one: with all tax, shipping, duty, and fee amounts in a final state and a that is customer_initiated
.
Step two: Retrieve the and assign it to sessionId
in the method's configuration object. You should also set futureUse
to false
and to convenience
.
After the method is called and customers complete any required SCA, a unique is returned.
Step three: .
Step four: .
In this flow, customers enter payment information and save it to their account.
Prerequisites: Perform the .
Step one: with a and all tax, shipping, duty and fee amounts in a final state. The should be customer_initiated
.
Step two: Retrieve the checkout's and use it to set in the . You should also use options
to set to checkout
, to convenience
, and to true
.
Step three: Pass the configuration object to the .
Customers enter their credit card information, actively accept the save payment agreement and click the pay now button.
If customers complete any that may be required, returns a that is .
Step five: .
Step six: .
Step seven: .
Prerequisites: Refer to the section. Your flow also needs to display the storage terms and allow customers to save their payment information.
Step one: with a and all tax, shipping, duty and fee amounts in a final state. The should be customer_initiated
.
Step two: Retrieve the and assign it to sessionId
in the method's configuration object. You should also set futureUse
to true
and to convenience
. Use mandate.terms
to pass the save payment agreement that the customer accepts.
After the method is called and customers complete any required SCA, a unique is returned.
Step three: .
Step four: .
Step five: .
In this , customers select a payment method they previously saved to their account. The key step is to call the .
do not currently support retrieving saved payment methods. To handle this flow, use .
Prerequisites: Refer to the section.
Step one: with a and all tax, shipping, duty and fee amounts in a final state. The should be customer_initiated
.
Step two: and display them during checkout.
Step three: If the customer uses a saved payment method, you must determine whether SCA is required. To do this, configure and call the method. For details, refer to on the page.
Step four: .
Step five: .
You can create workflows that allow customers to or a during subscription acquisitions and set up workflows for .
SCA is required for but not auto-renewals.
Prerequisites: Perform the .
Step one: with a and all tax, shipping, duty and fee amounts in a final state. Set to customer_initiated
and autoRenewal
to true
.
Step two: Retrieve the checkout's , and use it to set in the . In , set to checkout
, to subscription
, and to true
.
Step three: Pass the configuration object to the .
Customers must enter their payment information, actively accept the terms and click the pay now button.
If customers complete any that may be required, returns a that is .
Step five: .
Step six: .
Step seven: .
Prerequisites: Refer to the section. At some point during the flow, you also need to display the subscription's terms, save the payment agreement, and acquire the customer's active acceptance of them.
Step one: with a and all tax, shipping, duty and fee amounts in a final state. Set to customer_initiated
and autoRenewal
to true
.
Step two: Once the customer selects the option to save the payment method and agrees to the displayed terms, retrieve the and assign it to sessionId
in the method's configuration object. You should also set futureUse
to true
and to subscription
. Use mandate.terms
to pass the save payment agreement that the customer accepts.
After the method is called and customers complete any required SCA, a unique is returned.
Step three: .
Step four: .
Step five: .
‌The key step is to call the .
does not currently support retrieving stored payment methods. To handle this flow, use .
Prerequisites: Refer to the section.
Step one: with a and all tax, shipping, duty and fee amounts in a final state. Set to customer_initiated
and autoRenewal
to true
.
Step two: and display them to the customer during the checkout process.
Step three: Configure and call the method if the customer uses a saved payment method. For details, refer to on the page.
Step four: .
Step five: .
is not required for transactions where customers provide payment details by mail, fax, or telephone. However, both Drop-in payments and Elements support building workflows for (MOTO) transactions.
Prerequisites: Perform the .
Step one: with a of and all tax, shipping, duty and fee amounts in a final state. This configures Drop-in payments to display only payment methods supported in MOTO transactions.
Step two: Retrieve the checkout's , and use it to set in the . In options
, set to checkout
and to convenience
.
Step three: Pass the configuration object to the .
The merchant's representative enters the customer's credit card information and clicks the pay now button. If the payment is authorized, then returns a unique in a .
Step five: .
Step six: .
Prerequisites: Refer to the section.
Step one: with a of moto
and all tax, shipping, duty, and fee amounts in a final state.
Step two: Retrieve the and assign it to sessionId
in the method's configuration object. You should also set futureUse
to false
and to convenience
.
After the method is called and customers complete any required SCA, a unique is returned.
Step three: .
Step four: .
You can create flows that allow customers to manage through their account portal.
In these account management flows, you only need to adhere to when . While storing a card, attempt to identify the intended use of the source. This increases the probability that future transactions will be approved.
You're not required to do SCA when .
Prerequisites: Perform the .
Step one: On the page where customers manage their payment methods, use the to set to managePaymentMethods
and specify a value for that identifies the likely future use of the payment.
If customers are replacing an active subscription's recurring billing instrument, make sure you set usage
to subscription
and to true
. This prompts Drop-in payments to display a recurring billing agreement and forces customers to accept it.
Because this is a managePaymentMethods
flow, and there's no to reference, you shouldn't provide a . As a result, you'll need to pass the billing information you collect from customers in .\
Step three: Pass the configuration object to the .
Customers enter their payment information, select the save payment agreement option and click the add payment method button.
If customers complete any that may be required, returns a that is .
Step five: .
Prerequisites: Refer to the section. You must display the save payment agreement and acquire the customer's acceptance.
Step one: Once a customer selects the option to save a payment method and agrees to the displayed terms, use the method's configuration object to set futureUse
to true
.
Make sure you also assign a value to that identifies the future use of the payment source and passes the mandate.terms
that the customer agreed to on your storefront.
Once the customer provides the required SCA, a Source in a is returned.
Step two: .
do not support interacting directly with saved payment methods‌
Prerequisites: Refer to the section.
Step one: and display them to the customer.
Step two: Capture the customer's updated expiration date or billing address and pass it to the .