Optimize Evaluate

Optimize Evaluate is our new feature-rich risk management solution operating in real time during payment authorisation, as well as providing all the necessary tools for your fraud team to manage risk. For more information about our Optimize suite please follow this link.

Enabling Optimize Evaluate allows you to make informed decisions about whether to send the transaction for bank authorisation, decline it or defer it for manual review. We will return back to you the result of the fraud check and the summary of rules that were triggered via our API. Additional detail can be viewed in the Risk Management section in the merchant portal.

Optimize Evaluate is available to use on the following transaction types:

  • Payments
  • Authorisations
  • Payouts
  • Repeats

It is important to send as much as accurate data as possible on your API requests in order to make the most effective use of the Optimize products.

The API description below indicates which fields can be used in Optimize Fraud Evaluate and Optimize Investigate. Note for Optimize Investigate certain fields which are normally optional are mandatory and this is clearly highlighted below.

You can find more information on all our Optimize services here.

APIHosted
API Request & Response Examples
Card Payment with Optimize Evaluate and overall decision result is DEFER

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "101gbp4e6ff96d228d0d4FMeee100z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "avsAddressCheck" : "FULL_MATCH",
      "avsPostcodeCheck" : "FULL_MATCH",
      "cv2Check" : "MATCHED",
      "status" : "AUTHORISED"
    },
    "decision" : {
      "decisionResult" : "DEFER",
      "decisionSource" : "RULE",
      "requestedType" : "PAYMENT",
      "decidedType" : "PREAUTH",
      "rulesTriggered" : [ {
        "name" : "Test rule",
        "action" : "DEFER",
        "description" : "Test rule",
        "deferParameter" : "DECLINE"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "card" : {
      "cardToken" : "MT_k_6Z0JNfQ06zc8tVCso-zQ",
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : false,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "111gbp59d4d2c2f3dd0e9FMeee100z00",
      "receivedSchemeReference" : "101gbp4e6ff96d228d0d4FMeee100z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054231",
    "deferred" : true,
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "AUTHORISATION",
    "type" : "PREAUTH",
    "amount" : 100.00,
    "consumerSpend" : 0,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:38:11.538+01:00",
    "receivedTime" : "2021-05-27T14:38:11.538+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "T4MBF065XETGQ3eb6jddl7g",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054231"
  } ]
}
Card Payment with Optimize Evaluate and overall decision result is BLOCK

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "decision" : {
      "decisionResult" : "BLOCK",
      "decisionSource" : "RULE",
      "requestedType" : "PAYMENT",
      "decidedType" : "PAYMENT",
      "rulesTriggered" : [ {
        "name" : "Test rule",
        "action" : "BLOCK",
        "description" : "Test rule"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    }
  },
  "paymentMethod" : {
    "registered" : false,
    "card" : {
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : true,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054229",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "FAILED",
    "stage" : "FRAUD_RULES",
    "type" : "PAYMENT",
    "amount" : 100.00,
    "consumerSpend" : 0,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:36:20.523+01:00",
    "receivedTime" : "2021-05-27T14:36:20.523+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "FAILED",
    "reasonCode" : "A136",
    "reasonMessage" : "Rejected by fraud rules service"
  },
  "trace" : "T2hw4lerBg90eaUu9rqSvrg",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054229"
  } ]
}
Card Payment with Optimize Evaluate and overall decision result is PROCEED

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "111gbp22241e4dfc6eab6FMeee100z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "avsAddressCheck" : "FULL_MATCH",
      "avsPostcodeCheck" : "FULL_MATCH",
      "cv2Check" : "MATCHED",
      "status" : "AUTHORISED"
    },
    "decision" : {
      "decisionResult" : "PROCEED",
      "decisionSource" : "RULE",
      "requestedType" : "PAYMENT",
      "decidedType" : "PAYMENT",
      "rulesTriggered" : [ {
        "name" : "Test rule",
        "action" : "FORCE_ACCEPT",
        "description" : "Test rule"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "card" : {
      "cardToken" : "MT_k_6Z0JNfQ06zc8tVCso-zQ",
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : false,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "111gbp59d4d2c2f3dd0e9FMeee100z00",
      "receivedSchemeReference" : "111gbp22241e4dfc6eab6FMeee100z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054232",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 100.00,
    "consumerSpend" : 100.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:38:48.719+01:00",
    "receivedTime" : "2021-05-27T14:38:48.719+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "TpDQB_5Z63d5QpGMmL5mbgg",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054232"
  } ]
}
Card Payment with Optimize Evaluate and multiple rules triggered with different actions

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "111gbp802513d2a2eb50fFMeee100z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "avsAddressCheck" : "FULL_MATCH",
      "avsPostcodeCheck" : "FULL_MATCH",
      "cv2Check" : "MATCHED",
      "status" : "AUTHORISED"
    },
    "decision" : {
      "decisionResult" : "PROCEED",
      "decisionSource" : "RULE",
      "requestedType" : "PAYMENT",
      "decidedType" : "PAYMENT",
      "rulesTriggered" : [ {
        "name" : "Test rule",
        "action" : "BLOCK",
        "description" : "Test rule"
      }, {
        "name" : "Test rule 3",
        "action" : "DEFER",
        "description" : "Test rule 3",
        "deferParameter" : "DECLINE"
      }, {
        "name" : "Test rule 2",
        "action" : "FORCE_ACCEPT",
        "description" : "test rule 2"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "card" : {
      "cardToken" : "MT_k_6Z0JNfQ06zc8tVCso-zQ",
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : false,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "111gbp59d4d2c2f3dd0e9FMeee100z00",
      "receivedSchemeReference" : "111gbp802513d2a2eb50fFMeee100z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054234",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 100.00,
    "consumerSpend" : 100.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:41:57.105+01:00",
    "receivedTime" : "2021-05-27T14:41:57.105+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "Tj9tBUjGWkE8IJSaJn2x_4A",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054234"
  } ]
}
Card Payment with Optimize Evaluate and Negative list triggered

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "decision" : {
      "decisionResult" : "BLOCK",
      "decisionSource" : "NEGATIVE_LIST",
      "requestedType" : "PAYMENT",
      "decidedType" : "PAYMENT",
      "rulesTriggered" : [ {
        "name" : "Email Negative List",
        "action" : "NEGATIVE_LIST",
        "description" : "Negative List for Email values"
      }, {
        "name" : "Test rule 2",
        "action" : "FORCE_ACCEPT",
        "description" : "test rule 2"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    }
  },
  "paymentMethod" : {
    "registered" : false,
    "card" : {
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : false,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "111gbp59d4d2c2f3dd0e9FMeee100z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054239",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "FAILED",
    "stage" : "FRAUD_RULES",
    "type" : "PAYMENT",
    "amount" : 100.00,
    "consumerSpend" : 0,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:47:43.006+01:00",
    "receivedTime" : "2021-05-27T14:47:43.006+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "FAILED",
    "reasonCode" : "A136",
    "reasonMessage" : "Rejected by fraud rules service"
  },
  "trace" : "TmCRwjVcjEwAGqk4BL-44bw",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054239"
  } ]
}

