E-commerce Fraud & Order Risk API Documentation
Read a supplied order history, compare patterns across those orders, and separate indicators from confirmed fraud. Payment is the exact USDC price on Base with x402.
https://brainiac.software/api/v1/ecommerce-fraud/suspicious-order-detect$0.05 USDCDetect suspicious order patterns
Compare supplied amounts with a Tukey fence when 8 orders share a currency, and with a customer's own median when that customer has at least four amounts. A new address counts only after earlier orders. One signal is an indicator, not confirmed fraud.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "O-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 400,
"currency": "USD",
"status": "paid",
"address": "9 Other St, 20002",
"country": "US",
"billCountry": "CA"
},
{
"id": "O-5",
"customer": "C-2",
"created": "2026-11-01",
"amount": 19,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
},
{
"id": "O-6",
"customer": "C-3",
"created": "2026-11-01",
"amount": 23,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "GB"
},
{
"id": "O-7",
"customer": "C-4",
"created": "2026-11-01",
"amount": 18,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
},
{
"id": "O-8",
"customer": "C-5",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "review",
"fences": [
{
"currency": "USD",
"applied": true,
"lower": 16,
"upper": 26,
"sample": 8
}
],
"signals": [
{
"code": "amount_outlier",
"rule": "tukey_1_5_iqr",
"detail": "1 of 8 supplied USD amounts are outside the Tukey fence 16 to 26. This is a statistical outlier, not confirmed fraud.",
"confirmed": false,
"orders": [
"O-4"
]
},
{
"code": "amount_vs_history",
"rule": "above_3x_median",
"detail": "Order O-4 is above 3 times the median of this customer's other supplied USD amounts (O-1, O-2, O-3). This is one indicator.",
"confirmed": false,
"orders": [
"O-4"
]
},
{
"code": "address_changed",
"rule": "new_address_after_history",
"detail": "Order O-4 uses a shipping address that does not match this customer's earlier supplied orders (O-1, O-2, O-3).",
"confirmed": false,
"orders": [
"O-4"
]
}
],
"orders": [
{
"id": "O-4",
"customer": "C-1",
"signalCount": 3,
"level": "review",
"signals": "amount_outlier,amount_vs_history,address_changed"
},
{
"id": "O-1",
"customer": "C-1",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-2",
"customer": "C-1",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-3",
"customer": "C-1",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-5",
"customer": "C-2",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-6",
"customer": "C-3",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-7",
"customer": "C-4",
"signalCount": 0,
"level": "none",
"signals": ""
},
{
"id": "O-8",
"customer": "C-5",
"signalCount": 0,
"level": "none",
"signals": ""
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "observation",
"code": "country_mismatch",
"subject": "O-4",
"detail": "The supplied ship and bill countries differ. One mismatch is not a pattern and is not a fraud finding."
},
{
"kind": "observation",
"code": "country_mismatch",
"subject": "O-6",
"detail": "The supplied ship and bill countries differ. One mismatch is not a pattern and is not a fraud finding."
},
{
"kind": "indicator",
"code": "amount_outlier",
"subject": "O-4",
"detail": "1 of 8 supplied USD amounts are outside the Tukey fence 16 to 26. This is a statistical outlier, not confirmed fraud."
},
{
"kind": "indicator",
"code": "amount_vs_history",
"subject": "O-4",
"detail": "Order O-4 is above 3 times the median of this customer's other supplied USD amounts (O-1, O-2, O-3). This is one indicator."
},
{
"kind": "indicator",
"code": "address_changed",
"subject": "O-4",
"detail": "Order O-4 uses a shipping address that does not match this customer's earlier supplied orders (O-1, O-2, O-3)."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/suspicious-order-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "O-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "paid",
"address": "1 Main St, 10001",
"country": "US",
"billCountry": "US"
},
{
"id": "O-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 400,
"currency": "USD",
"status": "paid",
"address": "9 Other St, 20002",
"country": "US",
"billCountry": "CA"
},
{
"id": "O-5",
"customer": "C-2",
"created": "2026-11-01",
"amount": 19,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
},
{
"id": "O-6",
"customer": "C-3",
"created": "2026-11-01",
"amount": 23,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "GB"
},
{
"id": "O-7",
"customer": "C-4",
"created": "2026-11-01",
"amount": 18,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
},
{
"id": "O-8",
"customer": "C-5",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "paid",
"country": "US",
"billCountry": "US"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/card-testing-pattern-detect$0.05 USDCDetect card-testing patterns
Group supplied card fingerprints. Three or more declines on one fingerprint, or three or more cards for one customer, are indicators. A small-amount rule is used only when the caller supplies it. No payment is retried.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "T-1",
"customer": "C-1",
"created": "2026-11-04T10:00",
"amount": 1,
"currency": "USD",
"status": "declined",
"card": "424242-4242"
},
{
"id": "T-2",
"customer": "C-1",
"created": "2026-11-04T10:05",
"amount": 1,
"currency": "USD",
"status": "declined",
"card": "424242-4242"
},
{
"id": "T-3",
"customer": "C-1",
"created": "2026-11-04T10:12",
"amount": 1,
"currency": "USD",
"status": "failed",
"card": "424242-4242"
},
{
"id": "T-4",
"customer": "C-2",
"created": "2026-11-04T11:00",
"amount": 40,
"currency": "USD",
"status": "paid",
"card": "400000-1234"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "indicator",
"signals": [
{
"code": "decline_cluster",
"rule": "min_orders_same_card",
"detail": "3 supplied orders for card 424242-4242 (C-1) are declined or failed. No payment was retried.",
"confirmed": false,
"orders": [
"T-1",
"T-2",
"T-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "observation",
"code": "small_amount_rule_missing",
"subject": "",
"detail": "No small-amount rule was supplied, so low amounts were not treated as card testing."
},
{
"kind": "indicator",
"code": "decline_cluster",
"subject": "T-1",
"detail": "3 supplied orders for card 424242-4242 (C-1) are declined or failed. No payment was retried."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/card-testing-pattern-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "T-1",
"customer": "C-1",
"created": "2026-11-04T10:00",
"amount": 1,
"currency": "USD",
"status": "declined",
"card": "424242-4242"
},
{
"id": "T-2",
"customer": "C-1",
"created": "2026-11-04T10:05",
"amount": 1,
"currency": "USD",
"status": "declined",
"card": "424242-4242"
},
{
"id": "T-3",
"customer": "C-1",
"created": "2026-11-04T10:12",
"amount": 1,
"currency": "USD",
"status": "failed",
"card": "424242-4242"
},
{
"id": "T-4",
"customer": "C-2",
"created": "2026-11-04T11:00",
"amount": 40,
"currency": "USD",
"status": "paid",
"card": "400000-1234"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/bulk-order-abuse-detect$0.04 USDCDetect bulk-order patterns
Flag a shipping address only when it appears on at least three supplied orders. Combined quantity is compared with a caller rule across those orders. One large order is not a bulk pattern.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "B-1",
"customer": "C-1",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-2",
"customer": "C-2",
"created": "2026-11-02",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-3",
"customer": "C-3",
"created": "2026-11-03",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-4",
"customer": "C-9",
"created": "2026-11-04",
"address": "9 Side St, 30003",
"quantity": 40
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "indicator",
"signals": [
{
"code": "shared_address",
"rule": "min_orders_same_address",
"detail": "3 supplied orders use the same shipping address across 3 customer key. No order was blocked.",
"confirmed": false,
"orders": [
"B-1",
"B-2",
"B-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "observation",
"code": "quantity_rule_missing",
"subject": "",
"detail": "No quantity rule was supplied. Bulk quantity was not inferred."
},
{
"kind": "indicator",
"code": "shared_address",
"subject": "B-1",
"detail": "3 supplied orders use the same shipping address across 3 customer key. No order was blocked."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/bulk-order-abuse-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "B-1",
"customer": "C-1",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-2",
"customer": "C-2",
"created": "2026-11-02",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-3",
"customer": "C-3",
"created": "2026-11-03",
"address": "1 Main St, 10001",
"quantity": 2
},
{
"id": "B-4",
"customer": "C-9",
"created": "2026-11-04",
"address": "9 Side St, 30003",
"quantity": 40
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/refund-abuse-pattern-detect$0.04 USDCDetect refund patterns
Count supplied orders whose status is refunded. A customer needs at least three refunds before a repeat pattern is reported. A single refund is not treated as abuse.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "R-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 20,
"currency": "USD",
"status": "paid"
},
{
"id": "R-5",
"customer": "C-2",
"created": "2026-11-04",
"amount": 18,
"currency": "USD",
"status": "refunded"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "review",
"signals": [
{
"code": "repeat_refund",
"rule": "min_refunded_orders",
"detail": "Customer C-1 has 3 supplied orders with status refunded.",
"confirmed": false,
"orders": [
"R-1",
"R-2",
"R-3"
]
},
{
"code": "refund_rate",
"rule": "refunded_share_at_least_half",
"detail": "Customer C-1 has 3 refunded orders out of 4 supplied orders. The share is at least half and at least 3 refunds.",
"confirmed": false,
"orders": [
"R-1",
"R-2",
"R-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "indicator",
"code": "repeat_refund",
"subject": "R-1",
"detail": "Customer C-1 has 3 supplied orders with status refunded."
},
{
"kind": "indicator",
"code": "refund_rate",
"subject": "R-1",
"detail": "Customer C-1 has 3 refunded orders out of 4 supplied orders. The share is at least half and at least 3 refunds."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/refund-abuse-pattern-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "R-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 20,
"currency": "USD",
"status": "paid"
},
{
"id": "R-5",
"customer": "C-2",
"created": "2026-11-04",
"amount": 18,
"currency": "USD",
"status": "refunded"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/promotion-abuse-detect$0.04 USDCDetect promotion patterns
Report a promotion code only when the same customer uses it on at least three supplied orders, or when the same code and address appear for at least two customers. One use is not abuse.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "P-1",
"customer": "C-1",
"created": "2026-11-01",
"promo": "SAVE10"
},
{
"id": "P-2",
"customer": "C-1",
"created": "2026-11-02",
"promo": "SAVE10"
},
{
"id": "P-3",
"customer": "C-1",
"created": "2026-11-03",
"promo": "SAVE10"
},
{
"id": "P-4",
"customer": "C-2",
"created": "2026-11-03",
"promo": "SAVE10"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "indicator",
"signals": [
{
"code": "promo_repeat",
"rule": "same_customer_same_promo",
"detail": "Customer C-1 uses code SAVE10 on 3 supplied orders.",
"confirmed": false,
"orders": [
"P-1",
"P-2",
"P-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "indicator",
"code": "promo_repeat",
"subject": "P-1",
"detail": "Customer C-1 uses code SAVE10 on 3 supplied orders."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/promotion-abuse-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "P-1",
"customer": "C-1",
"created": "2026-11-01",
"promo": "SAVE10"
},
{
"id": "P-2",
"customer": "C-1",
"created": "2026-11-02",
"promo": "SAVE10"
},
{
"id": "P-3",
"customer": "C-1",
"created": "2026-11-03",
"promo": "SAVE10"
},
{
"id": "P-4",
"customer": "C-2",
"created": "2026-11-03",
"promo": "SAVE10"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/shipping-address-risk-analyze$0.04 USDCAnalyze shipping-address patterns
Compare supplied shipping addresses across orders. A shared address needs at least three orders and two customers. Several addresses for one customer are a separate indicator. A missing address is not a fraud finding.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "A-1",
"customer": "C-1",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-2",
"customer": "C-2",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-3",
"customer": "C-3",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-4",
"customer": "C-1",
"created": "2026-11-02",
"address": "2 Oak St, 10002",
"country": "US"
},
{
"id": "A-5",
"customer": "C-1",
"created": "2026-11-03",
"address": "3 Pine St, 10003",
"country": "US"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "review",
"signals": [
{
"code": "shared_address",
"rule": "min_orders_two_customers",
"detail": "3 supplied orders share this shipping address across 3 customers.",
"confirmed": false,
"orders": [
"A-1",
"A-2",
"A-3"
]
},
{
"code": "address_spread",
"rule": "distinct_addresses",
"detail": "Customer C-1 has 3 distinct supplied shipping addresses.",
"confirmed": false,
"orders": [
"A-1",
"A-4",
"A-5"
]
}
],
"customers": [
{
"customer": "C-1",
"signalCount": 2,
"level": "review",
"signals": "shared_address,address_spread"
},
{
"customer": "C-2",
"signalCount": 1,
"level": "indicator",
"signals": "shared_address"
},
{
"customer": "C-3",
"signalCount": 1,
"level": "indicator",
"signals": "shared_address"
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "indicator",
"code": "shared_address",
"subject": "A-1",
"detail": "3 supplied orders share this shipping address across 3 customers."
},
{
"kind": "indicator",
"code": "address_spread",
"subject": "A-1",
"detail": "Customer C-1 has 3 distinct supplied shipping addresses."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/shipping-address-risk-analyze" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "A-1",
"customer": "C-1",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-2",
"customer": "C-2",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-3",
"customer": "C-3",
"created": "2026-11-01",
"address": "1 Main St, 10001",
"country": "US"
},
{
"id": "A-4",
"customer": "C-1",
"created": "2026-11-02",
"address": "2 Oak St, 10002",
"country": "US"
},
{
"id": "A-5",
"customer": "C-1",
"created": "2026-11-03",
"address": "3 Pine St, 10003",
"country": "US"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/order-velocity-analyze$0.05 USDCAnalyze order velocity
Count supplied orders for the same customer, IP, or card. With a minute window and timestamps, the orders must fall inside that window. Otherwise they are compared on the same calendar day. Fewer than three orders is not a pattern.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"window": 60,
"orders": [
{
"id": "V-1",
"customer": "C-1",
"created": "2026-11-04T10:00",
"ip": "203.0.113.10"
},
{
"id": "V-2",
"customer": "C-1",
"created": "2026-11-04T10:10",
"ip": "203.0.113.10"
},
{
"id": "V-3",
"customer": "C-1",
"created": "2026-11-04T10:20",
"ip": "203.0.113.10"
},
{
"id": "V-4",
"customer": "C-2",
"created": "2026-11-04T10:00",
"ip": "203.0.113.20"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "review",
"windowMinutes": 60,
"signals": [
{
"code": "customer_velocity",
"rule": "caller_window",
"detail": "3 supplied orders for C-1 fall within 60 minutes. No order was blocked.",
"confirmed": false,
"orders": [
"V-1",
"V-2",
"V-3"
]
},
{
"code": "ip_velocity",
"rule": "caller_window",
"detail": "3 supplied orders for 203.0.113.10 fall within 60 minutes. No order was blocked.",
"confirmed": false,
"orders": [
"V-1",
"V-2",
"V-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "indicator",
"code": "customer_velocity",
"subject": "V-1",
"detail": "3 supplied orders for C-1 fall within 60 minutes. No order was blocked."
},
{
"kind": "indicator",
"code": "ip_velocity",
"subject": "V-1",
"detail": "3 supplied orders for 203.0.113.10 fall within 60 minutes. No order was blocked."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/order-velocity-analyze" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"window": 60,
"orders": [
{
"id": "V-1",
"customer": "C-1",
"created": "2026-11-04T10:00",
"ip": "203.0.113.10"
},
{
"id": "V-2",
"customer": "C-1",
"created": "2026-11-04T10:10",
"ip": "203.0.113.10"
},
{
"id": "V-3",
"customer": "C-1",
"created": "2026-11-04T10:20",
"ip": "203.0.113.10"
},
{
"id": "V-4",
"customer": "C-2",
"created": "2026-11-04T10:00",
"ip": "203.0.113.20"
}
]
}
JSONhttps://brainiac.software/api/v1/ecommerce-fraud/investigation-report$0.12 USDCReport order-risk indicators
Combine supplied amount, card, address, promotion, refund, and velocity patterns. Review means two or more indicators. The report does not confirm fraud, process a payment, or block an order.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
orders | No | array; Array |
window | No | integer |
rules | No | object; Object |
Request exampleJSON
{
"orders": [
{
"id": "R-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 20,
"currency": "USD",
"status": "paid"
},
{
"id": "R-5",
"customer": "C-2",
"created": "2026-11-04",
"amount": 18,
"currency": "USD",
"status": "refunded"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T09:00:00.000Z",
"status": "checked",
"level": "review",
"orderCount": 5,
"signalCount": 2,
"customers": [
{
"customer": "C-1",
"orderCount": 4,
"signalCount": 2,
"level": "review",
"signals": "repeat_refund,refund_rate"
},
{
"customer": "C-2",
"orderCount": 1,
"signalCount": 0,
"level": "none",
"signals": ""
}
],
"signals": [
{
"code": "repeat_refund",
"rule": "min_refunded_orders",
"detail": "Customer C-1 has 3 supplied orders with status refunded.",
"confirmed": false,
"orders": [
"R-1",
"R-2",
"R-3"
]
},
{
"code": "refund_rate",
"rule": "refunded_share_at_least_half",
"detail": "Customer C-1 has 3 refunded orders out of 4 supplied orders. The share is at least half and at least 3 refunds.",
"confirmed": false,
"orders": [
"R-1",
"R-2",
"R-3"
]
}
],
"fraudConfirmed": false,
"paymentProcessed": false,
"orderBlocked": false,
"accountAccessed": false,
"findings": [
{
"kind": "observation",
"code": "sample_too_small",
"subject": "",
"detail": "Fewer than 8 amounts share a currency, so no amount fence was applied."
},
{
"kind": "missing",
"code": "card_missing",
"subject": "",
"detail": "No card fingerprint was supplied. Cards were not looked up."
},
{
"kind": "observation",
"code": "small_amount_rule_missing",
"subject": "",
"detail": "No small-amount rule was supplied, so low amounts were not treated as card testing."
},
{
"kind": "observation",
"code": "quantity_rule_missing",
"subject": "",
"detail": "No quantity rule was supplied. Bulk quantity was not inferred."
},
{
"kind": "indicator",
"code": "repeat_refund",
"subject": "R-1",
"detail": "Customer C-1 has 3 supplied orders with status refunded."
},
{
"kind": "indicator",
"code": "refund_rate",
"subject": "R-1",
"detail": "Customer C-1 has 3 refunded orders out of 4 supplied orders. The share is at least half and at least 3 refunds."
},
{
"kind": "missing",
"code": "promo_missing",
"subject": "",
"detail": "No promotion code was supplied."
},
{
"kind": "observation",
"code": "address_incomplete",
"subject": "R-1",
"detail": "No shipping address was supplied. A missing address is not a fraud indicator."
},
{
"kind": "observation",
"code": "address_incomplete",
"subject": "R-2",
"detail": "No shipping address was supplied. A missing address is not a fraud indicator."
},
{
"kind": "observation",
"code": "address_incomplete",
"subject": "R-3",
"detail": "No shipping address was supplied. A missing address is not a fraud indicator."
},
{
"kind": "observation",
"code": "address_incomplete",
"subject": "R-4",
"detail": "No shipping address was supplied. A missing address is not a fraud indicator."
},
{
"kind": "observation",
"code": "address_incomplete",
"subject": "R-5",
"detail": "No shipping address was supplied. A missing address is not a fraud indicator."
},
{
"kind": "observation",
"code": "window_missing",
"subject": "",
"detail": "No minute window was supplied. Orders were compared on the same calendar day."
}
],
"limitations": [
"Patterns are calculated only from the orders supplied in the request.",
"One signal is an indicator. It does not mean the customer is fraudulent.",
"No payment is processed, no order is blocked, and no merchant account is accessed.",
"A full card number is not copied. A statistical outlier is not confirmed fraud."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/ecommerce-fraud/investigation-report" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"orders": [
{
"id": "R-1",
"customer": "C-1",
"created": "2026-11-01",
"amount": 20,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-2",
"customer": "C-1",
"created": "2026-11-02",
"amount": 22,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-3",
"customer": "C-1",
"created": "2026-11-03",
"amount": 21,
"currency": "USD",
"status": "refunded"
},
{
"id": "R-4",
"customer": "C-1",
"created": "2026-11-04",
"amount": 20,
"currency": "USD",
"status": "paid"
},
{
"id": "R-5",
"customer": "C-2",
"created": "2026-11-04",
"amount": 18,
"currency": "USD",
"status": "refunded"
}
]
}
JSON