{"openapi":"3.1.0","info":{"title":"GET /api/v1/businesses/flux/lineage","version":"1.0.0","description":"Get 4-stage money-flow provenance lineage for a GL account"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/businesses/flux/lineage":{"get":{"tags":["cfo-portal"],"summary":"Get 4-stage money-flow provenance lineage for a GL account","description":"Trace a GL account line back through journal entries, clearing, and source feeds.","operationId":"get_cfo_money_flow_lineage","parameters":[{"name":"ledger_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ledger Id"}},{"name":"account_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope_MoneyFlowLineageResponse_"}}}},"401":{"description":"Unauthorized - Missing or expired token, an MCP OAuth token used against the REST API, or no access to this business","content":{"application/json":{"example":{"error":"unauthorized","message":"Authentication required","code":"AUTH_001","request_id":"3f0e7c2a-9b4d-4e1a-8c6f-2d5b7a1e9c30"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"error":"forbidden","message":"You don't have permission to access this resource","code":"AUTH_002","request_id":"3f0e7c2a-9b4d-4e1a-8c6f-2d5b7a1e9c30"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found - Resource does not exist","content":{"application/json":{"example":{"error":"not_found","message":"Resource not found","code":"NOT_FOUND_001","request_id":"3f0e7c2a-9b4d-4e1a-8c6f-2d5b7a1e9c30"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"error":"validation_error","message":"Validation failed: amount: Input should be a valid integer","errors":{"amount":"Input should be a valid integer"},"code":"GEN_002","request_id":"3f0e7c2a-9b4d-4e1a-8c6f-2d5b7a1e9c30"}}}}},"x-fastapi-operation-id":"get_cfo_money_flow_lineage_api_v1_businesses_flux_lineage_get"}}},"components":{"schemas":{"MoneyFlowLineageEdge":{"properties":{"source_id":{"type":"string","title":"Source Id"},"target_id":{"type":"string","title":"Target Id"},"amount_cents":{"type":"integer","title":"Amount Cents","default":0}},"type":"object","required":["source_id","target_id"],"title":"MoneyFlowLineageEdge","description":"Directed edge in the Money-Flow Provenance Lineage DAG."},"MoneyFlowLineageNode":{"properties":{"id":{"type":"string","title":"Id"},"stage":{"type":"string","enum":["source","clearing","journal","ledger"],"title":"Stage"},"label":{"type":"string","title":"Label"},"amount_cents":{"type":"integer","title":"Amount Cents","default":0},"record_count":{"type":"integer","title":"Record Count","default":0},"status":{"type":"string","enum":["ok","warning"],"title":"Status","default":"ok"}},"type":"object","required":["id","stage","label"],"title":"MoneyFlowLineageNode","description":"One node in the 4-stage Money-Flow Provenance Lineage DAG."},"MoneyFlowLineageResponse":{"properties":{"business_id":{"type":"string","title":"Business Id"},"ledger_id":{"type":"string","title":"Ledger Id"},"account_name":{"type":"string","title":"Account Name"},"ledger_type":{"type":"string","title":"Ledger Type","default":"expense"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"net_amount_cents":{"type":"integer","title":"Net Amount Cents","default":0},"total_debits_cents":{"type":"integer","title":"Total Debits Cents","default":0},"total_credits_cents":{"type":"integer","title":"Total Credits Cents","default":0},"journal_entry_count":{"type":"integer","title":"Journal Entry Count","default":0},"line_count":{"type":"integer","title":"Line Count","default":0},"unmatched_clearing_gap_cents":{"type":"integer","title":"Unmatched Clearing Gap Cents","default":0},"reconciliation_status":{"type":"string","enum":["reconciled","clearing_gap"],"title":"Reconciliation Status","default":"reconciled"},"nodes":{"items":{"$ref":"#/components/schemas/MoneyFlowLineageNode"},"type":"array","title":"Nodes"},"edges":{"items":{"$ref":"#/components/schemas/MoneyFlowLineageEdge"},"type":"array","title":"Edges"},"sample_entries":{"items":{"$ref":"#/components/schemas/MoneyFlowLineageSample"},"type":"array","title":"Sample Entries"}},"type":"object","required":["business_id","ledger_id","account_name","start_date","end_date"],"title":"MoneyFlowLineageResponse","description":"4-stage provenance lineage chain from subledger/feed to GL account total."},"MoneyFlowLineageSample":{"properties":{"journal_entry_id":{"type":"string","title":"Journal Entry Id"},"date":{"type":"string","format":"date","title":"Date"},"origin":{"type":"string","title":"Origin"},"counterparty_or_memo":{"type":"string","title":"Counterparty Or Memo"},"amount_cents":{"type":"integer","title":"Amount Cents","default":0},"reconciled":{"type":"boolean","title":"Reconciled","default":true}},"type":"object","required":["journal_entry_id","date","origin","counterparty_or_memo"],"title":"MoneyFlowLineageSample","description":"Sample underlying journal entry in the provenance chain."},"SuccessEnvelope_MoneyFlowLineageResponse_":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"data":{"anyOf":[{"$ref":"#/components/schemas/MoneyFlowLineageResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[MoneyFlowLineageResponse]"},"ErrorResponse":{"title":"ErrorResponse","type":"object","description":"Envelope returned by every non-2xx response. Branch on `code` (stable) rather than `message` (human-readable, may change).","required":["error","message","code"],"properties":{"error":{"type":"string","description":"Error category: `validation_error`, `unauthorized`, `forbidden`, `not_found`, `conflict`, `rate_limited`, `server_error`, or `service_unavailable`."},"message":{"type":"string","description":"Human-readable explanation, safe to show to end users."},"code":{"type":"string","description":"Stable machine-readable code in `CATEGORY_NNN` form (e.g. `NOT_FOUND_006`, `AUTH_010`, `GEN_002`)."},"request_id":{"type":"string","description":"Correlation id for support requests. Echoes the `x-request-id` request header when one was supplied."},"errors":{"type":"object","additionalProperties":{"type":"string"},"description":"Field-level validation messages keyed by field name. Present on 400/422 validation failures only."}}}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}