# Human judgements

Some decisions in the books need a person. The books refuse them from an API
key, an OAuth client or an AI assistant, whatever the permissions of the
caller:

- an exemption, and a change or removal of one;
- a classification of money received, and a change or removal of one;
- a manual exchange rate, a manual VAT code;
- a default of a party, a dimension rule;
- the reopening of a period.

A person answers for these in the books. So the books record a person as the
author of each one, never a program.

## What your integration gets

A call that makes such a decision gets 403 `human_actor_required`:

```json
{
  "type": "https://oscaraccountant.com/errors/human_actor_required",
  "title": "A person must make this decision",
  "status": 403,
  "code": "human_actor_required",
  "detail": "..."
}
```

Do not retry it. Most calls of the public API never need a judgement. When
one does, for example an invoice line with a manual VAT code, send the call
without the judgement (use a VAT code of the company, from
`GET /api/companies/{company_id}/vat-codes/`), or leave the decision to a
person in the Oscar app.

## Proposals

Oscar can record a proposal: the decision as the program proposes it, which
a person then confirms or rejects in the app. The command then runs with that
person as its author. An AI assistant connected over MCP does this with the
tool `propose_judgement`. The proposal operations are not yet part of the
public API.
