Documentation Index
Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide covers the complete flow for transaction monitoring, from creation through automatic risk analysis and alert generation. Transactions are evaluated against transaction-specific rules to detect suspicious patterns, unusual amounts, high-risk jurisdictions, and other red flags.Flow Diagram
Step 1: Create Transaction
Transactions are created via the transaction API with automatic currency conversion and optional rule execution. Endpoint:POST /transactions
Request:
| Field | Type | Required | Description |
|---|---|---|---|
| externalId | string | Yes | Your unique identifier for this transaction |
| type | enum | Yes | Transaction type: PAYMENT, TRANSFER, WITHDRAWAL, DEPOSIT, REFUND, CHARGEBACK, REVERSAL, FEE, ADJUSTMENT, OTHER |
| status | enum | No | Transaction status (default: PENDING) |
| amount | number | Yes | Transaction amount in original currency |
| currency | string | Yes | ISO 4217 currency code (e.g., USD, EUR, GBP) |
| paymentMethod | enum | No | Payment method used |
| originEntityId | uuid | No | Sender entity ID (if entity exists in system) |
| originExternalId | string | No | Sender external identifier |
| originName | string | No | Sender name |
| originCountry | string | No | Sender country (ISO 3166-1 alpha-2) |
| destinationEntityId | uuid | No | Receiver entity ID (if entity exists in system) |
| destinationExternalId | string | No | Receiver external identifier |
| destinationName | string | No | Receiver name |
| destinationCountry | string | No | Receiver country (ISO 3166-1 alpha-2) |
| description | string | No | Transaction description |
| category | string | No | Transaction category |
| transactedAt | datetime | No | When the transaction occurred (default: now) |
| executeRules | boolean | No | Execute rules automatically (default: true) |
| metadata | object | No | Additional custom metadata |
-
Currency Conversion:
- If currency is not USD, converts amount to USD using real-time exchange rates
- Stores:
amountInUsd,exchangeRate,rateSource,rateTimestamp - On conversion failure, transaction is still created (without USD amount)
-
Transaction Creation:
- Transaction record created in database
- Unique ID generated
- Links to origin/destination entities if provided
-
Automatic Risk Analysis (if
executeRules: true):- Executes transaction-specific rules
- Calculates risk score
- Creates alerts for matched rules
- Updates transaction status if needed
Step 2: Currency Conversion
How Currency Conversion Works
- Automatic Conversion: If
currency !== 'USD', system automatically converts to USD - Provider: Uses
ms-providersservice (configured viaMS_PROVIDERS_URL) - Caching: Exchange rates cached for 1 minute (TTL)
- Resilience: Circuit breaker pattern with fallback to stale cache
- Graceful Degradation: If conversion fails, transaction still created (without USD amount)
- If
currency: 'USD', no conversion needed amountInUsd = amountexchangeRate = 1rateSource = 'no-conversion'
Conversion Failure Handling
If currency service is unavailable:Step 3: Transaction Risk Analysis
How Transaction Risk Analysis Works
The RulesExecutionService evaluates transactions using transaction-specific rules:-
Context Loading:
- Loads transaction data
- Loads linked entities (origin/destination) with enrichment data
- Prepares execution context
-
Rule Selection:
- Filters rules by
targetEntityTypes: ['transaction'] - Filters by trigger:
'created'(for automatic) or'manual_evaluation' - Filters by status:
enabled: trueandstatus: 'active'
- Filters rules by
-
Rules Execution:
- Evaluates rule conditions against transaction context
- Executes actions for matched rules (add score, create alerts, update status)
- Accumulates risk score
-
Score Update:
- Updates transaction
riskScore - Sets
flagged: trueif score > 50 - Stores
riskFactorsarray with reasons
- Updates transaction
-
Alert Creation:
- Rules with
create_alertaction generate alerts - Alerts linked to transaction
- Alerts consolidated into investigations after 5-second delay
- Rules with
Transaction-Specific Rules Examples
Rule 1: Large Transaction AmountTransaction Context Structure
The rules engine receives this context:Step 4: Batch Transaction Creation
For high-volume scenarios, use the batch endpoint to create multiple transactions efficiently. Endpoint:POST /transactions/batch
Request:
- Bulk insert for better performance
- Optimized currency conversion (caches rates for same currency)
- Automatic duplicate detection (by externalId)
- Optional rule execution on all transactions
- Max 1000 transactions per batch
- 2-minute timeout
Step 5: Manual Transaction Analysis
If you created a transaction withexecuteRules: false, you can manually trigger risk analysis later.
Endpoint: POST /entities/:transactionId/analyze
Request:
- Re-analyze transaction after entity enrichment
- Analyze transaction after rule updates
- Periodic re-scoring of pending transactions
Step 6: Transaction Queries and Monitoring
List Transactions with Filtering
Endpoint:GET /transactions
Query Parameters:
flagged: Filter by flagged status (true, false, all)minAmount/maxAmount: Amount range filter (in original currency)currency: Filter by currencytype: Filter by transaction typestatus: Filter by transaction statusentityId: Filter by origin or destination entitystartDate/endDate: Date range filtersearch: Free-text search (externalId, description, names)sortBy: Sort field (transacted_at, amount, risk_score, created_at)sortOrder: Sort direction (asc, desc)
Get Transaction Details
Endpoint:GET /transactions/:transactionId
Response: Full transaction object with risk analysis details
View Transaction Alerts
Endpoint:GET /alerts?transactionId=:transactionId
Response: All alerts generated for the transaction
Step 7: Alert Consolidation and Investigations
After risk analysis, alerts are automatically consolidated into investigations:- Alert Creation: Rules with
create_alertaction create individual alerts - 5-Second Delay: System waits to collect all related alerts
- Consolidation: Related alerts consolidated into single investigation
- Investigation Creation: Investigation created with:
- Priority based on highest alert severity
- Status: βopenβ
- All related alerts linked
- Notifications: Analysts notified of new investigation
Best Practices
-
Always Enable Auto-Rules: Set
executeRules: true(default) to catch suspicious transactions immediately. -
Use Batch API for Volume: For bulk imports or high-volume scenarios, use
/transactions/batchfor better performance. -
Link Entities: Always provide
originEntityIdanddestinationEntityIdwhen available. This enables:- Entity enrichment data in rule evaluation
- Better risk aggregation
- Entity-level transaction patterns
-
External ID Mapping: Always set unique
externalIdfor correlation with your systems. -
Currency Handling: System handles currency conversion automatically. Ensure
MS_PROVIDERS_URLis configured correctly. -
Rule Configuration: Configure transaction rules for your risk appetite:
- Amount thresholds appropriate for your business
- High-risk jurisdictions based on your compliance requirements
- Velocity rules based on normal transaction patterns
-
Status Management: Use transaction
statusfield to track lifecycle:- PENDING β APPROVED/REJECTED/CANCELLED
- Update status based on manual review or external validation
-
Monitoring: Set up dashboards to monitor:
- Flagged transaction rate
- Average risk scores
- Alert volume by type
- Investigation resolution time