{"ok":true,"site":{"host":"markcial.github.io","url":"https://markcial.github.io/ventanilla/","type":"live","desc":"Ventanilla","tools":[{"name":"ping","kind":"answer","impl":"imperative","description":"Health check. Returns \"pong\" and the browser clock. Use to verify the connection works.","title":"Ping","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/ventanilla/"},{"name":"list_obligations","kind":"answer","impl":"imperative","description":"List the tax forms this freelancer still has to file, with deadlines, soonest first. Uses their registration date, VAT regime and income tax method, so results are specific to them rather than general advice. Also displays the list on the page.","title":"List upcoming tax obligations","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"withinDays":{"type":"integer","description":"Only include obligations due within this many days. Defaults to 365.","minimum":1,"maximum":730}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/ventanilla/"},{"name":"register_invoice","kind":"act","impl":"imperative","description":"Record a new issued invoice and generate its Verifactu record: the serial number, the SHA-256 fingerprint chained to the previous invoice, and the QR code contents. Give the client name, their tax ID, and the amount before VAT. The invoice appears on the page for the person to check.","title":"Register an invoice","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"clientName":{"type":"string","description":"Who the invoice is billed to."},"clientNif":{"type":"string","description":"The client's Spanish tax ID (NIF/CIF)."},"baseEuros":{"type":"number","description":"Amount before VAT, in euros.","exclusiveMinimum":0},"vatRate":{"type":"integer","description":"VAT rate as a percentage. Leave it out for the ordinary 21% rate. Use 10 or 4 for the reduced rates. Use 0 only when the invoice genuinely charges no VAT, which also requires vatTreatment — do not pass 0 just to fill the field in.","enum":[21,10,4,0]},"issuedOn":{"type":"string","description":"Issue date as yyyy-mm-dd. Defaults to today."},"vatTreatment":{"type":"string","description":"Required when vatRate is 0, and only then: why no VAT is charged. E1, E2, E3, E4, E5, E6, E7, E8 if the operation is exempt, N1 or N2 if it is outside the scope of VAT. Ask the person; it cannot be inferred from the amount.","enum":["E1","E2","E3","E4","E5","E6","E7","E8","N1","N2"]}},"required":["clientName","clientNif","baseEuros"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/ventanilla/"},{"name":"prepare_vat_return","kind":"act","impl":"imperative","description":"Work out modelo 303, the Spanish quarterly VAT return, from the invoices recorded here. Returns the numbered boxes of the official form ready to transcribe, and shows them on the page. Defaults to the quarter that has most recently ended. Says what it could not compute rather than guessing.","title":"Prepare the quarterly VAT return","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"quarter":{"type":"integer","description":"Quarter, 1 to 4. Defaults to the last completed one.","minimum":1,"maximum":4},"year":{"type":"integer","description":"Four-digit year. Defaults to the current one.","minimum":2000,"maximum":2100}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/ventanilla/"},{"name":"export_submission","kind":"act","impl":"imperative","description":"Build the SOAP request the Spanish tax agency expects for an invoice already registered here, and show it on the page with a button that sends it. Defaults to the most recent invoice. This prepares the submission; the person sends it with their certificate.","title":"Prepare an AEAT submission","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"invoiceId":{"type":"string","description":"Serial of the invoice, e.g. DEMO-2026-003. Defaults to the most recent one."},"vatTreatment":{"type":"string","description":"Rarely needed. Invoices already record why they charge no VAT, so this only applies to older records made before that was stored, or to override one. E1, E2, E3, E4, E5, E6, E7, E8 for an exempt operation, N1 or N2 for one outside the scope of VAT.","enum":["E1","E2","E3","E4","E5","E6","E7","E8","N1","N2"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/ventanilla/"}],"category":"Finance & Crypto","apiSurface":"spec","toolCount":5}}