Warddocs
Capabilities

Capabilities

Each capability is a decision type with its own input and its own result, under the same envelope. Call them through POST /api/v1/decide with type, or through their own endpoint; both run the same engine.

Capability Question it answers Decision from Own endpoint
Payment Let this payment through? fraud probability vs your cut-offs POST /assess
Agent intent Is this agent action within its mandate? seven decision gates + two system steps POST /orchestration/intent
Agent (KYA) Trust this AI agent now? KYA Score and risk flags POST /kya/verify
Screen Is this party listed? match strength, DOB and country agreement POST /screen
Document Is this ID consistent and unedited? MRZ check digits + alteration score POST /documents/check
Statement What AML and fraud risk is in this history? risk band from the statement matrix POST /statements/analyze
Account takeover Was the account taken over first? takeover likelihood vs holder evidence POST /ato/review
Credit Can this customer carry the obligation? affordability band POST /credit/analyze
Merchant Onboard or keep this merchant? merchant risk band POST /merchants/review
KYC Is this applicant verified? reasons: decline > review > verified POST /kyc/verify
Ask Questions about a result trained intent router POST /ask

Composing capabilities

Capabilities are atomic; compose them in your code. A typical onboarding runs kyc (which already screens the name and checks the document), then statement or credit on the first statements; a payments flow runs payment on every authorization and ato on every fraud dispute.

kyc = client.kyc.verify(applicant, email_challenge_id=e, phone_challenge_id=p)
if kyc.status == "VERIFIED":
    risk = client.decide("statement", {"files": first_statements, "subject_ref": applicant_id}, subject_consent=True)

Availability

Each capability is enabled per account. A capability that is not enabled for your key answers 404, through /decide too.