{"openapi":"3.1.0","info":{"title":"POST /api/v1/advisory-firms/{firm_id}/templates/{template_id}/deploy","version":"1.0.0","description":"Deploy a firm template to selected client businesses"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/advisory-firms/{firm_id}/templates/{template_id}/deploy":{"post":{"tags":["advisory-firm-templates"],"summary":"Deploy a firm template to selected client businesses","description":"Bulk-applies the template to each business in ``business_ids``. COA templates use ``LedgerService.apply_coa``; bank-rule templates create new ``BankRule`` rows (duplicates by name are treated as skips so re-deploying is idempotent); review-checklist templates are recorded informationally.","operationId":"deploy_firm_template_api_v1_advisory_firms__firm_id__templates__template_id__deploy_post","parameters":[{"name":"firm_id","in":"path","required":true,"schema":{"type":"string","title":"Firm Id"}},{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FirmTemplateDeployRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FirmTemplateDeployResponse"}}}},"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 - Invalid data format","content":{"application/json":{"example":{"detail":[{"loc":["body","field"],"msg":"field required","type":"value_error.missing"}]}}}}}}}},"components":{"schemas":{"FirmTemplateDeployRequest":{"properties":{"business_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Business Ids","description":"Business IDs to deploy the template to."}},"type":"object","required":["business_ids"],"title":"FirmTemplateDeployRequest","description":"Request body for deploying a template to one or more clients."},"FirmTemplateDeployResponse":{"properties":{"template_id":{"type":"string","title":"Template Id"},"kind":{"type":"string","title":"Kind"},"applied":{"items":{"$ref":"#/components/schemas/FirmTemplateDeployResultRow"},"type":"array","title":"Applied"},"failed":{"items":{"$ref":"#/components/schemas/FirmTemplateDeployResultRow"},"type":"array","title":"Failed"},"skipped":{"items":{"$ref":"#/components/schemas/FirmTemplateDeployResultRow"},"type":"array","title":"Skipped"},"applied_count":{"type":"integer","title":"Applied Count","default":0},"failed_count":{"type":"integer","title":"Failed Count","default":0},"skipped_count":{"type":"integer","title":"Skipped Count","default":0}},"type":"object","required":["template_id","kind"],"title":"FirmTemplateDeployResponse","description":"Aggregate deploy response."},"FirmTemplateDeployResultRow":{"properties":{"business_id":{"type":"string","title":"Business Id"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["business_id"],"title":"FirmTemplateDeployResultRow","description":"Per-business outcome of a deploy."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}