Zovo Bank Reconciliation

Reconcile a bank account against your books and see which items do not match.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
70%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'explain_reconciliation_difference' name length outside 3-30 rangein explain_reconciliation_difference

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,759Tokens (tool definitions)
~26.5 KBTypical response size
Significant attention impact (3.72% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bank-reconciliation": {
      "url": "https://bank-reconciliation.zovo.one/mcp"
    }
  }
}

Remote endpoints

https://bank-reconciliation.zovo.one/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡reconcile_bank_to_books(bank_file, books_file, period_end, date_window_days, check_clear_days, ...)

Use this when the user attaches a bank export or statement AND their books (cash account register or general ledger export from accounting software or a spreadsheet) and wants a bank reconciliation: "reconcile my bank statement", "reconcile bank statement against my books", "list what doesn't match", "find outstanding checks and deposits in transit", "match bank transactions to the ledger". Matches rows by check number, amount and date (with a date window), and sums (one deposit = several invoices); lists all unmatched rows on both sides with a classification (outstanding check, deposit in transit, bank fee, interest, NSF, likely duplicate, likely amount typo); builds adjusted bank vs adjusted book balance (PASS only at $0.00); returns an Excel workbook and a PDF reconciliation statement. Does not connect to bank accounts or accounting software, does not post entries, and is not for a single statement without books (use a statement converter for that). Supports up to 20,000 rows per file; CSV and text tables have a 2,000,000-cell limit (including empty cells). Each call saves new Excel and PDF files on the plugin server for 1 hour (private download links), then deletes them.

Input Schema

{
  "type": "object",
  "properties": {
    "bank_file": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "description": "Temporary download link for the file, supplied by ChatGPT."
        },
        "file_id": {
          "type": "string",
          "description": "ChatGPT file id, e.g. file_abc123."
        },
        "mime_type": {
          "description": "Media type if known, e.g. application/pdf.",
          "type": "string"
        },
        "file_name": {
          "description": "Original file name if known, e.g. statement.pdf.",
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "description": "The bank side: the bank's CSV or Excel (.xlsx) transaction export, or a text PDF bank statement, e.g. bank-september.csv."
    },
    "books_file": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "description": "Temporary download link for the file, supplied by ChatGPT."
        },
        "file_id": {
          "type": "string",
          "description": "ChatGPT file id, e.g. file_abc123."
        },
        "mime_type": {
          "description": "Media type if known, e.g. application/pdf.",
          "type": "string"
        },
        "file_name": {
          "description": "Original file name if known, e.g. statement.pdf.",
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "description": "The book side: the cash/bank account register or general ledger export from accounting software or a spreadsheet (CSV or .xlsx), e.g. books-september.xlsx."
    },
    "period_end": {
      "description": "Statement / period end date YYYY-MM-DD, e.g. 2026-09-30. Default: the statement end on a PDF, else the month end of the last book entry (capped by the bank file).",
      "type": "string",
      "maxLength": 10
    },
    "date_window_days": {
      "description": "Days a bank posting may differ from the book date and still match the same amount, e.g. 5 (default).",
      "type": "integer",
      "minimum": 0,
      "maximum": 31
    },
    "check_clear_days": {
      "description": "Days a check may take to clear and still match by amount, e.g. 60 (default). Matches by check number allow the same span.",
      "type": "integer",
      "minimum": 1,
      "maximum": 366
    },
    "max_group_size": {
      "description": "Most rows combined when one deposit equals several book entries (or the reverse), e.g. 4 (default).",
      "type": "integer",
      "minimum": 2,
      "maximum": 6
    },
    "books_sign": {
      "description": "Sign of the books file amounts: auto (default) flips only when the amounts clearly match the bank with the opposite sign; as_written keeps them; flip reverses them. Example: auto.",
      "type": "string",
      "enum": [
        "auto",
        "as_written",
        "flip"
      ]
    },
    "date_order": {
      "description": "Order of numeric dates in both files: MDY (US, 09/02/2026) or DMY (02/09/2026). Detected per file when a day is above 12; US is assumed otherwise.",
      "type": "string",
      "enum": [
        "MDY",
        "DMY"
      ]
    },
    "bank_columns": {
      "description": "Optional column names for the bank file when auto-detection picks the wrong column, e.g. {\"date\":\"Post Date\",\"amount\":\"Amount\"}.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Header of the date column, e.g. Posting Date.",
          "type": "string",
          "maxLength": 60
        },
        "description": {
          "description": "Header of the description/payee/memo column, e.g. Payee.",
          "type": "string",
          "maxLength": 60
        },
        "amount": {
          "description": "Header of a single signed amount column, e.g. Amount.",
          "type": "string",
          "maxLength": 60
        },
        "debit": {
          "description": "Header of the debit column, e.g. Debit (bank file: money out; books file: money in).",
          "type": "string",
          "maxLength": 60
        },
        "credit": {
          "description": "Header of the credit column, e.g. Credit (bank file: money in; books file: money out).",
          "type": "string",
          "maxLength": 60
        },
        "check_no": {
          "description": "Header of the check or reference number column, e.g. Num.",
          "type": "string",
          "maxLength": 60
        },
        "balance": {
          "description": "Header of the running balance column, e.g. Balance.",
          "type": "string",
          "maxLength": 60
        }
      }
    },
    "books_columns": {
      "description": "Optional column names for the books file, e.g. {\"date\":\"Date\",\"debit\":\"Debit\",\"credit\":\"Credit\",\"check_no\":\"Num\"}.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Header of the date column, e.g. Posting Date.",
          "type": "string",
          "maxLength": 60
        },
        "description": {
          "description": "Header of the description/payee/memo column, e.g. Payee.",
          "type": "string",
          "maxLength": 60
        },
        "amount": {
          "description": "Header of a single signed amount column, e.g. Amount.",
          "type": "string",
          "maxLength": 60
        },
        "debit": {
          "description": "Header of the debit column, e.g. Debit (bank file: money out; books file: money in).",
          "type": "string",
          "maxLength": 60
        },
        "credit": {
          "description": "Header of the credit column, e.g. Credit (bank file: money in; books file: money out).",
          "type": "string",
          "maxLength": 60
        },
        "check_no": {
          "description": "Header of the check or reference number column, e.g. Num.",
          "type": "string",
          "maxLength": 60
        },
        "balance": {
          "description": "Header of the running balance column, e.g. Balance.",
          "type": "string",
          "maxLength": 60
        }
      }
    },
    "bank_ending_balance": {
      "description": "Ending balance on the bank statement at period end, in dollars, e.g. 48210.55. With book_ending_balance this gives the full adjusted-balance reconciliation.",
      "type": "number",
      "minimum": -100000000000,
      "maximum": 100000000000
    },
    "book_ending_balance": {
      "description": "Cash account balance in the books at period end, in dollars, e.g. 51022.10.",
      "type": "number",
      "minimum": -100000000000,
      "maximum": 100000000000
    }
  },
  "required": [
    "bank_file",
    "books_file"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "PASS",
        "DIFFERENCE",
        "BALANCES_NEEDED"
      ],
      "description": "PASS only when both ending balances are known and the difference is $0.00; BALANCES_NEEDED = activity explained, balances needed."
    },
    "mode": {
      "type": "string",
      "enum": [
        "balances",
        "partial",
        "activity"
      ]
    },
    "period_end": {
      "type": "string"
    },
    "files": {
      "type": "object",
      "properties": {
        "bank": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "rows": {
              "type": "number"
            }
          },
          "required": [
            "name",
            "type",
            "rows"
          ],
          "additionalProperties": false
        },
        "books": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "rows": {
              "type": "number"
            }
          },
          "required": [
            "name",
            "type",
            "rows"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "bank",
        "books"
      ],
      "additionalProperties": false
    },
    "counts": {
      "type": "object",
      "properties": {
        "matched": {
          "type": "number"
        },
        "matched_bank_rows": {
          "type": "number"
        },
        "matched_book_rows": {
          "type": "number"
        },
        "by_check_number": {
          "type": "number"
        },
        "same_date": {
          "type": "number"
        },
        "within_window": {
          "type": "number"
        },
        "many_to_one": {
          "type": "number"
        },
        "one_to_many": {
          "type": "number"
        },
        "ambiguous": {
          "type": "number"
        },
        "bank_only": {
          "type": "number"
        },
        "book_only": {
          "type": "number"
        },
        "typo_pairs": {
          "type": "number"
        }
      },
      "required": [
        "matched",
        "matched_bank_rows",
        "matched_book_rows",
        "by_check_number",
        "same_date",
        "within_window",
        "many_to_one",
        "one_to_many",
        "ambiguous",
        "bank_only",
        "book_only",
        "typo_pairs"
      ],
      "additionalProperties": false
    },
    "reconciliation": {
      "type": "object",
      "properties": {
        "bank_side": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "label",
              "amount"
            ],
            "additionalProperties": false
          }
        },
        "book_side": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "label",
              "amount"
            ],
            "additionalProperties": false
          }
        },
        "adjusted_bank": {
          "type": "number"
        },
        "adjusted_book": {
          "type": "number"
        },
        "difference": {
          "type": "number"
        },
        "balances_from": {
          "type": "string"
        }
      },
      "required": [
        "bank_side",
        "book_side",
        "adjusted_bank",
        "adjusted_book",
        "difference",
        "balances_from"
      ],
      "additionalProperties": false
    },
    "bank_only_by_class": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "class": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "class",
          "count",
          "total"
        ],
        "additionalProperties": false
      }
    },
    "book_only_by_class": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "class": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "class",
          "count",
          "total"
        ],
        "additionalProperties": false
      }
    },
    "top_bank_only": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "row": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "class": {
            "type": "string"
          }
        },
        "required": [
          "row",
          "date",
          "description",
          "amount",
          "class"
        ],
        "additionalProperties": false
      }
    },
    "top_book_only": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "row": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "class": {
            "type": "string"
          }
        },
        "required": [
          "row",
          "date",
          "description",
          "amount",
          "class"
        ],
        "additionalProperties": false
      }
    },
    "explanation": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "found": {
              "type": "boolean"
            },
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "hints": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "found",
            "items",
            "hints"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "xlsx": {
          "type": "string"
        },
        "pdf": {
          "type": "string"
        }
      },
      "required": [
        "xlsx",
        "pdf"
      ],
      "additionalProperties": false
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "mode",
    "period_end",
    "files",
    "counts",
    "reconciliation",
    "bank_only_by_class",
    "book_only_by_class",
    "top_bank_only",
    "top_book_only",
    "explanation",
    "warnings",
    "downloads",
    "note"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡explain_reconciliation_difference(bank_file, books_file, period_end, date_window_days, check_clear_days, ...)

