Refund Abuse (Checkout Only)

Merchants can use Forter to block customers attempting to abuse a generous refund policy

Refund Abuse Prevention Integration Guide

The full Returns/"Item Not Received" Abuse Forter integration at checkout allows merchants to prevent bad actors from exploiting customer friendly returns, "Item Not Received", and Refund policies by providing a decision and/or recommendation at checkout time by leveraging Forter's Trusted Conversion APIs.

  1. Place Forter’s JavaScript snippet on your website (use our dedicated mobile SDKs for native mobile app) to allow us to analyze customers’ profiles as necessary for trust assessments
  2. Send Forter your basic order data to get a real-time trust assessment and recommendations
  3. Send Forter your post-order updates, including your payment authorization status (for pre-auth integrations) and order fulfillment status, and compensation status
  4. Send Forter chargeback data to enable Forter’s system to learn and continually improve future decisions, tailoring our system to your company’s needs.

Integration Steps (Checkout Only)

Step 1: Set Up Forter JavaScript Snippet

In your dedicated Forter portal, you will receive a JavaScript snippet for both sandbox and production. You'll paste the script on the appropriate pages of your site so that it can load and asynchronously collect important behavioral data from your customer. The script will also generate a unique token for each user on your site that should be included in the Validation API request.

Step 2: Validation API

Validation API Request

The Validation API can be called *prior* to or *after* the call made to your payment gateway to authorize customer funds. This API is used to provide Forter with all relevant data points that will help Forter determine whether the entity conducting the transaction/engagement is legitimate or fraudulent. Key data points include:
  • Order ID - the unique identifier for the order in your system
  • Account Data - Information collected about the account owner such as the account owner name, email, etc..
  • Authorization Step - an indicator that the API is being called prior to authorization
  • Device and browsing data, to enable our system to distinguish between legitimate and suspicious signals
  • Payment Data such as Credit card BIN, last 4, expiration date ( Note - Forter is PCI DSS Level 1 Certified and does NOT collect the full credit card)
  • Billing Address details (when applicable)
  • Recipient details such as name, address, phone and email
  • Cart Item Data - details about the goods being purchased. Note some item data will depend on the vertical of the merchant (e.g. travel items contain different data than apparel items)

For more details and code samples please see our Validation API Reference.
Depending on your precise industry and use case, we may ask for some extra data points that aren’t in this table, but they’ll all be the same kind of information you see listed here - data points which have an obvious relevance and impact when it comes to making sure you can trust the right customers on your site.

In the case of a Pre-auth integration, Forter can return a decision and a recommendation prior to the PSP/gateway authorizing the payment. In some cases, we may request you make an extra API call post-auth, so we can incorporate the relevant new information from the auth request into our decisions.

Validation API Response
The API response will contain Forter's decision and applicable recommendations (for example, relating to policy enforcement or 3DS). We may ask your company to make an additional API call post-auth in order to provide an updated decision once supplemental data such as AVS/CVV check and 3DS data are available, as this data can play a helpful role in ensuring accurate decisions. For more details and code samples please see our Order Validation API Reference

Step 3: Order Status API

**Order Status API Request** The Order Status API is used to provide Forter with updates after the initial decision was made in order to provide valuable information to inform our decision models after the order was submitted. It does not provide updated decisions. We use the orderID provided in the Pre-Auth Validation API as the identifier to connect to the original order and ensure orders are tracked seamlessly.

Important data for this purpose includes:

  • orderId - of the full reservation details sent via order validation API
  • correlation ID - to the corresponding compensation request (when applicable)
  • Compensation Request Data - the main object that contains all relevant data about the compensation (whose structure will vary given item level/order level integration). It includes:
    the amount that was requested
    the channel through which the request was made,
    the type of compensation that was requested by the consumer (e.g. Replacement, Refund, etc..)
    the reason provided for the request (e.g. Damaged Goods)
    For more details and code samples please see our Order Status API Reference
  "orderId": "2356fdse0rr4",
  "eventTime": 1661893713000,
  "updatedStatus": "PROCESSING",
   "compensationStatus": {
    "itemStatus": [
        "basicItemData": {
          "name": "White GenericBrand handbag",
          "quantity": 1,
          "type": "TANGIBLE",
          "price": {
            "amountUSD": "99.95",
            "amountLocalCurrency": "105.55",
            "currency": "CAD"
          "productId": "Ag54352R7768kkO",
          "productIdType": "SKU",
          "secondaryProductId": "2h8331lg4692B45p",
          "secondaryProductIdType": "ISBN",
          "category": "Apparel and accessories",
          "discount": {
            "couponCodeUsed": "FATHERSDAY2015",
            "discountType": "COUPON"
          "commerceItemType": null
        "statusData": {
          "updatedStatus": "ACCEPTED_BY_MERCHANT",
          "compensationTypeGranted": "REFUND",
          "reasonCategory": "CHANGED_MY_MIND",
          "returnMethodGranted": "SHIP_TO_WAREHOUSE",
          "internalReasonCategory": "defective item",
          "returnCondition": "DAMAGED",
          "statusLog": {
            "shippedByCustomerTime": 1420070400000,
            "arrivedToWarehouseTime": 1420070400000
    "totalGrantedAmount": {
      "amountUSD": "99.95",
      "amountLocalCurrency": "105.55",
      "currency": "CAD"
    "replacementOrderId": "2356fdse0rr489",
    "shippingRefunded": false,
    "shippingRefundedAmount": {
      "amountUSD": "99.95",
      "amountLocalCurrency": "105.55",
      "currency": "CAD"
    "hasProofOfPurchase": false
  "updatedMerchantStatus": "customer requested refund",
  "statusChangeReason": "Fraud_Team_Manual_Decline"

Order Status API Response
The response details whether or not the order status update was completed successfully. It will NOT return a new decision.

Step 4: Claims API

The Claims API is used to notify Forter about chargebacks and fraud alerts. This is extremely important because it enables Forter’s system to learn and continually improve future decisions, tailoring our system to your company’s needs.

The Claims API is used to provide Forter with information about chargebacks and fraud alerts in order to improve future decisions (and allow Forter to reimburse covered merchants). The full Claims API Request and Response data can be found in our Claims API Reference.