> ## Documentation Index
> Fetch the complete documentation index at: https://docs.melso.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Melso MCP: https://mcp.melso.ai/mcp (OAuth; one company per connection). Documentation-search MCP: https://docs.melso.ai/mcp; it does not act on customer accounts.
>
> Use the live tool list and respect company membership. Ask the person to approve the exact invoice or tax return version in the signed-in app. Melso's professionals prepare and file included returns after approval; an AI assistant does not file. A prepared file or an approval is not evidence of filing: only the AEAT's reference and receipt are. Keep credentials out of chat and logs.

# Availability

> Which API operations Melso runs in production today and which are preview contracts we are building with design partners.

The Melso API is in a design-partner phase. Every operation has one of two
labels:

| Label | Meaning |
| - | - |
| **Live capability** | Melso runs it in production today, for the companies using the Melso app and its MCP server. Partner keys reach it once your partner account is enabled. |
| **Preview** | A contract we propose and are building with design partners. It is not callable yet, and its fields can still change. |

Operations marked **A person decides** are decisions the company's owner makes
signed in to Melso: a partner key never makes them. See
[Approvals and filing](/api/approvals).

## What a partner account adds

Today the live capabilities are reached from the Melso app and the MCP server,
one signed-in person at a time. Enabling a partner account adds what a
platform needs on top of them: partner keys and test mode, the `/v1` paths
scoped to each company, cursor pagination, `Idempotency-Key`, and signed
webhooks. Those conventions are described in
[Conventions](/api/conventions) and ship with the first design
partners.

## Become a design partner

Write to [hello@melso.ai](mailto:hello@melso.ai) with the module you need
first. Design partners decide the order in which preview modules ship.

## All operations

75 live capabilities and 34 preview operations.

### Companies and access

| Operation | Endpoint | Availability |
| - | - | - |
| [List companies](/api/reference/companies/list-companies) | `GET /companies` | Preview |
| [Create a company](/api/reference/companies/create-company) | `POST /companies` | Preview |
| [Get a company](/api/reference/companies/get-company) | `GET /companies/{company_id}` | Live capability |
| [Get the fiscal profile](/api/reference/companies/get-fiscal-profile) | `GET /companies/{company_id}/fiscal-profile` | Live capability |
| [Update the fiscal profile](/api/reference/companies/update-fiscal-profile) | `PATCH /companies/{company_id}/fiscal-profile` | Live capability |
| [Create an onboarding link](/api/reference/companies/create-onboarding-link) | `POST /companies/{company_id}/onboarding-links` | Preview |
| [List mandates](/api/reference/mandates/list-mandates) | `GET /companies/{company_id}/mandates` | Preview |
| [Request a mandate](/api/reference/mandates/create-mandate) | `POST /companies/{company_id}/mandates` | Preview |
| [Get a mandate](/api/reference/mandates/get-mandate) | `GET /companies/{company_id}/mandates/{mandate_id}` | Preview |
| [Revoke a mandate](/api/reference/mandates/revoke-mandate) | `POST /companies/{company_id}/mandates/{mandate_id}/revoke` | Preview |
| [List webhook endpoints](/api/reference/webhook-endpoints/list-webhook-endpoints) | `GET /webhook-endpoints` | Preview |
| [Create a webhook endpoint](/api/reference/webhook-endpoints/create-webhook-endpoint) | `POST /webhook-endpoints` | Preview |
| [Replace a webhook endpoint](/api/reference/webhook-endpoints/update-webhook-endpoint) | `PUT /webhook-endpoints/{endpoint_id}` | Preview |
| [Delete a webhook endpoint](/api/reference/webhook-endpoints/delete-webhook-endpoint) | `DELETE /webhook-endpoints/{endpoint_id}` | Preview |
| [Rotate the signing secret](/api/reference/webhook-endpoints/rotate-webhook-signing-secret) | `POST /webhook-endpoints/signing-secret/rotate` | Preview |
| [List webhook deliveries](/api/reference/webhook-endpoints/list-webhook-deliveries) | `GET /webhook-deliveries` | Preview |
| [Resend a delivery](/api/reference/webhook-endpoints/resend-webhook-delivery) | `POST /webhook-deliveries/{delivery_id}/resend` | Preview |

### Invoicing

