TreviPay

TreviPay is a B2B net terms line of credit that integrates with ecommerce technology to allow invoicing at checkout.

Digital River offers the TreviPay payment method from Multi Service Technology Solutions, Inc.

TreviPay enables Merchants to extend a line of credit for business buyers at checkout. This is a white-labeled solution facilitating online B2B payments by offering flexible net terms, digital statement handling, collections, credit approval management, and improving the overall B2B online buying experience. Digital River supports the following features: create user, payment capabilities, dispute and chargeback, subscription, reporting, API support, fraud, Drop-in, term code service support, and tax.

TreviPay assesses creditworthiness, absorbs non-payment risk, including the localized dunning process (collections) if required, and provides online Merchant and Buyer statement management tools. TreviPay supports the following features: application processing, account administration, account self-service, thresholds, commerce experience, alerts, and dunning (collections) if required.

TreviPay processes online ecommerce orders for the following product types: physical, digital, and recurring. TreviPay does not support phone-in orders.

Benefits

Offering net terms online for business buyers streamlines the legacy accounts receivable and payable processes, alleviates cash flow constraints for buyers, and leads to increased buyer loyalty and higher average order values. With this payment method, Merchants remove their credit risk, offload collection responsibilities, and get paid upfront while their buyers pay over time.

How it works

Buyers select the TreviPay option at checkout, then they either login to the Merchant's profile to complete their purchase or apply for their line of credit. Upon approval, the buyer can complete their transaction, manage purchases, statements, and vendor forms through the buyer portal.

Promote the TreviPay credit solution

You can set up your storefront to promote the TreviPay credit solution.

TreviPay enrollment form

You can add a link to the enrollment form on your home page, product page, and checkout page. You can also add a link to the enrollment form from your customer relationship manager (CRM).

When a customer clicks the Apply Now button. The information they provide on the Enrollment Application page creates the Admin user.

The information provided on the Billing Contact page creates the Payer user.

When the customer completes the fields and clicks Next, the Credit Application appears.

When the client completes and submits the Credit Application, they will see a Congratulations message stating they successfully submitted their application.

Phone call

TreviPay will call the customer up to three times to gather information such as the customer's phone number so TreviPay can set up two-factor authentication (2FA) for the customer's account.

Email notification

The customer will later receive two emails. The first email will state the application has been submitted. The second email will state either the application for their account has been approved or declined. The validated customer can complete the purchase using two-factor authentication (2FA).

TreviPay does not require the customer to sign in to the client portal, but they do recommend it.

Configuring TreviPay for DigitalRiver.js

Create a TreviPay payment method for your app or website in four easy steps:

Step 1: Build the TreviPay object

A TreviPay source request object requires the following fields.

Field

Value

type

msts

amount

The total value of the transaction.

currency

The currency of the transaction.

msts

A TreviPay source details object that includes the details of the transaction.

TreviPay source details object

The TreviPay source details object requires the following fields.

{
"returnUrl": "https://mypage.com",
"cancelUrl": "https://mypage.com/cancel",
"items": [{
"name": "Cell Phone (Unlocked)",
"quantity": 1,
"unitAmount": 100
},
{
"name": "Headphones",
"quantity": 1,
"unitAmount": 15
}
],
"taxAmount": 0.99,
"shippingAmount": 5,
"amountsEstimated": true,
"shipping": {
"recipient": "John Doe",
"phoneNumber": "555-555-1212",
"address": {
"line1": "54321 Fake St.",
"line2": "Apt. 3C",
"city": "Minnetonka",
"state": "MN",
"country": "US",
"postalCode": "55341"
}
}
}

Field

Required/Optional

Description

returnUrl

Required

If you choose to use the full redirect flow, this is where you will redirect your customer after authorizing within the TreviPay experience. Note that the returnUrl must use https.

cancelUrl

Required

If you choose to utilize the full redirect flow, this is where you will redirect your customer after canceling within the TreviPay experience.

items

Required

An array of TreviPay item objects.

taxAmount

Required

The value of the total tax amount of the transaction.

shippingAmount

Required

The value of the total shipping amount of the transaction.

amountsEstimated

Required

A true/false flag to identify these amounts as estimated within the TreviPay experience. You can use this when authorization requires a final calculation of shipping rates or taxes.

requestShipping

Required

A true/false flag to tell PayPal to request the shipping address from the Shopper within the TreviPay experience.

shipping

Optional

A TreviPay shipping information object that may be populated if you have already captured the shipping address and wish to pre-populate it within the TreviPay experience.

TreviPay item object

A TreviPay item object requires the following fields.

{
"name": "Cell Phone (Unlocked)",
"quantity": 1,
"unitAmount": 100
}

Field

Required/Optional

Description

name

Required

The name of the item that appears in the TreviPay authorize screen.

quantity

Required

The quantity of the item that appears in the TreviPay authorize screen.

