{"openapi":"3.1.0","info":{"title":"GET /api/v1/credit/lines/{credit_line_id}/linked-accounts","version":"1.0.0","description":"The merchant's linked bank accounts"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/credit/lines/{credit_line_id}/linked-accounts":{"get":{"tags":["credit"],"summary":"The merchant's linked bank accounts","description":"For Change Payment Method (§6.2): every bank account the line's merchant has linked on DayZero, with its Plaid id, name, last four, type, institution and connection state, and which one is on the line. Record another with `PATCH /credit/lines/{id}` (`plaid_account_id`, `linked_account_mask`, `linked_account_name`); connect a new one with `POST /credit/bank-connections` and `credit_line_id`. Never carries account or routing numbers.","operationId":"list_credit_line_linked_accounts","parameters":[{"name":"credit_line_id","in":"path","required":true,"schema":{"type":"string","description":"The line whose merchant's accounts to list.","title":"Credit Line Id"},"description":"The line whose merchant's accounts to list."},{"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_LinkedAccountsResponse_"}}}},"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":"list_credit_line_linked_accounts_api_v1_credit_lines__credit_line_id__linked_accounts_get"}}},"components":{"schemas":{"LinkedAccountItem":{"properties":{"plaid_account_id":{"type":"string","title":"Plaid Account Id","description":"The account's Plaid id: what `plaid_account_id` on the line holds and `credit.autopay.due` carries."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The account's name."},"mask":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mask","description":"The last four digits of the account number."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Plaid's type: depository, credit, loan, ..."},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype","description":"Plaid's subtype: checking, savings, ..."},"institution_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Name","description":"The bank the account is at."},"connection_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Status","description":"The bank connection's state at DayZero: syncing, synced, active, requires_reauth, error, ... A connection that needs the merchant again is `requires_reauth`."},"on_line":{"type":"boolean","title":"On Line","description":"True for the account recorded on the line now.","default":false}},"type":"object","required":["plaid_account_id"],"title":"LinkedAccountItem","description":"One of the merchant's linked bank accounts, for Change Payment Method."},"LinkedAccountsResponse":{"properties":{"credit_line_id":{"type":"string","title":"Credit Line Id","description":"The line asked about."},"merchant_business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merchant Business Id","description":"The merchant's DayZero business. Null when the line is linked to none, and then `items` is empty: start a bank connection on the line."},"plaid_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plaid Account Id","description":"The account recorded on the line now."},"items":{"items":{"$ref":"#/components/schemas/LinkedAccountItem"},"type":"array","title":"Items","description":"Every account, by institution then name."}},"type":"object","required":["credit_line_id"],"title":"LinkedAccountsResponse","description":"The merchant's linked bank accounts on DayZero."},"SuccessEnvelope_LinkedAccountsResponse_":{"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/LinkedAccountsResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[LinkedAccountsResponse]"},"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":[]}]}