| Operation | Endpoint | Availability |
| - | - | - |
| [Get the invoicing status](/api/reference/invoicing-setup/get-invoicing-status) | `GET /companies/{company_id}/invoicing` | Live capability |
| [Register the company as an issuer](/api/reference/invoicing-setup/register-invoicing-issuer) | `POST /companies/{company_id}/invoicing/registration` | Live capability · A person decides |
| [List customers](/api/reference/customers/list-customers) | `GET /companies/{company_id}/customers` | Live capability |
| [Create or update a customer](/api/reference/customers/upsert-customer) | `POST /companies/{company_id}/customers` | Live capability |
| [List invoices](/api/reference/invoices/list-invoices) | `GET /companies/{company_id}/invoices` | Live capability |
| [Create an invoice draft](/api/reference/invoices/create-invoice) | `POST /companies/{company_id}/invoices` | Live capability |
| [Get an invoice](/api/reference/invoices/get-invoice) | `GET /companies/{company_id}/invoices/{invoice_id}` | Live capability |
| [Replace an invoice draft](/api/reference/invoices/replace-invoice-draft) | `PATCH /companies/{company_id}/invoices/{invoice_id}` | Live capability |
| [Download the invoice PDF](/api/reference/invoices/get-invoice-pdf) | `GET /companies/{company_id}/invoices/{invoice_id}/pdf` | Live capability |
| [Create an invoice approval link](/api/reference/invoices/create-invoice-approval-link) | `POST /companies/{company_id}/invoices/{invoice_id}/approval-link` | Live capability |
| [Issue an invoice](/api/reference/invoices/issue-invoice) | `POST /companies/{company_id}/invoices/{invoice_id}/issue` | Live capability · A person decides |
| [Send an invoice](/api/reference/invoices/send-invoice) | `POST /companies/{company_id}/invoices/{invoice_id}/send` | Live capability · A person decides |
| [Draft a corrective invoice](/api/reference/invoices/correct-invoice) | `POST /companies/{company_id}/invoices/{invoice_id}/correct` | Live capability |
| [Mark an invoice as paid](/api/reference/invoices/mark-invoice-paid) | `POST /companies/{company_id}/invoices/{invoice_id}/mark-paid` | Live capability |

### Bookkeeping

| Operation | Endpoint | Availability |
| - | - | - |
| [List expenses](/api/reference/expenses/list-expenses) | `GET /companies/{company_id}/expenses` | Live capability |
| [Record an expense](/api/reference/expenses/create-expense) | `POST /companies/{company_id}/expenses` | Live capability |
| [Get an expense](/api/reference/expenses/get-expense) | `GET /companies/{company_id}/expenses/{expense_id}` | Live capability |
| [Update an expense](/api/reference/expenses/update-expense) | `PATCH /companies/{company_id}/expenses/{expense_id}` | Live capability |
| [Delete an expense](/api/reference/expenses/delete-expense) | `DELETE /companies/{company_id}/expenses/{expense_id}` | Live capability · A person decides |
| [List income](/api/reference/income/list-income) | `GET /companies/{company_id}/income` | Live capability |
| [Record an income](/api/reference/income/create-income) | `POST /companies/{company_id}/income` | Live capability |
| [Get an income](/api/reference/income/get-income) | `GET /companies/{company_id}/income/{income_id}` | Live capability |
| [Replace an income](/api/reference/income/replace-income) | `PUT /companies/{company_id}/income/{income_id}` | Live capability |
| [Delete an income](/api/reference/income/delete-income) | `DELETE /companies/{company_id}/income/{income_id}` | Live capability · A person decides |
| [List documents](/api/reference/documents/list-documents) | `GET /companies/{company_id}/documents` | Live capability |
| [Upload a document](/api/reference/documents/upload-document) | `POST /companies/{company_id}/documents` | Live capability |
| [Read a fiscal document](/api/reference/documents/extract-fiscal-document) | `POST /companies/{company_id}/documents/extract` | Live capability |
| [List bank accounts](/api/reference/banking/list-bank-accounts) | `GET /companies/{company_id}/bank-accounts` | Live capability |
| [Connect a bank account](/api/reference/banking/create-bank-account) | `POST /companies/{company_id}/bank-accounts` | Preview |
| [Push bank movements](/api/reference/banking/push-bank-movements) | `POST /companies/{company_id}/bank-accounts/{bank_account_id}/movements` | Preview |
| [List bank movements](/api/reference/banking/list-bank-movements) | `GET /companies/{company_id}/bank-movements` | Live capability |
| [Get a bank movement](/api/reference/banking/get-bank-movement) | `GET /companies/{company_id}/bank-movements/{bank_movement_id}` | Live capability |
| [Reconcile a bank movement](/api/reference/banking/reconcile-bank-movement) | `POST /companies/{company_id}/bank-movements/{bank_movement_id}/reconciliation` | Live capability · A person decides |
| [Undo a reconciliation](/api/reference/banking/undo-bank-reconciliation) | `DELETE /companies/{company_id}/bank-movements/{bank_movement_id}/reconciliation` | Live capability · A person decides |
| [List bank statements](/api/reference/banking/list-bank-statements) | `GET /companies/{company_id}/bank-statements` | Live capability |
| [Save a bank statement](/api/reference/banking/save-bank-statement) | `POST /companies/{company_id}/bank-statements` | Live capability · A person decides |
| [Read a bank statement](/api/reference/banking/read-bank-statement) | `POST /companies/{company_id}/bank-statements/read` | Live capability |
| [List journal entries](/api/reference/accounting/list-journal-entries) | `GET /companies/{company_id}/journal-entries` | Live capability |
| [List journal imports](/api/reference/accounting/list-journal-imports) | `GET /companies/{company_id}/journal-imports` | Live capability |
| [Import a journal](/api/reference/accounting/save-journal-import) | `POST /companies/{company_id}/journal-imports` | Live capability · A person decides |
| [Read a journal file](/api/reference/accounting/read-journal-import) | `POST /companies/{company_id}/journal-imports/read` | Live capability |
| [Delete a journal import](/api/reference/accounting/delete-journal-import) | `DELETE /companies/{company_id}/journal-imports/{import_id}` | Live capability · A person decides |
| [List VAT book imports](/api/reference/accounting/list-vat-book-imports) | `GET /companies/{company_id}/vat-book-imports` | Live capability |
| [Import a VAT book](/api/reference/accounting/save-vat-book-import) | `POST /companies/{company_id}/vat-book-imports` | Live capability · A person decides |
| [Read a VAT book file](/api/reference/accounting/read-vat-book-import) | `POST /companies/{company_id}/vat-book-imports/read` | Live capability |
| [Delete a VAT book import](/api/reference/accounting/delete-vat-book-import) | `DELETE /companies/{company_id}/vat-book-imports/{import_id}` | Live capability · A person decides |
| [Get the trial balance](/api/reference/accounting/get-trial-balance) | `GET /companies/{company_id}/reports/trial-balance` | Live capability |
| [Get the profit and loss account](/api/reference/accounting/get-profit-and-loss) | `GET /companies/{company_id}/reports/profit-and-loss` | Live capability |
| [Get the balance sheet](/api/reference/accounting/get-balance-sheet) | `GET /companies/{company_id}/reports/balance-sheet` | Live capability |

