Frauddi API
The Frauddi API is organized around REST with predictable resource-oriented URLs, JSON-encoded request bodies, and standard HTTP response codes.
Our API provides programmatic access to fraud detection, rule management, entity relationship mapping, and operational analytics.
Base URL: https://api.frauddi.com
Authentication
To authorize, use this code:
curl "https://api.frauddi.com/api/v0/endpoint" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch('https://api.frauddi.com/api/v0/endpoint', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
// request data
})
});
const data = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
data = {
# request data
}
response = requests.post(
'https://api.frauddi.com/api/v0/endpoint',
headers=headers,
json=data
)
result = response.json()
All API requests require authentication using your API key in the Authorization header.
Contact our sales team or access your Frauddi dashboard to obtain your API key.
Authorization: Bearer YOUR_API_KEY
Getting Started
- Obtain your API key from our sales team or dashboard
- Make a test request to the
/ping
endpoint - Submit transaction data to
/assessments/
endpoints - Configure detection rules via
/rules/
endpoints
Response Format
All API responses use standard HTTP status codes and return JSON-encoded data with consistent error handling.
Frauddi API v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Frauddi API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and authentication.
Authentication
Authenticate API requests using your API key in the Authorization header:
Authorization: Bearer your_api_key_here
Making Requests
All API requests should be made over HTTPS to the base URL. Request and response bodies are JSON.
Response Format
All API responses follow a consistent structure with appropriate HTTP status codes. Successful requests return relevant data objects, while errors return detailed error information.
Getting Started
- Obtain your API key from the Frauddi dashboard or by contacting our sales team
- Make a test request to the health check endpoint
- Submit transaction data to assessment endpoints
- Configure rules and thresholds for your use case
Base URLs:
Email: Frauddi Support Web: Frauddi Support
Authentication
- HTTP Authentication, scheme: bearer
Default
Main
GET /
Main endpoint for the application.
Example responses
200 Response
{}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful Response | Inline |
Response Schema
Status Code 200
Response Main Get
Name | Type | Required | Restrictions | Description |
---|
Pong
GET /ping
Ping/Pong endpoint for the application.
Example responses
200 Response
{}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful Response | Inline |
Response Schema
Status Code 200
Response Pong Ping Get
Name | Type | Required | Restrictions | Description |
---|
Assessments
Assess Charge for Fraud Risk
POST /api/v1/assessments/charges
Submit a payment charge for real-time fraud assessment.
This endpoint processes the charge through multiple detection layers: - Whitelist/Blacklist checking - Verify against trusted and blocked entities - Rule Engine - Apply custom fraud detection rules - Pattern Recognition - Advanced anomaly detection and fraud patterns - Network Analysis - Relationship analysis and behavior patterns - Email Validation - Email risk assessment and verification
Returns a comprehensive risk assessment with decision rationale and score.
Body parameter
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ChargeRequest | true | none |
Example responses
200 Response
{
"decision": "ACCEPT",
"score": 0.15,
"decided_by": {
"module": "RULES",
"priority": 1,
"decision": "ACCEPT"
},
"assessment_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"whitelists": {
"decision": "NO_DECISION"
},
"blacklists": {
"decision": "NO_DECISION"
},
"rules": {
"decision": "ACCEPT",
"matched_rules": [
"rule_1"
]
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Fraud assessment completed successfully | AssessmentDataResponse |
400 | Bad Request | Invalid charge data or configuration error | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in charge data | None |
Assess Email Risk
POST /api/v1/assessments/emails
Validate and assess risk for customer email addresses.
This endpoint analyzes email addresses for: - Domain reputation - Check email domain against threat databases - Disposable email detection - Identify temporary or throwaway emails - Syntax validation - Verify email format and structure - Risk scoring - Calculate fraud probability based on email patterns
Returns assessment with email-specific risk indicators and recommendations.
Body parameter
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ChargeRequest | true | none |
Example responses
200 Response
{
"decision": "ACCEPT",
"assessment_id": "550e8400-e29b-41d4-a716-446655440000",
"assessment_type": "EMAIL",
"decided_by": {
"module": "EMAIL",
"priority": 1,
"decision": "ACCEPT"
},
"decision_details": {
"EMAIL": {
"result": {
"is_valid": true,
"is_disposable": false,
"domain_reputation": "good"
}
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Email assessment completed successfully | AssessmentDataResponse |
400 | Bad Request | Invalid email format or charge data | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in request data | None |
Assess Risk Using Rules
POST /api/v1/assessments/rules
Evaluate transaction risk using your custom fraud detection rules.
This endpoint applies all active rules configured for your company and returns: - Rule evaluation results - Which rules matched and their outcomes - Decision hierarchy - Rule priority and decision logic - Custom logic execution - Business rules processing - Threshold analysis - Rule confidence scores and thresholds
Rules are processed in priority order and can trigger various actions (ACCEPT, REVIEW, DECLINE).
Body parameter
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ChargeRequest | true | none |
Example responses
200 Response
{
"decision": "REVIEW",
"assessment_id": "550e8400-e29b-41d4-a716-446655440000",
"assessment_type": "RULE",
"decided_by": {
"module": "RULES",
"priority": 1,
"decision": "REVIEW"
},
"decision_details": {
"RULES": {
"result": {
"matched_rules": [
"high_amount_rule",
"new_customer_rule"
],
"rule_scores": {
"high_amount_rule": 0.8,
"new_customer_rule": 0.6
},
"final_score": 0.85
}
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Rules assessment completed successfully | AssessmentDataResponse |
400 | Bad Request | Invalid charge data or rule configuration error | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in request data | None |
Check Against Blacklists
POST /api/v1/assessments/blacklists
Check transaction and customer data against your company's blacklists.
This endpoint validates multiple data points against blacklisted entities: - Email addresses - Blocked customer emails - IP addresses - Suspicious or blocked IPs - Card numbers - Blocked payment methods (hashed for security) - Phone numbers - Blocked customer phone numbers - Device fingerprints - Blocked devices or browsers
Returns immediate DECLINE decision if any blacklisted entity is detected.
Body parameter
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ChargeRequest | true | none |
Example responses
200 Response
{
"decision": "DECLINE",
"assessment_id": "550e8400-e29b-41d4-a716-446655440000",
"assessment_type": "BLACKLIST",
"decided_by": {
"module": "BLACKLISTS",
"priority": 1,
"decision": "DECLINE"
},
"decision_details": {
"BLACKLISTS": {
"result": {
"matches_found": [
"email",
"ip_address"
],
"blacklisted_email": "fraud@example.com",
"blacklisted_ip": "192.168.1.100"
}
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Blacklist assessment completed successfully | AssessmentDataResponse |
400 | Bad Request | Invalid charge data | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in request data | None |
Check Against Whitelists
POST /api/v1/assessments/whitelists
Check transaction and customer data against your company's whitelists.
This endpoint validates multiple data points against trusted entities: - Email addresses - Trusted customer emails - IP addresses - Trusted or corporate IPs - Card numbers - Trusted payment methods (hashed for security) - Phone numbers - Verified customer phone numbers - Device fingerprints - Trusted devices or browsers
Returns immediate ACCEPT decision if any whitelisted entity is detected, bypassing other fraud checks.
Body parameter
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ChargeRequest | true | none |
Example responses
200 Response
{
"decision": "ACCEPT",
"assessment_id": "550e8400-e29b-41d4-a716-446655440000",
"assessment_type": "WHITELIST",
"decided_by": {
"module": "WHITELISTS",
"priority": 1,
"decision": "ACCEPT"
},
"decision_details": {
"WHITELISTS": {
"result": {
"matches_found": [
"email"
],
"whitelisted_email": "trusted@company.com",
"bypass_reason": "trusted_customer"
}
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Whitelist assessment completed successfully | AssessmentDataResponse |
400 | Bad Request | Invalid charge data | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in request data | None |
Get Assessment Details
GET /api/v1/assessments/{assessment_id}
Retrieve detailed information about a specific fraud assessment by its ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
assessment_id | path | string | true | none |
Example responses
200 Response
{
"assessment_id": "string",
"assessment_type": "string",
"charge_id": "string",
"company_id": "string",
"decision": "string",
"decided_by": {},
"decision_details": {},
"configuration": {},
"data": {},
"snapshot_id": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Assessment details retrieved successfully | AssessmentResponse |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Assessment not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Assessments by Type
GET /api/v1/assessments/type/{assessment_type}
Retrieve a paginated list of assessments filtered by type.
Available assessment types: - CHARGE - Full transaction assessments - EMAIL - Email validation assessments - RULE - Rules-based assessments - BLACKLIST - Blacklist check assessments - WHITELIST - Whitelist check assessments
Results are ordered by creation date (newest first) and support pagination.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
assessment_type | path | string | true | none |
current_page | query | integer | false | Page number (1-based) |
page_size | query | integer | false | Number of assessments per page |
Example responses
200 Response
{
"data": [],
"pagination": {
"current_page": 1,
"has_next": true,
"has_previous": false,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Assessments retrieved successfully | AssessmentListResponse |
400 | Bad Request | Invalid assessment type | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Rules
Create fraud detection rule
POST /api/v1/rules/
Create a new custom fraud detection rule using Frauddi's domain-specific language (DSL). Rules are evaluated in real-time during fraud assessments.
Body parameter
{
"value": "payment.amount > 1000 and customer.email.contains('@gmail.com')",
"decision": "ACCEPT",
"expire_at": "2024-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | RuleRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"decision": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully created fraud detection rule | RuleResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List fraud detection rules
GET /api/v1/rules/
Retrieve a paginated list of all fraud detection rules for your company.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number (1-based) |
page_size | query | integer | false | Number of rules per page |
Example responses
200 Response
{
"data": [
{
"id": "rule_123456",
"value": "payment.amount > 1000 and customer.email.contains('@suspicious.com')",
"decision": "REJECT",
"expire_at": "2024-12-31T23:59:59Z",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved fraud detection rules with pagination | RuleListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update fraud detection rule
PUT /api/v1/rules/{rule_id}
Update an existing fraud detection rule. The rule will be validated before applying changes.
Body parameter
{
"value": "payment.amount > 1000 and customer.email.contains('@gmail.com')",
"decision": "ACCEPT",
"expire_at": "2024-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
rule_id | path | string | true | none |
body | body | RuleRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"decision": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully updated fraud detection rule | RuleResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete fraud detection rule
DELETE /api/v1/rules/{rule_id}
Permanently delete a fraud detection rule. This action cannot be undone.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
rule_id | path | string | true | none |
Example responses
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Successfully deleted fraud detection rule | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get fraud detection rule
GET /api/v1/rules/{rule_id}
Retrieve a specific fraud detection rule by its ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
rule_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"decision": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved fraud detection rule | RuleResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Simulate fraud detection rules
POST /api/v1/rules/simulate
Test how your fraud detection rules would perform against historical transaction data without affecting live assessments. This endpoint allows you to optimize rule logic and validate effectiveness before deploying to production.
Body parameter
{
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"rules": [
{
"decision": "REJECT",
"expire_at": "2024-12-31T23:59:59Z",
"value": "amount > 500"
}
],
"include_charge_ids": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | SimulationRequest | true | none |
Example responses
200 Response
{
"baseline": {},
"current": {},
"impact": {
"acceptance_change": 0,
"acceptance_change_percentage": 0,
"declined_change": 0,
"declined_change_percentage": 0
},
"errors": [],
"total_charges_analyzed": 0,
"total_rules_evaluated": 0,
"rule_applications": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully simulated fraud detection rules with performance metrics | SimulationResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Graph
Get Customer Relationship Graph
GET /api/v1/graph/
Retrieve the relationship graph data for a specific customer showing all connected entities.
This endpoint returns network analysis data including: - Connected customers - Other customers linked through shared attributes - Relationship strength - Confidence scores for connections - Graph nodes - Customer entities with their properties - Graph edges - Relationships between customers with metadata - Visualization data - Optimized for D3.js, vis.js, or Cytoscape libraries
Perfect for fraud ring detection, customer network analysis, and relationship visualization.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
customer_id | query | string | true | Customer ID to analyze relationships for |
Example responses
200 Response
{
"nodes": [
{
"id": "CUSTOMER_123",
"label": "John Doe",
"email": "john@example.com",
"risk_score": 0.3,
"connections": 2
}
],
"edges": [
{
"source": "CUSTOMER_123",
"target": "CUSTOMER_456",
"relationship_type": "shared_email",
"strength": 0.85
}
]
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Graph data retrieved successfully | GraphDataResponse |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Customer not found in graph | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Add Customer to Graph
POST /api/v1/graph/
Add a new customer to the relationship graph and automatically detect connections.
This endpoint performs intelligent relationship detection based on shared attributes: - Email addresses - Exact and domain-based matching - Phone numbers - Direct number matching - Card numbers - Secure hash-based matching - IP addresses - Geographic and exact IP matching - Device fingerprints - Browser/device identification - Address data - Physical location correlation
The system automatically calculates relationship strength and identifies potential fraud rings.
Body parameter
{
"customer_id": "CUST_12345",
"email": "customer@example.com",
"phone": "+1234567890",
"card_number": "4111111111111111",
"merchant_id": "MERCH_001",
"ip_addresses": [
"192.168.1.1",
"10.0.0.1"
],
"device_ids": [
"device_123",
"mobile_456"
],
"acceptance": 10,
"declined": 2,
"chargeback_fraud": 0,
"chargeback_authorization": 0,
"chargeback_processing_error": 0,
"chargeback_customer_dispute": 0,
"chargeback_non_receipt": 0,
"chargeback_cancelled_recurring": 0,
"chargeback_product_not_received": 0,
"chargeback_duplicate_processing": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AddCustomerRequest | true | none |
Example responses
201 Response
{
"customer_id": "CUSTOMER_789",
"relationships_detected": 3,
"connected_customers": [
"CUSTOMER_123",
"CUSTOMER_456"
],
"risk_indicators": [
"shared_device",
"same_ip_range"
],
"graph_updated": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Customer added to graph successfully | AddCustomerResponse |
400 | Bad Request | Invalid customer data | None |
401 | Unauthorized | Invalid or missing API key | None |
422 | Unprocessable Entity | Validation error in request data | None |
Get Graph Analytics & Statistics
GET /api/v1/graph/stats
Get comprehensive analytics and statistics for a customer's relationship network.
This endpoint provides deep insights into customer relationships including: - Network metrics - Connection count, cluster size, centrality scores - Risk indicators - Network-based risk patterns and anomalies - Transaction analytics - Aggregated transaction data across the network - Behavioral patterns - Shared behaviors and suspicious activities - Chargeback analysis - Network-wide chargeback rates and patterns
Essential for fraud investigation, risk assessment, and customer profiling with 360° network visibility.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
customer_id | query | string | true | Customer ID to analyze network statistics for |
Example responses
200 Response
{
"customer_id": "CUSTOMER_123",
"network_size": 15,
"risk_score": 0.75,
"transaction_count": 42,
"chargeback_rate": 0.05,
"connected_customers": 8,
"suspicious_patterns": [
"shared_device",
"velocity_matching"
]
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Graph statistics retrieved successfully | GraphStatsResponse |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Customer not found in graph | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Analytics
Create Custom Aggregation
POST /api/v1/aggregations/
Create a custom aggregation to track specific metrics based on conditions.
What are Custom Aggregations? Custom aggregations allow you to count transactions that meet specific criteria over time. They are NOT fraud detection rules - they create metrics that can be used in rules.
How it works: 1. Define a condition (when to count) 2. Define time periods (1m, 2m, 3m, 4m, 5m) 3. System automatically counts matching transactions 4. Metrics can be used in fraud detection rules
Examples:
📊 High-value transactions from specific countries:
json
{
"name": "high_value_latam",
"value": "charge.amount > 1000 and charge.metadata.country in ['MX', 'BR', 'AR']",
"periods": [1, 2, 3, 4, 5]
}
Creates metrics: custom:high_value_latam:count:1m
, custom:high_value_latam:count:2m
, etc.
💳 Transactions with specific card types:
json
{
"name": "debit_card_transactions",
"value": "charge.payment.card_type == 'debit'",
"periods": [1, 5]
}
🌍 Transactions from high-risk IPs:
json
{
"name": "vpn_transactions",
"value": "charge.metadata.is_vpn == true or charge.metadata.is_proxy == true",
"periods": [1, 2, 3]
}
🎯 Using in fraud rules:
After creating the aggregation, use it in a rule:
custom:high_value_latam:count:1m > 10
Body parameter
{
"name": "daily_transactions",
"value": "card:5m:count > 10",
"periods": [
5,
30,
60
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AggregationRequest | true | none |
Example responses
200 Response
{
"id": "agg_123456",
"name": "high_value_latam",
"value": "charge.amount > 1000 and charge.metadata.country in ['MX', 'BR', 'AR']",
"periods": [
1,
2,
3,
4,
5
],
"status": "ACTIVE",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Custom aggregation created successfully | AggregationResponse |
400 | Bad Request | Invalid aggregation configuration | None |
401 | Unauthorized | Invalid or missing API key | None |
409 | Conflict | Aggregation with this condition already exists | None |
422 | Unprocessable Entity | Validation error in request data | None |
List Custom Aggregations
GET /api/v1/aggregations/
Retrieve a paginated list of all custom aggregations for your company.
Each aggregation includes: - Name - Unique identifier for the aggregation - Condition (value) - The condition that triggers counting - Periods - Time windows being tracked (in minutes) - Status - ACTIVE or INACTIVE - Timestamps - Creation and last update times
Use the metrics from these aggregations in your fraud detection rules.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number (1-based) |
page_size | query | integer | false | Number of custom aggregations per page |
Example responses
200 Response
{
"data": [
{
"id": "agg_123456",
"name": "Daily Transaction Volume",
"value": "card:24h:count > 50 and customer:1h:amount_sum > 10000",
"periods": [
5,
30,
60,
360
],
"status": "ACTIVE",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved aggregation rules with pagination | AggregationListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update Custom Aggregation
PUT /api/v1/aggregations/{aggregation_id}
Update an existing custom aggregation configuration.
You can modify: - Condition (value) - Change when to count transactions - Time periods - Add or remove monitoring periods - Name - Update the aggregation identifier - Status - Activate or deactivate
Note: Changes apply to new transactions only. Historical data processing (backfill) will be available in a future version.
Body parameter
{
"name": "daily_transactions",
"value": "card:5m:count > 10",
"periods": [
5,
30,
60
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
aggregation_id | path | string | true | none |
body | body | AggregationRequest | true | none |
Example responses
200 Response
{
"id": "string",
"name": "string",
"value": "string",
"periods": [
0
],
"enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Aggregation updated successfully | AggregationResponse |
400 | Bad Request | Invalid aggregation configuration | None |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Aggregation not found | None |
422 | Unprocessable Entity | Validation error in request data | None |
Delete Custom Aggregation
DELETE /api/v1/aggregations/{aggregation_id}
Permanently delete a custom aggregation.
⚠️ Important: - This action cannot be undone - Metrics will stop being collected immediately - Any fraud rules using this aggregation's metrics will fail
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
aggregation_id | path | string | true | none |
Example responses
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Aggregation deleted successfully | None |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Aggregation not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Custom Aggregation
GET /api/v1/aggregations/{aggregation_id}
Retrieve a specific custom aggregation by its ID, including its condition, periods, and current status.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
aggregation_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"name": "string",
"value": "string",
"periods": [
0
],
"enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Aggregation retrieved successfully | AggregationResponse |
401 | Unauthorized | Invalid or missing API key | None |
404 | Not Found | Aggregation not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Available Fields for Custom Aggregations
GET /api/v1/aggregations/fields
Get the list of available fields that can be used in custom aggregation conditions.
Example conditions:
charge.amount > 5000
charge.payment.card_type == "credit"
charge.metadata.country in ["US", "CA"]
Example responses
200 Response
{
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Fields retrieved successfully | AggregationFieldsResponse |
401 | Unauthorized | Invalid or missing API key | None |
Get Field Descriptions
GET /api/v1/aggregations/fields/description
Get detailed descriptions and data types for all fields available in custom aggregations.
Includes: - Field name and path - Data type (string, number, boolean, etc.) - Description and usage examples - Valid operators for the field type
Example responses
200 Response
{
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Field descriptions retrieved successfully | AggregationFieldsResponse |
401 | Unauthorized | Invalid or missing API key | None |
Get Aggregation Events
GET /api/v1/aggregations/charges/{charge_id}/events
Get all aggregation events triggered for a specific transaction.
Shows which custom aggregations were incremented when this transaction was processed. Useful for debugging and understanding which metrics were affected by a transaction.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
charge_id | path | string | true | none |
current_page | query | integer | false | Page number (1-based) |
page_size | query | integer | false | Number of events per page |
Example responses
200 Response
{
"data": [
{}
],
"pagination": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | List of aggregation events for the charge | AggregationEventListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Blacklists
Create blacklist entry
POST /api/v1/blacklists/
Add a value to the blacklist for automated fraud prevention. Accepts customer emails, phone numbers, or payment card hashes. Blacklisted values will automatically trigger fraud alerts in future assessments.
Body parameter
{
"value": "user@example.com",
"expire_at": "2024-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | BlacklistRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
409 Response
{
"detail": "The blacklist already exists."
}
422 Response
{
"detail": "The blacklist could not be added."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully created blacklist entry | BlacklistResponse |
409 | Conflict | Blacklist entry already exists | None |
422 | Unprocessable Entity | Invalid blacklist data provided | None |
Response Schema
List blacklist entries
GET /api/v1/blacklists/
Retrieve all blacklist entries with pagination. Returns customer emails, phone numbers, and payment card hashes currently blocked by fraud prevention system.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number for pagination |
page_size | query | integer | false | Number of entries per page |
Example responses
200 Response
{
"data": [
{
"id": "bl_123456",
"value": "fraud@suspicious.com",
"type": "email",
"reason": "Multiple failed transactions",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved blacklist entries with pagination | BlacklistListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update blacklist entry
PUT /api/v1/blacklists/{blacklist_id}
Modify an existing blacklist entry. Updates the value (email, phone number, or card hash) and metadata while preserving the entry's fraud prevention status.
Body parameter
{
"value": "user@example.com",
"expire_at": "2024-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
blacklist_id | path | string | true | none |
body | body | BlacklistRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
404 Response
{
"detail": "The blacklist does not exist."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully updated blacklist entry | BlacklistResponse |
404 | Not Found | Blacklist entry not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Response Schema
Delete blacklist entry
DELETE /api/v1/blacklists/{blacklist_id}
Remove a value from the blacklist. Deleted entries (email, phone number, or card hash) will no longer trigger fraud alerts in future assessments.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
blacklist_id | path | string | true | none |
Example responses
404 Response
{
"detail": "The blacklist does not exist."
}
422 Response
{
"detail": "The blacklist could not be deleted."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Blacklist entry successfully deleted | None |
404 | Not Found | Blacklist entry not found | None |
422 | Unprocessable Entity | Unable to delete blacklist entry | None |
Response Schema
Retrieve blacklist entry
GET /api/v1/blacklists/{blacklist_id}
Get details of a specific blacklist entry including its value (email, phone number, or card hash), type, and metadata.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
blacklist_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
404 Response
{
"detail": "The blacklist does not exist."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Blacklist entry details | BlacklistResponse |
404 | Not Found | Blacklist entry not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Response Schema
Whitelists
Create whitelist entry
POST /api/v1/whitelists/
Add a value to the whitelist for fraud prevention bypass. Accepts customer emails, phone numbers, or payment card hashes. Whitelisted values will automatically be excluded from fraud alerts in future assessments.
Body parameter
{
"value": "user@example.com",
"expire_at": "2025-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | WhitelistRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
409 Response
{
"detail": "The whitelist already exists."
}
422 Response
{
"detail": "The whitelist could not be added."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully created whitelist entry | WhitelistResponse |
409 | Conflict | Whitelist entry already exists | None |
422 | Unprocessable Entity | Invalid whitelist data provided | None |
Response Schema
List whitelist entries
GET /api/v1/whitelists/
Retrieve all whitelist entries with pagination. Returns customer emails, phone numbers, and payment card hashes currently excluded from fraud prevention system.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number for pagination |
page_size | query | integer | false | Number of entries per page |
Example responses
200 Response
{
"data": [
{
"id": "wl_123456",
"value": "trusted@company.com",
"type": "email",
"reason": "VIP customer",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
422 Response
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved whitelist entries with pagination | WhitelistListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update whitelist entry
PUT /api/v1/whitelists/{whitelist_id}
Modify an existing whitelist entry. Updates the value (email, phone number, or card hash) and metadata while preserving the entry's fraud prevention bypass status.
Body parameter
{
"value": "user@example.com",
"expire_at": "2025-12-31T23:59:59Z"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
whitelist_id | path | string | true | none |
body | body | WhitelistRequest | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully updated whitelist entry | WhitelistResponse |
404 | Not Found | Whitelist entry not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete whitelist entry
DELETE /api/v1/whitelists/{whitelist_id}
Remove a value from the whitelist. Deleted entries (email, phone number, or card hash) will no longer be excluded from fraud alerts in future assessments.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
whitelist_id | path | string | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Whitelist entry successfully deleted | None |
404 | Not Found | Whitelist entry not found | None |
422 | Unprocessable Entity | Unable to delete whitelist entry | None |
Retrieve whitelist entry
GET /api/v1/whitelists/{whitelist_id}
Get details of a specific whitelist entry including its value (email, phone number, or card hash), type, and metadata.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
whitelist_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Whitelist entry details | WhitelistResponse |
404 | Not Found | Whitelist entry not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Snapshots
Create data snapshot
POST /api/v1/snapshots/
Create a backup snapshot of specified data collections. Snapshot creation runs asynchronously in the background.
Body parameter
{
"description": "Pre-deployment snapshot",
"collections": [
"RULES",
"BLACKLISTS"
],
"drop_existing": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | SnapshotRequest | true | none |
Example responses
200 Response
{
"id": "string",
"collections": [
"string"
],
"size_bytes": 0,
"status": "string",
"compressed": false,
"description": "string",
"backup_path": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully initiated snapshot creation | SnapshotResponse |
422 | Unprocessable Entity | Unable to create snapshot | None |
List snapshots
GET /api/v1/snapshots/
Retrieve all snapshots with pagination. Returns snapshot history including creation dates, status, and collection information.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number for pagination |
page_size | query | integer | false | Number of snapshots per page |
Example responses
200 Response
{
"data": [
{}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Paginated list of snapshots | SnapshotListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Retrieve snapshot details
GET /api/v1/snapshots/{snapshot_id}
Get detailed information about a specific snapshot including its status, creation date, and collections included.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"collections": [
"string"
],
"size_bytes": 0,
"status": "string",
"compressed": false,
"description": "string",
"backup_path": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Snapshot details and metadata | SnapshotResponse |
404 | Not Found | Snapshot not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete snapshot
DELETE /api/v1/snapshots/{snapshot_id}
Permanently delete a snapshot and all its associated data. This action cannot be undone.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Snapshot successfully deleted | None |
404 | Not Found | Snapshot not found | None |
422 | Unprocessable Entity | Unable to delete snapshot | None |
Get snapshot metadata
GET /api/v1/snapshots/{snapshot_id}/metadata
Retrieve detailed metadata about a snapshot including collection statistics, data counts, and snapshot integrity information.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
Example responses
200 Response
{
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Detailed snapshot metadata and statistics | SnapshotMetadataResponse |
404 | Not Found | Snapshot not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Restore snapshot
POST /api/v1/snapshots/{snapshot_id}/restore
Restore data from a snapshot to specified collections. Restoration runs asynchronously in the background and may overwrite existing data.
Body parameter
{
"description": "Pre-deployment snapshot",
"collections": [
"RULES",
"BLACKLISTS"
],
"drop_existing": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
body | body | SnapshotRequest | true | none |
Example responses
200 Response
{
"restore_id": "string",
"snapshot_id": "string",
"company_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"collections": [
"string"
],
"description": "",
"status": "string",
"drop_existing": false
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully initiated snapshot restoration | SnapshotRestoreResponse |
404 | Not Found | Snapshot not found | None |
422 | Unprocessable Entity | Unable to restore snapshot | None |
List restore operations
GET /api/v1/snapshots/{snapshot_id}/restore
Retrieve all restore operations for a specific snapshot with pagination. Shows restore history including status and timestamps.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
current_page | query | integer | false | Page number for pagination |
page_size | query | integer | false | Number of restore operations per page |
Example responses
200 Response
{
"data": [
{}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Paginated list of restore operations | SnapshotRestoreListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get restore operation details
GET /api/v1/snapshots/{snapshot_id}/restore/{snapshot_restore_id}
Retrieve detailed information about a specific restore operation including status, progress, and any errors encountered.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
snapshot_id | path | string | true | none |
snapshot_restore_id | path | string | true | none |
Example responses
200 Response
{
"restore_id": "string",
"snapshot_id": "string",
"company_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"collections": [
"string"
],
"description": "",
"status": "string",
"drop_existing": false
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Restore operation details and status | SnapshotRestoreResponse |
404 | Not Found | Restore operation not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Compare snapshots
POST /api/v1/snapshots/compare
Compare two snapshots to identify differences in fraud detection module data, providing detailed change analysis for audit and rollback purposes.
Body parameter
{
"baseline_snapshot_id": "snapshot_20240101_baseline",
"current_snapshot_id": "snapshot_20240201_current"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | SnapshotCompareRequest | true | none |
Example responses
200 Response
{
"rules": {},
"whitelists": {},
"blacklists": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Detailed comparison showing differences between snapshots | SnapshotCompareResponse |
404 | Not Found | One or both snapshots not found | None |
422 | Unprocessable Entity | Invalid snapshot IDs or comparison parameters | None |
Anomalies
Detect anomalies with filters
POST /api/v1/anomalies/tree
Execute anomaly detection to identify unusual patterns in transaction data with configurable filtering.
Body parameter
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"top": 5,
"min_value": 10,
"min_percentage": 5
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AnomalyOptimizedRequest | true | none |
Example responses
200 Response
{
"total_records": 0,
"fields": [
"string"
],
"patterns": {},
"params": {},
"query": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Detected anomalies with confidence scores and filtering metrics | AnomalyOptimizedResult |
422 | Unprocessable Entity | Invalid request parameters or malformed data | None |
Auto-discover anomaly patterns
POST /api/v1/anomalies/discover
Automatically discover the most important concentration patterns in your data without specifying fields in advance.
Body parameter
{
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"max_fields": 2,
"min_percentage": 1,
"limit": 10
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AnomalyDiscoverRequest | true | none |
Example responses
200 Response
{
"total_records": 0,
"fields": [
{}
],
"patterns": [
{}
],
"params": {},
"query": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Discovered patterns and field rankings | AnomalyDiscoverResult |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Find concentration patterns
POST /api/v1/anomalies/find
Find where your data concentrates across specified fields. Includes configurable filtering options and depth control.
Body parameter
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"min_percentage": 1,
"max_depth": 2,
"contains": "visa",
"min_count": 10,
"sort_by": "percentage",
"limit": 20
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AnomalyFindRequest | true | none |
Example responses
200 Response
{
"total_records": 0,
"fields": [
"string"
],
"patterns": [
{}
],
"params": {},
"query": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Found concentration patterns in specified fields | AnomalyFindResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Perform statistical analysis
POST /api/v1/anomalies/analyze
Conduct deep statistical analysis on data patterns. Provides confidence scores, statistical significance, and actionable insights for each pattern.
Body parameter
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"min_percentage": 5
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AnomalyAnalyzeRequest | true | none |
Example responses
200 Response
{
"total_records": 0,
"fields": [
"string"
],
"patterns": [
{}
],
"params": {},
"query": {},
"insights": {},
"statistics": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Statistical analysis results with insights and confidence scores | AnomalyAnalyzeResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Compare data between time periods
POST /api/v1/anomalies/compare
Compare data patterns between current and baseline periods. Detects changes, new patterns, and disappeared patterns for A/B testing and trend analysis.
Body parameter
{
"fields": [
"payment.amount"
],
"current_from_date": "2024-02-01T00:00:00Z",
"current_to_date": "2024-02-29T23:59:59Z",
"baseline_from_date": "2024-01-01T00:00:00Z",
"baseline_to_date": "2024-01-31T23:59:59Z",
"query": {
"status": "completed"
},
"change_threshold": 0.1,
"statistical_significance": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AnomalyCompareRequest | true | none |
Example responses
200 Response
{
"current_records": 0,
"baseline_records": 0,
"fields": [
"string"
],
"changes": [
{}
],
"added_patterns": [
{}
],
"removed_patterns": [
{}
],
"statistics": {},
"params": {},
"query": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Temporal comparison results with change detection | AnomalyCompareResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get available analysis fields
GET /api/v1/anomalies/fields
Retrieve categorized list of fields available for anomaly analysis including customer, payment, and charge fields.
Example responses
200 Response
{
"customer_fields": [
"string"
],
"payment_fields": [
"string"
],
"charge_fields": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Categorized list of available fields for analysis | AnomalyFieldsResponse |
Charges
Retrieve charge details
GET /api/v1/charges/{charge_id}
Get detailed information about a specific charge including transaction data, customer information, and assessment results.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
charge_id | path | string | true | none |
Example responses
200 Response
{
"charge_id": "string",
"status": "pending",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"customer": {
"full_name": "string",
"phone_number": "string",
"email": "string",
"ip_address": "string",
"fingerprint": "string"
},
"payment": {
"currency": "USD",
"amount": 0,
"fee": 0,
"card_hash": "string",
"card_type": "string",
"exp_month": "string",
"brand": "string",
"bin_number": "string",
"cvc": "string"
}
}
404 Response
{
"detail": "The charge does not exist."
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Charge details with transaction and assessment data | ChargeResponse |
404 | Not Found | Charge not found | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Response Schema
List charges
GET /api/v1/charges/
Retrieve all charges with pagination. Returns transaction history including amounts, customer data, and fraud assessment results.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
current_page | query | integer | false | Page number for pagination |
page_size | query | integer | false | Number of charges per page |
Example responses
200 Response
{
"data": [
{
"charge_id": "string",
"status": "pending",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"customer": {
"full_name": "string",
"phone_number": "string",
"email": "string",
"ip_address": "string",
"fingerprint": "string"
},
"payment": {
"currency": "USD",
"amount": 0,
"fee": 0,
"card_hash": "string",
"card_type": "string",
"exp_month": "string",
"brand": "string",
"bin_number": "string",
"cvc": "string"
}
}
],
"pagination": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Paginated list of charges with transaction details | ChargeListResponse |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Companies
Get execution configuration
GET /api/v1/companies/configuration/execution/
Retrieve the execution configuration for a company, including rule priorities, execution order, and stop conditions.
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Execution configuration with prioritized rules and control settings | ConfigurationExecutionResponse |
404 | Not Found | Configuration not found for this company | None |
Update execution configuration
PUT /api/v1/companies/configuration/execution/
Replace the execution configuration with new rule priorities, execution order, and control settings. Maintains configuration ID while updating all items.
Body parameter
{
"configuration": [
{
"enabled": true,
"name": "Blacklist Check",
"priority": 1,
"stop_on_match": true,
"type": "BLACKLISTS"
},
{
"enabled": true,
"name": "Whitelist Validation",
"priority": 2,
"stop_on_match": false,
"type": "WHITELISTS"
},
{
"enabled": true,
"name": "Fraud Rules",
"priority": 3,
"stop_on_match": false,
"type": "RULES"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationExecutionRequest | true | none |
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Updated execution configuration with new settings applied | ConfigurationExecutionResponse |
404 | Not Found | Configuration not found for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create execution configuration
POST /api/v1/companies/configuration/execution/
Create a new execution configuration defining rule execution order, priorities, and control flow for fraud detection.
Body parameter
{
"configuration": [
{
"enabled": true,
"name": "Blacklist Check",
"priority": 1,
"stop_on_match": true,
"type": "BLACKLISTS"
},
{
"enabled": true,
"name": "Whitelist Validation",
"priority": 2,
"stop_on_match": false,
"type": "WHITELISTS"
},
{
"enabled": true,
"name": "Fraud Rules",
"priority": 3,
"stop_on_match": false,
"type": "RULES"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationExecutionRequest | true | none |
Example responses
201 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created execution configuration with generated IDs and applied settings | ConfigurationExecutionResponse |
409 | Conflict | Configuration already exists for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get decision configuration
GET /api/v1/companies/configuration/decision/
Retrieve the decision-making configuration for a company, including score thresholds, risk levels, and action mappings for fraud detection outcomes.
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Decision configuration with score thresholds and action rules | ConfigurationDecisionResponse |
404 | Not Found | Decision configuration not found for this company | None |
Update decision configuration
PUT /api/v1/companies/configuration/decision/
Replace the decision configuration with new score thresholds, risk levels, and action rules for fraud detection outcomes.
Body parameter
{
"configuration": [
{
"description": "Accept takes precedence",
"enabled": true,
"name": "ACCEPT_PRIORITY"
},
{
"description": "Reject takes precedence",
"enabled": false,
"name": "REJECT_PRIORITY"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationDecisionRequest | true | none |
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Updated decision configuration with new thresholds and actions | ConfigurationDecisionResponse |
404 | Not Found | Decision configuration not found for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create decision configuration
POST /api/v1/companies/configuration/decision/
Create decision-making rules defining score thresholds, risk levels, and automated actions for fraud detection results.
Body parameter
{
"configuration": [
{
"description": "Accept takes precedence",
"enabled": true,
"name": "ACCEPT_PRIORITY"
},
{
"description": "Reject takes precedence",
"enabled": false,
"name": "REJECT_PRIORITY"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationDecisionRequest | true | none |
Example responses
201 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created decision configuration with defined thresholds and actions | ConfigurationDecisionResponse |
409 | Conflict | Decision configuration already exists for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get model configuration
GET /api/v1/companies/configuration/models/
Retrieve fraud detection model configuration for a company.
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Fraud detection model configuration | ConfigurationModelResponse |
404 | Not Found | Model configuration not found for this company | None |
Update model configuration
PUT /api/v1/companies/configuration/models/
Update fraud detection model configuration for your company.
Body parameter
{
"configuration": [
{
"description": "High security fraud detection",
"enabled": true,
"id": "model_001",
"name": "PROTECTIVE"
},
{
"description": "Balanced fraud detection",
"enabled": false,
"id": "model_002",
"name": "PERMISSIVE"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationModelRequest | true | none |
Example responses
200 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Updated fraud detection model configuration | ConfigurationModelResponse |
404 | Not Found | Model configuration not found for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create model configuration
POST /api/v1/companies/configuration/models/
Create fraud detection model configuration for your company.
Body parameter
{
"configuration": [
{
"description": "High security fraud detection",
"enabled": true,
"id": "model_001",
"name": "PROTECTIVE"
},
{
"description": "Balanced fraud detection",
"enabled": false,
"id": "model_002",
"name": "PERMISSIVE"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConfigurationModelRequest | true | none |
Example responses
201 Response
{
"configuration": []
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created fraud detection model configuration | ConfigurationModelResponse |
409 | Conflict | Model configuration already exists for this company | None |
422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get company details
GET /api/v1/companies/details
Retrieve current company information including name, description, and legal representative details based on authentication token.
Example responses
200 Response
{
"company_id": "string",
"name": "string",
"description": "string",
"legal_representative_name": "string",
"legal_representative_email": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Company details and configuration information | CompanyResponse |
404 | Not Found | Company not found | None |
Schemas
AddCustomerRequest
{
"customer_id": "CUST_12345",
"email": "customer@example.com",
"phone": "+1234567890",
"card_number": "4111111111111111",
"merchant_id": "MERCH_001",
"ip_addresses": [
"192.168.1.1",
"10.0.0.1"
],
"device_ids": [
"device_123",
"mobile_456"
],
"acceptance": 10,
"declined": 2,
"chargeback_fraud": 0,
"chargeback_authorization": 0,
"chargeback_processing_error": 0,
"chargeback_customer_dispute": 0,
"chargeback_non_receipt": 0,
"chargeback_cancelled_recurring": 0,
"chargeback_product_not_received": 0,
"chargeback_duplicate_processing": 0
}
AddCustomerRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
customer_id | string | true | none | Unique customer identifier. Must be unique across the system. |
string | true | none | Customer email address. Must be a valid email format. | |
phone | string | true | none | Customer phone number including country code. Must be a valid phone format. |
card_number | string | true | none | Customer card number (digits only). Can be full card number (13-19 digits), BIN (6-8 digits), or last 4 digits. Should be masked or tokenized for security. |
merchant_id | string | false | none | Merchant identifier associated with this customer. Optional field. |
ip_addresses | [string] | false | none | List of IP addresses associated with this customer's transactions. |
device_ids | [string] | false | none | List of device identifiers used by this customer. |
acceptance | integer | false | none | Number of accepted transactions for this customer. Must be non-negative. |
declined | integer | false | none | Number of declined transactions for this customer. Must be non-negative. |
chargeback_fraud | integer | false | none | Number of fraud-related chargebacks. Must be non-negative. |
chargeback_authorization | integer | false | none | Number of authorization-related chargebacks. Must be non-negative. |
chargeback_processing_error | integer | false | none | Number of processing error chargebacks. Must be non-negative. |
chargeback_customer_dispute | integer | false | none | Number of customer dispute chargebacks. Must be non-negative. |
chargeback_non_receipt | integer | false | none | Number of non-receipt chargebacks. Must be non-negative. |
chargeback_cancelled_recurring | integer | false | none | Number of cancelled recurring transaction chargebacks. Must be non-negative. |
chargeback_product_not_received | integer | false | none | Number of product not received chargebacks. Must be non-negative. |
chargeback_duplicate_processing | integer | false | none | Number of duplicate processing chargebacks. Must be non-negative. |
AddCustomerResponse
{
"customer_id": "string",
"related_customers": [
"string"
],
"shared_attributes": {
"property1": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"property2": {
"property1": [
"string"
],
"property2": [
"string"
]
}
},
"ring_id": "string"
}
AddCustomerResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
customer_id | string | true | none | Customer ID |
related_customers | [string] | true | none | List of related customer IDs |
shared_attributes | object | true | none | Shared attributes mapping |
» additionalProperties | object | false | none | none |
»» additionalProperties | [string] | false | none | none |
ring_id | string | true | none | Fraud ring identifier |
AggregationEventListResponse
{
"data": [
{}
],
"pagination": {}
}
AggregationEventListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | true | none | none |
pagination | object | true | none | none |
AggregationFieldsResponse
{
"data": {}
}
AggregationFieldsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | object | true | none | none |
AggregationListResponse
{
"data": [
{}
],
"pagination": {}
}
AggregationListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | true | none | none |
pagination | object | true | none | none |
AggregationRequest
{
"name": "daily_transactions",
"value": "card:5m:count > 10",
"periods": [
5,
30,
60
]
}
AggregationRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Name identifier for the aggregation. Must be unique, start with a letter, and contain only letters, numbers, underscores, and hyphens. |
value | string | true | none | Aggregation expression containing metrics in format 'entity:period:metric'. Valid entities: card, customer, company. Valid periods: 5m, 10m, 15m, 30m, 1h, 3h, 6h, 12h, 1d. Valid metrics: count, sum, avg, successful, declined, unique_companies, unique_customers, unique_cards, unique_ips, success_rate, decline_rate, velocity, median, std, min, max, p90, p95, p99, round_ratio, shannon_entropy, company_diversity. |
periods | [integer] | true | none | List of time periods (in minutes) for which to calculate aggregations. Valid periods: 5, 10, 15, 30, 60 (1h), 180 (3h), 360 (6h), 720 (12h), 1440 (1d). Must contain at least one period. |
AggregationResponse
{
"id": "string",
"name": "string",
"value": "string",
"periods": [
0
],
"enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"data": {}
}
AggregationResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
name | string | true | none | none |
value | string | true | none | none |
periods | [integer] | true | none | none |
enabled | boolean | true | none | none |
created_at | string(date-time) | true | none | none |
updated_at | string(date-time) | true | none | none |
data | object | false | none | none |
AnomalyAnalyzeRequest
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"min_percentage": 5
}
AnomalyAnalyzeRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fields | [string] | true | none | Fields to analyze statistically. Must specify at least one field name from the charges collection. |
query | any | false | none | Optional query filters for data retrieval. Use JSON format for filtering conditions. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from_date | any | false | none | Start date for data analysis. ISO format with timezone. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
to_date | any | false | none | End date for data analysis. Must be after from_date if specified. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min_percentage | number | false | none | Minimum percentage threshold for statistical analysis. Only patterns representing at least this percentage will be analyzed in detail. |
AnomalyAnalyzeResponse
{
"total_records": 0,
"fields": [
"string"
],
"patterns": [
{}
],
"params": {},
"query": {},
"insights": {},
"statistics": {}
}
AnomalyAnalyzeResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total_records | integer | true | none | Total number of records analyzed |
fields | [string] | true | none | Fields to analyze for patterns |
patterns | [object] | true | none | Statistical patterns found |
params | object | true | none | Parameters used for statistical analysis |
query | any | false | none | Query filters that were applied |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
insights | object | true | none | Statistical insights and recommendations |
statistics | object | true | none | Statistics of the analysis |
AnomalyCompareRequest
{
"fields": [
"payment.amount"
],
"current_from_date": "2024-02-01T00:00:00Z",
"current_to_date": "2024-02-29T23:59:59Z",
"baseline_from_date": "2024-01-01T00:00:00Z",
"baseline_to_date": "2024-01-31T23:59:59Z",
"query": {
"status": "completed"
},
"change_threshold": 0.1,
"statistical_significance": true
}
AnomalyCompareRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fields | [string] | true | none | Fields to compare between periods. Must specify at least one field name from the charges collection. |
current_from_date | string(date-time) | true | none | Start date for current period analysis. Must be before current_to_date. |
current_to_date | string(date-time) | true | none | End date for current period analysis. Must be after current_from_date. |
baseline_from_date | string(date-time) | true | none | Start date for baseline period analysis. Must be before baseline_to_date. |
baseline_to_date | string(date-time) | true | none | End date for baseline period analysis. Must be after baseline_from_date. |
query | any | false | none | Optional query filters applied to both periods. Use JSON format for filtering conditions. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
change_threshold | number | false | none | Threshold for detecting significant changes (0.01 = 1%, 1.0 = 100%). Changes above this threshold will be highlighted. |
statistical_significance | boolean | false | none | Include statistical significance tests in the analysis. Provides p-values and confidence intervals for detected changes. |
AnomalyCompareResponse
{
"current_records": 0,
"baseline_records": 0,
"fields": [
"string"
],
"changes": [
{}
],
"added_patterns": [
{}
],
"removed_patterns": [
{}
],
"statistics": {},
"params": {},
"query": {}
}
AnomalyCompareResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
current_records | integer | true | none | Number of records in current period |
baseline_records | integer | true | none | Number of records in baseline period |
fields | [string] | true | none | Fields to compare between periods |
changes | [object] | true | none | Detected changes between periods |
added_patterns | [object] | true | none | New patterns found in current period |
removed_patterns | [object] | true | none | Patterns that disappeared from baseline |
statistics | any | false | none | Statistical significance test results |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
params | object | true | none | Parameters used for comparison |
query | any | false | none | Query filters that were applied |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AnomalyDiscoverRequest
{
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"max_fields": 2,
"min_percentage": 1,
"limit": 10
}
AnomalyDiscoverRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
query | any | false | none | Optional query filters for data retrieval. Use JSON format for filtering conditions. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from_date | any | false | none | Start date for data analysis. ISO format with timezone. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
to_date | any | false | none | End date for data analysis. Must be after from_date if specified. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
max_fields | integer | false | none | Maximum number of fields to analyze simultaneously. Higher values provide more detailed patterns but require more processing time. |
min_percentage | number | false | none | Minimum percentage threshold for pattern discovery. Only patterns representing at least this percentage of data will be discovered. |
limit | integer | false | none | Maximum number of patterns to discover. Higher limits provide more comprehensive results but slower performance. |
AnomalyDiscoverResult
{
"total_records": 0,
"fields": [
{}
],
"patterns": [
{}
],
"params": {},
"query": {}
}
AnomalyDiscoverResult
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total_records | integer | true | none | Total number of records analyzed |
fields | [object] | true | none | Ranking of fields by importance and concentration potential |
patterns | [object] | true | none | Auto-discovered concentration patterns |
params | object | true | none | Parameters used for auto-discovery |
query | any | false | none | Query filters that were applied |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AnomalyFieldsResponse
{
"customer_fields": [
"string"
],
"payment_fields": [
"string"
],
"charge_fields": [
"string"
]
}
AnomalyFieldsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
customer_fields | [string] | true | none | List of customer-related fields available for analysis |
payment_fields | [string] | true | none | List of payment-related fields available for analysis |
charge_fields | [string] | true | none | List of charge-related fields available for analysis |
AnomalyFindRequest
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"min_percentage": 1,
"max_depth": 2,
"contains": "visa",
"min_count": 10,
"sort_by": "percentage",
"limit": 20
}
AnomalyFindRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fields | [string] | true | none | Fields to analyze for patterns. Must specify at least one field name from the charges collection. |
query | any | false | none | Optional query filters for data retrieval. Use JSON format for filtering conditions. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from_date | any | false | none | Start date for data analysis. ISO format with timezone. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
to_date | any | false | none | End date for data analysis. Must be after from_date if specified. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min_percentage | number | false | none | Minimum percentage threshold for patterns. Only patterns representing at least this percentage will be included. |
max_depth | integer | false | none | Maximum depth for pattern hierarchy. Higher depths provide more detailed analysis but require more processing. |
contains | any | false | none | Pattern must contain this string. Use for filtering patterns by specific values. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min_count | integer | false | none | Minimum count for patterns. Only patterns with at least this many occurrences will be included. |
sort_by | string | false | none | Sort patterns by 'percentage' (default) or 'count'. Percentage sorts by relative frequency, count by absolute occurrences. |
limit | integer | false | none | Maximum number of patterns to return. Higher limits provide more comprehensive results. |
AnomalyFindResponse
{
"total_records": 0,
"fields": [
"string"
],
"patterns": [
{}
],
"params": {},
"query": {}
}
AnomalyFindResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total_records | integer | true | none | Total number of records analyzed |
fields | [string] | true | none | Fields to analyze for patterns |
patterns | [object] | true | none | Found concentration patterns |
params | object | true | none | Parameters used for pattern finding |
query | any | false | none | Query filters that were applied |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AnomalyOptimizedRequest
{
"fields": [
"payment.amount"
],
"query": {
"status": "completed"
},
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"top": 5,
"min_value": 10,
"min_percentage": 5
}
AnomalyOptimizedRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
fields | [string] | true | none | Fields to analyze for anomalies. Must specify at least one field name from the charges collection. |
query | any | false | none | Optional query filters for data retrieval. Use JSON format for filtering conditions. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from_date | any | false | none | Start date for data analysis. ISO format with timezone. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
to_date | any | false | none | End date for data analysis. Must be after from_date if specified. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string(date-time) | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
top | integer | false | none | Number of top elements to include in results. Higher values provide more detailed analysis. |
min_value | any | false | none | Minimum value threshold for filtering. Only patterns with at least this many occurrences will be included. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min_percentage | any | false | none | Minimum percentage threshold for filtering. Only patterns representing at least this percentage will be included. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AnomalyOptimizedResult
{
"total_records": 0,
"fields": [
"string"
],
"patterns": {},
"params": {},
"query": {}
}
AnomalyOptimizedResult
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total_records | integer | true | none | Total number of records analyzed |
fields | [string] | true | none | Fields that were analyzed |
patterns | object | true | none | Hierarchical tree structure of anomalies |
params | object | true | none | Filter parameters used in the analysis |
query | any | false | none | Query filters that were applied |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AssessmentDataResponse
{
"assessment_id": "string",
"assessment_type": "string",
"charge_id": "string",
"company_id": "string",
"decision": "string",
"decided_by": {},
"decision_details": {},
"configuration": {},
"data": {},
"snapshot_id": "string"
}
AssessmentDataResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
assessment_id | string | true | none | none |
assessment_type | string | true | none | none |
charge_id | string | true | none | none |
company_id | string | true | none | none |
decision | string | true | none | none |
decided_by | object | false | none | none |
decision_details | object | false | none | none |
configuration | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | [any] | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | object | false | none | none |
snapshot_id | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
AssessmentListResponse
{
"data": [],
"pagination": {
"current_page": 1,
"has_next": true,
"has_previous": false,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
AssessmentListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [AssessmentResponse] | true | none | [AssessmentResponse model.] |
pagination | object | true | none | Pagination metadata |
AssessmentResponse
{
"assessment_id": "string",
"assessment_type": "string",
"charge_id": "string",
"company_id": "string",
"decision": "string",
"decided_by": {},
"decision_details": {},
"configuration": {},
"data": {},
"snapshot_id": "string",
"created_at": "2019-08-24T14:15:22Z"
}
AssessmentResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
assessment_id | string | true | none | none |
assessment_type | string | true | none | none |
charge_id | string | true | none | none |
company_id | string | true | none | none |
decision | string | true | none | none |
decided_by | object | false | none | none |
decision_details | object | false | none | none |
configuration | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | [any] | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | object | false | none | none |
snapshot_id | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | true | none | none |
BlacklistListResponse
{
"data": [
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {}
}
BlacklistListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [BlacklistResponse] | true | none | [Pydantic model for the blacklist object.] |
pagination | object | true | none | none |
BlacklistRequest
{
"value": "user@example.com",
"expire_at": "2024-12-31T23:59:59Z"
}
BlacklistRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Value to be blacklisted. Accepts customer emails, phone numbers, or payment card hashes. Cannot be empty. |
expire_at | string(date-time) | false | none | Expiration date and time for the blacklist entry. Defaults to 1 year from creation. |
BlacklistResponse
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
BlacklistResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
value | string | true | none | none |
enabled | boolean | true | none | none |
expire_at | string(date-time) | true | none | none |
created_at | string(date-time) | true | none | none |
updated_at | string(date-time) | true | none | none |
ChargeListResponse
{
"data": [
{
"charge_id": "string",
"status": "pending",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"customer": {
"full_name": "string",
"phone_number": "string",
"email": "string",
"ip_address": "string",
"fingerprint": "string"
},
"payment": {
"currency": "USD",
"amount": 0,
"fee": 0,
"card_hash": "string",
"card_type": "string",
"exp_month": "string",
"brand": "string",
"bin_number": "string",
"cvc": "string"
}
}
],
"pagination": {}
}
ChargeListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ChargeResponse] | true | none | [Pydantic model for charge responses.] |
pagination | object | true | none | none |
ChargeRequest
{
"charge_id": "ch_1234567890",
"status": "pending",
"customer": {
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
},
"payment": {
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
},
"metadata": {
"campaign_id": "summer_sale_2024",
"checkout_steps": 3,
"customer_tier": "premium",
"referral_source": "google_ads",
"session_duration": 1200
}
}
ChargeRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
charge_id | string | true | none | Unique identifier for the charge transaction. |
status | string | false | none | Current status of the charge. Must be one of: pending, completed, failed, cancelled, refunded, paid. Defaults to 'pending'. |
customer | any | false | none | Customer information associated with this charge. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CustomerRequest | false | none | Pydantic model for customer data in charge requests. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
payment | any | false | none | Payment method and transaction details. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | PaymentRequest | false | none | Pydantic model for payment data in charge requests. |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
metadata | any | false | none | Additional metadata for the charge. Can contain any custom fields relevant to your business logic or fraud detection rules. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
ChargeResponse
{
"charge_id": "string",
"status": "pending",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"customer": {
"full_name": "string",
"phone_number": "string",
"email": "string",
"ip_address": "string",
"fingerprint": "string"
},
"payment": {
"currency": "USD",
"amount": 0,
"fee": 0,
"card_hash": "string",
"card_type": "string",
"exp_month": "string",
"brand": "string",
"bin_number": "string",
"cvc": "string"
}
}
ChargeResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
charge_id | string | true | none | none |
status | string | false | none | none |
created_at | string(date-time) | false | none | none |
updated_at | string(date-time) | false | none | none |
customer | CustomerResponse | false | none | Pydantic model for customer data in charge responses. |
payment | PaymentResponse | false | none | Pydantic model for payment data in charge responses. |
ChargebackCategoryResponse
{
"count": 0,
"percentage": 0,
"subcategories": {
"property1": {
"count": 0,
"percentage": 0
},
"property2": {
"count": 0,
"percentage": 0
}
}
}
ChargebackCategoryResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
count | integer | true | none | Total chargebacks count |
percentage | number | true | none | Percentage of total transactions |
subcategories | object | true | none | Breakdown by subcategory |
» additionalProperties | ChargebackSubcategoryResponse | false | none | Chargeback subcategory with count and percentage. |
ChargebackStatsResponse
{
"total": 0,
"fraud": 0,
"authorization": 0,
"processing_error": 0,
"customer_dispute": 0,
"non_receipt": 0,
"cancelled_recurring": 0,
"product_issues": 0,
"duplicate_processing": 0
}
ChargebackStatsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total | integer | true | none | Total chargebacks |
fraud | integer | true | none | Fraud chargebacks |
authorization | integer | true | none | Authorization chargebacks |
processing_error | integer | true | none | Processing error chargebacks |
customer_dispute | integer | true | none | Customer dispute chargebacks |
non_receipt | integer | true | none | Non-receipt chargebacks |
cancelled_recurring | integer | true | none | Cancelled recurring chargebacks |
product_issues | integer | true | none | Product issues chargebacks |
duplicate_processing | integer | true | none | Duplicate processing chargebacks |
ChargebackSubcategoryResponse
{
"count": 0,
"percentage": 0
}
ChargebackSubcategoryResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
count | integer | true | none | Chargeback count |
percentage | number | true | none | Percentage of total chargebacks |
ChargesApplied
{
"applied": 0,
"ids": [
"string"
]
}
ChargesApplied
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
applied | integer | true | none | Number of charges this rule applied to |
ids | [string] | false | none | List of charge IDs (populated if include_charge_ids=True) |
CompanyResponse
{
"company_id": "string",
"name": "string",
"description": "string",
"legal_representative_name": "string",
"legal_representative_email": "string"
}
CompanyResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
company_id | string | true | none | none |
name | string | true | none | none |
description | string | true | none | none |
legal_representative_name | string | true | none | none |
legal_representative_email | string | true | none | none |
ConfigurationDecisionItemRequest
{
"name": "ACCEPT_PRIORITY",
"description": "Use when fraud detection is high priority",
"enabled": true
}
ConfigurationDecisionItemRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Decision configuration preset name. Available options: ACCEPT_PRIORITY, REJECT_PRIORITY, MAJORITY_RULE. |
description | any | false | none | Optional description explaining when this decision configuration should be used. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enabled | boolean | false | none | Whether this decision configuration is currently active. Only one configuration can be enabled at a time. |
ConfigurationDecisionItemResponse
{
"id": "string",
"name": "string",
"description": "string",
"enabled": true
}
ConfigurationDecisionItemResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
name | string | true | none | none |
description | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enabled | boolean | false | none | none |
ConfigurationDecisionRequest
{
"configuration": [
{
"description": "Accept takes precedence",
"enabled": true,
"name": "ACCEPT_PRIORITY"
},
{
"description": "Reject takes precedence",
"enabled": false,
"name": "REJECT_PRIORITY"
}
]
}
ConfigurationDecisionRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationDecisionItemRequest] | true | none | List of decision configurations. Must contain at least one configuration and exactly one must be enabled. Maximum 3 configurations allowed. |
ConfigurationDecisionResponse
{
"configuration": []
}
ConfigurationDecisionResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationDecisionItemResponse] | false | none | [Response model for a decision configuration item.] |
ConfigurationExecutionItemResponse
{
"config_item_id": "string",
"priority": 0,
"name": "string",
"enabled": true,
"stop_on_match": false,
"type": "string",
"description": "string",
"configuration_id": "string"
}
ConfigurationExecutionItemResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
config_item_id | string | true | none | none |
priority | integer | true | none | none |
name | string | true | none | none |
enabled | boolean | false | none | none |
stop_on_match | boolean | false | none | none |
type | string | true | none | none |
description | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration_id | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
ConfigurationExecutionRequest
{
"configuration": [
{
"enabled": true,
"name": "Blacklist Check",
"priority": 1,
"stop_on_match": true,
"type": "BLACKLISTS"
},
{
"enabled": true,
"name": "Whitelist Validation",
"priority": 2,
"stop_on_match": false,
"type": "WHITELISTS"
},
{
"enabled": true,
"name": "Fraud Rules",
"priority": 3,
"stop_on_match": false,
"type": "RULES"
}
]
}
ConfigurationExecutionRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationItemRequest] | true | none | List of execution configuration items ordered by priority. Each item must have a unique priority and name. Maximum 20 items allowed for performance. |
ConfigurationExecutionResponse
{
"configuration": []
}
ConfigurationExecutionResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationExecutionItemResponse] | false | none | [Response model for a configuration item.] |
ConfigurationItemRequest
{
"priority": 1,
"name": "High Risk Blacklist Check",
"type": "BLACKLISTS",
"description": "Checks customer email against known fraud database",
"enabled": true,
"stop_on_match": false
}
ConfigurationItemRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
priority | integer | true | none | Execution priority order. Lower numbers execute first. Must be unique across all items in the configuration. |
name | string | true | none | Descriptive name for this configuration item. Must be unique and descriptive. |
type | string | true | none | Type of fraud detection component to execute. Must be one of: BLACKLISTS (block known bad actors), WHITELISTS (allow trusted entities), RULES (custom business logic). |
description | any | false | none | Optional detailed description of what this configuration item does and when it should be used. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enabled | boolean | false | none | Whether this configuration item is active. Disabled items are skipped during execution. |
stop_on_match | boolean | false | none | Whether to stop processing remaining items if this one matches/triggers. Use for high-confidence blocking rules. |
ConfigurationModelItemRequest
{
"id": "model_001",
"name": "PROTECTIVE",
"description": "High precision fraud detection with minimal false positives",
"enabled": true
}
ConfigurationModelItemRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Unique identifier for the ML model configuration. Must be unique across all model configurations. |
name | string | true | none | Model configuration preset name. Available options: PROTECTIVE, PERMISSIVE, OPTIMIZED. |
description | any | false | none | Optional description explaining the model configuration purpose and use cases. |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enabled | boolean | false | none | Whether this model configuration is currently active and available for use. |
ConfigurationModelItemResponse
{
"id": "string",
"name": "string",
"description": "string",
"enabled": true,
"configuration_id": "string"
}
ConfigurationModelItemResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
name | string | true | none | none |
description | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enabled | boolean | false | none | none |
configuration_id | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
ConfigurationModelRequest
{
"configuration": [
{
"description": "High security fraud detection",
"enabled": true,
"id": "model_001",
"name": "PROTECTIVE"
},
{
"description": "Balanced fraud detection",
"enabled": false,
"id": "model_002",
"name": "PERMISSIVE"
}
]
}
ConfigurationModelRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationModelItemRequest] | true | none | List of model configurations. Each configuration must have unique ID and name. Maximum 10 configurations allowed. |
ConfigurationModelResponse
{
"configuration": []
}
ConfigurationModelResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
configuration | [ConfigurationModelItemResponse] | false | none | [Response model for a ML model configuration item.] |
CustomerRequest
{
"full_name": "John Doe",
"phone_number": "+1234567890",
"email": "customer@example.com",
"ip_address": "192.168.1.1",
"fingerprint": "fp_1234abcd5678efgh"
}
CustomerRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
full_name | string | true | none | Full name of the customer making the transaction. |
phone_number | string | true | none | Customer's phone number including country code. Must be a valid phone format. |
string | true | none | Customer's email address. Must be a valid email format. | |
ip_address | string | true | none | Customer's IP address (IPv4 or IPv6 format). Accepts standard IP formats. |
fingerprint | string | true | none | Unique device/browser fingerprint for fraud detection. |
CustomerResponse
{
"full_name": "string",
"phone_number": "string",
"email": "string",
"ip_address": "string",
"fingerprint": "string"
}
CustomerResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
full_name | string | true | none | none |
phone_number | string | true | none | none |
string | true | none | none | |
ip_address | string | true | none | none |
fingerprint | string | true | none | none |
CustomerStatsResponse
{
"customer_id": "string",
"email": "string",
"phone": "string",
"card_number": "string",
"created_at": "string",
"ip_addresses": [
"string"
],
"device_ids": [
"string"
],
"merchant_id": "",
"acceptance": 0,
"declined": 0,
"chargebacks": {
"total": 0,
"fraud": 0,
"authorization": 0,
"processing_error": 0,
"customer_dispute": 0,
"non_receipt": 0,
"cancelled_recurring": 0,
"product_issues": 0,
"duplicate_processing": 0
}
}
CustomerStatsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
customer_id | string | true | none | Customer ID |
string | true | none | Customer email address | |
phone | string | true | none | Customer phone number |
card_number | string | true | none | Customer card number (last 4 digits) |
created_at | string | true | none | Customer creation timestamp |
ip_addresses | [string] | false | none | List of IP addresses used |
device_ids | [string] | false | none | List of device identifiers used |
merchant_id | string | false | none | Merchant identifier |
acceptance | integer | true | none | Accepted transactions |
declined | integer | true | none | Declined transactions |
chargebacks | ChargebackStatsResponse | true | none | Chargeback breakdown |
GraphDataResponse
{
"nodes": [
{
"id": "string",
"label": "string",
"merchant_id": "string",
"acceptance": 0,
"declined": 0,
"total_chargebacks": 0
}
],
"edges": [
{
"from": "string",
"to": "string",
"label": "string",
"value": "string",
"type": "string"
}
],
"ring_id": "string",
"total_nodes": 0
}
GraphDataResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
nodes | [GraphNodeResponse] | true | none | List of graph nodes |
edges | [GraphEdgeResponse] | true | none | List of graph edges |
ring_id | string | true | none | Fraud ring identifier |
total_nodes | integer | true | none | Total number of nodes |
GraphEdgeResponse
{
"from": "string",
"to": "string",
"label": "string",
"value": "string",
"type": "string"
}
GraphEdgeResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from | string | true | none | Source customer ID |
to | string | true | none | Target customer ID |
label | string | true | none | Relationship description |
value | string | true | none | Specific value(s) of shared attribute(s) |
type | string | true | none | Attribute type (email, phone, card, etc.) |
GraphNodeResponse
{
"id": "string",
"label": "string",
"merchant_id": "string",
"acceptance": 0,
"declined": 0,
"total_chargebacks": 0
}
GraphNodeResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Customer ID |
label | string | true | none | Display label |
merchant_id | string | true | none | Merchant identifier |
acceptance | integer | true | none | Accepted transactions count |
declined | integer | true | none | Declined transactions count |
total_chargebacks | integer | true | none | Total chargebacks count |
GraphStatsResponse
{
"relation_id": "string",
"customer_id": "string",
"customer_details": {
"customer_id": "string",
"email": "string",
"phone": "string",
"card_number": "string",
"created_at": "string",
"ip_addresses": [
"string"
],
"device_ids": [
"string"
],
"merchant_id": "",
"acceptance": 0,
"declined": 0,
"chargebacks": {
"total": 0,
"fraud": 0,
"authorization": 0,
"processing_error": 0,
"customer_dispute": 0,
"non_receipt": 0,
"cancelled_recurring": 0,
"product_issues": 0,
"duplicate_processing": 0
}
},
"related_customers": [
"string"
],
"related_customers_details": [
{
"customer_id": "string",
"email": "string",
"phone": "string",
"card_number": "string",
"created_at": "string",
"ip_addresses": [
"string"
],
"device_ids": [
"string"
],
"merchant_id": "",
"acceptance": 0,
"declined": 0,
"chargebacks": {
"total": 0,
"fraud": 0,
"authorization": 0,
"processing_error": 0,
"customer_dispute": 0,
"non_receipt": 0,
"cancelled_recurring": 0,
"product_issues": 0,
"duplicate_processing": 0
}
}
],
"ring_stats": {
"acceptance": {
"count": 0,
"percentage": 0
},
"declined": {
"count": 0,
"percentage": 0
},
"chargebacks": {
"count": 0,
"percentage": 0,
"subcategories": {
"property1": {
"count": 0,
"percentage": 0
},
"property2": {
"count": 0,
"percentage": 0
}
}
},
"total_transactions": 0
},
"ring_id": "string",
"total_in_ring": 0
}
GraphStatsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
relation_id | string | true | none | Unique relation identifier |
customer_id | string | true | none | Requested customer ID |
customer_details | CustomerStatsResponse | true | none | Complete profile and statistics of the requested customer |
related_customers | [string] | true | none | List of related customer IDs |
related_customers_details | [CustomerStatsResponse] | true | none | Individual customer statistics |
ring_stats | RingStatsResponse | true | none | Aggregated ring statistics |
ring_id | string | true | none | Fraud ring identifier |
total_in_ring | integer | true | none | Total customers in ring |
HTTPValidationError
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
HTTPValidationError
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
detail | [ValidationError] | false | none | none |
ImpactStats
{
"acceptance_change": 0,
"acceptance_change_percentage": 0,
"declined_change": 0,
"declined_change_percentage": 0
}
ImpactStats
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
acceptance_change | integer | true | none | Change in accepted charges count |
acceptance_change_percentage | number | true | none | Percentage change in acceptance rate |
declined_change | integer | true | none | Change in declined charges count |
declined_change_percentage | number | true | none | Percentage change in decline rate |
PaginationMetadata
{
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
PaginationMetadata
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
has_previous | boolean | true | none | Whether there is a previous page available |
has_next | boolean | true | none | Whether there is a next page available |
last_page | integer | true | none | The last page number (previous page) |
current_page | integer | true | none | The current page number |
next_page | integer | true | none | The next page number |
page_size | integer | true | none | Number of items per page |
PaymentRequest
{
"currency": "USD",
"amount": 100.5,
"fee": 2.5,
"card_hash": "hash_1a2b3c4d5e6f",
"card_type": "credit",
"exp_month": "01",
"brand": "visa",
"bin_number": "424242",
"cvc": "123"
}
PaymentRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
currency | string | false | none | ISO 4217 currency code (3 uppercase letters). Defaults to USD. |
amount | number | true | none | Transaction amount. Must be positive and not exceed 999,999.99. |
fee | number | true | none | Processing fee amount. Must be non-negative. |
card_hash | string | true | none | Hashed card number for security. Must not contain actual card number. |
card_type | string | true | none | Type of card used. Must be either 'credit' or 'debit'. |
exp_month | string | true | none | Card expiration month in MM format (01-12). |
brand | string | true | none | Card brand/network. Must be one of the supported brands. |
bin_number | string | true | none | Bank Identification Number (BIN) from the card. Can be 1 to 10 digits. |
cvc | string | true | none | Card Verification Code (3-4 digits). Should be encrypted/hashed. |
PaymentResponse
{
"currency": "USD",
"amount": 0,
"fee": 0,
"card_hash": "string",
"card_type": "string",
"exp_month": "string",
"brand": "string",
"bin_number": "string",
"cvc": "string"
}
PaymentResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
currency | string | false | none | none |
amount | number | true | none | none |
fee | number | true | none | none |
card_hash | string | true | none | none |
card_type | string | true | none | none |
exp_month | string | true | none | none |
brand | string | true | none | none |
bin_number | string | true | none | none |
cvc | string | true | none | none |
RingStatsResponse
{
"acceptance": {
"count": 0,
"percentage": 0
},
"declined": {
"count": 0,
"percentage": 0
},
"chargebacks": {
"count": 0,
"percentage": 0,
"subcategories": {
"property1": {
"count": 0,
"percentage": 0
},
"property2": {
"count": 0,
"percentage": 0
}
}
},
"total_transactions": 0
}
RingStatsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
acceptance | TransactionStatsResponse | true | none | Acceptance statistics |
declined | TransactionStatsResponse | true | none | Declined statistics |
chargebacks | ChargebackCategoryResponse | true | none | Chargeback statistics |
total_transactions | integer | true | none | Total transactions in ring |
RuleApplicationStats
{
"rule": {},
"charges": {
"applied": 0,
"ids": [
"string"
]
}
}
RuleApplicationStats
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
rule | object | true | none | Rule information |
charges | ChargesApplied | true | none | Charges application details |
RuleListResponse
{
"data": [],
"pagination": {
"current_page": 1,
"has_next": true,
"has_previous": false,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
RuleListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | true | none | none |
pagination | object | true | none | Pagination metadata |
RuleRequest
{
"value": "payment.amount > 1000 and customer.email.contains('@gmail.com')",
"decision": "ACCEPT",
"expire_at": "2024-12-31T23:59:59Z"
}
RuleRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Rule expression using boolean logic operators (and, or, not) and comparison operators (==, !=, <, >, <=, >=). Can reference charge fields like payment.amount, customer.email, status, or aggregation metrics like card:5m:count. Cannot be empty. |
decision | string | true | none | Decision action when rule matches. Must be either ACCEPT or REJECT in uppercase. |
expire_at | string(date-time) | false | none | Expiration date and time for the rule. Defaults to 1 year from creation. |
RuleResponse
{
"id": "string",
"value": "string",
"decision": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
RuleResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
value | string | true | none | none |
decision | string | true | none | none |
enabled | boolean | true | none | none |
expire_at | string(date-time) | true | none | none |
created_at | string(date-time) | true | none | none |
updated_at | string(date-time) | true | none | none |
SimulationRequest
{
"from_date": "2024-01-01T00:00:00Z",
"to_date": "2024-01-31T23:59:59Z",
"rules": [
{
"decision": "REJECT",
"expire_at": "2024-12-31T23:59:59Z",
"value": "amount > 500"
}
],
"include_charge_ids": false
}
SimulationRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from_date | string(date-time) | true | none | Start date for the simulation period. Must be before to_date. |
to_date | string(date-time) | true | none | End date for the simulation period. Must be after from_date. |
rules | [RuleRequest] | true | none | List of rules to simulate. Must contain at least one rule. |
include_charge_ids | boolean | false | none | Whether to include individual charge IDs in rule application results. Default is False for performance. |
SimulationResponse
{
"baseline": {},
"current": {},
"impact": {
"acceptance_change": 0,
"acceptance_change_percentage": 0,
"declined_change": 0,
"declined_change_percentage": 0
},
"errors": [],
"total_charges_analyzed": 0,
"total_rules_evaluated": 0,
"rule_applications": []
}
SimulationResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
baseline | object | true | none | Statistics for current rules |
current | object | true | none | Statistics for current + new rules |
impact | ImpactStats | true | none | Impact analysis of new rules |
errors | [object] | false | none | Validation errors for new rules |
total_charges_analyzed | integer | true | none | Total number of charges analyzed |
total_rules_evaluated | integer | true | none | Total number of rules evaluated |
rule_applications | [RuleApplicationStats] | false | none | Rules and their application counts |
Snapshot
{
"snapshot_id": "string",
"company_id": "",
"created_at": "2019-08-24T14:15:22Z",
"description": "",
"backup_path": "string",
"database_name": "string",
"collections": [
"string"
],
"size_bytes": 0,
"status": "string",
"compressed": false
}
Snapshot
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
snapshot_id | string | false | none | none |
company_id | string | false | none | none |
created_at | string(date-time) | false | none | none |
description | string | false | none | none |
backup_path | string | true | none | none |
database_name | string | true | none | none |
collections | [string] | true | none | none |
size_bytes | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
compressed | boolean | false | none | none |
SnapshotCompareRequest
{
"baseline_snapshot_id": "snapshot_20240101_baseline",
"current_snapshot_id": "snapshot_20240201_current"
}
SnapshotCompareRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
baseline_snapshot_id | string | true | none | ID of the baseline snapshot to compare against. This is the reference point for comparison. |
current_snapshot_id | string | true | none | ID of the current snapshot to compare. This will be compared against the baseline. |
SnapshotCompareResponse
{
"rules": {},
"whitelists": {},
"blacklists": {}
}
SnapshotCompareResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
rules | object | false | none | none |
whitelists | object | false | none | none |
blacklists | object | false | none | none |
SnapshotListResponse
{
"data": [
{}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
SnapshotListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | true | none | none |
pagination | PaginationMetadata | true | none | Pagination metadata model for list responses. |
SnapshotMetadataResponse
{
"data": {}
}
SnapshotMetadataResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | object | true | none | none |
SnapshotRequest
{
"description": "Pre-deployment snapshot",
"collections": [
"RULES",
"BLACKLISTS"
],
"drop_existing": false
}
SnapshotRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | Optional description for the snapshot to help identify its purpose. |
collections | [string] | true | none | List of fraud detection modules to include in the snapshot. Available modules: RULES, BLACKLISTS, WHITELISTS, ASSESSMENTS, AGGREGATIONS, ANOMALIES, SCORES. |
drop_existing | boolean | false | none | Whether to drop existing module data before restoring. Use with caution as this is destructive. |
SnapshotResponse
{
"id": "string",
"collections": [
"string"
],
"size_bytes": 0,
"status": "string",
"compressed": false,
"description": "string",
"backup_path": "string",
"created_at": "2019-08-24T14:15:22Z"
}
SnapshotResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
collections | [string] | true | none | none |
size_bytes | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
compressed | boolean | false | none | none |
description | string | true | none | none |
backup_path | string | true | none | none |
created_at | string(date-time) | true | none | none |
SnapshotRestoreListResponse
{
"data": [
{}
],
"pagination": {
"current_page": 1,
"has_next": false,
"has_previous": true,
"last_page": 1,
"next_page": 2,
"page_size": 20
}
}
SnapshotRestoreListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [object] | true | none | none |
pagination | PaginationMetadata | true | none | Pagination metadata model for list responses. |
SnapshotRestoreResponse
{
"restore_id": "string",
"snapshot_id": "string",
"company_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"collections": [
"string"
],
"description": "",
"status": "string",
"drop_existing": false
}
SnapshotRestoreResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
restore_id | string | true | none | none |
snapshot_id | string | true | none | none |
company_id | string | true | none | none |
created_at | string(date-time) | true | none | none |
collections | [string] | true | none | none |
description | string | false | none | none |
status | any | false | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | null | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
drop_existing | boolean | false | none | none |
TransactionStatsResponse
{
"count": 0,
"percentage": 0
}
TransactionStatsResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
count | integer | true | none | Transaction count |
percentage | number | true | none | Percentage of total transactions |
ValidationError
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
ValidationError
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
loc | [anyOf] | true | none | none |
anyOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
or
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | integer | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
msg | string | true | none | none |
type | string | true | none | none |
WhitelistListResponse
{
"data": [
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {}
}
WhitelistListResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [WhitelistResponse] | true | none | [Pydantic model for the whitelist object.] |
pagination | object | true | none | none |
WhitelistRequest
{
"value": "user@example.com",
"expire_at": "2025-12-31T23:59:59Z"
}
WhitelistRequest
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Value to be whitelisted. Accepts customer emails, phone numbers, or payment card hashes. Must not be empty. |
expire_at | string(date-time) | false | none | Expiration date for this whitelist entry. Defaults to 1 year from creation. |
WhitelistResponse
{
"id": "string",
"value": "string",
"enabled": true,
"expire_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
WhitelistResponse
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
value | string | true | none | none |
enabled | boolean | true | none | none |
expire_at | string(date-time) | true | none | none |
created_at | string(date-time) | true | none | none |
updated_at | string(date-time) | true | none | none |
Errors
The Frauddi API uses conventional HTTP response codes to indicate the success or failure of an API request.
Error Code | Meaning |
---|---|
400 | Bad Request -- The request was invalid or cannot be served |
401 | Unauthorized -- Authentication is required to access this resource |
403 | Forbidden -- You do not have permission to access this resource |
404 | Not Found -- The requested resource could not be found |
409 | Conflict -- The request conflicts with the current state of the resource |
422 | Unprocessable Entity -- Validation errors in the request data |
500 | Internal Server Error -- An unexpected error occurred on the server |
Error Response Format
{
"error": {
"type": "bad_request_error",
"message": "The request was invalid or cannot be served.",
"status_code": 400
}
}
All errors return a JSON object with an error
field containing:
- type: The specific error type (e.g., "unauthorized_error", "validation_error")
- message: Human-readable error message
- status_code: HTTP status code
Error Types
bad_request_error
- Invalid request format or parametersunauthorized_error
- Missing or invalid API keyforbidden_error
- Insufficient permissionsnot_found_error
- Resource does not existconflict_error
- Request conflicts with current stateunprocessable_entity_error
- Validation failedinternal_server_error
- Server-side error