---
title: "Import Rules"
method: POST
path: "/api/reconciliation/rules/import"
tags: ["reconciliation"]
---

# Import Rules

`POST /api/reconciliation/rules/import`

## Request

- Base URL: `https://demo.usesecuro.com` (the document declares no server; this is the origin it was published from)
- URL: `https://demo.usesecuro.com/api/reconciliation/rules/import`
- Auth: OAuth 2
  - Password
  - Token URL: `/api/auth/login`
- TypeScript: <https://skmtc.dev/usesecuro/apis/securo/docs/api/reconciliation/rules/import/post.ts> (a function with typed inputs; its response is checked against the schema)

Take a policy file back in.

`node` narrows it the same way the export does, and for the stronger
reason: the button sits on one card, so a file dropped on *Transfers*
must not be able to rewrite the invoice rules. Sets the file carries
and this call did not ask for are skipped and counted, exactly as a
set this workspace does not have already is.

## Query parameters

- `node` string, nullable

## Headers

- `X-Workspace-Id` string, nullable

## Request body

- ReconciliationImportRequest: A matching-rules file, and permission to replace what is here. `overwrite` is asked for rather than assumed: importing replaces the workspace's matching rules, and a policy somebody tuned is not something to overwrite on a mis-click.
  - `payload` object, required
  - `overwrite` boolean

## Response `200`

Successful Response

- ReconciliationImportResponse
  - `imported` integer, required
  - `skipped` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-05** `416a7752fec4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usesecuro/apis/securo/changes/api/reconciliation/rules/import/post.md)

---

[API](https://skmtc.dev/usesecuro/apis/securo.md) - [All operations](https://skmtc.dev/usesecuro/apis/securo/llms.txt) - [OpenAPI document](https://skmtc.dev/usesecuro/apis/securo/revisions/416a7752fec4?raw)
