I’m currently building a Model Context Protocol (MCP) server to integrate with Manager.io, and I’ve discovered something about the API that I’d like to verify with the community.
Background: My MCP server communicates with the API2 endpoint. I’ve been debugging why create/update operations weren’t working correctly for certain objects, and I’ve traced it to what appears to be inconsistent field naming requirements.
My Findings:
For objects like Receipts and Payments that have nested line items, the API seems to require different casing depending on the field location:
Main object fields: Must use PascalCase
Example: Date, ReceivedIn, Reference, Amount
Using camelCase (e.g., date, receivedIn) causes those fields to be ignored
Line item fields: Must use camelCase
Example: account, amount (not Account, Amount)
Using PascalCase for line items also causes them to be ignored
Yes, you should visit https://{ your manager domain }/api2 and this should give you the schema in .json format.
and
I have never thought of this before and I cannot say that I have gone through all endpoints, but all endpoints do share the same case conventions as far as I can tell.
One peculiarity that I can point out is that for Bank and Cash Accounts, the endpoint for posting single form is /bank-or-cash-account-form – which is grammatically correct but got me going around in circles the first time I came accross it.
Yes, I started with the schema to map out the tool set I needed for the MCP. I discovered that neither the schema nor the API documentation list the fields required for any object, and that’s the problem.
At the moment, I’m in the process of mapping it all through scripts to discover the exact field requirements, which is where I came across the CamelCase versus PascalCase naming confusion.
I’m hoping someone has already found the definitive answer to this.