Skip to main content
POST
/
api
/
v1
/
compliance
/
check
curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/compliance/check" \
  -H "Authorization: Bearer olive_internal_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber_id": "sub_abc123",
    "amount": 5000000,
    "transaction_type": "CASH_OUT",
    "recent_transaction_count": 5
  }'
{
  "allowed": true,
  "risk_level": "LOW"
}
Internal endpoint called by Gateway services to verify if a transaction is permissible under current rules.

Request

Authorization
string
required
Bearer olive_default_xxx (Internal Service Token)

Body Parameters

subscriber_id
string
required
Subscriber UUID
amount
integer
required
Amount in cents
transaction_type
string
required
Type: P2P, CASH_OUT, PAYMENT
recent_transaction_count
integer
Velocity check (last 24h count)
is_new_location
boolean
Geo-velocity check

Response

allowed
boolean
Transaction allowed?
risk_level
string
LOW, MEDIUM, HIGH, CRITICAL
violation
string
Rule violated (if allowed=false)

Examples

curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/compliance/check" \
  -H "Authorization: Bearer olive_internal_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber_id": "sub_abc123",
    "amount": 5000000,
    "transaction_type": "CASH_OUT",
    "recent_transaction_count": 5
  }'
{
  "allowed": true,
  "risk_level": "LOW"
}

Checks Performed

CheckDescription
Limit CheckIs amount within daily/single limits?
Balance CheckDoes wallet max balance exceed tier?
VelocityToo many transactions in short time?
WatchlistIs user on sanctions list?

Errors

StatusCodeDescription
400INVALID_INPUTBad request parameters
500rule_errorrule evaluation failed