# mail.review.answer

Answer the one question Oatmilk's review asked about an email, with id, reviewId, choiceId (a, b or c) and idempotencyKey. The choice's effect comes from the stored question: leave the draft, fix it, fix it and add it to the books through the same checks as mail.approve, or archive the email. Choices that change date, currency, total or tax only update the draft; a separate full draft review is required before booking.

`POST /api/v1/accounting/mail.review.answer`

Permissions: `mail:read`, `mail:write`, `accounting:read`, `accounting:write` · Roles: admin, finance · Idempotency key required

MCP tool: `accounting_mail_review_answer`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `id` | string (ID) | Yes | The record's ID. |
| `reviewId` | string (ID) | Yes | The ID of the related record. |
| `choiceId` | enum | Yes | One of: `a`, `b`, `c`. |
| `idempotencyKey` | string | Yes | Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match. 8–160 characters. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/mail.review.answer \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
  "reviewId": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
  "choiceId": "a"
}'
```

Reference page: https://app.getoatmilk.com/docs/api/mail.review.answer
