{"openapi":"3.1.0","info":{"title":"GET /api/v1/loans/{instrument_id}/subledger","version":"1.0.0","description":"Get a loan's subledger register"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/loans/{instrument_id}/subledger":{"get":{"tags":["loans"],"summary":"Get a loan's subledger register","description":"A single loan's full subledger register, oldest entry first.\n\nEach row records one event (disbursement, payment, interest accrual,\nwrite-off, adjustment) with the running principal and accrued\ninterest balances after the event and a link to the GL entry.","operationId":"get_loan_register_api_v1_loans__instrument_id__subledger_get","parameters":[{"name":"instrument_id","in":"path","required":true,"schema":{"type":"string","title":"Instrument Id"}},{"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_LoanSubledgerResponse_"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"detail":"Not enough permissions"}}}},"404":{"description":"Not Found - Resource does not exist","content":{"application/json":{"example":{"detail":"Resource not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LoanEntryTypeEnum":{"type":"string","enum":["disbursement","payment","interest_accrual","write_off","adjustment"],"title":"LoanEntryTypeEnum","description":"What kind of loan event a subledger row records."},"LoanInstrumentBrief":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"counterparty":{"type":"string","title":"Counterparty"},"counterparty_type":{"type":"string","title":"Counterparty Type"},"direction":{"type":"string","title":"Direction"},"debt_type":{"type":"string","title":"Debt Type"},"status":{"type":"string","title":"Status"},"interest_rate_bps":{"type":"integer","title":"Interest Rate Bps"},"original_principal_cents":{"type":"integer","title":"Original Principal Cents"},"current_balance_cents":{"type":"integer","title":"Current Balance Cents"},"accrued_interest_cents":{"type":"integer","title":"Accrued Interest Cents"},"written_off_cents":{"type":"integer","title":"Written Off Cents"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"maturity_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Maturity Date"},"last_accrual_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Accrual Date"}},"type":"object","required":["id","name","counterparty","counterparty_type","direction","debt_type","status","interest_rate_bps","original_principal_cents","current_balance_cents","accrued_interest_cents","written_off_cents"],"title":"LoanInstrumentBrief","description":"Loan header shown above a register and inside counterparty groups."},"LoanLedgerEntryResponse":{"properties":{"id":{"type":"string","title":"Id"},"debt_instrument_id":{"type":"string","title":"Debt Instrument Id"},"entry_type":{"$ref":"#/components/schemas/LoanEntryTypeEnum"},"entry_date":{"type":"string","format":"date","title":"Entry Date"},"amount_cents":{"type":"integer","title":"Amount Cents"},"principal_delta_cents":{"type":"integer","title":"Principal Delta Cents"},"interest_delta_cents":{"type":"integer","title":"Interest Delta Cents"},"balance_after_cents":{"type":"integer","title":"Balance After Cents"},"accrued_interest_after_cents":{"type":"integer","title":"Accrued Interest After Cents"},"journal_entry_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal Entry Id"},"memo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memo"}},"type":"object","required":["id","debt_instrument_id","entry_type","entry_date","amount_cents","principal_delta_cents","interest_delta_cents","balance_after_cents","accrued_interest_after_cents"],"title":"LoanLedgerEntryResponse","description":"One row in a loan's subledger register."},"LoanSubledgerResponse":{"properties":{"instrument":{"$ref":"#/components/schemas/LoanInstrumentBrief"},"entries":{"items":{"$ref":"#/components/schemas/LoanLedgerEntryResponse"},"type":"array","title":"Entries"},"entry_count":{"type":"integer","title":"Entry Count"}},"type":"object","required":["instrument","entries","entry_count"],"title":"LoanSubledgerResponse","description":"A single loan's full subledger register."},"SuccessEnvelope_LoanSubledgerResponse_":{"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/LoanSubledgerResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[LoanSubledgerResponse]"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}