| 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. |
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 and ship with the first design
partners.
Become a design partner
Write to 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 | GET /companies | Preview |
| Create a company | POST /companies | Preview |
| Get a company | GET /companies/{company_id} | Live capability |
| Get the fiscal profile | GET /companies/{company_id}/fiscal-profile | Live capability |
| Update the fiscal profile | PATCH /companies/{company_id}/fiscal-profile | Live capability |
| Create an onboarding link | POST /companies/{company_id}/onboarding-links | Preview |
| List mandates | GET /companies/{company_id}/mandates | Preview |
| Request a mandate | POST /companies/{company_id}/mandates | Preview |
| Get a mandate | GET /companies/{company_id}/mandates/{mandate_id} | Preview |
| Revoke a mandate | POST /companies/{company_id}/mandates/{mandate_id}/revoke | Preview |
| List webhook endpoints | GET /webhook-endpoints | Preview |
| Create a webhook endpoint | POST /webhook-endpoints | Preview |
| Replace a webhook endpoint | PUT /webhook-endpoints/{endpoint_id} | Preview |
| Delete a webhook endpoint | DELETE /webhook-endpoints/{endpoint_id} | Preview |
| Rotate the signing secret | POST /webhook-endpoints/signing-secret/rotate | Preview |
| List webhook deliveries | GET /webhook-deliveries | Preview |
| Resend a delivery | POST /webhook-deliveries/{delivery_id}/resend | Preview |
Invoicing
| Operation | Endpoint | Availability |
|---|---|---|
| Get the invoicing status | GET /companies/{company_id}/invoicing | Live capability |
| Register the company as an issuer | POST /companies/{company_id}/invoicing/registration | Live capability · A person decides |
| List customers | GET /companies/{company_id}/customers | Live capability |
| Create or update a customer | POST /companies/{company_id}/customers | Live capability |
| List invoices | GET /companies/{company_id}/invoices | Live capability |
| Create an invoice draft | POST /companies/{company_id}/invoices | Live capability |
| Get an invoice | GET /companies/{company_id}/invoices/{invoice_id} | Live capability |
| Replace an invoice draft | PATCH /companies/{company_id}/invoices/{invoice_id} | Live capability |
| Download the invoice PDF | GET /companies/{company_id}/invoices/{invoice_id}/pdf | Live capability |
| Create an invoice approval link | POST /companies/{company_id}/invoices/{invoice_id}/approval-link | Live capability |
| Issue an invoice | POST /companies/{company_id}/invoices/{invoice_id}/issue | Live capability · A person decides |
| Send an invoice | POST /companies/{company_id}/invoices/{invoice_id}/send | Live capability · A person decides |
| Draft a corrective invoice | POST /companies/{company_id}/invoices/{invoice_id}/correct | Live capability |
| Mark an invoice as paid | POST /companies/{company_id}/invoices/{invoice_id}/mark-paid | Live capability |
Bookkeeping
| Operation | Endpoint | Availability |
|---|---|---|
| List expenses | GET /companies/{company_id}/expenses | Live capability |
| Record an expense | POST /companies/{company_id}/expenses | Live capability |
| Get an expense | GET /companies/{company_id}/expenses/{expense_id} | Live capability |
| Update an expense | PATCH /companies/{company_id}/expenses/{expense_id} | Live capability |
| Delete an expense | DELETE /companies/{company_id}/expenses/{expense_id} | Live capability · A person decides |
| List income | GET /companies/{company_id}/income | Live capability |
| Record an income | POST /companies/{company_id}/income | Live capability |
| Get an income | GET /companies/{company_id}/income/{income_id} | Live capability |
| Replace an income | PUT /companies/{company_id}/income/{income_id} | Live capability |
| Delete an income | DELETE /companies/{company_id}/income/{income_id} | Live capability · A person decides |
| List documents | GET /companies/{company_id}/documents | Live capability |
| Upload a document | POST /companies/{company_id}/documents | Live capability |
| Read a fiscal document | POST /companies/{company_id}/documents/extract | Live capability |
| List bank accounts | GET /companies/{company_id}/bank-accounts | Live capability |
| Connect a bank account | POST /companies/{company_id}/bank-accounts | Preview |
| Push bank movements | POST /companies/{company_id}/bank-accounts/{bank_account_id}/movements | Preview |
| List bank movements | GET /companies/{company_id}/bank-movements | Live capability |
| Get a bank movement | GET /companies/{company_id}/bank-movements/{bank_movement_id} | Live capability |
| Reconcile a bank movement | POST /companies/{company_id}/bank-movements/{bank_movement_id}/reconciliation | Live capability · A person decides |
| Undo a reconciliation | DELETE /companies/{company_id}/bank-movements/{bank_movement_id}/reconciliation | Live capability · A person decides |
| List bank statements | GET /companies/{company_id}/bank-statements | Live capability |
| Save a bank statement | POST /companies/{company_id}/bank-statements | Live capability · A person decides |
| Read a bank statement | POST /companies/{company_id}/bank-statements/read | Live capability |
| List journal entries | GET /companies/{company_id}/journal-entries | Live capability |
| List journal imports | GET /companies/{company_id}/journal-imports | Live capability |
| Import a journal | POST /companies/{company_id}/journal-imports | Live capability · A person decides |
| Read a journal file | POST /companies/{company_id}/journal-imports/read | Live capability |
| Delete a journal import | DELETE /companies/{company_id}/journal-imports/{import_id} | Live capability · A person decides |
| List VAT book imports | GET /companies/{company_id}/vat-book-imports | Live capability |
| Import a VAT book | POST /companies/{company_id}/vat-book-imports | Live capability · A person decides |
| Read a VAT book file | POST /companies/{company_id}/vat-book-imports/read | Live capability |
| Delete a VAT book import | DELETE /companies/{company_id}/vat-book-imports/{import_id} | Live capability · A person decides |
| Get the trial balance | GET /companies/{company_id}/reports/trial-balance | Live capability |
| Get the profit and loss account | GET /companies/{company_id}/reports/profit-and-loss | Live capability |
| Get the balance sheet | GET /companies/{company_id}/reports/balance-sheet | Live capability |
Taxes
| Operation | Endpoint | Availability |
|---|---|---|
| Get the tax calendar | GET /companies/{company_id}/tax-calendar | Live capability |
| Mark a reminder form as filed | POST /companies/{company_id}/tax-calendar/mark-filed | Live capability · A person decides |
| List tax returns | GET /companies/{company_id}/tax-returns | Live capability |
| Get a tax return | GET /companies/{company_id}/tax-returns/{tax_return_id} | Live capability |
| Download the AEAT import file | GET /companies/{company_id}/tax-returns/{tax_return_id}/aeat-file | Live capability |
| Create a tax return approval link | POST /companies/{company_id}/tax-returns/{tax_return_id}/approval-link | Live capability |
| Approve a tax return | POST /companies/{company_id}/tax-returns/{tax_return_id}/approve | Live capability · A person decides |
| Attest an approval from your interface | POST /companies/{company_id}/tax-returns/{tax_return_id}/attested-approvals | Preview |
| Mark a return as filed by the company | POST /companies/{company_id}/tax-returns/{tax_return_id}/mark-filed | Live capability · A person decides |
| Record a return filed elsewhere | POST /companies/{company_id}/tax-returns/imports | Live capability · A person decides |
| Get the corporate tax | GET /companies/{company_id}/corporate-tax/{year} | Live capability |
| Save the corporate tax inputs | PUT /companies/{company_id}/corporate-tax/{year} | Live capability · A person decides |
| Get the tax set-aside estimate | GET /companies/{company_id}/tax-estimates | Preview |
| List case kinds | GET /companies/{company_id}/case-kinds | Live capability |
| List cases | GET /companies/{company_id}/cases | Live capability |
| Open a case | POST /companies/{company_id}/cases | Live capability |
| Get a case | GET /companies/{company_id}/cases/{case_id} | Live capability |
| Submit a case | POST /companies/{company_id}/cases/{case_id}/submit | Live capability |
| Add a message to a case | POST /companies/{company_id}/cases/{case_id}/messages | Live capability |
| Answer an information request | POST /companies/{company_id}/cases/{case_id}/answers | Live capability |
| Create a case approval link | POST /companies/{company_id}/cases/{case_id}/approval-link | Live capability |
| Approve a case draft | POST /companies/{company_id}/cases/{case_id}/approve | Live capability · A person decides |
| Cancel a case | POST /companies/{company_id}/cases/{case_id}/cancel | Live capability · A person decides |
| List administration notifications | GET /companies/{company_id}/notifications | Preview |
| Get an administration notification | GET /companies/{company_id}/notifications/{notification_id} | Preview |
| Request a certificate | POST /companies/{company_id}/certificates | Preview |
| Get a certificate | GET /companies/{company_id}/certificates/{certificate_id} | Preview |
Payroll and Social Security
| Operation | Endpoint | Availability |
|---|---|---|
| List employees | GET /companies/{company_id}/employees | Live capability |
| Add an employee | POST /companies/{company_id}/employees | Live capability |
| Update an employee | PATCH /companies/{company_id}/employees/{employee_id} | Live capability |
| List an employee’s changes | GET /companies/{company_id}/employees/{employee_id}/changes | Live capability |
| Get an employee’s withholding certificate | GET /companies/{company_id}/employees/{employee_id}/withholding-certificates/{year} | Preview |
| List payroll runs | GET /companies/{company_id}/payroll-runs | Preview |
| Submit a payroll run | POST /companies/{company_id}/payroll-runs | Preview |
| Get a payroll run | GET /companies/{company_id}/payroll-runs/{payroll_run_id} | Preview |
| List affiliation requests | GET /companies/{company_id}/social-security/affiliations | Preview |
| Request an alta, baja or variación | POST /companies/{company_id}/social-security/affiliations | Preview |
| Get an affiliation request | GET /companies/{company_id}/social-security/affiliations/{affiliation_id} | Preview |
| List contribution settlements | GET /companies/{company_id}/social-security/settlements | Preview |
| Get a contribution settlement | GET /companies/{company_id}/social-security/settlements/{settlement_id} | Preview |
| Notify a contract (Contrat@) | POST /companies/{company_id}/employment/contracts | Preview |
| Send a company certificate (Certific@2) | POST /companies/{company_id}/employment/certificates | Preview |
| Get an employment notification | GET /companies/{company_id}/employment/notifications/{notification_id} | Preview |