EKEDOS LTD.

Developer docs

AML Shield API Reference

Get a key from your dashboard's API Keys page and start making requests immediately — no sales call required.

Authentication

Every request is authenticated with an API key from your dashboard's API Keys page.

X-API-Key: amlk_live_xxxxxxxxxxxx

# or

Authorization: Bearer amlk_live_xxxxxxxxxxxx

Rate limits & quotas

Every response carries two headers:

X-Request-Id: 8f14e45f-...

X-Quota-Remaining: 9482

Errors

StatusMeaning
401Missing, invalid, or revoked API key
403Your plan does not include this endpoint, or your key's IP allowlist blocked the request
422Validation failed
429Rate limit or monthly quota exceeded
502The Didit verification session could not be created
503Didit verification is not configured on this platform yet

Webhooks

Register endpoints from your dashboard's Webhooks page to receive case.updated, monitoring.match, screening.run, and kyc.completed events (the last one fires automatically when a Didit verification session completes).

X-AML-Signature: sha256=<hmac of body using your endpoint's secret>

X-AML-Event: kyc.completed

GET

/v1/me

Check your organization, plan, environment, and current quota usage.

curl https://ekedosltd.com//api/v1/me \
  -H "X-API-Key: $KEY"
POST

/v1/identity/didit/sessions

Didit Verification Session — real identity verification

ID document scan (OCR/MRZ), liveness detection, face match, and — depending on how the workflow is configured — AML/PEP/adverse-media screening too. This is the comprehensive, real verification path, powered by didit.me. Unlike the other endpoints, this is asynchronous: create a session, redirect your end-user to the returned URL, and receive the result via your registered kyc.completed webhook.

Request

curl https://ekedosltd.com//api/v1/identity/didit/sessions \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"name":"Jane Smith","callback_url":"https://yourapp.com/verification-complete"}'

Response

{
  "success": true,
  "session_id": "11111111-2222-3333-4444-555555555555",
  "verification_url": "https://verify.didit.me/session/abcdef123456",
  "status": "Not Started",
  "customer_reference": "3fa85f64-..."
}

Check status — GET /v1/identity/didit/sessions/{session_id}

curl https://ekedosltd.com//api/v1/identity/didit/sessions/11111111-2222-3333-4444-555555555555 \
  -H "X-API-Key: $KEY"
POST

/v1/identity/verify

Identity Verification

Fast local structural validation. first_name, last_name, date_of_birth required.

Request

curl https://ekedosltd.com//api/v1/identity/verify \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"first_name":"Jane","last_name":"Smith","date_of_birth":"1990-05-02","email":"jane@example.com","country":"GB"}'

Response

{"success":true,"status":"verified","confidence":92,"checks":{"first_name":true,"last_name":true},"issues":[],"note":"This is a fast local structural check..."}
POST

/v1/kyc/verify

KYC Verification

Local identity check + AML screening + risk score, with an optional real Didit session.

Request

curl https://ekedosltd.com//api/v1/kyc/verify \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"first_name":"Jane","last_name":"Smith","date_of_birth":"1990-05-02","email":"jane@example.com","country":"GB","request_didit_session":true}'

Response

{"success":true,"decision":"approve","customer_reference":"3fa85f64-...","identity":{"status":"verified"},"screening":{"status":"clear"},"risk":{"score":8,"level":"low"},"didit_session":{"session_id":"...","verification_url":"https://verify.didit.me/session/..."}}
POST

/v1/aml/screen

AML Screening

Sanctions + PEP + adverse media in one call, against real OFAC/UN/EU/UK data.

Request

curl https://ekedosltd.com//api/v1/aml/screen \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"name":"Viktor Petrov","country":"RU"}'

Response

{"success":true,"reference":"a1b2...","status":"potential_match","match_count":1,"risk_score":96,"matches":[{"name":"Viktor Petrov","score":96,"list_type":"sanction","source":"OFAC_SDN"}]}
POST

/v1/pep/screen

PEP Screening

Politically exposed person check. name required.

Request

curl https://ekedosltd.com//api/v1/pep/screen \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"name":"Robert Kingsley","country":"GB"}'

Response

{"success":true,"reference":"c3d4...","status":"potential_match","is_pep":true,"match_count":1,"risk_score":60}
POST

/v1/sanctions/screen

Sanctions Screening

OFAC/UN/EU/UK list matching. name required.

Request

curl https://ekedosltd.com//api/v1/sanctions/screen \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"name":"Jane Smith","country":"GB"}'

Response

{"success":true,"reference":"d4e5...","status":"clear","match_count":0,"risk_score":0}
POST

/v1/transactions/monitor

Transaction Monitoring

amount required. Optional counterparty/customer fields.

Request

curl https://ekedosltd.com//api/v1/transactions/monitor \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"amount":15000,"currency":"USD","counterparty_country":"RU"}'

Response

{"success":true,"transaction_id":812,"risk_score":75,"is_flagged":true,"triggered_rules":[{"rule":"large_amount"}],"recommendation":"review"}
POST

/v1/fraud/assess

Fraud Detection

All fields optional: email, ip_address, ip_country, billing_country, device_id, amount.

Request

curl https://ekedosltd.com//api/v1/fraud/assess \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"email":"x@mailinator.com","ip_country":"NG","billing_country":"US","amount":6000}'

Response

{"success":true,"fraud_score":75,"signals":["disposable_email","geo_mismatch"],"decision":"decline"}
POST

/v1/risk/score

Risk Scoring

Combine signals from other endpoints into one explainable score.

Request

curl https://ekedosltd.com//api/v1/risk/score \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"pep_hit":true,"country":"RU","flagged_transactions":2}'

Response

{"success":true,"score":50,"level":"medium","factors":{"pep_hit":25},"persisted":false}
POST

/v1/documents/verify

Document Verification

Fast local metadata checks. type required.

Request

curl https://ekedosltd.com//api/v1/documents/verify \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"type":"passport","document_number":"X1234567","country":"GB","expiry_date":"2030-01-01"}'

Response

{"success":true,"status":"verified","authenticity_score":100,"issues":[]}

Continuous Monitoring

Enroll a previously-persisted customer for scheduled re-screening. New matches fire a monitoring.match webhook.

POST

/v1/monitoring/enroll

curl https://ekedosltd.com//api/v1/monitoring/enroll \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"customer_reference":"3fa85f64-...","frequency":"daily","webhook_url":"https://you.example/hook"}'
GET

/v1/monitoring/subscriptions

curl https://ekedosltd.com//api/v1/monitoring/subscriptions -H "X-API-Key: $KEY"
POST

/v1/monitoring/run

curl https://ekedosltd.com//api/v1/monitoring/run \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"customer_reference":"3fa85f64-..."}'
DELETE

/v1/monitoring/{reference}

curl -X DELETE https://ekedosltd.com//api/v1/monitoring/3fa85f64-... -H "X-API-Key: $KEY"

Ready to get a key?

Create your workspace →