---
title: "Substituir o quadro de sócios num ponto de venda (pedido único)"
method: POST
path: "/api/socios/pv-roster"
tags: ["Sócios (Protected)"]
---

# Substituir o quadro de sócios num ponto de venda (pedido único)

`POST /api/socios/pv-roster`

Bundled change request: close every currently-active agreement at the
target PV and replace with the rows in the payload, all in one approval
cycle. Avoids the validation deadlock that occurs when DELETE + CREATE
are submitted as four independent requests.

## Headers

- `x-api-token` string, nullable

## Request body

- PvRosterReplaceRequest — Body for POST /api/socios/pv-roster. Closes all currently-active agreements at `idpointofsale` (fim = inicio - 1 day) and inserts a new agreement per row, all in one transaction once approved.
  - `idpointofsale` integer, required
  - `inicio` string, date, required
  - `rows` PvRosterRow[]
    - `partner_id` integer, required
    - `percentagem` union, required
      - number
      - string

## Response `200`

Successful Response

- ChangeRequestSubmitResponse — Return shape for any mutation endpoint. If the request applied immediately (bootstrap / requester is sole sócio), `status` is APPLIED and the new entity's id (if any) is in `applied_entity_id`. Otherwise status is PENDING and the caller waits on votes.
  - `change_request_id` integer, required
  - `status` 'PENDING' | 'APPROVED' | 'REJECTED' | 'EXPIRED' | 'APPLIED', required
  - `approvers_pending` PendingApprover[]
    - `partner_id` integer, required
    - `utilizador_id` integer, nullable
    - `nome` string, nullable
  - `applied_entity_id` integer, nullable

## Other responses

- `422` — Validation Error

---

[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/4b44eb76b3ee/schema)
