# personalTax.share.prepare

Prepare an exact review of sharing your saved number for one organization, shareholder, purpose and fiscal period, optionally with named accountantUserIds. Include expectedRevision from personalTax.get, expectedRegisterRevision from company.list, expiry and idempotencyKey. Returns a metadata-only review and secure browser handoff. Only you confirm the consent in your signed-in account; this tool never shares the number.

`POST /api/v1/accounting/personalTax.share.prepare`

Permissions: `accounting:read`, `accounting:write` · Roles: admin, finance, contributor, accountant · Idempotency key required · Send `expectedRevision`

MCP tool: `accounting_personal_tax_share_prepare`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `organizationId` | string | Yes | The company to work in, for people who belong to more than one. API keys belong to one company. 1–200 characters. |
| `holderId` | string | Yes | Matches ^[a-z0-9][a-z0-9-]{7,39}$. |
| `purpose` | enum | Yes | One of: `t2_schedule_50`, `t5_slip`. |
| `period` | object | Yes | The period to cover. No other fields. |
| `period.from` | string | Yes | The first date to include, as YYYY-MM-DD. |
| `period.to` | string | Yes | The last date to include, as YYYY-MM-DD. |
| `period.kind` | enum | Yes | Which kind of record or job this is. One of: `corporate`, `gst_hst`. |
| `accountantUserIds` | array of strings | Yes | A list of record IDs. at most 20 items; each 1–200 characters. |
| `expiresAt` | string (date-time) or null | Yes | When this stops working, as an ISO 8601 date and time. |
| `expectedRevision` | integer | Yes | The record's current revision, from the last time you read it. If someone changed the record since, the request is refused with a conflict so you can reload and check before trying again. 0 to 9007199254740991. |
| `expectedRegisterRevision` | integer | Yes | The related record's current revision, from the last time you read it. 0 to 9007199254740991. |
| `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–200 characters. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/personalTax.share.prepare \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "organizationId": "example",
  "holderId": "aaaaaaaa",
  "purpose": "t2_schedule_50",
  "period": {
    "from": "2026-09-01",
    "to": "2026-09-30",
    "kind": "corporate"
  },
  "accountantUserIds": [
    "example"
  ],
  "expiresAt": "2026-09-30T14:00:00Z",
  "expectedRevision": 3,
  "expectedRegisterRevision": 3
}'
```

Reference page: https://app.getoatmilk.com/docs/api/personalTax.share.prepare