unitAmount

Required

The amount of the item.

TreviPay shipping information object

A TreviPay Shipping Information object requires the following fields.

{
"recipient": "John Doe",
"phoneNumber": "555-555-1212",
"address": {
"line1": "54321 Fake St.",
"line2": "Apt. 3C",
"city": "Minnetonka",
"state": "MN",
"country": "US",
"postalCode": "55341",
"country": "US"
}
}

Field

Required/Optional

Description

recipient

Required

The first and last name of the person receiving the shipment.

phoneNumber

Required

The phone number of the person receiving the shipment.

address

Required

A TreviPay shipping address object that contains the shipping address of the person receiving the shipment.

TreviPay shipping address object

A TreviPay shipping address object requires the following fields.

{
"line1": "54321 Fake St.",
"line2": "Apt. 3C",
"city": "Minnetonka",
"state": "MN",
"country": "US",
"postalCode": "55341"
}

Field

Required/Optional

Description

line1

Required

Line 1 of the customer's billing address.

line2

Required

Line 2 of the Customer's billing address.

city

Required

City of the customer's billing address.

state

Required

State of the customer's billing address.

postalCode

Required

Postal code of the customer's billing address.

country

Required

Country of the customer's billing address.

Step 2: Create a TreviPay agreement source using DigitalRiver.js

To create a TreviPay payment source, you must use the createSource method exposed via DigitalRiver.js.

JavaScript
JavaScript
var data = {
"type": "msts",
"sessionId": "ea03bf6f-84ef-4993-b1e7-b7d5ecf71d1f",
"msts": {
"returnUrl": "http://mypage.com",
"cancelUrl": "https://mypage.com/cancel"
}
}
digitalriver.createSource(data).then(function(result) {
if (result.error) {
//handle errors
} else {
var source = result.source;
//send source to back end
sendToBackend(source);
}
});

TreviPay source response example

Source response
Source response
{
"clientId": "gc",
"channelId": "drdod15",
"liveMode": false,
{
"clientId": "gc",
"channelId": "drdod15",
"liveMode": false,
"id": "d6a44e5d-1373-4013-847d-10deb4ded4df",
"clientSecret": "d6a44e5d-1373-4013-847d-10deb4ded4df_ddd44e5d-1373-4013-847d-10deb4ded4df",
"type": "msts",
"reusable": false,
"amount": "10.00",
"currency": "USD",
"state": "pending_redirect",
"creationIp": "209.87.178.4",
"createdTime": "2019-05-22T00:00:46.975Z",A
"updatedTime": "2019-05-22T00:00:46.975Z",
"flow": "redirect",
"redirect": {
"redirectUrl": "https://api.digitalriver.com:443/payments/redirects/b8f2207b-8236-4608-b5a2-812790d42ed8?apiKey=pk_test_6cb0fe9ce3124093a9ad906f6c589e2ds",
"returnUrl": "https://example.com?action=paymentSuccess",
"cancelUrl": "https://example.com?action=paymentFailure"
},
"msts": {
"shipping": {
"recipient": "John Doe",
"phoneNumber": "555-555-1212",
"address": {
"line1": "54321 Fake St.",
"line2": "Apt. 3C",
"city": "Minnetonka",
"state": "MN",
"country": "US",
"postalCode": "55341"
}
},
"token": "EC-1HD67063RG318840B"
}
}

Step 3: Authorize a TreviPay source

When you create a TreviPay source, the customer is required to authorize the charge at TreviPay. You can accomplish this by redirecting the customer to TreviPay to authorize the charge as part of your experience.

Redirecting the customer to TreviPay for authorization

To redirect your customer to TreviPay for authorization, use the redirectUrl parameter in your createSource response.

window.location.href = sourceResponse.redirect.redirectUrl;

At TreviPay, the customer can authorize or cancel the transaction when presented with the transaction details. If the authorization is successful, the customer will be redirected to the TreviPay Return URL parameter you specified when you created the source. If the customer cancels, they will be returned to the TreviPay Cancel URL parameter you specified.​

Step 4: Use the authorized source

Once authorized, you can use the source by attaching it to a checkout.

Attach the source to a checkout

POST /checkouts/{id}
POST /checkouts/{id}
{
"customerId": "5774321008",
"sourceId": "src_a78cfeae-f7ae-4719-8e1c-d05ec04e4d37"
}

Support matrix

Basics

Customer

Redirect

Payment Type

Buy Now Pay Later B2B

Requirements

Addendum

Yes

Supported Product Types

Physical / Digital

Both

Captures Funds when Physical Product Shipped or Digital Product Downloaded

Yes

Chargeback

Yes

Standard / Premium

Premium

Multiple / Partial

Yes

Recurring Payments

Yes

Supported markets

For information on supported markets and currencies for Drop-in and DigitalRiver.js, go to: