---
name: "books_reverse_entry"
area: "books"
title: "Reverse an entry"
price: "$0.01"
method: "POST"
url: "https://api.conecto.chat/v1/tools/books_reverse_entry"
mcp_server: "https://api.conecto.chat/mcp/books"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/books/books_reverse_entry"
---

# Reverse an entry (`books_reverse_entry`)

Undoes an entry by booking its mirror image; entries are never edited or deleted.

Undo an entry by booking its mirror image (entries are never edited or deleted). It is dated like the entry, or today when that period is locked, unless date is given. Bank lines matched to the entry wait to be matched again. Entries posted from invoices follow the invoice: void it, or record a refund.

Price: $0.01 a call. A call that fails costs nothing.

## Use it when

An entry was wrong or booked twice.

## Say this to your agent

> Entry 57 was booked twice by mistake. Undo it.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `entry` | integer | yes | The entry number. At least 1. |  |  |
| `date` | string | no | YYYY-MM-DD (matches ^\\d{4}-\\d{2}-\\d{2}$) |  |  |
| `memo` | string | no | Up to 500 characters. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `books_reverse_entry` on the MCP server `https://api.conecto.chat/mcp/books` with these arguments:

```json
{
  "entry": 57,
  "memo": "Booked twice by mistake"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/books_reverse_entry \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entry": 57, "memo": "Booked twice by mistake"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "books_reverse_entry",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "reversal": {
      "entry": 3,
      "date": "2026-10-05",
      "memo": "Booked twice by mistake",
      "reference": "RE 2026-10-5521",
      "party": "Hamburg Energie",
      "source": "reversal",
      "total": "238.00",
      "currency": "EUR",
      "rate": null,
      "lines": [
        {
          "account": "6800",
          "account_name": "Utilities and phone",
          "debit": null,
          "credit": "200.00",
          "description": "Hamburg Energie",
          "tax": "VAT 19%"
        },
        {
          "account": "1300",
          "account_name": "Tax to reclaim",
          "debit": null,
          "credit": "38.00",
          "description": "VAT 19%",
          "tax": "VAT 19%"
        }
      ],
      "reverses": 1,
      "reversed_by": null,
      "receipt_file_id": null,
      "recorded_at": "2026-10-15T14:29:47+00:00",
      "recorded_by": "key 4101 (Pip)"
    },
    "reversed": 1
  }
}
```

