Signifyd#
Overview#
Signifyd allows you to ship more orders and automate your back office via its industry leading fraud prevention tool which is able to assume risk for orders and offer you a “Fraud Guarantee.” If you ship any order Signifyd guarantees, and it turns out to be fraud, they will pay you back within 48 hours including charge back fees and shipping.
In addition to a fraud guarantee you’ll also get access to a robust dashboard of data about each order:
Installation & Setup#
The Signifyd module can be download from the Miva App Store here. Once downloaded upload it to your Miva store under: Settings -> Domain Settings -> Modules and select the Add Module button. Finally, assign the module to your store. Go to Settings -> Modules find the module and click install.
Adding Your API Key#
Once installed you’ll see a new tab under Order Fulfillment Settings labeled Signifyd where the API key and currency can be set. See how to generate your API key here.
Configure Automatic Case Creation By Source#
Added in version 1.0002 or later, the Signifyd module now lets you configure when you want Miva to create a case in Signifyd. The default is only for orders placed by the shopper.
- By Shopper: This is the default setting and will create a case in Signifyd for every order place on the front end by the shopper.
- By Admin User: With this enabled, after an order is manually created in the admin, if you trigger Order Fulfillment module via the admin, it will create a case in Signifyd.
- By Subscription Reorder: This will cause all orders created via a subscription to create a case.
Shipping Method Mappings#
Signifyd has a pre-determined list of shipping method values it accepts. The Signifyd Shipping Method Mappings tab allows you to map the shipping methods you have setup in Miva to the approved values Signifyd accepts. For common shipping modules such as UPS, USPS or FedEx, Miva will attempt to auto map the Miva methods to Signifyd Methods. If you’re using flat rate shipping or any sort of table based shipping, you will need to map your shipping methods in Miva to the carrier and method in Signifyd.
Device Fingerprint JavaScript#
When the module is installed, it automatically adds JavaScript to every page for tracking and device fingerprinting. The JS will appear in the head tag and look like this:
<script src="https://embed.cacher.io/84046b800567ae16aafe16c75e7b19f37d58ab12.js?a=7ebf9eaf17829987da7daa7746df3b30&t=atom_one_dark"></script>
The order-data-session-id
is a unique tracking id per shopper (generated automatically by Miva) and will be used to link the shopper to the order.
The JS will be output to any page which has the signifyd_fingerprint
component assigned. Upon installation this item is automatically assigned to all front end pages but if you create a new page such as as alternate page display you’ll also want to assign the item to any new page as well so that it is also tracked by Signifyd.
Note
If you want to validate your device fingerprinting script is tracking correctly, you can type this command into the console of your web browser developer tools: SIGNIFYD_GLOBAL.scriptTagHasLoaded()
Cases#
Each time an order is placed, Miva will make an API call to Signifyd to create a “case”. Cases are orders submitted to Signifyd for review. A case contains payment, recipient, product, shipping, and account information. Signifyd will then use the data it has about the order to determine if it can issue a guarantee on the order.
Cases are always created automatically when the customer places an order on the website. If a order is placed via the Miva admin, such as a phone order a case can still be created, however it requires manually clicking a button to send the order data to signifyd. To manually send an order to Signifyd, click the Signifyd link at the top left of an order.
This is also useful should the Signifyd API be down and you need to resend an order to Signifyd.
Note
If a Signifyd case already exists for the order, clicking this link will show the responses back from Signifyd and the guarantee (if one was available)
Payment Data Sent#
In addition to standard order and item data, Miva will also send certain payment data for the following payment modules:
- Authorize.net
- Braintree
- Cybersource
- Chase Paymentech
- PayPal Commerce
- Square
The following chart shows which data is passed for each payment module:
Module | Transaction ID | AVS Response Code | CVV Response Code | Cardholder Name | Last 4 | Exp. Month | Exp Year | bin | billing address |
---|---|---|---|---|---|---|---|---|---|
Authorize.net | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes |
Braintree | Yes | Yes | Yes | No | Yes | No | No | No | Yes |
Cybersource | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
Chase Paymentech | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes |
PayPal Commerce | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
Square | Yes | No | No | No | Yes | No | No | No | Yes |
Note
Because Miva does not have access to the card number for the gateway integrations, the BIN Bank Identification Number (first 6 or 8 digits of card number) is never sent for any gateway.
For all other gateways not listed above, no card data is sent to Signifyd, although the billing address will be sent. The data above is sent regardless of if you’re using MivaPay or not.
Webhooks#
A case is created in Signifyd immediately after an order is placed on the website. Signifyd will use the data it has collected to determine if it can issue a guarantee for the order. This decision is typically made within seconds however this could be delayed up to a few hours should the case require manual review.
Once a decision on the order has been made (typically in a few seconds), Signifyd will make a call back to Miva to update the Order with the decision data. This process happens automatically.
Miva registers an API endpoint for the webhook each time the Signifyd API key is updated in the Miva admin. Should you ever need to update the API key in Miva, a new webhook will be created. The Webhook Miva supports is the “Guarantees/Completion” Webhook. This allows Miva to get notified when an order/case gets a decision on whether or not Signifyd can guarantee the order.
Note
Should you be using Signifyd on multiple stores, setup as a mall or in a multi-domain scenario, each store/domain requires its own unique API key. You do not want to re-use API keys across separate stores or domains.
Viewing Signifyd Response#
Once a response has been sent from Signifyd, it will be available to view in two places in Miva:
- Order Batch List - All of the Signifyd response data is available as Order Custom Fields so they are viewable, searchable and sortable in the Orders Batch List.
- Order Details - When viewing any order click the Signifyd link at the top left and a modal will show you all the Signifyd Response Data.
Order Workflows & Order Queues#
The integration with Signifyd was designed so that it can be used with Miva’s Order Workflow tools. Every response value is available to add a custom rule against. Below are the field codes for reference:
Signifyd Response Parameters#
Field | Type | Description |
---|---|---|
case_id |
Number | Case Id of case in Signifyd. |
headline |
String | Headline, typically Customer Name. |
uuid |
String | uuid. |
status |
String | Status. |
r_disp |
String | Review Disposition. |
order_id |
Number | Miva Order Id. |
order_amt |
Number | Miva Order Amount. |
order_out |
String | Order Outcome. |
currency |
String | Currency of Payment for the Order. |
score |
Number | Signifyd Fraud Score. |
is_test |
Boolean | Flag for Test Case (ie using Sandbox). |
g_disp |
String | Will have a value of “Approved” if order is guaranteed. |
g_eligible |
Boolean | 0 or 1 for if Signifyd will guarantee the order. |
dt_order |
Date/Time | Order Date. |
dt_created |
Date/Time | Case Creation Date Time. |
dt_updated |
Date/Time | Date Time Case Last Updated. |
Leveraging Order Workflows in Miva its possible to create custom Order Queues as well as Workflows to automatically move an order into a queue based on the result of the Signifyd response data.
Each field can be referenced as an order custom field in the following format:
order:CustomField_Values:signifyd:my_custom_field
Where my_custom_field
is the custom order field code (see chart above) you want to run the condition against.
Wait Until True#
Because the Signifyd response data can get updated in Miva anywhere from a few seconds after the order is place up to a few hours, its important to use “Wait Until True” feature of the Order Workflow to periodically check the order for the Signifyd Response. Here we are telling Miva to check the order ever minute for up to 2 hours.
To learn more about Miva’s Order Workflows please click here.
Shipment Notification#
When an shipment gets marked as shipped in Miva, we will make an API call to Signifyd to pass them the tracking number and other relevant shipment data. This API call or data is not available to view in the Miva admin, but it helps Signifyd complete a charge back case, should one occur. The following link is an example of the data which gets sent in this request - Signifyd API Reference
Provisioning#
The following XML Provisioning is supported to update the API key.
<Module code="signifyd" feature="fulfill">
<Settings>
<APIKey>api key</APIKey>
<Currency>US</Currency>
</Settings>
</Module>
JSON API#
The Signifyd Response values are available when pulling down orders using OrderList_Load_Query
and QueueOrderList_Load_Query
. To have the Signifyd data returned in the response you first need to ensure you’re passing the ondemandcolumn
of CustomField_Values:*
(which will return you data from all modules which have custom field data including Signifyd) or if you want only the signifyd data you can use CustomField_Values:signifyd:*
Example Response:
"CustomField_Values": {
"signifyd": {
"case_id": 995622793,
"headline": "",
"uuid": "",
"status": "",
"r_disp": "",
"order_id": 1056,
"order_amt": 18,
"order_out": "",
"currency": "USD",
"score": 0,
"is_test": 0,
"g_disp": "Guarantee",
"g_eligible": 0,
"dt_order": "1557249497",
"dt_created": "1557249497",
"dt_updated": "1557249497"
}
}
Activating & Deactivating#
In some cases it may be helpful to be able to deactivate the Signifyd plugin without losing your configuration settings. To do deactivate the module go to Setting -> Domain Settings -> Signifyd -> toggle active checkbox. Deactivating the module this way will keep all the settings and configuration intact when you choose to reactive it.