List clients (search, archived=1)
GET /clients Clients: read
Example
curl https://app.msmepulse.com/api/v1/clients \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Response 200
| Field | Type | Notes |
|---|---|---|
clients | array of object | |
clients[].id | string | |
clients[].name | string | |
clients[].type | string | business or individual |
clients[].country | string | ISO country code |
clients[].gstin | string or null | |
clients[].uen | string or null | |
clients[].currency | string | |
clients[].state | string | India: state code |
clients[].email | string or null | |
clients[].primaryContact | string or null | |
clients[].activeProjects | number | |
clients[].archived | boolean | |
clients[].sample | boolean | Part of the workspace's sample data |
Add a client
POST /clients Clients: read and write
Request body
The fields depend on the workspace's country: India (GSTIN, PAN, state) or Singapore (UEN, GST registration).
India workspace
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–120 characters |
type | "business" | "individual" | default "business" | |
country | string | Yes | |
email | "" or string | ||
phone | string | up to 30 characters | |
billingAddress | object | default {} | |
billingAddress.line1 | string | up to 200 characters | |
billingAddress.line2 | string | up to 200 characters | |
billingAddress.city | string | up to 80 characters | |
billingAddress.postalCode | string | up to 12 characters | |
billingAddress.state | string | up to 4 characters | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | Yes | |
paymentTermsDays | integer | 0 to 365 · default 30 | |
notes | string | up to 2000 characters | |
ownerId | string or null | ||
gstin | string | ||
pan | string | ||
isSez | boolean | default false | |
uen | string | ||
gstRegistered | boolean | default false | |
peppolId | string | up to 60 characters |
Singapore workspace
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–120 characters |
type | "business" | "individual" | default "business" | |
country | string | Yes | |
email | "" or string | ||
phone | string | up to 30 characters | |
billingAddress | object | default {} | |
billingAddress.line1 | string | up to 200 characters | |
billingAddress.line2 | string | up to 200 characters | |
billingAddress.city | string | up to 80 characters | |
billingAddress.postalCode | string | up to 12 characters | |
billingAddress.state | string | up to 4 characters | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | Yes | |
paymentTermsDays | integer | 0 to 365 · default 30 | |
notes | string | up to 2000 characters | |
ownerId | string or null | ||
gstin | string | ||
pan | string | ||
isSez | boolean | default false | |
uen | string | ||
gstRegistered | boolean | default false | |
peppolId | string | up to 60 characters |
Example
curl -X POST https://app.msmepulse.com/api/v1/clients \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd","country":"IN","currency":"INR"}'
Response 201
| Field | Type | Notes |
|---|---|---|
id | string | The new record's id |
Get a client, with their projects
GET /clients/{id} Clients: read
id
Example
curl https://app.msmepulse.com/api/v1/clients/{id} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Response 200
| Field | Type | Notes |
|---|---|---|
client | object | |
client.id | string | |
client.name | string | |
client.contacts | array of object | |
client.contacts[].id | string | |
client.contacts[].name | string | |
client.contacts[].email | string or null | |
client.contacts[].isPrimary | boolean | |
ownerName | string or null | |
projects | array of object | |
projects[].id | string | |
projects[].name | string | |
projects[].code | string or null | |
projects[].status | string | |
projects[].billingType | string | |
projects[].startDate | string or null | |
projects[].endDate | string or null | |
canEdit | boolean |
Update a client
PATCH /clients/{id} Clients: read and write
id
Request body
The fields depend on the workspace's country: India (GSTIN, PAN, state) or Singapore (UEN, GST registration).
India workspace
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | 2–120 characters | |
type | "business" | "individual" | default "business" | |
country | string | ||
email | "" or string | ||
phone | string | up to 30 characters | |
billingAddress | object | default {} | |
billingAddress.line1 | string | up to 200 characters | |
billingAddress.line2 | string | up to 200 characters | |
billingAddress.city | string | up to 80 characters | |
billingAddress.postalCode | string | up to 12 characters | |
billingAddress.state | string | up to 4 characters | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | ||
paymentTermsDays | integer | 0 to 365 · default 30 | |
notes | string | up to 2000 characters | |
ownerId | string or null | ||
gstin | string | ||
pan | string | ||
isSez | boolean | default false | |
uen | string | ||
gstRegistered | boolean | default false | |
peppolId | string | up to 60 characters |
Singapore workspace
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | 2–120 characters | |
type | "business" | "individual" | default "business" | |
country | string | ||
email | "" or string | ||
phone | string | up to 30 characters | |
billingAddress | object | default {} | |
billingAddress.line1 | string | up to 200 characters | |
billingAddress.line2 | string | up to 200 characters | |
billingAddress.city | string | up to 80 characters | |
billingAddress.postalCode | string | up to 12 characters | |
billingAddress.state | string | up to 4 characters | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | ||
paymentTermsDays | integer | 0 to 365 · default 30 | |
notes | string | up to 2000 characters | |
ownerId | string or null | ||
gstin | string | ||
pan | string | ||
isSez | boolean | default false | |
uen | string | ||
gstRegistered | boolean | default false | |
peppolId | string | up to 60 characters |
Example
curl -X PATCH https://app.msmepulse.com/api/v1/clients/{id} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd","type":"business","country":"IN"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
A client's overview: projects, money owed, ageing, sales and timeline
GET /clients/{id}/360 Clients: read
id
Example
curl https://app.msmepulse.com/api/v1/clients/{id}/360 \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Add a note, call or meeting to a client's timeline
POST /clients/{id}/activities Clients: read
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
kind | "note" | "call" | "meeting" | "email" | "follow_up" | Yes | |
body | string | up to 2000 characters | |
dueDate | "" or string or null |
Example
curl -X POST https://app.msmepulse.com/api/v1/clients/{id}/activities \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"kind":"note"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Archive or restore a client
POST /clients/{id}/{action} Clients: read and write
id · action: archive or restore
Example
curl -X POST https://app.msmepulse.com/api/v1/clients/{id}/archive \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Add a contact to a client
POST /clients/{id}/contacts Clients: read and write
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–80 characters |
email | "" or string | ||
phone | string | up to 30 characters | |
designation | string | up to 60 characters | |
isPrimary | boolean | default false |
Example
curl -X POST https://app.msmepulse.com/api/v1/clients/{id}/contacts \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Update a client's contact
PATCH /clients/{id}/contacts/{cid} Clients: read and write
id · cid
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–80 characters |
email | "" or string | ||
phone | string | up to 30 characters | |
designation | string | up to 60 characters | |
isPrimary | boolean | default false |
Example
curl -X PATCH https://app.msmepulse.com/api/v1/clients/{id}/contacts/{cid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Remove a client's contact
DELETE /clients/{id}/contacts/{cid} Clients: read and write
id · cid
Example
curl -X DELETE https://app.msmepulse.com/api/v1/clients/{id}/contacts/{cid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
List a client's client portal users
GET /clients/{id}/portal-access Clients: read
id
Example
curl https://app.msmepulse.com/api/v1/clients/{id}/portal-access \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Invite a client contact to the client portal
POST /clients/{id}/portal-access Clients: read and write
id
Example
curl -X POST https://app.msmepulse.com/api/v1/clients/{id}/portal-access \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Remove someone's client portal access
DELETE /clients/{id}/portal-access/{uid} Clients: read and write
id · uid
Example
curl -X DELETE https://app.msmepulse.com/api/v1/clients/{id}/portal-access/{uid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.