Card Payment with Optimize Evaluate and Positive list triggered

POST /acceptor/rest/transactions/{instId}/payment
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 100.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "card" : {
      "pan" : "9902000000000018",
      "cv2" : "123",
      "expiryDate" : "0199",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "countryCode" : "GBR"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "email" : "test@example.com",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "ip" : "212.58.253.67"
  }
}

HTTP/1.1 201
{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "111gbp45882bd5c426682FMeee100z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "avsAddressCheck" : "FULL_MATCH",
      "avsPostcodeCheck" : "FULL_MATCH",
      "cv2Check" : "MATCHED",
      "status" : "AUTHORISED"
    },
    "decision" : {
      "decisionResult" : "PROCEED",
      "decisionSource" : "POSITIVE_LIST",
      "requestedType" : "PAYMENT",
      "decidedType" : "PAYMENT",
      "rulesTriggered" : [ {
        "name" : "Test rule",
        "action" : "BLOCK",
        "description" : "Test rule"
      }, {
        "name" : "Email Positive List",
        "action" : "POSITIVE_LIST",
        "description" : "Positive List for Email values"
      } ],
      "decisionReason" : "DERIVED_BY_TRIGGERED_RULE_ACTION"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "card" : {
      "cardToken" : "MT_k_6Z0JNfQ06zc8tVCso-zQ",
      "cardFingerprint" : "Q1MtNzQ5MjlhYmUtNGQ5Yi00MGM3LTg2ZGYtYWFmODg5NDg1NjRm",
      "new" : false,
      "cardType" : "VISA_DEBIT",
      "cardUsageType" : "DEBIT",
      "cardScheme" : "VISA",
      "cardCategory" : "DEBIT",
      "maskedPan" : "990200******0018",
      "expiryDate" : "0199",
      "issuer" : "PAY360 TESTING",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : {
      "line1" : "Flat 1 ",
      "line2" : "Cauldron house",
      "line3" : "A Street",
      "line4" : "Twertonia",
      "city" : "Bath",
      "region" : "Somerset",
      "postcode" : "BA1 234",
      "country" : "United Kingdom",
      "countryCode" : "GBR"
    },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "111gbp59d4d2c2f3dd0e9FMeee100z00",
      "receivedSchemeReference" : "111gbp45882bd5c426682FMeee100z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "12591054238",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 100.00,
    "consumerSpend" : 100.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-27T14:46:33.553+01:00",
    "receivedTime" : "2021-05-27T14:46:33.553+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "T1NhGqkiBhch_HqtNcnCKXw",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/12591054238"
  } ]
}
API Endpoint
endpoint: /acceptor/rest/transactions/{instId}/payment
method: POST
summary: process Payment

