---
title: "Record an assigned client's approved statement basis"
method: POST
path: "/accountant/companies/{customerId}/statement-basis"
tags: ["Accountant Portal"]
---

# Record an assigned client's approved statement basis

`POST /accountant/companies/{customerId}/statement-basis`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/accountant/companies/{customerId}/statement-basis`
- Auth: HTTP bearer

Appends one row to the client's statement basis history (#2911, J-355). The actor and timestamp are set by the server; a body that carries them is refused. `supersedesId`, when given, must belong to the same client, else 422. There is no idempotency key: a replay records a second row by design, and the read resolves the latest. Human accountants only; the assignment is re-read before the write.

## Request body

- StatementBasisInput: The approved statement basis to record (#2911). Actor and timestamp are set by the server and are not accepted here.
  - `basis` 'cash' | 'accrual', required
  - `effectiveDate` string, date, required: The basis applies from this day on. Any calendar date.
  - `reason` string, required
  - `approvalReference` string, required: Where the approval is recorded, e.g. an issue reference.
  - `supersedesId` string, uuid: The row this one corrects. Must belong to the same client.

## Response `201`

The recorded row

- object
  - `success` true, required
  - `data` StatementBasisEntry, required
    - `id` string, uuid, required
    - `companyId` string, uuid, required
    - `basis` 'cash' | 'accrual', required
    - `effectiveDate` string, date, required
    - `reason` string, required
    - `approvalReference` string, required
    - `supersedesId` string, uuid, nullable, required
    - `setByUserId` string, uuid, nullable, required: Null for a service principal, which is then named in setByActor.
    - `setByActor` string, required: Set by the server, e.g. accountant:<accountantId>.
    - `createdAt` string, date-time, required

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found
- `422`: Validation error
- `503`: The accountant assignment could not be re-read before the write; retry

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
