---
title: "Retry the company copies of a system template"
method: POST
path: "/api/roles/{role_id}/copies"
tags: ["Permissions"]
---

# Retry the company copies of a system template

`POST /api/roles/{role_id}/copies`

Give the companies that missed out their copy of this template.

Idempotent: a company that already has the copy comes back as
`already_present` and NOTHING is written to it — in particular its
permission rows are left exactly as they are. "Re-adding the rows this copy
is missing" is the repair `ensure_company_role_copies` performs across every
template at once, and doing it here would silently restore permissions an
operator removed on purpose.

Exists because `skipped` on the create is a real state with a real fix: the
tenant renames the role that was in the way, and this puts the copy in.

## Path parameters

- `role_id` integer, required

## Query parameters

- `company_id` integer, nullable — Uma empresa em concreto. Sem ela, tenta todas as que ainda não têm cópia.

## Headers

- `x-api-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `8492136eefc5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/multigest/apis/multigest-protected-api/changes/api/roles/:role_id/copies/post.md)

---

[API](https://skmtc.dev/multigest/apis/multigest-protected-api.md) · [All operations](https://skmtc.dev/multigest/apis/multigest-protected-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/multigest/multigest-protected-api/revisions/8492136eefc5/schema)
