Upload and fully approve a template in one call
POST/templates/single-step
Executes the complete template workflow in a single request: creates the template record, uploads template.csv and mappings.csv to GCS, records a column mapping per CSV row, generates the JSON validation schema (schema.json), and sets the template status to success.
When to use: Prefer this endpoint when the column-to-field mapping is known in advance and no human review of suggestions is needed. Use the legacy two-step flow (POST /templates then PUT /templates/{id} then PUT /templates/{id}/approve) when you need to inspect or adjust auto-suggested mappings before committing.
How: Send a multipart/form-data request with the required tenant-id header and fields: name (display name), type (PRACTITIONER, FACILITY, or GROUP - GROUP requires the tenant's supportGroupRosters configuration, otherwise 400), description (optional), and file. The file must have a .csv extension (400 otherwise) and is a mappings-definition CSV: each row defines one roster column (header name, mapped Certify attribute, required flag, optional multiple-value group and separator). Every row must carry a mapped attribute; rows with missing mapping keys cause a 400.
Returns: A SingleStepTemplateFlowResponse with the new templateId, the resolved fields, the final status (success, or failure if schema generation failed - the record then stays in-progress), and the GCS object paths schemaUrl and templateUrl (paths, not signed URLs). On success the template is immediately usable for roster uploads.
Request
Responses
- 200
- 400
- 401
- 403
- 500
The created template's ID, resolved column mappings, final status, and artifact object paths.
The file is not a .csv, a mapping row is missing its mapped attribute, or the requested GROUP type is not enabled for the tenant. The errors list carries the cause; correct the file or request and retry.
Authentication required - supply a valid bearer token.
The authenticated user lacks the CREATE_TEMPLATE permission.
Unexpected server-side failure (for example a GCS or data-layer outage). Safe to retry once the underlying issue clears; a retry creates a new template record.