---
title: "Create reconciliation rule"
method: POST
path: "/api/v1/reconciliation-rules"
tags: ["API"]
---

# Create reconciliation rule

`POST /api/v1/reconciliation-rules`

## Request

- Base URL: `https://api.lapyme.com.ar`
- URL: `https://api.lapyme.com.ar/api/v1/reconciliation-rules`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lapyme/apis/la-pyme-api/docs/api/v1/reconciliation-rules/post.ts> (a function with typed inputs; its response is checked against the schema)

Save an explicit rule: lines whose description contains text, in direction, post a movement to account_id (optional contact and cost centers). It applies at once to pending lines of open periods and on every later import. Lines that several rules match stay pending. Text is stored normalized (case, accents, spaces).

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `bank_account_id` string, uuid, required
  - `text` string, required
  - `direction` 'debit' | 'credit', required
  - `account_id` string, uuid, required
  - `contact_id` string, uuid, nullable
  - `cost_center1_id` string, uuid, nullable
  - `cost_center2_id` string, uuid, nullable
  - `cost_center3_id` string, uuid, nullable
  - `paused` boolean

## Response `200`

Treasury result or immutable replay

- ApiSharedObjectaa73c77263
  - `request_id` string, required
  - `data` ApiSharedObjectba292d6681, required
    - `object` 'reconciliation_rule', required
    - `id` string, uuid, required
    - `bank_account_id` string, uuid, required
    - `text` string, required
    - `direction` 'debit' | 'credit', required
    - `account_id` string, uuid, required
    - `contact_id` string, uuid, nullable, required
    - `cost_center1_id` string, uuid, nullable, required
    - `cost_center2_id` string, uuid, nullable, required
    - `cost_center3_id` string, uuid, nullable, required
    - `status` 'active' | 'paused', required
    - `resolved_line_count` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: Statement request could not be completed
- `401`: Statement request could not be completed
- `403`: Statement request could not be completed
- `404`: Statement request could not be completed
- `409`: Idempotency or statement state conflict
- `422`: Statement request could not be completed
- `429`: Statement request could not be completed
- `503`: Statement request could not be completed Verificación de credenciales temporalmente ocupada; reintentá sin cambiar la operación ni su Idempotency-Key.

## Changes

- **2026-11-07** `0b0c4de0366d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/lapyme/apis/la-pyme-api/changes/api/v1/reconciliation-rules/post.md)

---

[API](https://skmtc.dev/lapyme/apis/la-pyme-api.md) - [All operations](https://skmtc.dev/lapyme/apis/la-pyme-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lapyme/apis/la-pyme-api/revisions/597a718d17bd?raw)
