Skip to content

appears to reject receipt-only updates on existing explanations #7

@damacus

Description

@damacus

Summary

freeagent-cli bank explain update advertises a --receipt flag, but when used to attach a receipt to an existing explanation without changing other fields, the CLI exits with:

no fields to update

This makes the most important reconciliation workflow appear supported in help text but unusable in practice.

Reproduction

Command pattern used:

freeagent-cli bank explain update EXPLANATION_URL --receipt ./paperless/Receipt-2860-8601.pdf

Observed result:

2026/03/26 22:51:51 no fields to update

I reproduced the same behavior across multiple existing explanations.

Examples used during testing:

  • https://api.freeagent.com/v2/bank_transaction_explanations/694920607
  • https://api.freeagent.com/v2/bank_transaction_explanations/694485684
  • https://api.freeagent.com/v2/bank_transaction_explanations/693567610
  • https://api.freeagent.com/v2/bank_transaction_explanations/692586808

Each command used only --receipt with a valid local PDF path.

Why this is a problem

In real bookkeeping workflows, a transaction is often already explained correctly but still missing its receipt. In that case, I do not want to:

  • retype the date
  • retype the description
  • retype the gross value
  • retype the category
  • risk changing fields that are already correct
  • delete and recreate the explanation just to attach a PDF

A receipt-only update is the natural and safest operation.

Expected behavior

If --receipt is provided, the CLI should treat that as a meaningful update even when no other fields are changing.

Expected successful workflow:

freeagent-cli bank explain update EXPLANATION_URL --receipt ./paperless/Receipt-2860-8601.pdf

Expected outcome:

  • existing explanation remains otherwise unchanged
  • receipt is attached
  • command exits successfully

Actual behavior

The CLI appears to exclude receipt-only changes from its update field detection, resulting in no fields to update.

Suggested fix

  • Treat --receipt as an update field in its own right.
  • If the API requires multipart or a different endpoint shape, handle that internally.
  • Keep the rest of the explanation unchanged when only --receipt is provided.

Desired follow-up

It would also be helpful if this behavior were covered by a CLI test, because attaching receipts to already-explained transactions is a common reconciliation path.

Related issue

A broader feature request is needed for first-class bank review/reconciliation commands, but this issue is narrower: the existing update command looks like it should work for receipt attachment and currently does not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions