FlexFactor
FlexFactor payment gateway designed for reattempt processing with specialized configuration for declined transaction recovery and secondary payment attempts.
FlexFactor is a decline recovery gateway. It never originates a sale of its own — Vrio only ever hands it a transaction that has already been declined somewhere else, and the previous attempt is sent with the order so FlexFactor can judge it.
That shapes where it fits. A FlexFactor merchant is not attached to a campaign and is not added to a payment router's available merchants, because neither of those is a decline. Instead you place it at one of the two points where Vrio already has a decline in hand:
- A checkout decline — as the reattempt merchant on a router's initial decline reattempt, salvaging the sale while the customer is still in checkout.
- A renewal decline — through the FlexFactor dunning connection, which recovers failed renewals on its own schedule.
The checkout decline merchant is configured under Setup below.
Supported Functionality
| Feature | Supported |
|---|---|
| Authorization | ✅ |
| Capture | ✅ |
| Refund | ✅ |
| Void | ❌ Full refund issued |
| Card Tokenization | ❌ |
| Dynamic Merchant Descriptors | ✅ |
| 3D Secure | ✅ Pass your own |
| $0 Transactions | ❌ |
FlexFactor can only be used in Vrio as a reattempt merchant and not for the first attempt. Please refer to this guide for more information.
Setup
To connect a Merchant using the FlexFactor Gateway,
- First add Merchant
- Select FlexFactor as the Gateway
- Add Gateway Details as outlined below
| Gateway Details | Description |
|---|---|
| Api Key* | provided by FlexFactor |
| Api Secret* | provided by FlexFactor |
| Mid* | provided by FlexFactor |
| Site ID* | provided by FlexFactor |
| Sandbox | Check this box if these are sandbox credentials. When checked, requests are sent to the FlexFactor sandbox environment. |
| Pass Merchant Descriptor | When checked, the merchant descriptor set on the Merchant Account is sent to FlexFactor with the charge. See Dynamic Merchant Descriptors. |
| Merchant Payment Methods* | The types of payment methods this merchant accepts — credit card only. |
| Merchant Card Types* | Card types to be accepted on this Merchant |
| Merchant Default Currency* | Default currency that will be used, if currency is not specified |
| Merchant Currencies* | All currencies accepted on this merchant |
*Required
Recovering an initial decline
Salvages a checkout decline while the customer is still in the checkout process.
- Add the FlexFactor merchant as above
- Open the router and go to the Advanced Routing tab
- Check Reattempt Initial Declined, then Reattempt on a specific Merchant
- Select the FlexFactor merchant
See Initial Decline Reattempts for the full set of reattempt options.
Recovering a renewal decline
Renewal declines are recovered through the FlexFactor dunning connection, not through the merchant configured above. The connection runs on its own schedule and is set up separately.
Supported Payment Methods
Credit Card
Void
FlexFactor has no void operation.
Voiding a transaction in Vrio issues a full refund of the original charge instead.
Card Tokenization
FlexFactor does not store cards. Card data is sent on every charge.
Dynamic Merchant Descriptors
When Pass Merchant Descriptor is checked, Vrio sends the Merchant Account descriptor with every charge, or a merchant_descriptor passed when the order is processed, which is then reused for that order's renewals.
If the order later moves to a different merchant, that merchant's descriptor is used instead.
3D Secure
FlexFactor accepts 3D Secure authentication data that you generate with a third party provider. Values are sent whenever authentication data exists on the order for the cycle being charged.
| Vrio | FlexFactor |
|---|---|
order_eci | threeDSecure.ecommerceIndicator |
order_cavv | threeDSecure.authenticationValue |
order_xid | threeDSecure.xid |
order_cardholder_auth | threeDSecure.authenticationResponseStatus |
order_3ds_enrollment_status | threeDSecure.enrolled |
order_3ds_version | threeDSecure.threeDsVersion |
order_3ds_ds_transaction_id | threeDSecure.directoryServerTransactionId |
See Third Party 3DS Providers for the full parameter reference.
Testing
Note : Placing test orders using FlexFactor test cards will not automatically set the order as a test in Vrio. Be sure to flag the order as a test using the is_test flag after the order is processed. For more details on placing test orders, click here.
For FlexFactor test cards, check here.
Updated 2 days ago
