# Invoia > Invoicing and exact revenue recognition for consultancies and agencies that bill through Dinero. > Drive it from the REST API, or hand it to an AI agent over MCP — where every write is proposed > first and committed only after a human approves the plan. - REST API base URL: https://invoia.io/api/v1 - MCP endpoint: https://invoia.io/api/mcp (OAuth only; the server is named `invoia`) - API keys are `ivk_…` bearer tokens for the REST API, minted in Settings → Developers. - MCP takes no API key, and OAuth consent needs a browser: CI, cron and server-side agents use the REST API instead. - There is no sandbox. Build against live data, on an account you own. Every documentation page is served as raw Markdown at its own URL plus `.md` — the links below are those addresses. Drop the suffix for the page a human reads. ## AI clients Connect an agent over MCP - [Overview](https://invoia.io/developers/mcp.md): What the Invoia MCP server is, and what an agent can and cannot do with it. - [Connect claude.ai](https://invoia.io/developers/mcp/claude-ai.md): Add Invoia as a custom connector in claude.ai. - [Connect Claude Code](https://invoia.io/developers/mcp/claude-code.md): Add the Invoia MCP server to Claude Code and authenticate with OAuth. - [Connect ChatGPT](https://invoia.io/developers/mcp/chatgpt.md): Add Invoia to ChatGPT as a custom MCP connector in developer mode. - [Connect Cursor](https://invoia.io/developers/mcp/cursor.md): Add the Invoia MCP server to Cursor, per project or for your whole machine. - [The propose → commit contract](https://invoia.io/developers/mcp/propose-commit.md): Why no Invoia tool writes on its own, and what the two steps look like. - [Auth and scopes](https://invoia.io/developers/mcp/auth.md): OAuth is the only MCP credential — the flow, the three scopes, whose work an answer is about, and why there is no headless path. ## REST API Build on the REST API - [Getting started](https://invoia.io/developers/api.md): Base URL, your first call, and the no-sandbox note. - [Quickstart](https://invoia.io/developers/api/quickstart.md): From a key to recognised revenue, in curl, Node and Python. - [Authentication](https://invoia.io/developers/api/authentication.md): Key format, scope, integration binding, rotation. - [external_id and idempotency](https://invoia.io/developers/api/external-id.md): Correlating your world with Invoia without ever holding an Invoia UUID. - [Work registration](https://invoia.io/developers/api/work-registration.md): Absolute-set hours and completion into the recognition engine. - [Issuance and auto-send](https://invoia.io/developers/api/issuance.md): Explicit issuance vs the auto-send cron; booked-but-send-failed. - [Webhooks](https://invoia.io/developers/api/webhooks.md): Signed at-least-once events for changes you did not trigger. - [Pagination](https://invoia.io/developers/api/pagination.md): Cursor iteration and updated_since for incremental sync. - [Errors](https://invoia.io/developers/api/errors.md): Envelope, typed codes, rate limits, and versioning policy. ## API reference Every endpoint, generated from the OpenAPI document - [Overview](https://invoia.io/developers/reference.md): one page per endpoint, generated from the OpenAPI document - [OpenAPI 3.1 document](https://invoia.io/api/v1/openapi.json): every endpoint, parameter and schema in machine form ## Machine surface - [llms-full.txt](https://invoia.io/llms-full.txt): every page above, concatenated as one Markdown document - [OpenAPI 3.1 document](https://invoia.io/api/v1/openapi.json): the REST API in machine form - [MCP server metadata](https://invoia.io/.well-known/oauth-protected-resource): RFC 9728 resource metadata for the MCP endpoint