Endpoint
Local development endpoint:
https://netra.ee/api/mcp
Netra MCP server reference and practical usage patterns.
This page shows how to connect an AI (like ChatGPT) to Netra so it can help you with everyday accounting tasks — safely and step by step. It can create invoices, record payments, import bills, reconcile bank transactions, and generate reports. Think of it as giving your AI a “remote control” to Netra, while keeping everything saved in the same accounting system your bookkeeper understands.
You can type or speak in a chat interface, describe what you need, and Netra will turn that into proper accounting transactions behind the scenes.
If you’re searching for “MCP accounting” or “AI accounting API”, this is Netra’s MCP integration page.
Local development endpoint:
https://netra.ee/api/mcp
Use API token as Bearer token (or x-api-key for direct calls).
[mcp_servers.netra]
url = "https://netra.ee/api/mcp"
bearer_token_env_var = "NETRA_MCP_TOKEN"
netra_whoami to confirm active org + role.netra_list_organizations
+ netra_switch_organization
when needed.
{"error":{"code":-32602,"message":"Missing required arguments"}}
Common codes: -32602
invalid/missing params, -32601
unknown method, -32603
server error.
Reads are safe to retry. For writes, retry only when you are sure the request did not reach Netra (e.g., network drop). If you receive a validation error, fix the input and send a new request rather than retrying the same one.
List tools support limit
(default 20, max 100). Use search
and filters
to narrow. Page/offset is not currently exposed.
Use netra_prepare_bill_upload
to get a presigned URL, upload the file, then call netra_create_bill_import_from_upload.
Use netra_import_bill_from_base64 for small files and quick tests.
Verify tools:
curl -X POST https://netra.ee/api/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $NETRA_MCP_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
netra_whoaminetra_switch_organizationnetra_reconcile_autonetra_set_opening_balancenetra_create_contact_from_registrynetra_receive_invoice_paymentExample uses minimum wage as the gross salary. Verify the current rate and tax rules before posting. This is a full template with the core payroll accounts.
Netra will store the result as standard payroll journals so accountants can audit, reconcile, and report them normally.
Step 1: Ensure payroll accounts (create if missing)
{"jsonrpc":"2.0","id":20,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"611","name":"Salary Expense","group":"expense","group_type":"salary","report":"Profit & Loss"
}}}
{"jsonrpc":"2.0","id":21,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"612","name":"Employer Social Tax Expense","group":"expense","group_type":"payroll_tax","report":"Profit & Loss"
}}}
{"jsonrpc":"2.0","id":22,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"613","name":"Employer Unemployment Insurance Expense","group":"expense","group_type":"payroll_tax","report":"Profit & Loss"
}}}
{"jsonrpc":"2.0","id":23,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"614","name":"Employer Funded Pension Expense","group":"expense","group_type":"payroll_tax","report":"Profit & Loss"
}}}
{"jsonrpc":"2.0","id":24,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"240","name":"Wages Payable","group":"liabilities","group_type":"payroll","report":"Balance Sheet"
}}}
{"jsonrpc":"2.0","id":25,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"241","name":"Payroll Taxes Payable (TSD)","group":"liabilities","group_type":"payroll","report":"Balance Sheet"
}}}
{"jsonrpc":"2.0","id":26,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"242","name":"Employee Pension Withholding Payable","group":"liabilities","group_type":"payroll","report":"Balance Sheet"
}}}
{"jsonrpc":"2.0","id":27,"method":"tools/call","params":{"name":"netra_create_account","arguments":{
"code":"243","name":"Employee Unemployment Withholding Payable","group":"liabilities","group_type":"payroll","report":"Balance Sheet"
}}}
Step 2: Create employee contact
{"jsonrpc":"2.0","id":30,"method":"tools/call","params":{"name":"netra_create_contact","arguments":{
"name":"Employee Name","email":"employee@example.com","kind":"person"
}}}
Step 3: Post payroll journal (fill amounts)
{"jsonrpc":"2.0","id":31,"method":"tools/call","params":{"name":"netra_create_manual_journal","arguments":{
"date":"2026-02-01",
"description":"Payroll - minimum wage",
"lines":[
{"account_id":"611_ACCOUNT_ID","debit":"GROSS","description":"Gross salary"},
{"account_id":"612_ACCOUNT_ID","debit":"EMP_SOC_TAX","description":"Employer social tax"},
{"account_id":"613_ACCOUNT_ID","debit":"EMP_UNEMP_TAX","description":"Employer unemployment insurance"},
{"account_id":"614_ACCOUNT_ID","debit":"EMP_PENSION","description":"Employer funded pension"},
{"account_id":"240_ACCOUNT_ID","credit":"NET_PAYABLE","description":"Net payable to employee"},
{"account_id":"241_ACCOUNT_ID","credit":"PAYROLL_TAX","description":"Payroll taxes payable (TSD)"},
{"account_id":"242_ACCOUNT_ID","credit":"EMP_PENSION_WHT","description":"Employee pension withholding"},
{"account_id":"243_ACCOUNT_ID","credit":"EMP_UNEMP_WHT","description":"Employee unemployment withholding"}
]
}}}
Replace placeholders (GROSS, NET_PAYABLE, EMP_*). Debits must equal credits.
Netra will create a normal invoice entry so it appears in sales, reports, and accounts receivable as usual.
Step 1: Get source invoice
{"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"netra_get_invoice","arguments":{"id":"INV_PUBLIC_ID"}}}
Step 2: Create new invoice with shifted dates
{"jsonrpc":"2.0","id":11,"method":"tools/call","params":{"name":"netra_create_invoice","arguments":{
"contact_id":"CONTACT_ID",
"date":"2026-03-05",
"due_date":"2026-03-05",
"rows":[{"account_id":"ACCOUNT_ID","description":"Invoice line","qty":"1","unit_price":"100"}]
}}}
Netra will record a proper payment journal and keep accounting consistent.
{"jsonrpc":"2.0","id":12,"method":"tools/call","params":{"name":"netra_receive_invoice_payment","arguments":{
"invoice_id":"INV_PUBLIC_ID",
"bank_account_id":"BANK_ACCOUNT_ID",
"amount":"210.00",
"date":"2026-02-05"
}}}
Overpayments are automatically posted to Customer Prepayments (account 215).
Netra can create contacts directly from the Estonian Business Register. This keeps legal names, registry codes, and addresses consistent.
You can also use the regular contact tools to edit or add missing fields afterwards.
netra_report_trial_balancenetra_report_balance_sheetnetra_report_profit_and_lossnetra_report_tax (summary/legacy)netra_report_tax_kmd_csvnetra_report_annual_zipMCP tool names are stable. Breaking changes are announced in the changelog before deployment.
Full tool list exposed by tools/list in the Netra MCP server.
netra_whoaminetra_list_organizationsnetra_switch_organizationnetra_list_quotesnetra_list_ordersnetra_list_projectsnetra_list_invoicesnetra_get_invoicenetra_create_invoicenetra_update_invoicenetra_update_invoice_statusnetra_receive_invoice_paymentnetra_list_contactsnetra_get_contactnetra_create_contactnetra_update_contactnetra_registry_autocompletenetra_create_contact_from_registrynetra_prepare_bill_uploadnetra_create_bill_import_from_uploadnetra_import_bill_from_base64netra_get_bill_import_statusnetra_list_billsnetra_list_bank_transactionsnetra_suggest_matchesnetra_reconcile_autonetra_prepare_reconciliationnetra_confirm_reconciliationnetra_undo_reconciliationnetra_allocate_paymentnetra_receive_invoice_paymentnetra_list_bank_rulesnetra_get_bank_rulenetra_create_bank_rulenetra_update_bank_rulenetra_delete_bank_rulenetra_create_bank_rule_from_transactionnetra_apply_bank_rulenetra_preview_bank_rulenetra_list_journalsnetra_get_journalnetra_update_journal_statusnetra_create_manual_journalnetra_set_opening_balancenetra_get_opening_balancenetra_delete_opening_balancenetra_list_accountsnetra_list_unitsnetra_list_unit_invoicesnetra_get_accountnetra_get_unitnetra_get_unit_last_meter_readingnetra_upsert_meter_readingnetra_create_accountnetra_update_accountnetra_list_taxesnetra_get_taxnetra_create_taxnetra_update_taxnetra_delete_taxnetra_report_trial_balancenetra_report_balance_sheetnetra_report_profit_and_lossnetra_report_taxnetra_report_tax_kmd_csvnetra_report_annual_zipWe can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect