NAV
cURL JavaScript Python

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

  1. Obtain your API key from our sales team or dashboard
  2. Make a test request to the /ping endpoint
  3. Submit transaction data to /assessments/ endpoints
  4. 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

  1. Obtain your API key from the Frauddi dashboard or by contacting our sales team
  2. Make a test request to the health check endpoint
  3. Submit transaction data to assessment endpoints
  4. Configure rules and thresholds for your use case

Base URLs:

Email: Frauddi Support Web: Frauddi Support

Authentication

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.
email 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.
email 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
email 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
email 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:

Error Types