Get an invoice
Read one customer invoice with its lines, contact email and status.
MCP tool odoo_read → get_invoice
read
Returns the invoice header, every line with quantity, unit price and subtotal, the contact's email address and the payment status. Pass either invoice_id or number. A draft has no number. The call fails with a not-found error if your Odoo user cannot see the invoice.
Parameters
| Name | Type | Description |
|---|---|---|
| invoice_id integer | integer | Invoice ID from list_invoices. |
| number string | string | Invoice number such as INV/2026/00412, instead of invoice_id. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "odoo_read",
"arguments": {
"operation": "get_invoice",
"arguments": {}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"invoice_id": 4182,
"number": "INV/2026/00412",
"contact": {
"contact_id": 931,
"name": "Northwind Studio",
"email": "billing@northwind.example"
},
"status": "posted",
"payment_status": "not_paid",
"invoice_date": "2026-09-13",
"due_date": "2026-09-27",
"lines": [
{
"description": "Monthly retainer, September",
"quantity": 1,
"unit_price": 3200,
"subtotal": 3200
}
],
"amount_untaxed": 3200,
"amount_tax": 0,
"amount_total": 3200,
"amount_due": 3200,
"currency": "EUR"
},
"isError": false
}