Developers

The MSMEPulse API

Connect your other software to MSMEPulse: add clients, raise GST invoices, record payments, track projects and pull reports, and get told the moment something happens with webhooks.

What you can do

Quick start

  1. 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.
  2. 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.
  3. 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.

AreaScope nameAccess
ClientsclientsRead, or read and write
Leads, deals and proposalscrmRead, or read and write
Projects and tasksprojectsRead, or read and write
Time logstimeRead, or read and write
Invoices and paymentsinvoicesRead, or read and write
Expenses and billsexpensesRead, or read and write
Support ticketssupportRead, or read and write
Attendance and leaveattendanceRead only
Employee directoryemployeesRead only
ReportsreportsRead only

Amounts, dates and ids

  • Money is in minor units, as whole numbers: โ‚น1,180.00 is 118000 paise; S$54.50 is 5450 cents. Each record says its currency.
  • GST rates are in basis points: 18% is 1800.
  • Dates are YYYY-MM-DD in 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, clientId or search (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." }
  }
}
StatusMeans
400, 422The request isn't valid: see fields
401The token is missing, wrong or revoked
403The 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)
404Not found, or not visible to this token
409Conflicts with the record's state, such as editing an issued invoice or adding a client twice
429Over 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

Help

Questions or a missing endpoint? Write to support@msmepulse.com with what you're building. to try the API on your own workspace.