Scores a transaction against your configured rules and returns a risk assessment. This is the entry point to transaction screening — everything else in this section reads results it produced.
The response carries the score (risk_score, risk_level, fraud_probability), the outcome (status), and which of your rules fired (rules_triggered, rules_triggered_count). Keep internal_reference — it is how you fetch the transaction again later.
Returns 201: screening creates a stored transaction record, it does not merely evaluate one.
Send a sandbox key (test_sk_ / test_pk_) to screen without affecting your production data; sandbox results are filtered out of the live transaction list by the mode parameter.
Authorization
ApiKeyAuth In: header
TypeScript Definitions
Use the request body type in TypeScript.
Serializer for screening a transaction.
Response Body
application/json
curl -X POST "https://example.com/api/v1/fraud/transaction-monitoring/screen-transaction" \ -H "Content-Type: application/json" \ -d '{ "transaction_id": "TXN-12345", "amount": 1000, "currency": "USD", "transaction_type": "purchase", "customer_id": "CUST-001", "customer_name": "John Doe", "customer_email": "john@example.com", "merchant": "Amazon", "device_type": "mobile", "ip_address": "192.168.1.1" }'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "transaction_id": "string", "internal_reference": "string", "amount": "string", "currency": "str", "transaction_type": "debit", "transaction_type_display": "string", "category": "string", "merchant": "string", "notes": "string", "payment_method": "string", "customer_id": "string", "customer_name": "string", "customer_email": "user@example.com", "customer_transaction_count": -2147483648, "customer_average_amount": "string", "sender_account_number": "string", "beneficiary_account_number": "string", "device_id": "string", "device_type": "string", "device_location": "string", "device_location_lat": "string", "device_location_lng": "string", "ip_address": "string", "ip_location": "string", "ip_location_lat": "string", "ip_location_lng": "string", "user_agent": "string", "geo_mismatch": true, "geo_mismatch_distance": "string", "fraud_probability": "string", "ml_model_version": "string", "ml_detection_reason": "string", "risk_score": -2147483648, "risk_level": "critical", "risk_level_display": "string", "status": "approved", "status_display": "string", "reviewed_by": "92ab4dbc-1b27-40ce-b24b-7dde8f4709be", "reviewed_by_name": "string", "reviewed_by_email": "user@example.com", "reviewed_at": "2019-08-24T14:15:22Z", "review_notes": "string", "assignee": "52cf793d-61ec-4818-938e-7a539e4f8457", "assignee_name": "string", "rules_triggered": null, "rules_triggered_details": "string", "rules_triggered_count": -2147483648, "risk_score_breakdown": "string", "sanctions_screening": "string", "crypto_screening": "string", "digital_footprint": "string", "notes_screening": "string", "adverse_media_screening": "string", "received_data": "string", "customer_blacklist": "string", "device_session": "string", "c360_individual": "string", "c360_business": "string", "customer_open_alerts": "string", "customer_history": "string", "linked_cases": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "case_number": "string", "title": "string", "description": "string", "case_type": "fraud", "case_type_display": "string", "priority": "low", "priority_display": "string", "status": "open", "status_display": "string", "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4", "created_by_name": "string", "assignee": "52cf793d-61ec-4818-938e-7a539e4f8457", "assignee_name": "string", "opened_at": "2019-08-24T14:15:22Z", "resolved_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z" } ], "transaction_timestamp": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "is_new_device": true, "is_velocity_spike": true, "is_sandbox": true, "has_alerts": true, "alert_code": "string", "alert_reason": "string", "metadata": null }, "status": true, "message": "Request successful.", "errors": {}, "meta": { "timestamp": "2019-08-24T14:15:22Z", "version": "v1", "request_id": "string" }, "pagination": { "page": 0, "page_size": 0, "total_pages": 0, "total_items": 0 }}response_code values (e.g., 00 Success, 01 Not Found, 02 Unavailable).Join our developer Slack channel for real-time integration support, engineering updates, and direct Q&A with the Prembly team.
Join Slack ChannelScan an ID for fraud POST
# ID-Based Fraud Detection Search the fraud bank by ID numbers (BVN, NIN, Passport, Driver's License, Voter's Card, etc.) ## Features - **Multiple ID Types**: BVN, NIN, Passport, Driver's License, Voter's Card - **Search Modes**: Exact match or partial match - **Optional Face Verification**: Include face image for combined ID + face matching - **Backward Compatible**: Image field is optional - works with or without face image - **Filters**: Date range, fraud category, verified reports only - **Risk Assessment**: Automatic risk scoring (LOW/MEDIUM/HIGH/CRITICAL) - **Recommendations**: Context-aware fraud prevention recommendations ## Use Cases - Customer onboarding verification - Transaction monitoring - Account recovery verification - Fraud investigation - KYC compliance checks - Combined ID + face verification for higher confidence ## Risk Levels - **LOW (0-29)**: No or minimal fraud history - **MEDIUM (30-59)**: Some concerns, additional verification recommended - **HIGH (60-79)**: Significant risk, manual review required - **CRITICAL (80-100)**: Block transaction, report to authorities **Authentication**: Requires X-API-Key header. Used by external integrations and API clients.
Get screening statistics GET
Aggregate counts across your screened transactions — volumes, how they split by risk level and outcome, and which rules fire most. Scoped to your organisation.