Use this when the user attaches the bank file and the books file, gives the bank statement ending balance and the book balance, and asks why the bank reconciliation does not balance: "why is my bank reconciliation off", "reconciliation difference", "find the difference between bank and books". Runs the same matching, computes adjusted bank vs adjusted book balance, and finds the smallest set of listed items (up to 4) whose amounts account for the difference, plus checks for a reversed sign, a transposition (difference divisible by 9) and a row with that same amount. Returns the same Excel and PDF downloads. Does not change any file and cannot find items that are missing from both files. Supports up to 20,000 rows per file; CSV and text tables have a 2,000,000-cell limit (including empty cells). Each call saves new Excel and PDF files on the plugin server for 1 hour (private download links), then deletes them.

Input Schema

{
  "type": "object",
  "properties": {
    "bank_file": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "description": "Temporary download link for the file, supplied by ChatGPT."
        },
        "file_id": {
          "type": "string",
          "description": "ChatGPT file id, e.g. file_abc123."
        },
        "mime_type": {
          "description": "Media type if known, e.g. application/pdf.",
          "type": "string"
        },
        "file_name": {
          "description": "Original file name if known, e.g. statement.pdf.",
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "description": "The bank side: the bank's CSV or Excel (.xlsx) transaction export, or a text PDF bank statement, e.g. bank-september.csv."
    },
    "books_file": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "description": "Temporary download link for the file, supplied by ChatGPT."
        },
        "file_id": {
          "type": "string",
          "description": "ChatGPT file id, e.g. file_abc123."
        },
        "mime_type": {
          "description": "Media type if known, e.g. application/pdf.",
          "type": "string"
        },
        "file_name": {
          "description": "Original file name if known, e.g. statement.pdf.",
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "description": "The book side: the cash/bank account register or general ledger export from accounting software or a spreadsheet (CSV or .xlsx), e.g. books-september.xlsx."
    },
    "period_end": {
      "description": "Statement / period end date YYYY-MM-DD, e.g. 2026-09-30. Default: the statement end on a PDF, else the month end of the last book entry (capped by the bank file).",
      "type": "string",
      "maxLength": 10
    },
    "date_window_days": {
      "description": "Days a bank posting may differ from the book date and still match the same amount, e.g. 5 (default).",
      "type": "integer",
      "minimum": 0,
      "maximum": 31
    },
    "check_clear_days": {
      "description": "Days a check may take to clear and still match by amount, e.g. 60 (default). Matches by check number allow the same span.",
      "type": "integer",
      "minimum": 1,
      "maximum": 366
    },
    "max_group_size": {
      "description": "Most rows combined when one deposit equals several book entries (or the reverse), e.g. 4 (default).",
      "type": "integer",
      "minimum": 2,
      "maximum": 6
    },
    "books_sign": {
      "description": "Sign of the books file amounts: auto (default) flips only when the amounts clearly match the bank with the opposite sign; as_written keeps them; flip reverses them. Example: auto.",
      "type": "string",
      "enum": [
        "auto",
        "as_written",
        "flip"
      ]
    },
    "date_order": {
      "description": "Order of numeric dates in both files: MDY (US, 09/02/2026) or DMY (02/09/2026). Detected per file when a day is above 12; US is assumed otherwise.",
      "type": "string",
      "enum": [
        "MDY",
        "DMY"
      ]
    },
    "bank_columns": {
      "description": "Optional column names for the bank file when auto-detection picks the wrong column, e.g. {\"date\":\"Post Date\",\"amount\":\"Amount\"}.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Header of the date column, e.g. Posting Date.",
          "type": "string",
          "maxLength": 60
        },
        "description": {
          "description": "Header of the description/payee/memo column, e.g. Payee.",
          "type": "string",
          "maxLength": 60
        },
        "amount": {
          "description": "Header of a single signed amount column, e.g. Amount.",
          "type": "string",
          "maxLength": 60
        },
        "debit": {
          "description": "Header of the debit column, e.g. Debit (bank file: money out; books file: money in).",
          "type": "string",
          "maxLength": 60
        },
        "credit": {
          "description": "Header of the credit column, e.g. Credit (bank file: money in; books file: money out).",
          "type": "string",
          "maxLength": 60
        },
        "check_no": {
          "description": "Header of the check or reference number column, e.g. Num.",
          "type": "string",
          "maxLength": 60
        },
        "balance": {
          "description": "Header of the running balance column, e.g. Balance.",
          "type": "string",
          "maxLength": 60
        }
      }
    },
    "books_columns": {
      "description": "Optional column names for the books file, e.g. {\"date\":\"Date\",\"debit\":\"Debit\",\"credit\":\"Credit\",\"check_no\":\"Num\"}.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Header of the date column, e.g. Posting Date.",
          "type": "string",
          "maxLength": 60
        },
        "description": {
          "description": "Header of the description/payee/memo column, e.g. Payee.",
          "type": "string",
          "maxLength": 60
        },
        "amount": {
          "description": "Header of a single signed amount column, e.g. Amount.",
          "type": "string",
          "maxLength": 60
        },
        "debit": {
          "description": "Header of the debit column, e.g. Debit (bank file: money out; books file: money in).",
          "type": "string",
          "maxLength": 60
        },
        "credit": {
          "description": "Header of the credit column, e.g. Credit (bank file: money in; books file: money out).",
          "type": "string",
          "maxLength": 60
        },
        "check_no": {
          "description": "Header of the check or reference number column, e.g. Num.",
          "type": "string",
          "maxLength": 60
        },
        "balance": {
          "description": "Header of the running balance column, e.g. Balance.",
          "type": "string",
          "maxLength": 60
        }
      }
    },
    "bank_ending_balance": {
      "type": "number",
      "minimum": -100000000000,
      "maximum": 100000000000,
      "description": "Ending balance on the bank statement at period end, in dollars, e.g. 48210.55."
    },
    "book_ending_balance": {
      "type": "number",
      "minimum": -100000000000,
      "maximum": 100000000000,
      "description": "Cash account balance in the books at period end, in dollars, e.g. 51022.10."
    }
  },
  "required": [
    "bank_file",
    "books_file",
    "bank_ending_balance",
    "book_ending_balance"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "PASS",
        "DIFFERENCE",
        "BALANCES_NEEDED"
      ],
      "description": "PASS only when both ending balances are known and the difference is $0.00; BALANCES_NEEDED = activity explained, balances needed."
    },
    "mode": {
      "type": "string",
      "enum": [
        "balances",
        "partial",
        "activity"
      ]
    },
    "period_end": {
      "type": "string"
    },
    "files": {
      "type": "object",
      "properties": {
        "bank": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "rows": {
              "type": "number"
            }
          },
          "required": [
            "name",
            "type",
            "rows"
          ],
          "additionalProperties": false
        },
        "books": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "rows": {
              "type": "number"
            }
          },
          "required": [
            "name",
            "type",
            "rows"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "bank",
        "books"
      ],
      "additionalProperties": false
    },
    "counts": {
      "type": "object",
      "properties": {
        "matched": {
          "type": "number"
        },
        "matched_bank_rows": {
          "type": "number"
        },
        "matched_book_rows": {
          "type": "number"
        },
        "by_check_number": {
          "type": "number"
        },
        "same_date": {
          "type": "number"
        },
        "within_window": {
          "type": "number"
        },
        "many_to_one": {
          "type": "number"
        },
        "one_to_many": {
          "type": "number"
        },
        "ambiguous": {
          "type": "number"
        },
        "bank_only": {
          "type": "number"
        },
        "book_only": {
          "type": "number"
        },
        "typo_pairs": {
          "type": "number"
        }
      },
      "required": [
        "matched",
        "matched_bank_rows",
        "matched_book_rows",
        "by_check_number",
        "same_date",
        "within_window",
        "many_to_one",
        "one_to_many",
        "ambiguous",
        "bank_only",
        "book_only",
        "typo_pairs"
      ],
      "additionalProperties": false
    },
    "reconciliation": {
      "type": "object",
      "properties": {
        "bank_side": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "label",
              "amount"
            ],
            "additionalProperties": false
          }
        },
        "book_side": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "label",
              "amount"
            ],
            "additionalProperties": false
          }
        },
        "adjusted_bank": {
          "type": "number"
        },
        "adjusted_book": {
          "type": "number"
        },
        "difference": {
          "type": "number"
        },
        "balances_from": {
          "type": "string"
        }
      },
      "required": [
        "bank_side",
        "book_side",
        "adjusted_bank",
        "adjusted_book",
        "difference",
        "balances_from"
      ],
      "additionalProperties": false
    },
    "bank_only_by_class": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "class": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "class",
          "count",
          "total"
        ],
        "additionalProperties": false
      }
    },
    "book_only_by_class": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "class": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "class",
          "count",
          "total"
        ],
        "additionalProperties": false
      }
    },
    "top_bank_only": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "row": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "class": {
            "type": "string"
          }
        },
        "required": [
          "row",
          "date",
          "description",
          "amount",
          "class"
        ],
        "additionalProperties": false
      }
    },
    "top_book_only": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "row": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "class": {
            "type": "string"
          }
        },
        "required": [
          "row",
          "date",
          "description",
          "amount",
          "class"
        ],
        "additionalProperties": false
      }
    },
    "explanation": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "found": {
              "type": "boolean"
            },
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "hints": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "found",
            "items",
            "hints"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "xlsx": {
          "type": "string"
        },
        "pdf": {
          "type": "string"
        }
      },
      "required": [
        "xlsx",
        "pdf"
      ],
      "additionalProperties": false
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "mode",
    "period_end",
    "files",
    "counts",
    "reconciliation",
    "bank_only_by_class",
    "book_only_by_class",
    "top_bank_only",
    "top_book_only",
    "explanation",
    "warnings",
    "downloads",
    "note"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools