Authorization Optimizer Integration Guide

Authorization Optimizer uses your existing Payments FraudPayments Fraud v2.0 integration. You do not call a new endpoint. To use Authorization Optimizer, you enroll, send orders to Payments Fraud before payment authorization, and populate the order fields that Authorization Optimizer shares with issuers.

Prerequisites

  • An active Payments Fraud v2.0 integration. For details, refer to the Payments Fraud v2.0 Integration Guide.

  • The Device Data Collector (DDC) implemented on your website or app.

  • A Kount 360 API key and a process to request bearer tokens.

  • A pre-authorization workflow, in which you request a risk decision before you request payment authorization. Authorization Optimizer does not support post-authorization workflows.

  • Card transactions processed in the United States.

How to integrate Authorization Optimizer

  1. Contact your Customer Success Manager to add Authorization Optimizer to your contract.

    After you sign the contract, an implementation engineer activates Authorization Optimizer for your account. Authorization Optimizer starts working immediately, and we notify you when it is active.

  2. Test your integration in the sandbox environment.

    Send test orders to https://api-sandbox.kount.com/commerce/v2/orders before you send production orders.

  3. Send each order to the Orders API before you request payment authorization.

    Use a POST request with the riskInquiry parameter set to true. Set transactions.authorizationStatus.authResult to null or omit it.

    POST https://api.kount.com/commerce/v2/orders?riskInquiry=true
  4. Include the card Bank Identification Number (BIN) in transactions.payment.bin and the last four digits of the card number in transactions.payment.last4.

    Caution

    Authorization Optimizer uses the BIN to identify participating issuers, and issuers use the BIN and last four digits to match the data to your authorization request. Orders without a BIN are not eligible for Authorization Optimizer.

  5. Populate the Orders API fields that Authorization Optimizer shares with issuers.

    For the list of fields, refer to Order fields for Authorization Optimizer.

  6. Process the risk decision in your payment workflow.

    1. If the decision is DECLINE, do not request payment authorization. If the decision is APPROVE, send the authorization request to your payment processor.

    2. If the decision is REVIEW, follow your process to resolve the order’s decision.

  7. Send the authorization result to the Orders Update PATCH endpoint.

    Include transactions.authorizationStatus.authResult and the transactions.authorizationStatus.verificationResponse object. Do not update riskInquiry.decision.

  8. Send every recurring billing transaction to Payments Fraud, not only the first transaction.

    For details, refer to How to Screen Recurring Transactions for Authorization Optimizer.

Note

During the first 30 days of your contract, issuers calibrate their models and do not apply optimizations. For details, go to How Authorization Optimizer works. Send as many order fields as possible. Issuers receive more context, and Payments Fraud scores the order more accurately.

Order fields for Authorization Optimizer

The following table lists the Orders API fields that Authorization Optimizer uses. Fields marked Required are necessary for Authorization Optimizer to send data for the transaction. We send fields without data to issuers as null.

Orders without device data

If you exclude device data from an order with the excludeDevice=true parameter, Authorization Optimizer still sends data to the issuer. The payload does not include device data.

Example order request

The following example shows an abbreviated Orders API request body with the fields that uses. All values are fictitious.

{
  "merchantOrderId": "3ace6a8dd218a4c7",
  "channel": "ACME_WEB",
  "deviceSessionId": "d121ea2210434ffc8a90daff9cc97e76",
  "creationDateTime": "2026-07-14T17:32:28Z",
  "items": [
    {
      "id": "SKU-1001",
      "price": 19999,
      "quantity": 1,
      "brand": "Acme",
      "category": "Sporting goods"
    }
  ],
  "transactions": [
    {
      "processorMerchantId": "5206080947171696",
      "payment": {
        "type": "CREDIT_CARD",
        "paymentToken": "<KHASH value>",
        "bin": "411111",
        "last4": "1111"
      },
      "orderTotal": 21500,
      "currency": "USD",
      "billedPerson": {
        "name": { "first": "First Name", "family": "Last Name" },
        "emailAddress": "first.last@example.com",
        "phoneNumber": "+12085550100",
        "address": {
          "line1": "123 Example St",
          "city": "Boise",
          "region": "ID",
          "countryCode": "US",
          "postalCode": "83702"
        }
      }
    }
  ]
}
Was this article helpful?
0 out of 0 found this helpful