---
title: "Reclassify Transactions"
method: POST
path: "/api/openbanking/reclassify"
tags: ["openbanking"]
---

# Reclassify Transactions

`POST /api/openbanking/reclassify`

## Request

- Base URL: `https://api.earmarkiq.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.earmarkiq.app/api/openbanking/reclassify`
- Auth: HTTP bearer

Re-classify all 'general' transactions for the current user using the
smart classifier + AI fallback. Uses existing merchant_name and
description fields. Does not re-fetch from the bank.

Pipeline:
1. Rule-based: merchant lookup → keyword → finexer type
2. AI batch: remaining 'general' transactions sent to Claude Haiku

Never touches a row the user (or their adviser) set — a row the user
deliberately set to "general" stays general — and never stores an AI
answer as the user's merchant rule (11 Oct 2026: it did, and those
rules then outranked everything; scripts/classification/mark_ai_rules.py
marks the ones already written).

## Response `200`

Successful Response

- ReclassifyResponse
  - `reclassified` integer, required
  - `ai_reclassified` integer, required
  - `total_general` integer, required

---

[API](https://skmtc.dev/earmarkiq/apis/earmark-api.md) · [All operations](https://skmtc.dev/earmarkiq/apis/earmark-api/llms.txt) · [OpenAPI document](https://skmtc.dev/earmarkiq/apis/earmark-api/revisions/4a2c41907105?raw)
