152 lines
2.4 KiB
Markdown
152 lines
2.4 KiB
Markdown
|
|
# API Documentation
|
||
|
|
|
||
|
|
## Base URL
|
||
|
|
|
||
|
|
```
|
||
|
|
http://localhost:3000/api/v1
|
||
|
|
```
|
||
|
|
|
||
|
|
## Authentication
|
||
|
|
|
||
|
|
Currently, authentication is not implemented. In production, use OAuth2/JWT tokens.
|
||
|
|
|
||
|
|
## Endpoints
|
||
|
|
|
||
|
|
### Health Checks
|
||
|
|
|
||
|
|
#### GET /health
|
||
|
|
|
||
|
|
Get comprehensive health status.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": "healthy",
|
||
|
|
"timestamp": "2026-01-23T10:00:00.000Z",
|
||
|
|
"version": "1.0.0",
|
||
|
|
"services": {
|
||
|
|
"database": "up",
|
||
|
|
"fxRates": "up",
|
||
|
|
"rulesEngine": "up"
|
||
|
|
},
|
||
|
|
"metrics": {
|
||
|
|
"uptime": 3600,
|
||
|
|
"memoryUsage": { ... }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
#### GET /health/ready
|
||
|
|
|
||
|
|
Readiness check - is the service ready to accept traffic?
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"ready": true,
|
||
|
|
"timestamp": "2026-01-23T10:00:00.000Z"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
#### GET /health/live
|
||
|
|
|
||
|
|
Liveness check - is the service alive?
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"alive": true,
|
||
|
|
"timestamp": "2026-01-23T10:00:00.000Z"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Transactions
|
||
|
|
|
||
|
|
#### POST /transactions/evaluate
|
||
|
|
|
||
|
|
Evaluate a transaction against regulatory rules.
|
||
|
|
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "TXN-123",
|
||
|
|
"direction": "outbound",
|
||
|
|
"amount": 15000,
|
||
|
|
"currency": "USD",
|
||
|
|
"orderingCustomer": {
|
||
|
|
"name": "Test Company",
|
||
|
|
"taxId": "11222333000181",
|
||
|
|
"country": "BR"
|
||
|
|
},
|
||
|
|
"beneficiary": {
|
||
|
|
"name": "John Doe",
|
||
|
|
"taxId": "12345678909",
|
||
|
|
"country": "BR",
|
||
|
|
"accountNumber": "12345-6"
|
||
|
|
},
|
||
|
|
"purposeOfPayment": "Payment for services"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"transactionId": "TXN-123",
|
||
|
|
"timestamp": "2026-01-23T10:00:00.000Z",
|
||
|
|
"ruleSetVersion": "1.0.0",
|
||
|
|
"overallDecision": "Allow",
|
||
|
|
"overallSeverity": "Info",
|
||
|
|
"thresholdCheck": {
|
||
|
|
"usdEquivalent": 15000,
|
||
|
|
"requiresReporting": true
|
||
|
|
},
|
||
|
|
"documentationCheck": {
|
||
|
|
"passed": true,
|
||
|
|
"errors": []
|
||
|
|
},
|
||
|
|
"rules": []
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
#### GET /transactions/:id
|
||
|
|
|
||
|
|
Get transaction by ID.
|
||
|
|
|
||
|
|
**Status:** Not implemented (requires database)
|
||
|
|
|
||
|
|
#### GET /transactions
|
||
|
|
|
||
|
|
List transactions with pagination.
|
||
|
|
|
||
|
|
**Status:** Not implemented (requires database)
|
||
|
|
|
||
|
|
## Error Responses
|
||
|
|
|
||
|
|
All errors follow this format:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": false,
|
||
|
|
"error": "Error message"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Status Codes:**
|
||
|
|
- `200` - Success
|
||
|
|
- `400` - Bad Request
|
||
|
|
- `404` - Not Found
|
||
|
|
- `500` - Internal Server Error
|
||
|
|
- `501` - Not Implemented
|
||
|
|
- `503` - Service Unavailable
|
||
|
|
|
||
|
|
## Rate Limiting
|
||
|
|
|
||
|
|
Rate limiting is not currently implemented. In production, implement rate limiting to prevent abuse.
|
||
|
|
|
||
|
|
## CORS
|
||
|
|
|
||
|
|
CORS is enabled for all origins in development. In production, configure allowed origins.
|