Transactions

imports.undo.apply

Undo explicitly selected import-owned groups atomically using the current preview fingerprint, reason, and idempotency key. Keep reviewed or edited transactions and detach their incorrect imported bank links when safe; remove only proved untouched derived entries. Preserves originals and audit. Closed periods and payment dependencies block changes.

POST/api/v1/accounting/imports.undo.apply

Permissions

accounting:readaccounting:write

Who can call it

admin, finance

Retries

Idempotency key required

MCP

accounting_imports_undo_apply

Can't be undone

It deletes, voids, revokes or discards something. Confirm with a person first.

Fields

  • batchIdstring (ID)Required

    The ID of the related record.

  • groupIdsarray of stringsRequired

    A list of record IDs.

    1–10001 items · each at most 64 characters

  • entryTreatmentsarray of objects

    at most 10000 items

  • previewFingerprintstringRequired

    SHA-256 hash as 64 lowercase hex characters

  • reasonstringRequired

    A short note saying why, kept in the record's history.

    3–1000 characters

  • idempotencyKeystringRequired

    Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.

    8–200 characters

Example

curl https://app.getoatmilk.com/api/v1/accounting/imports.undo.apply \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "batchId": "7f0f6c1e-1c1f-4b5e-9c8d-2f5e8e3c1a10",
  "groupIds": [
    "example"
  ],
  "previewFingerprint": "9f2b5c1d7e3a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4c",
  "reason": "Synthetic example from the docs"
}'
Response
{
  "data": { … }
}

This action checks your data too, so replace the example values with your own before sending it.

Try it

Try it

Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.

POST/api/v1/accounting/imports.undo.apply
curl https://app.getoatmilk.com/api/v1/accounting/imports.undo.apply \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "batchId": "7f0f6c1e-1c1f-4b5e-9c8d-2f5e8e3c1a10",
  "groupIds": [
    "example"
  ],
  "previewFingerprint": "9f2b5c1d7e3a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4c",
  "reason": "Synthetic example from the docs"
}'

More in Transactions.