Method

import.discard

Drop a held Import proposal.

Drops a held Import proposal without applying it. Proposals are also dropped when applied, when 16 newer ones push them out and when the book closes, so discarding is only for tidiness. It changes nothing in the book.

Examples

Example: with a new, empty book open as book.gnucash.

JSON-RPC

Request:

{"jsonrpc":"2.0","id":1,"method":"import.discard","params":{"proposal":"imp-999999"}}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": 2000,
    "message": "…",
    "data": {
      "kind": "importProposal",
      "id": "imp-999999",
      "help": "error/not-found"
    }
  }
}

Command line

red-ale exec --book book.gnucash import.discard '{"proposal":"imp-999999"}'

It fails with exit status 2, printing on standard error:

{
  "error": {
    "code": 2000,
    "message": "…",
    "data": {
      "kind": "importProposal",
      "id": "imp-999999",
      "help": "error/not-found"
    }
  }
}

MCP tool call

Tool call:

{"name":"import.discard","arguments":{"proposal":"imp-999999"}}

Result:

{
  "isError": true,
  "structuredContent": {
    "error": {
      "code": 2000,
      "name": "not-found",
      "message": "…",
      "data": {
        "kind": "importProposal",
        "id": "imp-999999",
        "help": "error/not-found"
      }
    }
  }
}

A held proposal is dropped, and is then gone:

Example: with a new, empty book open as book.gnucash.

JSON-RPC

Request:

{"jsonrpc":"2.0","id":1,"method":"import.preview","params":{"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "id": "imp-1",
    "…": "…"
  }
}

Request:

{"jsonrpc":"2.0","id":2,"method":"import.discard","params":{"proposal":"imp-1"}}

Response:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "discarded": true
  }
}

Request:

{"jsonrpc":"2.0","id":3,"method":"import.apply","params":{"proposal":"imp-1"}}

Response:

{
  "jsonrpc": "2.0",
  "id": 3,
  "error": {
    "code": 2000,
    "message": "…",
    "data": {
      "kind": "importProposal",
      "id": "imp-1",
      "help": "error/not-found"
    }
  }
}

Command line

red-ale exec --book book.gnucash --script - <<'EOF'
import.preview {"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}
import.discard {"proposal":"imp-1"}
import.apply {"proposal":"imp-1"}
EOF

It fails with exit status 2, printing on standard error:

{
  "error": {
    "code": 2000,
    "message": "…",
    "data": {
      "kind": "importProposal",
      "id": "imp-1",
      "help": "error/not-found"
    }
  }
}

MCP tool call

Tool call:

{"name":"import.preview","arguments":{"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}}

Result:

{
  "structuredContent": {
    "id": "imp-1",
    "…": "…"
  }
}

Tool call:

{"name":"import.discard","arguments":{"proposal":"imp-1"}}

Result:

{
  "structuredContent": {
    "discarded": true
  }
}

Tool call:

{"name":"import.apply","arguments":{"proposal":"imp-1"}}

Result:

{
  "isError": true,
  "structuredContent": {
    "error": {
      "code": 2000,
      "name": "not-found",
      "message": "…",
      "data": {
        "kind": "importProposal",
        "id": "imp-1",
        "help": "error/not-found"
      }
    }
  }
}

Effect: read.

Params

The params of import.discard.

  • proposal (string, required): The proposal's ID.

Result

The result of import.discard.

  • discarded (boolean, required): Always true.