### Taxes

| Operation | Endpoint | Availability |
| - | - | - |
| [Get the tax calendar](/api/reference/tax-calendar/get-tax-calendar) | `GET /companies/{company_id}/tax-calendar` | Live capability |
| [Mark a reminder form as filed](/api/reference/tax-calendar/mark-obligation-filed) | `POST /companies/{company_id}/tax-calendar/mark-filed` | Live capability · A person decides |
| [List tax returns](/api/reference/tax-returns/list-tax-returns) | `GET /companies/{company_id}/tax-returns` | Live capability |
| [Get a tax return](/api/reference/tax-returns/get-tax-return) | `GET /companies/{company_id}/tax-returns/{tax_return_id}` | Live capability |
| [Download the AEAT import file](/api/reference/tax-returns/get-tax-return-aeat-file) | `GET /companies/{company_id}/tax-returns/{tax_return_id}/aeat-file` | Live capability |
| [Create a tax return approval link](/api/reference/tax-returns/create-tax-return-approval-link) | `POST /companies/{company_id}/tax-returns/{tax_return_id}/approval-link` | Live capability |
| [Approve a tax return](/api/reference/tax-returns/approve-tax-return) | `POST /companies/{company_id}/tax-returns/{tax_return_id}/approve` | Live capability · A person decides |
| [Attest an approval from your interface](/api/reference/tax-returns/attest-tax-return-approval) | `POST /companies/{company_id}/tax-returns/{tax_return_id}/attested-approvals` | Preview |
| [Mark a return as filed by the company](/api/reference/tax-returns/mark-tax-return-filed) | `POST /companies/{company_id}/tax-returns/{tax_return_id}/mark-filed` | Live capability · A person decides |
| [Record a return filed elsewhere](/api/reference/tax-returns/import-filed-tax-return) | `POST /companies/{company_id}/tax-returns/imports` | Live capability · A person decides |
| [Get the corporate tax](/api/reference/corporate-tax/get-corporate-tax) | `GET /companies/{company_id}/corporate-tax/{year}` | Live capability |
| [Save the corporate tax inputs](/api/reference/corporate-tax/save-corporate-tax-inputs) | `PUT /companies/{company_id}/corporate-tax/{year}` | Live capability · A person decides |
| [Get the tax set-aside estimate](/api/reference/tax-estimates/get-tax-estimate) | `GET /companies/{company_id}/tax-estimates` | Preview |
| [List case kinds](/api/reference/cases/list-case-kinds) | `GET /companies/{company_id}/case-kinds` | Live capability |
| [List cases](/api/reference/cases/list-cases) | `GET /companies/{company_id}/cases` | Live capability |
| [Open a case](/api/reference/cases/create-case) | `POST /companies/{company_id}/cases` | Live capability |
| [Get a case](/api/reference/cases/get-case) | `GET /companies/{company_id}/cases/{case_id}` | Live capability |
| [Submit a case](/api/reference/cases/submit-case) | `POST /companies/{company_id}/cases/{case_id}/submit` | Live capability |
| [Add a message to a case](/api/reference/cases/add-case-message) | `POST /companies/{company_id}/cases/{case_id}/messages` | Live capability |
| [Answer an information request](/api/reference/cases/answer-case-request) | `POST /companies/{company_id}/cases/{case_id}/answers` | Live capability |
| [Create a case approval link](/api/reference/cases/create-case-approval-link) | `POST /companies/{company_id}/cases/{case_id}/approval-link` | Live capability |
| [Approve a case draft](/api/reference/cases/approve-case) | `POST /companies/{company_id}/cases/{case_id}/approve` | Live capability · A person decides |
| [Cancel a case](/api/reference/cases/cancel-case) | `POST /companies/{company_id}/cases/{case_id}/cancel` | Live capability · A person decides |
| [List administration notifications](/api/reference/administration-notifications/list-administration-notifications) | `GET /companies/{company_id}/notifications` | Preview |
| [Get an administration notification](/api/reference/administration-notifications/get-administration-notification) | `GET /companies/{company_id}/notifications/{notification_id}` | Preview |
| [Request a certificate](/api/reference/certificates/request-certificate) | `POST /companies/{company_id}/certificates` | Preview |
| [Get a certificate](/api/reference/certificates/get-certificate) | `GET /companies/{company_id}/certificates/{certificate_id}` | Preview |

### Payroll and Social Security

| Operation | Endpoint | Availability |
| - | - | - |
| [List employees](/api/reference/employees/list-employees) | `GET /companies/{company_id}/employees` | Live capability |
| [Add an employee](/api/reference/employees/create-employee) | `POST /companies/{company_id}/employees` | Live capability |
| [Update an employee](/api/reference/employees/update-employee) | `PATCH /companies/{company_id}/employees/{employee_id}` | Live capability |
| [List an employee's changes](/api/reference/employees/list-employee-changes) | `GET /companies/{company_id}/employees/{employee_id}/changes` | Live capability |
| [Get an employee's withholding certificate](/api/reference/employees/get-withholding-certificate) | `GET /companies/{company_id}/employees/{employee_id}/withholding-certificates/{year}` | Preview |
| [List payroll runs](/api/reference/payroll-runs/list-payroll-runs) | `GET /companies/{company_id}/payroll-runs` | Preview |
| [Submit a payroll run](/api/reference/payroll-runs/create-payroll-run) | `POST /companies/{company_id}/payroll-runs` | Preview |
| [Get a payroll run](/api/reference/payroll-runs/get-payroll-run) | `GET /companies/{company_id}/payroll-runs/{payroll_run_id}` | Preview |
| [List affiliation requests](/api/reference/social-security/list-affiliations) | `GET /companies/{company_id}/social-security/affiliations` | Preview |
| [Request an alta, baja or variación](/api/reference/social-security/create-affiliation) | `POST /companies/{company_id}/social-security/affiliations` | Preview |
| [Get an affiliation request](/api/reference/social-security/get-affiliation) | `GET /companies/{company_id}/social-security/affiliations/{affiliation_id}` | Preview |
| [List contribution settlements](/api/reference/social-security/list-contribution-settlements) | `GET /companies/{company_id}/social-security/settlements` | Preview |
| [Get a contribution settlement](/api/reference/social-security/get-contribution-settlement) | `GET /companies/{company_id}/social-security/settlements/{settlement_id}` | Preview |
| [Notify a contract (Contrat@)](/api/reference/employment-notifications/notify-contract) | `POST /companies/{company_id}/employment/contracts` | Preview |
| [Send a company certificate (Certific@2)](/api/reference/employment-notifications/send-company-certificate) | `POST /companies/{company_id}/employment/certificates` | Preview |
| [Get an employment notification](/api/reference/employment-notifications/get-employment-notification) | `GET /companies/{company_id}/employment/notifications/{notification_id}` | Preview |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.