{"openapi":"3.1.0","info":{"title":"DELETE /api/v1/transactions/by-date-range","version":"1.0.0","description":"Delete transactions by date range"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/transactions/by-date-range":{"delete":{"tags":["transactions"],"summary":"Delete transactions by date range","description":"Permanently delete every transaction for the current business whose date falls between ``start_date`` and ``end_date`` (inclusive). Journal entries that become orphaned are deleted along with their line entries, and for businesses still backed by the legacy Teal engine the matching Teal transactions and journal entries are removed remotely as well. This action is irreversible.","operationId":"delete_transactions_by_date_range_api_v1_transactions_by_date_range_delete","parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Inclusive start date (YYYY-MM-DD). Transactions on or after this date are deleted.","title":"Start Date"},"description":"Inclusive start date (YYYY-MM-DD). Transactions on or after this date are deleted."},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Inclusive end date (YYYY-MM-DD). Transactions on or before this date are deleted.","title":"End Date"},"description":"Inclusive end date (YYYY-MM-DD). Transactions on or before this date are deleted."},{"name":"ledger_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional ledger ID to restrict the deletion to a single bank account.","title":"Ledger Id"},"description":"Optional ledger ID to restrict the deletion to a single bank account."},{"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_TransactionDateRangeDeleteResponse_"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"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":{"DateRangeDeletedCounts":{"properties":{"transactions":{"type":"integer","title":"Transactions","description":"Transactions permanently removed.","default":0},"journal_entries":{"type":"integer","title":"Journal Entries","description":"Orphaned journal entries removed (no longer referenced).","default":0}},"type":"object","title":"DateRangeDeletedCounts","description":"Local DB deletion counts for a date-range delete."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SuccessEnvelope_TransactionDateRangeDeleteResponse_":{"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/TransactionDateRangeDeleteResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[TransactionDateRangeDeleteResponse]"},"TealCleanupSummary":{"properties":{"transactions_deleted":{"type":"integer","title":"Transactions Deleted","description":"Teal transactions deleted remotely.","default":0},"journal_entries_deleted":{"type":"integer","title":"Journal Entries Deleted","description":"Teal journal entries deleted remotely.","default":0},"errors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Errors","description":"Per-record Teal cleanup failures (kind, id, error)."}},"type":"object","title":"TealCleanupSummary","description":"Best-effort remote Teal cleanup result for legacy Teal businesses."},"TransactionDateRangeDeleteResponse":{"properties":{"deleted":{"$ref":"#/components/schemas/DateRangeDeletedCounts","description":"Local DB deletion counts."},"teal":{"$ref":"#/components/schemas/TealCleanupSummary","description":"Remote Teal cleanup summary (zeros for local-engine businesses)."},"start_date":{"type":"string","title":"Start Date","description":"Inclusive start date (YYYY-MM-DD)."},"end_date":{"type":"string","title":"End Date","description":"Inclusive end date (YYYY-MM-DD)."},"ledger_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ledger Ids","description":"Ledger IDs the deletion was restricted to, if any."}},"additionalProperties":true,"type":"object","required":["deleted","teal","start_date","end_date"],"title":"TransactionDateRangeDeleteResponse","description":"Response for ``delete_transactions_in_date_range``."},"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":[]}]}