What you can do
Quick start
- The REST API comes with the Business plan, or as an add-on on Growth. An Admin switches on REST API and webhooks in Settings โ Modules.
- In Settings โ API and webhooks, choose New token, name it after what will use it, and pick the areas it may read or write. Copy the token: it's shown once.
- Make your first request:
curl https://app.msmepulse.com/api/v1/clients \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
You'll get the workspace's clients as JSON. Every request needs the token; there's nothing else to set up.
Base address
https://app.msmepulse.com/api/v1. Everything is JSON over HTTPS. Send Content-Type: application/json with a body, except file uploads, which are multipart/form-data.
Authentication
Send the token in the Authorization header: Authorization: Bearer mp_live_โฆ. A token works in one workspace and only for the areas it was given. Revoke it in Settings and it stops working at once. Keep tokens on your server: never put them in a web page or a mobile app.
Scopes
Each token is given read or read-and-write access to some of these areas. Every endpoint in the reference says which one it needs. Tokens can never reach company settings, team members or payroll.
| Area | Scope name | Access |
|---|---|---|
| Clients | clients | Read, or read and write |
| Leads, deals and proposals | crm | Read, or read and write |
| Projects and tasks | projects | Read, or read and write |
| Time logs | time | Read, or read and write |
| Invoices and payments | invoices | Read, or read and write |
| Expenses and bills | expenses | Read, or read and write |
| Support tickets | support | Read, or read and write |
| Attendance and leave | attendance | Read only |
| Employee directory | employees | Read only |
| Reports | reports | Read only |
Amounts, dates and ids
- Money is in minor units, as whole numbers: โน1,180.00 is
118000paise; S$54.50 is5450cents. Each record says itscurrency. - GST rates are in basis points: 18% is
1800. - Dates are
YYYY-MM-DDin the workspace's time zone; times are ISO 8601. - Ids are 24-character strings. Use the ids the API gives you; invoice numbers are for people.
- Lists return up to 500 records, newest or alphabetical first, and take filters such as
status,clientIdorsearch(see each endpoint).
Errors
Errors return an HTTP status and { "error": { "code", "message", "fields" } }. The message is written for people, so you can show it as it is; fields maps each wrong field to what's wrong.
{
"error": {
"code": "validation",
"message": "Please check the highlighted fields.",
"fields": { "gstin": "This GSTIN isn't valid. Check the 15 characters." }
}
}
| Status | Means |
|---|---|
| 400, 422 | The request isn't valid: see fields |
| 401 | The token is missing, wrong or revoked |
| 403 | The token doesn't have this area (forbidden), the module is off for the workspace (module_off), or the endpoint isn't part of the public API (not_public) |
| 404 | Not found, or not visible to this token |
| 409 | Conflicts with the record's state, such as editing an issued invoice or adding a client twice |
| 429 | Over the token's requests a minute: wait and try again |
Rate limits
Each token has its own limit of requests a minute, set when it's created (120 unless the Admin chose otherwise, up to 600). Over the limit, requests get 429 until the minute is up. Settings โ API and webhooks shows each token's use by day.
India and Singapore
A workspace is in India or Singapore, and the API follows its rules: GSTIN, PAN, place of supply and CGST/SGST/IGST for India; UEN and Singapore GST for Singapore. Where fields differ by country, such as adding a client, the reference shows both. MSMEPulse works out the tax: send the lines, and the invoice comes back with the GST split, totals and rounding.
Downloads
- OpenAPI 3.1 description: generate a client in your language, or import it into your API tools.
- Postman collection: set the
tokenvariable and try every endpoint.
Help
Questions or a missing endpoint? Write to support@msmepulse.com with what you're building. Start a free trial to try the API on your own workspace.