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.
-
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.
-
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.
-
Test your integration in the sandbox environment.
Send test orders to
https://api-sandbox.kount.com/commerce/v2/ordersbefore you send production orders. -
Send each order to the Orders API before you request payment authorization.
Use a POST request with the
riskInquiryparameter set to true. Settransactions.authorizationStatus.authResulttonullor omit it.POST https://api.kount.com/commerce/v2/orders?riskInquiry=true
-
Include the card Bank Identification Number (BIN) in
transactions.payment.binand the last four digits of the card number intransactions.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.
-
Populate the Orders API fields that Authorization Optimizer shares with issuers.
For the list of fields, refer to Order fields for Authorization Optimizer.
-
Process the risk decision in your payment workflow.
-
If the decision is DECLINE, do not request payment authorization. If the decision is APPROVE, send the authorization request to your payment processor.
-
If the decision is REVIEW, follow your process to resolve the order’s decision.
-
-
Send the authorization result to the Orders Update PATCH endpoint.
Include
transactions.authorizationStatus.authResultand thetransactions.authorizationStatus.verificationResponseobject. Do not update riskInquiry.decision. -
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.
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.
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.
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"
}
}
}
]
}