parameters:

Name
Data Type
Description
instId
The installation id
request body:
{
browserInfo {
userAgentHeader string
The Customer’s user agent.
}
sessionId string
Your reference for the Customer’s session.
transaction { Mandatory
currency string
Mandatory
Can be used in Optimize Fraud Checks.
The currency of your Customer’s transaction. Use the 3 character ISO-4217 code.
amount float
Mandatory
Can be used in Optimize Fraud Checks.
The amount of your Customer’s transaction.
commerceType string
Mandatory
Can be used in Optimize Fraud Checks.
Possible Values: ECOM, MOTO, CA
The commerce type for your Customer’s transaction.
channel string
Can be used in Optimize Fraud Checks.
Possible Values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, OTHER
The sales channel for your Customer’s transaction.
merchantRef string
Your reference for the transaction. Max length: 255. It’s recommended that you keep this unique.
deferred boolean
Indicates if you want the Payment to be Authorised and Captured separately.
recurring boolean
Can be used in Optimize Fraud Checks.
Set this field if you want to start a Continuous Authority relationship from this transaction.
description string
The description of the transaction. Maximum length: 255.
}
locale string
The ISO-639-1 code for your Customer’s locale.
customer {
id string
Our ID for the Customer where they are already registered with us.
update boolean
Indicates if you want to update the Customer’s details with the transaction.
email string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
Email address for the Customer.
merchantRef string
Conditional
Mandatory if using Optimize Investigate
Your reference for the Customer; should be unique to the customer. This is used as the key identifier of the customer in Optimize Investigate particularly for visualising past trends and identifying links between this customer and other transactions. Mandatory if registered is set to true or if using Optimize Investigate, otherwise optional.
dob string
Can be used in Optimize Fraud Checks.
Date of birth for the Customer.
billingAddress { The address of the Customer.
line1 string
Line 1 of the Customer’s address.
line2 string
Line 2 of the Customer’s address.
line3 string
Line 3 of the Customer’s address.
line4 string
Line 4 of the Customer’s address.
city string
City of the Customer’s address.
region string
Region of the Customer’s address.
postcode string
Post Code of the Customer’s address.
countryCode string
The 3 character ISO-3166-1 code for the Customer’s address country.
}
displayName string
Conditional
The Customer’s name. Not required if registered is set to false, mandatory otherwise.
telephone string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
Telephone number for the Customer.
ip string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
The Customer’s IP address. Additional data derived from this field such as IP Country can also be used in Optimize Fraud Checks.
registered boolean
Indicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true. Whether or not a user is being registered for the first time can be used in Optimize Fraud Checks
}
transactionOptions {
do3DSecure boolean
Indicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt boolean
If true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
}
paymentMethod { Mandatory
fromCustomer { Mandatory
Use if you want to use your Customer’s default card. This section is mandatory if you are not providing a token or full card details.
cv2 string
The Customer’s Card Security Code (CSC, CV2, CVV).
}
registered boolean
Can be used in Optimize Fraud Checks.
Indicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods. Whether or a not a card is being registered for the first time can be used in Optimize Fraud Checks.
card { Mandatory
Use if you want to provide your Customer’s card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer’s default card.
pan string
Mandatory
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
The card number. It is also used to derive additional data for example Issuing Bank that can be used in Optimize Fraud Checks.
cv2 string
The Card Security Code (CSC, CV2, CVV).
expiryDate string
Mandatory
The expiry date for the card. Provide as MMYY.
nickname string
The name the Customer provides for their card to allow easy selection where they register multiple cards.
defaultCard boolean
Can be used in Optimize Fraud Checks.
Indicates if the card being used should become the Customer’s default card.
cardHolderName string
Can be used in Optimize Fraud Checks.
The name printed on the card.
issueNumber number
The issue number for the card.
startDate string
The start date for the card. Provide as MMYY.
}
billingAddress Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
The billing address of the Customer. Will be used for AVS checks. We’ll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we’ve saved if you send new, empty or no values for each field.
line1 string
Line 1 of the Customer’s billing address. Can be used indirectly in Optimize Fraud Checks as part of the normalised customer address.
line2 string
Line 2 of the Customer’s billing address.
line3 string
Line 3 of the Customer’s billing address.
line4 string
Line 4 of the Customer’s billing address.
city string
Can be used in Optimize Fraud Checks.
City of the Customer’s billing address.
region string
Region of the Customer’s billing address.
postcode string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
Post Code of the Customer’s billing address.
countryCode string
Can be used in Optimize Fraud Checks.
The 3 character ISO-3166-1 code for the Customer’s billing address country.
}
}
}
response:
{
clientRedirect { Information about where to send your customer in the case of 3DS or a Callback.
frame string
Possible Values: CONTAINER, TOP
The redirect type when the transaction is set to suspend and redirect to a new URL.
pareq string
Returned when the transaction is suspended for 3DS authorisation.
url string
The URL the Customer should be redirected to.
}
transaction {
transactionId string
Our ID for the transaction.
deferred boolean
Indicates if the Payment capture is deferred.
merchantRef string
Your reference for the transaction.
merchantDescription string
The description of the transaction provided in the request.
status string
Possible Values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDED
The current state of the transaction.
type string
Possible Values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT
Indicates the type of the transaction.
amount float
Indicates the requested amount of the transaction.
consumerSpend float
Indicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency string
Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime string
The date and time we processed the transaction in ISO-8601 format.
receivedTime string
The date and time we received the transaction in ISO-8601 format.
commerceType string
Possible Values: ECOM, MOTO, CA
The Commerce Type of the transaction.
channel string
Possible Values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, OTHER
The Sales Channel of the transaction.
relatedTransaction { This field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId string
Our ID for the transaction that was original.
merchantRef string
Your reference for the transaction that was original.
}
}
processing { Information about the authorisation status of your transaction.
route string
The name of the processing engine your transaction was submitted to.
voidSuccessful boolean
Indicates if the transaction was voided by a Post Authorisation callback.
authResponse {
statusCode string
The code for the status received from the authoriser, if applicable.
acquirerReference string
The reference received from the authoriser for your transaction, if applicable.
acquirerName string
Name of the authoriser, if applicable.
message string
The message received from the authoriser, if applicable.
authCode string
The code received from the authoriser, if applicable.
gatewayReference string
The reference received from the processing engine.
gatewaySettlement string
The date the processing engine will settle the transaction. in YYYY-MM-DD format.
gatewayCode string
The code for the status received from the processing engine.
gatewayMessage string
The message received from the processing engine.
avsAddressCheck string
Possible Values: NOT_CHECKED, FULL_MATCH, NOT_MATCHED, NOT_PROVIDED
Results for the Address Verification checks, if applicable, if applicable.
avsPostcodeCheck string
Possible Values: NOT_CHECKED, FULL_MATCH, NOT_MATCHED, NOT_PROVIDED
Results for the PostCode Verification checks, if applicable.
cv2Check string
Possible Values: NOT_CHECKED, MATCHED, NOT_MATCHED
Results for the CV2 Verification checks, if applicable.
gatewayStatus string
The status received from the processing engine.
status string
Possible Values: AUTHORISED, DECLINED, REVERSED, REVERSE_FAILED, ERROR
The status received from the authoriser, if applicable.
}
decision { Information about the results of a Fraud check.
decisionResult string
Possible Values: BLOCK, DEFER, PROCEED.
The result of the Fraud check.
decisionSource string
Possible Values: RULE, NEGATIVE_LIST, POSITIVE_LIST, BLACKLIST, WHITELIST, TERRITORY MANAGEMENT, FRAUDGUARD.
What caused the Fraud check result.
decisionReason string
Possible Values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, DECIDED_BY_FRAUDGUARD, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGERED.
The reason for the decision.
requestedType string
Possible Values: PAYMENT, PREAUTH, PAYOUT, REPEAT.
The type of transaction that was submitted to Pay360.
decidedType string
Possible Values: PAYMENT, PREAUTH, PAYOUT, REPEAT.
The new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ An array containing information about the Optimize fraud rules triggered.
{
name string
The rule name.
action string
The action advised by the rule.
description string
The rule description.
}
]
}
}
threeDSecure { Information about the 3D Secure status of your transaction.
authenticationStatus string
Possible Values: AUTHENTICATED, ATTEMPTED, FAILED, ERROR
The status of 3DS authentication check.
authenticationIndicator string
Possible Values: Y, A, N, U
The indicator of the 3DS authentication status.
enrolmentDateTime string
The date and time the 3DS enrolment check was performed in ISO-8601 format.
scheme string
The scheme that processed the transaction for 3DS.
eci string
The eCommerce indicator for the transaction.
status string
Possible Values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTED
The overall 3DS result for the transaction.
xid string
The ID used during 3DS processing.
enrolmentIndicator string
Possible Values: Y, N, U
The indicator of the 3DS enrolment status.
enrolmentStatus string
Possible Values: ENROLLED, NOT_ENROLLED, UNABLE_TO_AUTHENTICATE
The status of the 3DS enrolment check.
}
customer { Information about the Customer.
id string
Our ID for the Customer.
merchantRef string
Your reference for the Customer.
}
outcome { Information about the overal outcome of the request.
reasonMessage string
A message indicating the overall outcome of the request. This is where we’ll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
status string
Possible Values: SUCCESS, FAILED
The overall outcome of the request.
reasonCode string
A code indicating the overall outcome of the request. Refer to Errors for more information.
}
paymentMethod { Information about the Payment Method used in the request.
paymentClass string
The classification of payment method used. Eg. Card, Cash, PayPal
registered boolean
Indicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary boolean
Indicates if this was Customer’s primary registered payment method.
card { Use if you want to provide your Customer’s card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer’s default card.
issueNumber string
The issue number of the card used in the request.
cardToken string
The token for the card.
cardHolderName string
The Cardholder’s name.
issuer string
The Issuer of the card.
maskedPan string
The masked card number. eg. 123456******1234
cardFingerprint string
An identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all.
issuerCountry string
The country of the card Issuer.
expiryDate string
The expiry date of the card. Formatted as MMYY.
validDate string
The valid from date of the card. Formatted as MMYY.
cardType string
The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType string
The usage type of card. Eg. DEBIT, CREDIT.
cardScheme string
The scheme of card. Eg. VISA, MASTERCARD, AMEX.
cardCategory string
The category of card. Eg. CREDIT, DEBIT, CORPORATE, BUSINESS.
cardNickname string
The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
}
billingAddress { The billing address of the Customer. Will be used for AVS checks. We’ll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we’ve saved if you send new, empty or no values for each field.
line1 string
Line 1 of the Customer’s billing address.
line2 string
Line 2 of the Customer’s billing address.
line3 string
Line 3 of the Customer’s billing address.
line4 string
Line 4 of the Customer’s billing address.
city string
City of the Customer’s billing address.
region string
Region of the Customer’s billing address.
postcode string
Post Code of the Customer’s billing address.
country string
Country name of the Customer’s billing address.
countryCode string
The 3 character ISO-3166-1 code for the Customer’s billing address country.
}
}
}
There is nothing special that needs to be done to use our hosted solution with Optimize Evaluate. You just need to create a hosted session in the usual way with an installation that has been enabled for Optimize Evaluate.

