{"openapi":"3.1.0","info":{"title":"Vuplicity Machine-Payable Compliance API","version":"1.0.0","description":"API-native Machine Payments Protocol surface for Compliance Officer v2. The endpoint returns 402 Payment Required, then accepts Authorization: Payment using Stripe SPT charge."},"servers":[{"url":"https://api.vuplicity.com/api/v1/mpp"}],"components":{"securitySchemes":{"Payment":{"type":"http","scheme":"Payment","description":"MPP Payment authentication. Supported server methods on this route: stripe.charge (SPT)."}}},"paths":{"/compliance/evaluate":{"post":{"operationId":"mppEvaluateCompliance","summary":"Run a paid Compliance Officer v2 evaluation","description":"Canonical API route for machine-payable compliance guidance.","security":[{"Payment":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["country","facts"],"properties":{"domain":{"type":"string","enum":["CRA_REPORTABILITY","HR_VERIFICATION"]},"country":{"type":"string","minLength":2,"maxLength":2,"example":"US"},"subdivision":{"type":["string","null"],"example":"CO"},"locality":{"type":["string","null"]},"party_role":{"type":["string","null"]},"verification_scope":{"type":["string","null"]},"facts":{"type":"object","additionalProperties":true},"research_mode":{"type":"string","enum":["standard","gap_check"]},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Compliance guidance response","headers":{"Payment-Receipt":{"description":"MPP payment receipt proving the request was paid successfully.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","enum":["CRA_REPORTABILITY","HR_VERIFICATION"]},"coverage_status":{"type":"string","enum":["confirmed","gap","research_pending","uncovered"]},"citations":{"type":"array","items":{"type":"object","properties":{"citation":{"type":"string"},"source_url":{"type":["string","null"]},"source_title":{"type":["string","null"]},"authority":{"type":["string","null"]},"summary":{"type":["string","null"]}},"required":["citation"]}},"source_reviewed_at":{"type":["string","null"],"format":"date-time"},"signoff_version":{"type":["string","null"]},"requires_human_review":{"type":"boolean"},"guidance":{"type":"string"},"disclaimer":{"type":"string"},"decision":{"type":["object","null"],"properties":{"reportable":{"type":"boolean"},"record_type":{"type":"string","enum":["conviction","non_conviction","pending","unknown"]},"jurisdiction_code":{"type":"string"},"rule_source":{"type":"string","enum":["db","static"]},"rule_set_version":{"type":"string"},"normalization_hash":{"type":["string","null"]},"reason_code":{"type":"string"},"reason":{"type":"string"},"evaluation_date":{"type":"string","format":"date-time"},"anchor_date":{"type":["string","null"],"format":"date-time"},"age_years":{"type":["integer","null"]},"max_age_years":{"type":["integer","null"]},"citation":{"type":["object","null"],"properties":{"code":{"type":"string"},"summary":{"type":["string","null"]}},"required":["code"]}},"required":["reportable","record_type","jurisdiction_code","rule_source","rule_set_version","reason_code","reason","evaluation_date"]},"explanation_replaced":{"type":"boolean"},"explanation_validation_flag":{"type":["string","null"],"enum":["schema_invalid","decision_contradiction","provider_error",null]}},"required":["domain","coverage_status","citations","requires_human_review","guidance","disclaimer"]}}}},"402":{"description":"Payment required before the request can be fulfilled","headers":{"WWW-Authenticate":{"description":"MPP payment challenge. Retry the same request with Authorization: Payment after satisfying it.","schema":{"type":"string"}}}}}}}}}