---
title: "Confirm or adjust classifications"
method: POST
path: "/api/onboarding/agent/confirm"
---

# Confirm or adjust classifications

`POST /api/onboarding/agent/confirm`

## Request

- Base URL: `https://app.rightmoney.com`
- URL: `https://app.rightmoney.com/api/onboarding/agent/confirm`
- Auth: API key in header `X-RM-Agent-Key`

Confirms the AI-generated transaction classifications. Optionally pass changes to reclassify specific merchants before confirming. Omit changes to confirm all as-is.

## Request body

- ConfirmBody
  - `userId` string, uuid, required: The user's unique identifier
  - `classifications` object[]: Full agent-side classifications. Use this when the agent classified merchants from GET /api/onboarding/agent/transactions.
    - `pattern` string, required: Merchant pattern (exact match)
    - `bucket` 'bills' | 'lifestyle' | 'income' | 'ignore', required
    - `is_recurring` boolean
    - `estimated_frequency` 'monthly' | 'biweekly' | 'weekly' | 'quarterly' | 'semi-annual' | 'annual' | 'one-time'
    - `confidence` number
    - `bill_group` 'housing' | 'utilities' | 'insurance' | 'subscriptions' | 'transportation' | 'debt' | 'medical' | 'childcare' | 'education' | 'null', nullable
  - `changes` object[]: Optional adjustments to existing backend classifications. Omit to confirm all as-is.
    - `merchant_pattern` string, required: The merchant pattern to reclassify (e.g. "SPOTIFY")
    - `new_bucket` 'bills' | 'lifestyle' | 'income' | 'ignore', required: The new bucket to assign
  - `auto_confirm` boolean: Confirm only classifications with confidence >= 0.85 plus merchants named in changes; the rest stay unconfirmed and are returned as needs_review (lowest confidence first, up to 15). Default false confirms everything.

## Response `200`

Confirmation result

- ConfirmResponse
  - `success` boolean, required
  - `confirmed` integer: Number of classifications confirmed
  - `rules_created` integer: Number of persistent merchant rules created
  - `auto_confirm_threshold` number: Present when auto_confirm was true.
  - `needs_review_count` integer: Unconfirmed classifications left for review. Present when auto_confirm was true.
  - `needs_review` object[]: Up to 15 lowest-confidence unconfirmed classifications. Present when auto_confirm was true.

## Other responses

- `400`: Invalid request
- `401`: Invalid or missing API key
- `503`: Database not configured

---

[API](https://skmtc.dev/rightmoney/apis/right-money-agent-api.md) · [All operations](https://skmtc.dev/rightmoney/apis/right-money-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rightmoney/apis/right-money-agent-api/revisions/244b5180a5ff?raw)