API Request & Response Examples
Initialise a hosted payment

POST /hosted/rest/sessions/{instId}/payments
{
  "session" : {
    "returnUrl" : {
      "url" : "http://www.example.com/transactionResult?MERCHANTREF=981703981703"
    }
  },
  "transaction" : {
    "merchantReference" : "981703981703",
    "money" : {
      "currency" : "GBP",
      "amount" : { 
         "fixed": 100
      }
    },
    "description" : "HFTransactionDescriptionFor-981703981703"
  },
  "customer" : {
    "identity" : {
      "merchantCustomerId" : "1111111111111"
    },
    "details" : {
      "name" : "given1 Family1",
      "address" : {
        "line1" : "line 1",
        "line2" : "line 2",
        "city" : "city",
        "region" : "region",
        "postcode" : "AVS111",
        "countryCode" : "GBR"
      },
      "telephone" : "012345678910",
      "emailAddress" : "test@example.com",
      "ipAddress" : "1.1.1.1",
    }
  },
  "customFields" : { }
}

HTTP/1.1 200
{
  "sessionId": "1a049590-53f9-458a-bb75-c8e71128fc40",
  "redirectUrl": "https://secure.mite.pay360.com/hosted/ef72637b-d567-409c-9b63-1cd5cf38beea/begin/1a049590-53f9-458a-bb75-c8e71128fc40",
  "status": "SUCCESS"
}
Hosted Endpoint
endpoint: /hosted/rest/sessions/{instId}/payments
method: POST
summary: process Payment