`result`: reversal: the new mirror entry; reversed: the entry it undoes.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `no_books` | 409 | The business keeps no books yet. | Set them up with books_setup (base currency, start date). |
| `unbalanced` | 400 | The debits and credits do not add up to the same amount. | Make the lines balance. |
| `before_start` | 409 | The date is before the books start. | Use a later date. |
| `period_locked` | 409 | The books are locked for that date. | Use a later date, or unlock with books_lock. |
| `no_rate` | 409 | There is no exchange rate for the currency on that day. | Pass rate, or set a standing rate with books_setup rates. |
| `rates_loading` | 503 | The day's exchange rates are still loading. | Try again in a few minutes, or pass rate. |
| `not_found` | 404 | No entry has that number. | Find it with books_list_entries. |
| `from_invoice` | 409 | The entry was posted from an invoice. | Void the invoice (invoices_void) or record a refund instead. |
| `from_bill` | 409 | The entry was posted from a supplier bill. | Void the bill (purchasing_void_bill) or record money back instead. |
| `from_claim` | 409 | The entry paid expense claims back, or is a claim already paid back. | Record money a person returned as a negative expense with paid_by. |
| `from_credit` | 409 | The entry booked a prepayment or its refund. | Void the prepayment with invoices_use_credit or purchasing_use_credit (void: true). |
| `from_assets` | 409 | The entry was booked by the asset register: depreciation or a sale. | Undo depreciation with books_depreciate undo_after, or a sale with books_dispose_asset undo. |
| `is_reversal` | 409 | The entry is itself a reversal. | Book the original again instead. |
| `already_reversed` | 409 | The entry is reversed already. | Nothing to do. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [books_setup](https://conecto.chat/tools/books/books_setup.md): Starts the business's double-entry books (currency, start date, chart of accounts) or changes their settings. $0.001 a call.
- [books_get](https://conecto.chat/tools/books/books_get.md): The books' settings: currency, start date, fiscal year, locked period, roles, payment accounts, taxes, and what is waiting. Free up to 1,000,000 reads a month.
- [books_list_accounts](https://conecto.chat/tools/books/books_list_accounts.md): Every account with its code, type, role and balance on a day. Free up to 1,000,000 reads a month.
- [books_save_accounts](https://conecto.chat/tools/books/books_save_accounts.md): Adds accounts or changes them, matched by code: name, type, description, code, role or archived. $0.001 a call.
- [books_save_tax](https://conecto.chat/tools/books/books_save_tax.md): Adds or changes a tax rate the books use (VAT, GST, sales tax), matched by name. $0.001 a call.
- [books_record_expense](https://conecto.chat/tools/books/books_record_expense.md): Books a cost the business paid, with its tax split off and the receipt attached. $0.01 a call.
- [books_record_entry](https://conecto.chat/tools/books/books_record_entry.md): Books a journal entry of two or more balancing lines, for whatever the other tools do not cover. $0.01 a call.
- [books_attach_receipt](https://conecto.chat/tools/books/books_attach_receipt.md): Attaches a receipt from the file store to an entry that has none. $0.01 a call.
- [books_list_entries](https://conecto.chat/tools/books/books_list_entries.md): Entries, newest first, with their lines, by dates, account, source or text. Free up to 1,000,000 reads a month.
- [books_import_bank](https://conecto.chat/tools/books/books_import_bank.md): Reads a bank statement from the file store (CSV, CAMT.053 or OFX) onto a bank account, skipping lines imported before. Free.
- [books_bank_lines](https://conecto.chat/tools/books/books_bank_lines.md): Imported bank lines (by default the ones still to match), each with up to three suggestions of what it was. Free up to 1,000,000 reads a month.
- [books_match_bank_lines](https://conecto.chat/tools/books/books_match_bank_lines.md): Says what bank lines were: entries already booked, invoices or bills they pay, an account to book them to, or nothing to book. $0.02 per bank line matched.
- [books_save_bank_rule](https://conecto.chat/tools/books/books_save_bank_rule.md): Saves a bank rule, like Xero's: which new bank lines it matches and how they are booked, to one account or split by percent, each part with its own tax. $0.001 a call.
- [books_list_bank_rules](https://conecto.chat/tools/books/books_list_bank_rules.md): Lists the bank rules in the order they are tried, with where they book and how often they were used. Free up to 1,000,000 reads a month.
- [books_apply_bank_rules](https://conecto.chat/tools/books/books_apply_bank_rules.md): Books every new bank line a rule matches, each by the first rule that matches. $0.02 per bank line booked.
- [books_delete_bank_rule](https://conecto.chat/tools/books/books_delete_bank_rule.md): Deletes a bank rule; what it booked stays booked. Free.
- [books_report](https://conecto.chat/tools/books/books_report.md): A report: profit and loss, balance sheet, trial balance, ledger, tax, the VAT or OSS return, the cash flow ahead or a snapshot of the business. Free up to 1,000,000 reads a month.
- [books_save_tracking](https://conecto.chat/tools/books/books_save_tracking.md): Saves a tracking category with its options, like Xero's: a department, a region or a project line that any line of the books can carry. $0.001 a call.
- [books_list_tracking](https://conecto.chat/tools/books/books_list_tracking.md): Lists the tracking categories and their options. Free up to 1,000,000 reads a month.
- [books_save_budget](https://conecto.chat/tools/books/books_save_budget.md): Saves a budget per income and expense account and month, like Xero's budget manager: amounts, monthly or yearly. $0.001 a call.
- [books_list_budgets](https://conecto.chat/tools/books/books_list_budgets.md): Lists the budgets with every line's monthly amounts and total. Free up to 1,000,000 reads a month.
- [books_delete_budget](https://conecto.chat/tools/books/books_delete_budget.md): Deletes a budget; the books don't change. Free.
- [books_repay_claims](https://conecto.chat/tools/books/books_repay_claims.md): Pays someone back for costs they paid with their own money (expense claims), like Xero's, with a SEPA file when asked. $0.01 a call.
- [books_list_claims](https://conecto.chat/tools/books/books_list_claims.md): Lists expense claims: what people paid for the business privately, and what each is owed. Free up to 1,000,000 reads a month.
- [books_save_asset](https://conecto.chat/tools/books/books_save_asset.md): Registers a fixed asset (a van, a machine) and how it depreciates, like Xero's: straight line, declining balance, at once or not at all. $0.001 a call.
- [books_list_assets](https://conecto.chat/tools/books/books_list_assets.md): The fixed asset register: each asset's cost, accumulated depreciation and book value, what a run would book now, and the register held against the books. Free up to 1,000,000 reads a month.
- [books_depreciate](https://conecto.chat/tools/books/books_depreciate.md): Books the depreciation of every registered asset through a month's end, one entry a month, like Xero's run depreciation; or undoes it after a date. $0.01 a call.
- [books_dispose_asset](https://conecto.chat/tools/books/books_dispose_asset.md): Sells or writes off a fixed asset, like Xero's dispose: depreciation to the day it goes, then its cost, the price and the gain or loss. $0.01 a call.
- [books_delete_asset](https://conecto.chat/tools/books/books_delete_asset.md): Takes an asset registered by mistake out of the register; the books don't change. Free.
- [books_lock](https://conecto.chat/tools/books/books_lock.md): Locks the books through a date, so nothing new is booked on or before it; null unlocks. $0.001 a call.
- [books_close_year](https://conecto.chat/tools/books/books_close_year.md): Closes a fiscal year for good: nothing is booked on or before its last day again, and it can't be undone. $0.001 a call.
- [books_export](https://conecto.chat/tools/books/books_export.md): A CSV of the journal or the accounts, a DATEV Buchungsstapel for a German tax adviser or a French FEC, with a download link. $0.001 a call.
