{"openapi":"3.1.0","info":{"title":"PUT /api/v1/businesses/{business_id}/managerial-key-mappings","version":"1.0.0","description":"Bulk upsert managerial key mappings"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/businesses/{business_id}/managerial-key-mappings":{"put":{"tags":["managerial-key-mappings"],"summary":"Bulk upsert managerial key mappings","description":"Apply ``[{ledger_id, key_type, value}]`` cells. A ``null`` value clears the cell; cells not referenced are left untouched. Responds with the refreshed table.","operationId":"upsert_managerial_key_mappings_api_v1_businesses__business_id__managerial_key_mappings_put","parameters":[{"name":"business_id","in":"path","required":true,"schema":{"type":"string","title":"Business 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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerialKeyMappingUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope_ManagerialKeyMappingTableResponse_"}}}},"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"}}}},"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"},"ManagerialKeyMappingItem":{"properties":{"ledger_id":{"type":"string","minLength":1,"title":"Ledger Id"},"key_type":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[a-z][a-z0-9_]*$","title":"Key Type"},"value":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Value"}},"type":"object","required":["ledger_id","key_type"],"title":"ManagerialKeyMappingItem","description":"One cell write: ``value: null`` clears the mapping."},"ManagerialKeyMappingRow":{"properties":{"ledger_id":{"type":"string","title":"Ledger Id"},"ledger_name":{"type":"string","title":"Ledger Name"},"account_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Number"},"ledger_type":{"type":"string","title":"Ledger Type"},"sub_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Type"},"status":{"type":"string","title":"Status"},"keys":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Keys","description":"``{key_type: category}``; ``null`` when the ledger is unmapped."}},"type":"object","required":["ledger_id","ledger_name","ledger_type","status"],"title":"ManagerialKeyMappingRow","description":"One chart-of-accounts ledger with its value under every key type."},"ManagerialKeyMappingTableResponse":{"properties":{"business_id":{"type":"string","title":"Business Id"},"key_types":{"items":{"type":"string"},"type":"array","title":"Key Types","description":"Active key types, in display order -- the table's columns."},"rows":{"items":{"$ref":"#/components/schemas/ManagerialKeyMappingRow"},"type":"array","title":"Rows"},"total_ledgers":{"type":"integer","title":"Total Ledgers"},"mapped_ledgers":{"type":"integer","title":"Mapped Ledgers","description":"Ledgers with at least one non-null key in the returned rows."}},"type":"object","required":["business_id","key_types","rows","total_ledgers","mapped_ledgers"],"title":"ManagerialKeyMappingTableResponse"},"ManagerialKeyMappingUpsertRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ManagerialKeyMappingItem"},"type":"array","title":"Items"}},"type":"object","title":"ManagerialKeyMappingUpsertRequest","description":"Bulk upsert. Cells not referenced are left untouched."},"SuccessEnvelope_ManagerialKeyMappingTableResponse_":{"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/ManagerialKeyMappingTableResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[ManagerialKeyMappingTableResponse]"},"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":[]}]}