parameters:

Name
Data Type
Description
instId
The installation id
request body:
{
transaction { Mandatory
Details of the transaction you want to create.
merchantReference string
Your reference for the transaction.
money { Mandatory
currency string
Mandatory
Can be used in Optimize Fraud Checks.
The currency of your Customer’s transaction. Use the 3 character ISO-4217 code.
amount { Mandatory
Choose one of fixed, choice, range or suggested amount specifications. The amount the customer pays can be used in Optimize Fraud Checks.
fixed float
Choice
Use if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice { Choice
Use if you want your customer to select from a predefined set of amounts.
option [ array
Mandatory
Mandatory if Amount Choice included in the request.
item float
]
}
range { Choice
Use if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount. This can be overtyped by the customer if they want to.
min float
Mandatory if Amount Range included in the request and max value not present.
max float
Mandatory if Amount Range included in the request and min value not present.
default float
}
suggested { Choice
Use if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice { Mandatory
Mandatory if Suggested included in the request.
option [ array
Mandatory
item float
]
}
range { Mandatory
Mandatory if Suggested included in the request.
min float
max float
default float
}
}
}
}
description string
The description of the transaction.
commerceType string
Can be used in Optimize Fraud Checks.
Possible Values: ECOM, MOTO, CNP
The commerce type for your Customer’s transaction.
channel string
Can be used in Optimize Fraud Checks.
Possible Values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, OTHER
The sales channel for your Customer’s transaction. If no channel is provided we’ll automatically classify the channel as WEB
deferred boolean
Indicates if you want the Payment to be Authorised and Captured separately.
recurring boolean
Can be used in Optimize Fraud Checks.
Indicates that the Payment should initiate a Continuous Authority relationship.
do3DSecure boolean
Indicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
}
customer {
create boolean
Deprecated. Use ‘registered’ instead, as this will be removed in the future.
registered boolean
Can be used in Optimize Fraud Checks.
Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity { Conditional
Mandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId string
Choice
Our ID for your customer.
merchantCustomerId string
Choice
Mandatory if using Optimize Investigate.
Your ID for the customer. Should be unique for the customer. This is used as the key identifier of the customer in Optimize Investigate particularly for visualising past trends and identifying links between this customer and other transactions. Mandatory if registered is set to true or if using Optimize Investigation, otherwise optional.
}
details { Conditional
Mandatory when registering a new customer, optional otherwise.
name string
Conditional
The Customer’s name
Mandatory when registering a new customer, optional otherwise.
address { Conditional
Mandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields. The submitted values for those fields can be used in Optimize Fraud Checks and Investigate.
line1 string
Line 1 of the Customer’s address.
line2 string
Line 2 of the Customer’s address.
line3 string
Line 3 of the Customer’s address.
line4 string
Line 4 of the Customer’s address.
city string
City of the Customer’s address.
region string
Region of the Customer’s address.
postcode string
Post Code of the Customer’s address.
countryCode string
The 3 character ISO-3166-1 code for the Customer’s address country.
}
telephone string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
Telephone number for the Customer. Additional data derived from this field such as IP Country can also be used in Optimize FraudChecks.
emailAddress string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
Email address for the Customer.
ipAddress string
Can be used in Optimize Fraud Checks.
Can be used to identify links between transactions in Optimize Investigate.
The Customer’s IP address. Additional data derived from this field such as IP Country can also be used in Optimize FraudChecks.
}
}
financialServices { Mandatory for UK-based MCC 6012 merchants
dateOfBirth string
Mandatory for UK-based MCC 6012 merchants
Date of birth of the loan recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be “19800102”.
surname string
Mandatory for UK-based MCC 6012 merchants
Surname of the loan recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for “Smith”, this would be “Smith”; for “Williams”, this would be “Willia”.
accountNumber string
Mandatory for UK-based MCC 6012 merchants
Account number used to identify the customer or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode string
Mandatory for UK-based MCC 6012 merchants
First part of the postal code of the loan recipient; up to six characters. For example, if the postal code is “EC2A 1AE”, this would be “EC2A”.
}
locale string
The ISO-639-1 code for your Customer’s locale.
session { Mandatory
preAuthCallback { Details of the callback made before the transaction is sent for authorisation.
url string
Mandatory
The URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format string
Possible Values: REST_XML, REST_JSON
The format of the callback content.
}
postAuthCallback { Details of the callback made after the transaction is sent for authorisation.
url string
Mandatory
The URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format string
Possible Values: REST_XML, REST_JSON
The format of the callback content.
}
transactionNotification { Details of the notification sent after transaction completion.
url string
Mandatory
The URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format string
Possible Values: REST_XML, REST_JSON
The format of the callback content.
}
returnUrl { Mandatory
The URL that we will return your customer to after processing the transaction.
url string
Mandatory
}
cancelUrl { The URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url string
Mandatory
}
restoreUrl { The URL of Pay360 hosted session. We’ll take your customer to this URL in the event they cancel their PayPal payment with the “Cancel and return to….” link. You will need to use this field if you iFrame our hosted product.
url string
Mandatory
}
skin The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information.
}
features { Holder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration string
Possible Values: always, optional
Allow the customer to choose if they wish their payment method to be registered.
sendEmailReceipt boolean
If true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage boolean
If true, after processing the transaction the user will be shown a page with the result, including key details of the transaction, including amount, transaction id, merchant reference, etc. Default is false, meaning it is up to the merchant to inform the customer of the result of the transaction.
NOTE: This option is only available when using a version 2 hosted skin, see Skin Properties
}
}

