Add receipt
add_receiptFile a purchase receipt in the caller's personal space (the fields may come from a receipt photo the person sent to the bot and confirmed). Provide 'date' (YYYY-MM-DD) and 'total'; 'merchant_name' is resolved/created case-insensitively to ONE merchant. Optional 'currency' (ISO 4217, default EUR), 'category' (groceries/household/transport/health/dining/entertainment/clothing/utilities/other), 'payment_method', 'document_id' (link a photo/pdf already uploaded to the caller's documents), 'notes', and 'items' (0..100 line items {name_raw, name_normalized, qty?, unit? pcs/kg/g/l/ml, unit_price, total}). When items are present the server checks sum(items.total) is within ±0.05 of the total: match → status 'confirmed', else 'needs_review'. Additive, the caller's own record, removable with delete_receipt — so it is written straight away rather than proposed. CONFIRMATION: this tool runs immediately when the caller asks for it — it writes only their own record, and they can undo it from this same surface, so the request is taken as the instruction. You get an ordinary result, not a plan_token. Everything destructive, outbound or financial still proposes and waits.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"date": "<date>",
"merchant_name": "<merchant_name>",
"total": "<total>"
},
"name": "add_receipt"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| items | No | ||
| notes | No | ||
| total | Yes | ||
| category | No | ||
| currency | No | ||
| document_id | No | ||
| merchant_name | Yes | ||
| payment_method | No |