When a Fraud check is performed we’ll provide information about the outcome of that check in the authorisation response. Below is a summary of the outcome fields you will receive.

processing { Information about the authorisation status of your transaction.
decision { Information about the results of a Fraud check.
decisionResult string
Possible Values: BLOCK, DEFER, PROCEED.
The result of the Fraud check.
decisionSource string
Possible Values: RULE, NEGATIVE_LIST, POSITIVE_LIST, BLACKLIST, WHITELIST, TERRITORY MANAGEMENT, FRAUDGUARD.
What caused the Fraud check result.
decisionReason string
Possible Values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, DECIDED_BY_FRAUDGUARD, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGERED.
The reason for the decision.
requestedType string
Possible Values: PAYMENT, PREAUTH, PAYOUT, REPEAT.
The type of transaction that was submitted to Pay360.
decidedType string
Possible Values: PAYMENT, PREAUTH, PAYOUT, REPEAT.
The new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ An array containing information about the Optimize fraud rules triggered.
{
name string
The rule name.
action string
The action advised by the rule.
description string
The rule description.
}
]
}

 

Rules

Rules for Optimize Evaluate are created via our merchant portal.


Rule Conditions

A rule is made up of one or more conditions which are evaluated to determine if a rule is triggered. There are a number of condition types available that will help you write rules specific to your business needs. The following condition types are currently available:

  • Geolocation
  • Simple
  • Velocity (count and sum)
  • Morphing
  • List
  • Comparison
  • Age

Details of conditions in a rule are not currently returned in our API response. You will need to view the rule in our merchant portal to see what conditions a rule is made up of.


Rule Actions

When creating a rule you must assign it an action that will input into the decision for what will happen to the transaction after all rules are evaluated. The available rule actions are:

  • Accept – Force accept the transaction
  • Block – Decline the transaction
  • Defer – Defer the transaction with an option of capture or decline after a specified time period
  • Test – Ignore this transaction. The transaction will proceed as normal and nothing will be returned on the API response. The transaction details in the Portal will indicate that the rule was triggered.

Rule Evaluation

The rules that are triggered are evaluated by our platform and an overall decision result will be determined. This decision result informs you what has happened to the transaction. The rule evaluation process looks at the action of each rule that has been triggered and uses an order of precedence to resolve conflicting actions. The possible decision results are:

  • DEFER – The transaction has been deferred. Deferred transactions will automatically be captured or declined based on the period configured in the dominant rule. Typically, deferred transactions will need to be accepted or rejected manually.
  • BLOCK – The transaction has been declined
  • PROCEED – The transaction has been allowed to go to authorisation

Territory Management Rules

Within the merchant portal it is possible to create territory management rules for blocking or deferring transactions based on country and location data such as customer IP address and country of card issue. There is a designated territory management section in the merchant portal for creating these rules. Territory management rules will be evaluated amongst all other rules that are triggered and will always take precedence over standard rules. Due to the nature and usage of these rules, a territory management rule with a Block action will take precedence over a territory management rule with a Defer action. In comparison, a standard rule with an action of Defer will take precedence over standard rule with an action of Block.


Rule Action Precedence

When multiple rules are triggered for the same transaction there is an order of precedence that determines what the overall decision result will be. The order of precedence is:

  1. Positive list
  2. Negative list
  3. Territory Management Block
  4. Territory Management Defer
  5. Accept
  6. Defer
  7. Block
  8. Test

3-D Secure and rules

3-D Secure is performed before rules are evaluated meaning that you can write rules based on the outcome or data provided from a 3-D Secure check. This applies to both 3-D Secure V1 and V2.


In-flight call-backs

Rules are evaluated before pre-authorisation call-backs are sent meaning the full details of the rule evaluation are provided in the pre-authorisation call-back request to the merchant. It is then possible to use the decision details returned to decide whether to proceed with or cancel the transaction. The exception to this is when a transaction is blocked by Optimize Evaluate, a Pre-Auth or Post-Auth call-back will not be sent in this case as the decision to block the transaction cannot be overturned by a call-back.

See In-flight call-backs for more details about call-backs.


Other reasons transactions may be rejected

Optimize Evaluate is not the only way that a transaction can be rejected or blocked. It is worth bearing in mind that there are other reasons why a transaction may not be completed successfully, including but not limited to:

  • Card declined by authoriser
  • Simple installation level card or IP velocity rules
  • Failure of system territory management rules (for gaming merchants)
  • 3-D Secure requirements
  • Transaction cancelled by In flight callbacks

Lists

Positive and Negative lists

When boarded you will be assigned 6 positive lists and 6 negative lists for the following data fields:

  • Card number
  • Email address
  • IP Address
  • Normalised Billing Address*
  • Billing Postcode
  • Telephone Number

* This uses the Advanced Payments normalisation standard of numeric digits from the first line of the address and postcode followed by the city name (in lower case and with non-alphanumeric characters removed).

The positive and negative lists can be edited and enabled individually via the merchant portal. If a data field from a transaction is matched on a negative lists then a rule with a NEGATIVE_LIST action will be returned and the transaction will be declined. If a data field from a transaction is matched on a positive then a rule with a POSITIVE_LIST action will be returned and the transaction will be accepted. Positive lists always take precedence over negative lists. Positive and negative lists are case sensitive, for example, ‘test@example.com is different from ‘Test@example.com’.


Custom Lists

Custom lists can be created for all available data types via the merchant portal. Once a list has been created it can be used in one or more rules via the List condition type.

It is worth noting that if a rule that uses a custom list is triggered, the API does not return any details of the list, it will only contain the details of the rule that uses the list. For this reason it is important to give your rules meaningful names.