Sage Sales Management API
This new version of our Application Programming Interface (API) represents a huge step forward. It is more powerful and easier to use than the previous version. Here you will find all the guidance you need to build integrations for the Sage Sales Management application.
Getting Started
https://api.forcemanager.com/api/v4 POST /api/v4/login → token in X-Session-Key
All requests and responses use JSON. Set Content-Type: application/json.
All requests must be made over HTTPS.
Endpoints
The API is designed around the concept of resources. A resource is related to an entity within Sage Sales Management — Accounts, Opportunities, Products, Contacts, and so on. Endpoints perform a specific function and return data in JSON format.
Requests
All data is sent and received in JSON format. All API requests require authentication. Four HTTP verbs are supported:
- GET — retrieves data
- POST — adds new records
- PUT — partial update of records
- DELETE — deletes records
Pagination
The API endpoints provide a limited number of items per request — 50 by default. Use the page query param to paginate results, and the X-FM-Entity-Count header to control page size.
Filters, Orders and Language
Apply filters using SQL-style query string parameters with operators: =, >, LIKE, AND, OR. Use the order param to sort results and lang for response language (en, es, pt, it, fr, de, ru).
API Errors
| Code | Name | Description |
|---|---|---|
| 900 | Connection Error | The database connection cannot be established |
| 901 | Internal data Error | The SQL is not generated correctly |
| 910 | Resource not exist | The resource you provide doesn't exist |
Security
All requests to the API must be made over HTTPS. Using HTTPS ensures that all information exchanged is encrypted and cannot be intercepted.
Data Transfer
All entities sent and received are encoded as JSON objects. The API is compliant with the W3C CORS specification, allowing requests from any properly-authorized origin domain.
Release Notes
Changes in Contacts — the property gender is now returned in value list format instead of binary.
Fixed: POST on Users was ignoring the isActive field.
Changes in tblFamiliasProd — property name renamed to description.
Resources
Account Addresses
https://api.forcemanager.com/api/v4/accountAddresses/schema The Schema is metadata that tells you how the data is structured for this specific Value list.
You will only receive the Account Addresses Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
The Account Addresses Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountAddresses/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"address1": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"address2": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"city": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"countryId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "countries",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"description": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"postcode": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"region": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "accountAddresses",
"type": "object"
}https://api.forcemanager.com/api/v4/accountAddresses Returns all Account Addresses available in the user's ForceManager implementation database.
You will only receive the Account Addresses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Account Addresses available for the value list.
List of the supported Account Addresses attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the address is linked to |
| address1 | String | Account's first address |
| address2 | String | Account's second address |
| city | String | City name |
| countryId | Object, Null | Id of the Country that the address is referred to (see Countries resource) |
| description | String | A description added to the Account Address |
| postcode | String | Postcode of the address |
| region | String | Region/State name |
| dateCreated | String | Date and time when the Account Address was created |
| dateDeleted | String | Date and time when the Account Address was deleted |
| dateUpdated | String | Date and time when the Account Address was last updated |
| deleted | Boolean | If true, the Account Address has been deleted and archived |
| id | Integer | Unique identifier for the Account Address in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Address |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Address |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Address |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountAddresses",
headers=headers
)
data = response.json()[
{
"accountId": {
"id": 1234,
"value": "LANA S.A."
},
"address1": "Pau Roder",
"address2": "n. 46",
"city": "Barcelona",
"countryId": {
"id": 73,
"value": "España"
},
"dateCreated": "2017-05-30T17:43:24.253Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"description": null,
"id": 1,
"postcode": "08034",
"region": "Barcelona",
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
},
{
"accountId": {
"id": 1234,
"value": ""
},
"address1": "via Verdi 1",
"address2": null,
"city": "Milano",
"countryId": {
"id": 112,
"value": "Italia"
},
"dateCreated": "2021-12-15T14:41:08.443Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"description": "This is the main shipping address",
"id": 1,
"postcode": "0801",
"region": "Lombardia",
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/accountAddresses This endpoint allows you to create an Account Address based on JSON input.
You will only be able to create an Account Address after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| accountId (Required) | Integer | Account to which the address is linked to |
| address1 | String | Account's first address |
| address2 | String | Account's second address |
| city | String | City name |
| countryId | Integer | Id of the Country that the address is referred to (see Countries resource) |
| description | String | A description added to the Account Address |
| postcode | String | Postcode of the address |
| region | String | Region/State name |
| dateCreated | String | Date and time when the Account Address was created |
| dateDeleted | String | Date and time when the Account Address was deleted |
| dateUpdated | String | Date and time when the Account Address was last updated |
| deleted | Boolean | If true, the Account Address has been deleted and archived |
| id | Integer | Unique identifier for the Account Address in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Address |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Address |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Address |
RESPONSE
Returns a JSON with information about the Accout Address just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Account Address |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses" \
-X POST \
-H "Accept: */*" \
-d '{ "accountId": 1234, "address1": "via Verdi 1", "address2": null, "city": "Milano", "countryId": 112, "description": "This is the main shipping address", "postcode": "0801", "region": "Lombardia" }'const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountId\": 1234,\n \"address1\": \"via Verdi 1\",\n \"address2\": null,\n \"city\": \"Milano\",\n \"countryId\": 112,\n \"description\": \"This is the main shipping address\",\n \"postcode\": \"0801\",\n \"region\": \"Lombardia\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountId\": 1234,\n \"address1\": \"via Verdi 1\",\n \"address2\": null,\n \"city\": \"Milano\",\n \"countryId\": 112,\n \"description\": \"This is the main shipping address\",\n \"postcode\": \"0801\",\n \"region\": \"Lombardia\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountAddresses",
headers=headers, json=json_body
)
data = response.json(){
"id": 2,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountAddresses/{ID} This endpoint retrieves data of a specific Account Address based on JSON input. The API returns a single Address available to the user, according to the unique ID provided. If the specified Account Address does not exist, the response will be a "bad request".
You will only receive the Account Address after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Address |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the address is linked to |
| address1 | String | Account's first address |
| address2 | String | Account's second address |
| city | String | City name |
| countryId | Object, Null | Id of the Country that the address is referred to (see Countries resource) |
| description | String | A description added to the Account Address |
| postcode | String | Postcode of the address |
| region | String | Region/State name |
| dateCreated | String | Date and time when the Account Address was created |
| dateDeleted | String | Date and time when the Account Address was deleted |
| dateUpdated | String | Date and time when the Account Address was last updated |
| deleted | Boolean | If true, the Account Address has been deleted and archived |
| id | Integer | Unique identifier for the Account Address in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Address |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Address |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Address |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountAddresses/{ID}",
headers=headers
)
data = response.json(){
"accountId": {
"id": 1234,
"value": "LANA S.A."
},
"address1": "Pau Roder",
"address2": "n. 46",
"city": "Barcelona",
"countryId": {
"id": 73,
"value": "España"
},
"dateCreated": "2017-05-30T17:43:24.253Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"description": null,
"id": 1,
"postcode": "08034",
"region": "Barcelona",
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/accountAddresses/{ID} This endpoint allows you to update a specific Account Address. If the specified Address does not exist, the response will be a "bad request".
You will only be able to update an Account Address after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Account Address. In order to update an Address, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | Account to which the address is linked to |
| address1 | String | Account's first address |
| address2 | String | Account's second address |
| city | String | City name |
| countryId | Integer | Id of the Country that the address is referred to (see Countries resource) |
| description | String | A description added to the Account Address |
| postcode | String | Postcode of the address |
| region | String | Region/State name |
RESPONSE
Returns a JSON with information about the Account Address just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "address1": "Gran via, 326", "city": "Madrid" }'const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"address1\": \"Gran via, 326\",\n \"city\": \"Madrid\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"address1\": \"Gran via, 326\",\n \"city\": \"Madrid\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accountAddresses/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accountAddresses/{ID} This endpoint allows you to delete a specific Account Address from the user's ForceManager implementation database. If the specified Account Address does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Account Address after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | / | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Address to delete |
RESPONSE
Returns a JSON with information about the Account Address just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountAddresses/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountAddresses/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accountAddresses/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Accounts
Entity
https://api.forcemanager.com/api/v4/accounts/schema The Schema is metadata that tells you how the data is structured for a specific resource. The Schema defines all the fields that exist for an Account object.
You will only receive the Accounts Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Type | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Accounts Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accounts/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accounts/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accounts/schema",
headers=headers
)
data = response.json(){
"properties": {
"address1": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"address2": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"branchId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "branches",
"type": [
"object",
"null"
]
},
"city": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"comment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"countryId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "countries",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateGeocoded": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"email": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"fax": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"geocoded": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"geocodingAccuracy": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"latitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"longitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"marketingCommunications": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"name": {
"description": "",
"maxLength": 80,
"readOnly": false,
"type": [
"string",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"phone": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"phone2": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"phone3": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"postcode": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"public": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"rateId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "rates",
"type": [
"object",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"region": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepId1": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepId2": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepId3": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepId4": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepId5": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"segmentId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accountSegments",
"type": [
"object",
"null"
]
},
"statusId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accountStatuses",
"type": [
"object",
"null"
]
},
"typeId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accountTypes",
"type": [
"object",
"null"
]
},
"vatNumber": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"website": {
"description": "",
"maxLength": 300,
"readOnly": false,
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"salesRepId1"
],
"title": "accounts",
"type": "object"
}https://api.forcemanager.com/api/v4/accounts Returns all Accounts available in the user's ForceManager implementation database.
You will only receive the List of Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/accounts?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/accounts?where= param1=value AND/OR param2=value2
You can filter Accounts by dateCreated or address, or typeId for example.
You can also organise and view the results for Accounts in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/accounts?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/accounts?lang=VALUE
RESPONSE
This endpoint returns information about all Accounts available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Accounts attributes:
| Attribute | Type | Description |
|---|---|---|
| address1 | String | The Account's main address. e.g. number, street, suite, apt#, postal code, etc. |
| address2 | String | The Account's second address |
| branchId | Object, Null | Branch to which the Account has been assigned (see Branches resource) |
| city | String | City name |
| comment | Object | Comment added to the Account |
| countryId | Object, Null | Country ID (see Countries resource) of the Account address |
| dateCreated | String | Date and time when the Account was created |
| dateDeleted | String | Date and time when the Account was deleted |
| dateUpdated | string | Date and time when the Account was last updated |
| deleted | Boolean | If true, the Account has been deleted and archived |
| String | Account's email address | |
| extId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| fax | String | Account's fax number |
| geocoded | Boolean | If true, the Account has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| id | Integer | Unique identifier for the Account in ForceManager |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| name | String | Name of the Account |
| permissionLevel | String | Defines the visibility of the Account. Set from 1 to 5 being 5 the highest level of permission |
| phone | String | First contact phone number for the Account |
| phone2 | String | Second contact phone number for the Account |
| phone3 | String | Third contact phone number for the Account |
| postcode | String | The Account's address postcode |
| public | Boolean | If true, the Account is visible to everyone regardless of the level of permission |
| rateId | Integer | Rate for the Account (see Rates resource) |
| readOnly | boolean | If true, the Account can not be modified or deleted |
| region | String | Region/State name |
| salesRepId1 | Object, Null | First User responsible for the Account |
| salesRepId2 | Object, Null | Second User responsible for the Account |
| salesRepId3 | Object, Null | Third User responsible for the Account |
| salesRepId4 | Object, Null | Forth User responsible for the Account |
| salesRepId5 | Object, Null | Fifth User responsible for the Account |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Account |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Account |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Account |
| segmentId | Object, Null | Segment of the Account (see Segments resource) |
| statusId | Object, Null | Status of the Account (see Statues resource) |
| typeId | Object, Null | Type of the Account (see Types resource) |
| vatNumber | String | Value Added Tax identification number of the Account |
| website | String | The Account's website address |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/accounts" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accounts", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accounts",
headers=headers
)
data = response.json()[
{
"address1": "Gran Via de Carles III, 156X",
"address2": "",
"branchId": {
"id": 4380,
"value": "HQ"
},
"city": "Barcelona",
"comment": "",
"countryId": {
"id": 73,
"value": "España"
},
"dateCreated": "2015-07-13T17:24:59.237Z",
"dateDeleted": null,
"dateUpdated": "2016-01-28T16:25:54.05Z",
"deleted": false,
"email": "Jade.Orozco@hdiwhy.es",
"extId": null,
"fax": "",
"geocoded": true,
"geocodingAccuracy": 1,
"id": 1191,
"latitude": 41.3732894,
"longitude": 2.138572,
"name": "Adaecuo",
"permissionLevel": 2,
"phone": "643464946494",
"phone2": "",
"phone3": "",
"postcode": "08034",
"public": false,
"rateId": null,
"readOnly": false,
"region": "Barcelona",
"salesRepId1": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepId2": null,
"salesRepId3": null,
"salesRepId4": null,
"salesRepId5": null,
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 5548,
"segmentId": {
"id": 6398,
"value": "B"
},
"statusId": null,
"typeId": {
"id": 4912,
"value": "Distributor"
},
"vatNumber": null,
"website": null
},
{
"address1": "Carrer de Maria Auxiliadora, 29",
"address2": "",
"branchId": {
"id": 4380,
"value": "HQ"
},
"city": "Barcelona",
"comment": "",
"countryId": {
"id": 73,
"value": "España"
},
"dateCreated": "2015-07-13T17:50:55.697Z",
"dateDeleted": null,
"dateUpdated": "2017-11-13T11:20:41.443Z",
"deleted": false,
"email": "amasa@institution.org",
"extId": null,
"fax": "",
"geocoded": true,
"geocodingAccuracy": 19,
"id": 1192,
"latitude": 41.3913005,
"longitude": 2.129141,
"name": "Fundición Amasa",
"permissionLevel": 2,
"phone": "61946494",
"phone2": null,
"phone3": "",
"postcode": "08017",
"public": false,
"rateId": null,
"readOnly": false,
"region": "Barcelona",
"salesRepId1": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepId2": null,
"salesRepId3": null,
"salesRepId4": null,
"salesRepId5": null,
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 5548,
"segmentId": {
"id": 6399,
"value": "C"
},
"statusId": null,
"typeId": {
"id": 4917,
"value": "Partner"
},
"vatNumber": null,
"website": ""
}
]https://api.forcemanager.com/api/v4/accounts This endpoint allows you to create a Account based on JSON input.
You will only be able to create a Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| address1 | String | The Account's main address. e.g. number, street, suite, apt#, postal code, etc. |
| address2 | String | The Account's second address |
| branchId (Required) | Integer | Branch to which the Account has been assigned (see Branches resource) |
| city | String | City name |
| comment | Object | Comment added to the Account |
| countryId | Integer | Country ID (see Countries resource) of the Account address |
| String | Account's email address | |
| extId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| fax | String | Account's fax number |
| geocoded | Boolean | If true, the Account has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| name (Required) | String | Name of the Account |
| permissionLevel | String | Defines the visibility of the Account. Set from 1 to 5 being 5 the highest level of permission |
| phone | String | First contact phone number for the Account |
| phone2 | String | Second contact phone number for the Account |
| phone3 | String | Third contact phone number for the Account |
| postcode | String | The Account's address postcode |
| public | Boolean | If true, the Account is visible to everyone regardless of the level of permission |
| rateId | Integer | Rate for the Account (see Rates resource) |
| readOnly | boolean | If true, the Account can not be modified or deleted |
| region | String | Region/State name |
| salesRepId1 (Required) | Integer | First User responsible for the Account |
| salesRepId2 | Integer | Second User responsible for the Account |
| salesRepId3 | Integer | Third User responsible for the Account |
| salesRepId4 | Integer | Forth User responsible for the Account |
| salesRepId5 | Integer | Fifth User responsible for the Account |
| segmentId | Integer | Segment of the Account (see Segments resource) |
| statusId | Integer | Status of the Account (see Statues resource) |
| typeId | Integer | Type of the Account (see Types resource) |
| vatNumber | String | Value Added Tax identification number of the Account |
| website | String | The Account's website address |
RESPONSE
Returns a JSON with information about the Account just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Account |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accounts" \
-X POST \
-H "Accept: */*" \
-d '{ "address1": "2765 Smith Street", "address2": "7865 North Street", "branchId": 461, "city": "Springfield", "comment": "it has a potencial", "countryId": 168, "email": "info@onlineserviceco.com", "fax": "+39 695-2382", "geocoded": true, "geocodingAccuracy": 0, "latitude": 41.3913395, "longitude": 2.1291421, "name": "Online Service Company", "permissionLevel": 2, "phone": "314-695-8223", "phone2": "314-345-7248", "phone3": "801-895-6472", "postcode": "4", "public": false, "rateId": 33, "readOnly": false, "region": "MO", "salesRepId1": 310, "segmentId": 25, "statusId": 18, "typeId": 63, "vatNumber": "4", "website": "www.onlineserviceco.com" }'const response = await fetch("https://api.forcemanager.com/api/v4/accounts", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"address1\": \"2765 Smith Street\",\n \"address2\": \"7865 North Street\",\n \"branchId\": 461,\n \"city\": \"Springfield\",\n \"comment\": \"it has a potencial\",\n \"countryId\": 168,\n \"email\": \"info@onlineserviceco.com\",\n \"fax\": \"+39 695-2382\",\n \"geocoded\": true,\n \"geocodingAccuracy\": 0,\n \"latitude\": 41.3913395,\n \"longitude\": 2.1291421,\n \"name\": \"Online Service Company\",\n \"permissionLevel\": 2,\n \"phone\": \"314-695-8223\",\n \"phone2\": \"314-345-7248\",\n \"phone3\": \"801-895-6472\",\n \"postcode\": \"4\",\n \"public\": false,\n \"rateId\": 33,\n \"readOnly\": false,\n \"region\": \"MO\",\n \"salesRepId1\": 310,\n \"segmentId\": 25,\n \"statusId\": 18,\n \"typeId\": 63,\n \"vatNumber\": \"4\",\n \"website\": \"www.onlineserviceco.com\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"address1\": \"2765 Smith Street\",\n \"address2\": \"7865 North Street\",\n \"branchId\": 461,\n \"city\": \"Springfield\",\n \"comment\": \"it has a potencial\",\n \"countryId\": 168,\n \"email\": \"info@onlineserviceco.com\",\n \"fax\": \"+39 695-2382\",\n \"geocoded\": true,\n \"geocodingAccuracy\": 0,\n \"latitude\": 41.3913395,\n \"longitude\": 2.1291421,\n \"name\": \"Online Service Company\",\n \"permissionLevel\": 2,\n \"phone\": \"314-695-8223\",\n \"phone2\": \"314-345-7248\",\n \"phone3\": \"801-895-6472\",\n \"postcode\": \"4\",\n \"public\": false,\n \"rateId\": 33,\n \"readOnly\": false,\n \"region\": \"MO\",\n \"salesRepId1\": 310,\n \"segmentId\": 25,\n \"statusId\": 18,\n \"typeId\": 63,\n \"vatNumber\": \"4\",\n \"website\": \"www.onlineserviceco.com\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accounts",
headers=headers, json=json_body
)
data = response.json(){
"id": 402,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accounts/{ID} This endpoint retrieves data of a specific Account based on JSON input. The API returns a single Account available to the user, according to the unique ID provided. If the specified Account does not exist, the response will be a "bad request".
You will only receive the Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| address1 | String | The Account's main address. e.g. number, street, suite, apt#, postal code, etc. |
| address2 | String | The Account's second address |
| branchId | Object, Null | Branch to which the Account has been assigned (see Branches resource) |
| city | String | City name |
| comment | Object | Comment added to the Account |
| countryId | Object, Null | Country ID (see Countries resource) of the Account address |
| dateCreated | String | Date and time when the Account was created |
| dateDeleted | String | Date and time when the Account was deleted |
| dateUpdated | string | Date and time when the Account was last updated |
| deleted | Boolean | If true, the Account has been deleted and archived |
| String | Account's email address | |
| extId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| fax | String | Account's fax number |
| geocoded | Boolean | If true, the Account has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| id | Integer | Unique identifier for the Account in ForceManager |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| name | String | Name of the Account |
| permissionLevel | String | Defines the visibility of the Account. Set from 1 to 5 being 5 the highest level of permission |
| phone | String | First contact phone number for the Account |
| phone2 | String | Second contact phone number for the Account |
| phone3 | String | Third contact phone number for the Account |
| postcode | String | The Account's address postcode |
| public | Boolean | If true, the Account is visible to everyone regardless of the level of permission |
| rateId | Integer | Rate for the Account (see Rates resource) |
| readOnly | boolean | If true, the Account can not be modified or deleted |
| region | String | Region/State name |
| salesRepId1 | Object, Null | First User responsible for the Account |
| salesRepId2 | Object, Null | Second User responsible for the Account |
| salesRepId3 | Object, Null | Third User responsible for the Account |
| salesRepId4 | Object, Null | Forth User responsible for the Account |
| salesRepId5 | Object, Null | Fifth User responsible for the Account |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Account |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Account |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Account |
| segmentId | Object, Null | Segment of the Account (see Segments resource) |
| statusId | Object, Null | Status of the Account (see Statues resource) |
| typeId | Object, Null | Type of the Account (see Types resource) |
| vatNumber | String | Value Added Tax identification number of the Account |
| website | String | The Account's website address |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [Optional] |
| ExtraFieldDescription | Number (e.g. 10) [Optional] |
curl "https://api.forcemanager.com/api/v4/accounts/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [Optional]" \
-H "ExtraFieldDescription: Number (e.g. 10) [Optional]"const response = await fetch("https://api.forcemanager.com/api/v4/accounts/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [Optional]",
"ExtraFieldDescription": "Number (e.g. 10) [Optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [Optional]",
"ExtraFieldDescription": "Number (e.g. 10) [Optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accounts/{ID}",
headers=headers
)
data = response.json(){
"address1": "Via Sile, 41, 31056 Roncade TV, Italy",
"address2": null,
"branchId": {
"id": 16,
"value": "Headquarter"
},
"city": "Roncade",
"comment": null,
"countryId": {
"id": 112,
"value": "Italy"
},
"dateCreated": "2021-11-25T12:30:31.18Z",
"dateDeleted": null,
"dateGeocoded": null,
"dateUpdated": "2021-11-30T13:08:05.45Z",
"deleted": false,
"email": "hello@h-farm.com",
"extId": "2863700-A",
"fax": null,
"geocoded": false,
"geocodingAccuracy": null,
"id": 399,
"latitude": 45.5641322,
"longitude": 12.4281169,
"marketingCommunications": false,
"name": "H-Farm s.p.a.",
"permissionLevel": 0,
"phone": null,
"phone2": null,
"phone3": null,
"postcode": "31056",
"public": null,
"rateId": null,
"readOnly": false,
"region": "Veneto",
"salesRepId1": {
"id": 121,
"value": "letatit838@gyn.com"
},
"salesRepId2": null,
"salesRepId3": null,
"salesRepId4": null,
"salesRepId5": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"segmentId": null,
"statusId": {
"id": 192,
"value": "Customer"
},
"typeId": {
"id": 162,
"value": "Educational"
},
"vatNumber": null,
"website": "https://www.h-farm.com"
}https://api.forcemanager.com/api/v4/accounts/{ID} This endpoint allows you to update a specific Account. If the specified Account does not exist, the response will be a "bad request".
You will only be able to update a Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Account. In order to update a Account, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| address1 | String | The Account's main address. e.g. number, street, suite, apt#, postal code, etc. |
| address2 | String | The Account's second address |
| branchId | Integer | Branch to which the Account has been assigned (see Branches resource) |
| city | String | City name |
| comment | Object | Comment added to the Account |
| countryId | Integer | Country ID (see Countries resource) of the Account address |
| String | Account's email address | |
| extId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| fax | String | Account's fax number |
| geocoded | Boolean | If true, the Account has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| name | String | Name of the Account |
| permissionLevel | String | Defines the visibility of the Account. Set from 1 to 5 being 5 the highest level of permission |
| phone | String | First contact phone number for the Account |
| phone2 | String | Second contact phone number for the Account |
| phone3 | String | Third contact phone number for the Account |
| postcode | String | The Account's address postcode |
| public | Boolean | If true, the Account is visible to everyone regardless of the level of permission |
| rateId | Integer | Rate for the Account (see Rates resource) |
| readOnly | boolean | If true, the Account can not be modified or deleted |
| region | String | Region/State name |
| salesRepId1 | Integer | First User responsible for the Account |
| salesRepId2 | Integer | Second User responsible for the Account |
| salesRepId3 | Integer | Third User responsible for the Account |
| salesRepId4 | Integer | Forth User responsible for the Account |
| salesRepId5 | Integer | Fifth User responsible for the Account |
| segmentId | Integer | Segment of the Account (see Segments resource) |
| statusId | Integer | Status of the Account (see Statues resource) |
| typeId | Integer | Type of the Account (see Types resource) |
| vatNumber | String | Value Added Tax identification number of the Account |
| website | String | The Account's website address |
RESPONSE
Returns a JSON with information about the Account just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accounts/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "address1": "East Street", "phone3": "314-695 2382", "website": "www.onlineservicecompany.com" }'const response = await fetch("https://api.forcemanager.com/api/v4/accounts/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"address1\": \"East Street\",\n \"phone3\": \"314-695 2382\",\n \"website\": \"www.onlineservicecompany.com\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"address1\": \"East Street\",\n \"phone3\": \"314-695 2382\",\n \"website\": \"www.onlineservicecompany.com\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accounts/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accounts/{ID} This endpoint allows you to delete a specific Account from the user's ForceManager implementation database. If the specified Account does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account to delete |
RESPONSE
Returns a JSON with information about the Account just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accounts/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accounts/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accounts/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Types
https://api.forcemanager.com/api/v4/accountTypes/schema Returns properties object with the definition of each field in the Account Type table.
You will only receive the Account Types Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Account Types Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountTypes/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountTypes/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountTypes/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"computeSfm": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"internal": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "accountTypes",
"type": "object"
}https://api.forcemanager.com/api/v4/accountTypes Returns all Account Types available in the user's ForceManager implementation database.
You will only receive the List of Account Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Account Types available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Account Types attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Type is visible |
| computeSfm | Boolean | If true, the Account Type counts for sales analytics |
| internal | Boolean | If true, the Account Type is for internal use only |
| dateCreated | String | Date and time when the Account Type was created |
| dateDeleted | String | Date and time when the Account Type was deleted |
| dateUpdated | String | Date and time when the Account Type was last updated |
| deleted | Boolean | If true, the Account Type has been deleted and archived |
| descriptionBR | String | Account Type label in Brasilian Portuguese |
| descriptionDE | String | Account Type label in German |
| descriptionDK | String | Account Type label in Dutch |
| descriptionEN | String | Account Type label in English |
| descriptionES | String | Account Type label in Spanish |
| descriptionFR | String | Account Type label in French |
| descriptionIT | String | Account Type label in Italian |
| descriptionPT | String | Account Type label in Portuguese |
| descriptionRU | String | Account Type label in Russian |
| descriptionUS | String | Account Type label in American English |
| id | Integer | Unique identifier for the Account Type in ForceManager |
| order | Integer | The position of the Account Type in the Account Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/accountTypes" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountTypes", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountTypes",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2011-11-09T14:25:48.03Z",
"dateDeleted": "2021-11-17T11:31:25.513Z",
"dateUpdated": "2019-08-06T12:31:46.003Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": "Hersteller",
"descriptionDK": null,
"descriptionEN": "Manufacturer",
"descriptionES": "Fabricante",
"descriptionFR": "Fabricant",
"descriptionIT": "Fabbricante",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 12,
"internal": false,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2011-11-09T14:25:48.03Z",
"dateDeleted": "2021-11-17T11:31:25.77Z",
"dateUpdated": "2019-08-06T12:31:46.003Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": "Benutzer",
"descriptionDK": null,
"descriptionEN": "User",
"descriptionES": "Usuario",
"descriptionFR": "Utilisateur",
"descriptionIT": "Utente",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 13,
"internal": false,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2011-11-09T14:25:48.03Z",
"dateDeleted": "2021-11-17T11:31:26.063Z",
"dateUpdated": "2019-08-06T12:31:46.003Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": "Gläubiger",
"descriptionDK": null,
"descriptionEN": "Creditor",
"descriptionES": "Acreedor",
"descriptionFR": "Créancier",
"descriptionIT": "Creditore",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 14,
"internal": false,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2011-11-09T14:25:48.03Z",
"dateDeleted": "2021-11-17T11:31:26.523Z",
"dateUpdated": "2019-08-06T12:31:46.003Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": "Vertriebshändler",
"descriptionDK": null,
"descriptionEN": "Distributor",
"descriptionES": "Distribuidor",
"descriptionFR": "Distributeur",
"descriptionIT": "Distributore",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 20,
"internal": false,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2011-11-09T14:25:48.03Z",
"dateDeleted": "2021-11-17T11:31:26.79Z",
"dateUpdated": "2019-08-06T12:31:46.007Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": "Sonstige",
"descriptionDK": null,
"descriptionEN": "Other",
"descriptionES": "Otro",
"descriptionFR": "Autre",
"descriptionIT": "Altro",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 21,
"internal": false,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1
}
]https://api.forcemanager.com/api/v4/accountTypes This endpoint allows you to create a Account Type based on JSON input.
You will only be able to create a Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Type is visible |
| computeSfm | Boolean | If true, the Account Type counts for sales analytics |
| internal | Boolean | If true, the Account Type is for internal use only |
| descriptionBR | String | Account Type label in Brasilian Portuguese |
| descriptionDE | String | Account Type label in German |
| descriptionDK | String | Account Type label in Dutch |
| descriptionEN (Required) | String | Account Type label in English |
| descriptionES | String | Account Type label in Spanish |
| descriptionFR | String | Account Type label in French |
| descriptionIT | String | Account Type label in Italian |
| descriptionPT | String | Account Type label in Portuguese |
| descriptionRU | String | Account Type label in Russian |
| descriptionUS | String | Account Type label in American English |
| order | Integer | The position of the Account Type in the Account Types value list |
RESPONSE
Returns a JSON with information about the Account Type just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Account Type |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountTypes" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Partner" }'const response = await fetch("https://api.forcemanager.com/api/v4/accountTypes", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Partner\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Partner\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountTypes",
headers=headers, json=json_body
)
data = response.json(){
"id": 166,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountTypes/{ID} You will only receive the Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Type |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Type is visible |
| computeSfm | Boolean | If true, the Account Type counts for sales analytics |
| internal | Boolean | If true, the Account Type is for internal use only |
| dateCreated | String | Date and time when the Account Type was created |
| dateDeleted | String | Date and time when the Account Type was deleted |
| dateUpdated | String | Date and time when the Account Type was last updated |
| deleted | Boolean | If true, the Account Type has been deleted and archived |
| descriptionBR | String | Account Type label in Brasilian Portuguese |
| descriptionDE | String | Account Type label in German |
| descriptionDK | String | Account Type label in Dutch |
| descriptionEN | String | Account Type label in English |
| descriptionES | String | Account Type label in Spanish |
| descriptionFR | String | Account Type label in French |
| descriptionIT | String | Account Type label in Italian |
| descriptionPT | String | Account Type label in Portuguese |
| descriptionRU | String | Account Type label in Russian |
| descriptionUS | String | Account Type label in American English |
| id | Integer | Unique identifier for the Account Type in ForceManager |
| order | Integer | The position of the Account Type in the Account Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountTypes/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountTypes/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountTypes/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": null,
"computeSfm": true,
"dateCreated": "2021-12-16T00:18:11.163Z",
"dateDeleted": null,
"dateUpdated": "2021-12-16T00:19:07.27Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Partner",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 166,
"internal": false,
"order": 10,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90
}https://api.forcemanager.com/api/v4/list/accountTypes/{ID} This endpoint allows you to update a specific Account Type. If the specified Account Type does not exist, the response will be a "bad request".
You will only be able to update a Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Account Type. In order to update an Account Type, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Type is visible |
| computeSfm | Boolean | If true, the Account Type counts for sales analytics |
| internal | Boolean | If true, the Account Type is for internal use only |
| descriptionBR | String | Account Type label in Brasilian Portuguese |
| descriptionDE | String | Account Type label in German |
| descriptionDK | String | Account Type label in Dutch |
| descriptionEN | String | Account Type label in English |
| descriptionES | String | Account Type label in Spanish |
| descriptionFR | String | Account Type label in French |
| descriptionIT | String | Account Type label in Italian |
| descriptionPT | String | Account Type label in Portuguese |
| descriptionRU | String | Account Type label in Russian |
| descriptionUS | String | Account Type label in American English |
| order | Integer | The position of the Account Type in the Account Types value list |
RESPONSE
Returns a JSON with information about the Account Type just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/list/accountTypes/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "computeSfm": true, "internal": false, "order": 10 }'const response = await fetch("https://api.forcemanager.com/api/v4/list/accountTypes/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"computeSfm\": true,\n \"internal\": false,\n \"order\": 10\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"computeSfm\": true,\n \"internal\": false,\n \"order\": 10\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/list/accountTypes/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/list/accountTypes/{ID} This endpoint allows you to delete a specific Account Type from the user's ForceManager implementation database. If the specified Account Type does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Account Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Type to delete |
RESPONSE
Returns a JSON with information about the Account Type just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/list/accountTypes/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/list/accountTypes/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/list/accountTypes/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Segments
https://api.forcemanager.com/api/v4/accountSegments/schema Returns properties object with the definition of each field in the Account Segment table.
With the Account Segment you can differentiate the Account based on specific visit cycles, hence assigning a priority to each Account.
You will only receive the Account Segment Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Account Segment Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountSegments/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountSegments/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"visitCycle": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "accountSegments",
"type": "object"
}https://api.forcemanager.com/api/v4/accountSegments Returns all Account Segments available in the user's ForceManager implementation database.
You will only receive the List of Account Segments after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Account Segments available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Account Segments attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Segment is visible |
| dateCreated | String | Date and time when the Account Segment was created |
| dateDeleted | String | Date and time when the Account Segment was deleted |
| dateUpdated | String | Date and time when the Account Segment was last updated |
| deleted | Boolean | If true, the Account Segment has been deleted and archived |
| descriptionBR | String | Account Segment label in Brasilian Portuguese |
| descriptionDE | String | Account Segment label in German |
| descriptionDK | String | Account Segment label in Dutch |
| descriptionEN | String | Account Segment label in English |
| descriptionES | String | Account Segment label in Spanish |
| descriptionFR | String | Account Segment label in French |
| descriptionIT | String | Account Segment label in Italian |
| descriptionPT | String | Account Segment label in Portuguese |
| descriptionRU | String | Account Segment label in Russian |
| descriptionUS | String | Account Segment label in American English |
| visitCycle | Integer | Visit cycle linked to the value. e.g. visit every 30 days accounts in Segment A |
| id | Integer | Unique identifier for the Account Segment in ForceManager |
| order | Integer | The position of the Account Segment in the Account Segments value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Segment |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Segment |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Segment |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/accountSegments" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountSegments",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.257Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.257Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "A",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"visitCycle": 15
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.257Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.257Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "B",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"visitCycle": 30
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.257Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.257Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "C",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"visitCycle": 45
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.257Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.257Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "D",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 4,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"visitCycle": 60
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.257Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.257Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "-",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 5,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"visitCycle": null
}
]https://api.forcemanager.com/api/v4/accountSegments This endpoint allows you to create a Account Segment based on JSON input.
You will only be able to create a Account Segment after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Segment is visible |
| descriptionBR | String | Account Segment label in Brasilian Portuguese |
| descriptionDE | String | Account Segment label in German |
| descriptionDK | String | Account Segment label in Dutch |
| descriptionEN (Required) | String | Account Segment label in English |
| descriptionES | String | Account Segment label in Spanish |
| descriptionFR | String | Account Segment label in French |
| descriptionIT | String | Account Segment label in Italian |
| descriptionPT | String | Account Segment label in Portuguese |
| descriptionRU | String | Account Segment label in Russian |
| descriptionUS | String | Account Segment label in American English |
| order | Integer | The position of the Account Segment in the Account Segments value list |
| visitCycle | Integer | Visit cycle linked to the value. e.g. visit every 30 days accounts in Segment A |
RESPONSE
Returns a JSON with information about the Account Segment just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Account Segment |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountSegments" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "E", "visitCycle": 90 }'const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"E\",\n \"visitCycle\": 90\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"E\",\n \"visitCycle\": 90\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountSegments",
headers=headers, json=json_body
)
data = response.json(){
"id": 6,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountSegments/{ID} This endpoint retrieves data of a specific Account Segment based on JSON input. The API returns a single Account Segment available to the user in the Value List, according to the unique ID provided. If the specified Account Segment does not exist, the response will be a "bad request".
You will only receive the Account Segment after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Segment |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Segment is visible |
| dateCreated | String | Date and time when the Account Segment was created |
| dateDeleted | String | Date and time when the Account Segment was deleted |
| dateUpdated | String | Date and time when the Account Segment was last updated |
| deleted | Boolean | If true, the Account Segment has been deleted and archived |
| descriptionBR | String | Account Segment label in Brasilian Portuguese |
| descriptionDE | String | Account Segment label in German |
| descriptionDK | String | Account Segment label in Dutch |
| descriptionEN | String | Account Segment label in English |
| descriptionES | String | Account Segment label in Spanish |
| descriptionFR | String | Account Segment label in French |
| descriptionIT | String | Account Segment label in Italian |
| descriptionPT | String | Account Segment label in Portuguese |
| descriptionRU | String | Account Segment label in Russian |
| descriptionUS | String | Account Segment label in American English |
| visitCycle | Integer | Visit cycle linked to the value. e.g. visit every 30 days accounts in Segment A |
| id | Integer | Unique identifier for the Account Segment in ForceManager |
| order | Integer | The position of the Account Segment in the Account Segments value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Segment |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Segment |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Segment |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountSegments/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountSegments/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": null,
"dateCreated": "2021-12-16T00:31:57.723Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "E",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 6,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"visitCycle": 90
}https://api.forcemanager.com/api/v4/accountSegments/{ID} This endpoint allows you to update a specific Account Segment. If the specified Account Segment does not exist, the response will be a "bad request".
You will only be able to update an Account Segment after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Account Segment. In order to update an Account Segment, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Segment is visible |
| descriptionBR | String | Account Segment label in Brasilian Portuguese |
| descriptionDE | String | Account Segment label in German |
| descriptionDK | String | Account Segment label in Dutch |
| descriptionEN | String | Account Segment label in English |
| descriptionES | String | Account Segment label in Spanish |
| descriptionFR | String | Account Segment label in French |
| descriptionIT | String | Account Segment label in Italian |
| descriptionPT | String | Account Segment label in Portuguese |
| descriptionRU | String | Account Segment label in Russian |
| descriptionUS | String | Account Segment label in American English |
| order | Integer | The position of the Account Segment in the Account Segments value list |
| visitCycle | Integer | Visit cycle linked to the value. e.g. visit every 30 days accounts in Segment A |
RESPONSE
Returns a JSON with information about the Account Segment just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountSegments/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "visitCycle": 120 }'const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"visitCycle\": 120\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"visitCycle\": 120\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accountSegments/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accountSegments/{ID} This endpoint allows you to delete a specific Account Segment from the user's ForceManager implementation database. If the specified Account Segment does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Account Segments after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Segment to delete |
RESPONSE
Returns a JSON with information about the Account Segment just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountSegments/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountSegments/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accountSegments/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Statuses
https://api.forcemanager.com/api/v4/accountStatuses/schema Returns properties object with the definition of each field in the Account Status table.
You will only receive the Account Status Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Account Status Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountStatuses/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountStatuses/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"lost": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"won": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
}
},
"required": [],
"title": "accountStatuses",
"type": "object"
}https://api.forcemanager.com/api/v4/accountStatuses Returns all Account Statuses available in the user's ForceManager implementation database.
You will only receive the List of Account Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Account Statuses available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Account Statuses attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Status is visible |
| won | Boolean | If true, the Account Status has been won |
| lost | Boolean | If true, the Account Status has been lost |
| dateCreated | String | Date and time when the Account Status was created |
| dateDeleted | String | Date and time when the Account Status was deleted |
| dateUpdated | String | Date and time when the Account Status was last updated |
| deleted | Boolean | If true, the Account Status has been deleted and archived |
| descriptionBR | String | Account Status label in Brasilian Portuguese |
| descriptionDE | String | Account Status label in German |
| descriptionDK | String | Account Status label in Dutch |
| descriptionEN | String | Account Status label in English |
| descriptionES | String | Account Status label in Spanish |
| descriptionFR | String | Account Status label in French |
| descriptionIT | String | Account Status label in Italian |
| descriptionPT | String | Account Status label in Portuguese |
| descriptionRU | String | Account Status label in Russian |
| descriptionUS | String | Account Status label in American English |
| id | Integer | Unique identifier for the Account Status in ForceManager |
| order | Integer | The position of the Account Status in the Account Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/accountStatuses" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountStatuses",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"dateCreated": "2021-11-17T13:42:06.837Z",
"dateDeleted": "2021-11-17T13:49:30.45Z",
"dateUpdated": null,
"deleted": true,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Lead",
"descriptionES": "Lead",
"descriptionFR": null,
"descriptionIT": "Lead",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"lost": false,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": null,
"won": false
},
{
"branchVisibility": null,
"dateCreated": "2021-11-17T13:42:07.07Z",
"dateDeleted": "2021-11-17T13:49:30.687Z",
"dateUpdated": null,
"deleted": true,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Prospect",
"descriptionES": "Prospecto",
"descriptionFR": null,
"descriptionIT": "Potenziale",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"lost": false,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": null,
"won": false
},
{
"branchVisibility": null,
"dateCreated": "2021-11-17T13:42:07.58Z",
"dateDeleted": "2021-11-17T13:49:30.93Z",
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Customer",
"descriptionES": "Cliente",
"descriptionFR": null,
"descriptionIT": "Cliente",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"lost": false,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": null,
"won": true
}
]https://api.forcemanager.com/api/v4/accountStatuses This endpoint allows you to create a Account Status based on JSON input.
You will only be able to create a Account Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Status is visible |
| won | Boolean | If true, the Account Status has been won |
| lost | Boolean | If true, the Account Status has been lost |
| descriptionBR | String | Account Status label in Brasilian Portuguese |
| descriptionDE | String | Account Status label in German |
| descriptionDK | String | Account Status label in Dutch |
| descriptionEN (Required) | String | Account Status label in English |
| descriptionES | String | Account Status label in Spanish |
| descriptionFR | String | Account Status label in French |
| descriptionIT | String | Account Status label in Italian |
| descriptionPT | String | Account Status label in Portuguese |
| descriptionRU | String | Account Status label in Russian |
| descriptionUS | String | Account Status label in American English |
| order | Integer | The position of the Account Status in the Account Statuses value list |
RESPONSE
Returns a JSON with information about the Account Status just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Account Status |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountStatuses" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Ex-Customer", "lost": true, "branchVisibility": [ 16 ] }'const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Ex-Customer\",\n \"lost\": true,\n \"branchVisibility\": [\n 16\n ]\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Ex-Customer\",\n \"lost\": true,\n \"branchVisibility\": [\n 16\n ]\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountStatuses",
headers=headers, json=json_body
)
data = response.json(){
"id": 196,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountStatuses/{ID} This endpoint retrieves data of a specific Account Status based on JSON input. The API returns a single Account Status available to the user in the Value List, according to the unique ID provided. If the specified Account Status does not exist, the response will be a "bad request".
You will only receive the Account Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Status |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Account Status is visible |
| won | Boolean | If true, the Account Status has been won |
| lost | Boolean | If true, the Account Status has been lost |
| dateCreated | String | Date and time when the Account Status was created |
| dateDeleted | String | Date and time when the Account Status was deleted |
| dateUpdated | String | Date and time when the Account Status was last updated |
| deleted | Boolean | If true, the Account Status has been deleted and archived |
| descriptionBR | String | Account Status label in Brasilian Portuguese |
| descriptionDE | String | Account Status label in German |
| descriptionDK | String | Account Status label in Dutch |
| descriptionEN | String | Account Status label in English |
| descriptionES | String | Account Status label in Spanish |
| descriptionFR | String | Account Status label in French |
| descriptionIT | String | Account Status label in Italian |
| descriptionPT | String | Account Status label in Portuguese |
| descriptionRU | String | Account Status label in Russian |
| descriptionUS | String | Account Status label in American English |
| id | Integer | Unique identifier for the Account Status in ForceManager |
| order | Integer | The position of the Account Status in the Account Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Account Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Account Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Account Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountStatuses/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountStatuses/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": [
{
"id": 16,
"value": "SELLF_MIGRATION"
}
],
"dateCreated": "2021-12-16T10:01:50.917Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Ex-Customer",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 196,
"lost": true,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": false
}https://api.forcemanager.com/api/v4/accountStatuses/{ID} This endpoint allows you to update a specific Account Status. If the specified Account Status does not exist, the response will be a "bad request".
You will only be able to update a Account Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Account Status. In order to update an Account Status, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Account Status is visible |
| won | Boolean | If true, the Account Status has been won |
| lost | Boolean | If true, the Account Status has been lost |
| descriptionDE | String | Account Status label in German |
| descriptionDK | String | Account Status label in Dutch |
| descriptionEN | String | Account Status label in English |
| descriptionES | String | Account Status label in Spanish |
| descriptionFR | String | Account Status label in French |
| descriptionIT | String | Account Status label in Italian |
| descriptionPT | String | Account Status label in Portuguese |
| descriptionRU | String | Account Status label in Russian |
| descriptionUS | String | Account Status label in American English |
| order | Integer | The position of the Account Status in the Account Statuses value list |
RESPONSE
Returns a JSON with information about the Account Status just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountStatuses/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Ex-Provider", "lost": true, "won": false, "branchVisibility": [ 17 ], "order": 6 }'const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Ex-Provider\",\n \"lost\": true,\n \"won\": false,\n \"branchVisibility\": [\n 17\n ],\n \"order\": 6\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Ex-Provider\",\n \"lost\": true,\n \"won\": false,\n \"branchVisibility\": [\n 17\n ],\n \"order\": 6\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accountStatuses/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accountStatuses/{ID} This endpoint allows you to delete a specific Account Status from the user's ForceManager implementation database. If the specified Account Status does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Account Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Account Status to delete |
RESPONSE
Returns a JSON with information about the Account Status just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountStatuses/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountStatuses/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accountStatuses/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Activities
Entity
https://api.forcemanager.com/api/v4/activities/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for an Activity object.
You will only receive the Activities Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Type | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Activities Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activities/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activities/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activities/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"checkin": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"checkinTypeId": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"checkoutDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"comment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"contactId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "contacts",
"type": [
"object",
"null"
]
},
"date": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"extId": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"geocoded": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"geocodingAccuracy": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"latitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"longitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"opportunityId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "opportunities",
"type": [
"object",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"typeId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "activityTypes",
"type": [
"object",
"null"
]
}
},
"required": [
"accountId",
"date",
"typeId",
"salesRepId"
],
"title": "activities",
"type": "object"
}https://api.forcemanager.com/api/v4/activities Returns all Activities available in the user's ForceManager implementation database.
You will only receive the List of Activities after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/activities?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/activities?where= param1=value AND/OR param2=value2
You can filter Activities by dateCreated or typeId, or accountId for example.
You can also organise and view the results for Activities in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/activities?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/activities?lang=VALUE
RESPONSE
This endpoint returns information about all Activities available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Activities attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId (Required) | Object, Null | ID of the Account to which the Activity is linked to (see Accounts resource) |
| contactId | Object, Null | Contact the Activity is linked to (see Contacts resource) |
| opportunityId | Object, Null | Opportunity to which the Activity is linked to (see Opportunities resource) |
| typeId (Required) | Object, Null | Activity Type ID (see Types resource) |
| salesRepId | Object, Null | Unique identifier of the User associated to the Activity (see Users resource) |
| checkin | Boolean | True in the case the Activity had been certified to done within the geofencing range, false otherwise |
| checkinTypeId | Integer | It exists three different types of checkin: 1 (check-in at an Account's location); 2 (check-in at an open Opportunity); 3 (fast check-in when a User reports a physical visit without having to link them to any existing Account or Opportunity in ForceManager) |
| checkoutDate | String | Date and time for the check-out. Registers the end of a visit to a client |
| comment | String | A comment of the Activity |
| date (Required) | String | Date referred to the moment in which the Activity took place |
| geocoded | Boolean | If true, the Activity has been geolocated and a geocode is automatically calculated by the system (latitude and longitude) |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| permissionLevel | String | Defines the visibility of the Activity. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Activity cannot be modified or deleted |
| extId | String | External ID of the Activity from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier for the Activity in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Activity |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Activity |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Activity |
| dateCreated | String | Date and time when the Activity was created |
| dateDeleted | String | Date and time when the Activity was deleted |
| dateUpdated | String | Date and time when the Activity was last updated |
| deleted | boolean | If true, the Activity has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/activities" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/activities", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activities",
headers=headers
)
data = response.json()[
{
"accountId": {
"id": 1241,
"value": "Acme Inc."
},
"checkin": false,
"checkinTypeId": 1,
"checkoutDate": null,
"comment": "",
"contactId": null,
"date": "2016-02-29T17:00:04Z",
"dateCreated": "2016-02-29T16:22:34.4Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"extId": null,
"geocoded": true,
"geocodingAccuracy": 26,
"id": 845,
"latitude": 41.3914952,
"longitude": 2.1293456,
"opportunityId": {
"id": 847,
"value": "Opportunity 32"
},
"permissionLevel": 2,
"readOnly": false,
"salesRepId": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"typeId": {
"id": 6418,
"value": "Visit"
}
},
{
"accountId": {
"id": 1241,
"value": "Acme Inc."
},
"checkin": false,
"checkinTypeId": 1,
"checkoutDate": null,
"comment": "",
"contactId": null,
"date": "2016-02-29T17:28:50Z",
"dateCreated": "2016-02-29T17:30:10.923Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"extId": null,
"geocoded": true,
"geocodingAccuracy": 10,
"id": 847,
"latitude": 41.3914359,
"longitude": 2.1293349,
"opportunityId": {
"id": 846,
"value": "Opportunity 2015-2016"
},
"permissionLevel": 2,
"readOnly": false,
"salesRepId": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"typeId": {
"id": 6419,
"value": "Meeting"
}
}
]https://api.forcemanager.com/api/v4/activities This endpoint allows you to create an Activity based on JSON input.
You will only be able to create an Activity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| accountId (Required) | Integer | ID of the Account to which the Activity is linked to (see Accounts resource) |
| contactId | Integer | Contact the Activity is linked to (see Contacts resource) |
| opportunityId | Integer | Opportunity to which the Activity is linked to (see Opportunities resource) |
| typeId (Required) | Integer | Activity Type ID (see Types resource) |
| salesRepId (Required) | Integer | Unique identifier of the User associated to the Activity (see Users resource) |
| checkin | Boolean | True in the case the Activity had been certified to done within the geofencing range, false otherwise |
| checkinTypeId | Integer | It exists three different types of checkin: 1 (check-in at an Account's location); 2 (check-in at an open Opportunity); 3 (fast check-in when a User reports a physical visit without having to link them to any existing Account or Opportunity in ForceManager) |
| checkoutDate | String | Date and time for the check-out. Registers the end of a visit to a client |
| comment | String | A comment of the Activity |
| date (Required) | String | Date referred to the moment in which the Activity took place |
| geocoded | Boolean | If true, the Activity has been geolocated and a geocode is automatically calculated by the system (latitude and longitude) |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| permissionLevel | String | Defines the visibility of the Activity. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Activity cannot be modified or deleted |
| extId | String | External ID of the Activity from a third party system (ERP, CRM, Accounting System) |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Activity |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activities" \
-X POST \
-H "Accept: */*" \
-d '{ "accountId": 1183, "date": "2018-06-19 10:42:12", "checkin": false, "checkinTypeId": 1, "comment": "Electronic signatures is a very useful tool for the customer", "opportunityId": 1, "permissionLevel": 1, "salesRepId": 2101, "typeId": 6421 }'const response = await fetch("https://api.forcemanager.com/api/v4/activities", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountId\": 1183,\n \"date\": \"2018-06-19 10:42:12\",\n \"checkin\": false,\n \"checkinTypeId\": 1,\n \"comment\": \"Electronic signatures is a very useful tool for the customer\",\n \"opportunityId\": 1,\n \"permissionLevel\": 1,\n \"salesRepId\": 2101,\n \"typeId\": 6421\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountId\": 1183,\n \"date\": \"2018-06-19 10:42:12\",\n \"checkin\": false,\n \"checkinTypeId\": 1,\n \"comment\": \"Electronic signatures is a very useful tool for the customer\",\n \"opportunityId\": 1,\n \"permissionLevel\": 1,\n \"salesRepId\": 2101,\n \"typeId\": 6421\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/activities",
headers=headers, json=json_body
)
data = response.json(){
"id": 1120,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/activities/{ID} This endpoint retrieves data of a specific Activity based on JSON input. The API returns a single Activity available to the user, according to the unique ID provided. If the specified Activity does not exist, the response will be a "bad request".
You will only receive the Activity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Activity |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountId (Required) | Object, Null | ID of the Account to which the Activity is linked to (see Accounts resource) |
| contactId | Object, Null | Contact the Activity is linked to (see Contacts resource) |
| opportunityId | Object, Null | Opportunity to which the Activity is linked to (see Opportunities resource) |
| typeId (Required) | Object, Null | Activity Type ID (see Types resource) |
| salesRepId | Object, Null | Unique identifier of the User associated to the Activity (see Users resource) |
| checkin | Boolean | True in the case the Activity had been certified to done within the geofencing range, false otherwise |
| checkinTypeId | Integer | It exists three different types of checkin: 1 (check-in at an Account's location); 2 (check-in at an open Opportunity); 3 (fast check-in when a User reports a physical visit without having to link them to any existing Account or Opportunity in ForceManager) |
| checkoutDate | String | Date and time for the check-out. Registers the end of a visit to a client |
| comment | String | A comment of the Activity |
| date (Required) | String | Date referred to the moment in which the Activity took place |
| geocoded | Boolean | If true, the Activity has been geolocated and a geocode is automatically calculated by the system (latitude and longitude) |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| permissionLevel | String | Defines the visibility of the Activity. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Activity cannot be modified or deleted |
| extId | String | External ID of the Activity from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier for the Activity in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Activity |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Activity |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Activity |
| dateCreated | String | Date and time when the Activity was created |
| dateDeleted | String | Date and time when the Activity was deleted |
| dateUpdated | String | Date and time when the Activity was last updated |
| deleted | boolean | If true, the Activity has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [Optional] |
| ExtraFieldDescription | Number (e.g. 10) [Optional] |
curl "https://api.forcemanager.com/api/v4/activities/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [Optional]" \
-H "ExtraFieldDescription: Number (e.g. 10) [Optional]"const response = await fetch("https://api.forcemanager.com/api/v4/activities/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [Optional]",
"ExtraFieldDescription": "Number (e.g. 10) [Optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [Optional]",
"ExtraFieldDescription": "Number (e.g. 10) [Optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activities/{ID}",
headers=headers
)
data = response.json(){
"accountId": {
"id": 1186,
"value": "Polaroid"
},
"checkin": false,
"checkinTypeId": 1,
"checkoutDate": null,
"comment": "Take samples",
"contactId": {
"id": 1056,
"value": "Roger Chase"
},
"date": "2015-07-09T10:59:00Z",
"dateCreated": "2015-07-09T11:00:06.137Z",
"dateDeleted": null,
"dateUpdated": "2018-06-12T09:20:40.96Z",
"deleted": false,
"extId": null,
"geocoded": true,
"geocodingAccuracy": 1,
"id": 799,
"latitude": 41.3910821,
"longitude": 2.1291351,
"opportunityId": {
"id": 823,
"value": "Opportunity 2015-7"
},
"permissionLevel": 2,
"readOnly": false,
"salesRepId": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 51,
"typeId": {
"id": 6417,
"value": "Video call"
}
}https://api.forcemanager.com/api/v4/activities/{ID} This endpoint allows you to update a specific Activity. If the specified Activity does not exist, the response will be a "bad request".
You will only be able to update a Activity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Activity. In order to update an Activity, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | ID of the Account to which the Activity is linked to (see Accounts resource) |
| contactId | Integer | Contact the Activity is linked to (see Contacts resource) |
| opportunityId | Integer | Opportunity to which the Activity is linked to (see Opportunities resource) |
| typeId | Integer | Activity Type ID (see Types resource) |
| salesRepId | Integer | Unique identifier of the User associated to the Activity (see Users resource) |
| checkin | Boolean | True in the case the Activity had been certified to done within the geofencing range, false otherwise |
| checkinTypeId | Integer | It exists three different types of checkin: 1 (check-in at an Account's location); 2 (check-in at an open Opportunity); 3 (fast check-in when a User reports a physical visit without having to link them to any existing Account or Opportunity in ForceManager) |
| checkoutDate | String | Date and time for the check-out. Registers the end of a visit to a client |
| comment | String | A comment of the Activity |
| date | String | Date referred to the moment in which the Activity took place |
| geocoded | Boolean | If true, the Activity has been geolocated and a geocode is automatically calculated by the system (latitude and longitude) |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| permissionLevel | String | Defines the visibility of the Activity. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Activity cannot be modified or deleted |
| extId | String | External ID of the Activity from a third party system (ERP, CRM, Accounting System) |
RESPONSE
Returns a JSON with information about the Activity just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activities/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "comment": "Take samples", "geocoded": true, "geocodingAccuracy": 1, "latitude": 41.3910821, "longitude": 2.1291351 }'const response = await fetch("https://api.forcemanager.com/api/v4/activities/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"comment\": \"Take samples\",\n \"geocoded\": true,\n \"geocodingAccuracy\": 1,\n \"latitude\": 41.3910821,\n \"longitude\": 2.1291351\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"comment\": \"Take samples\",\n \"geocoded\": true,\n \"geocodingAccuracy\": 1,\n \"latitude\": 41.3910821,\n \"longitude\": 2.1291351\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/activities/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/activities/{ID} This endpoint allows you to delete a specific Activity from the user's ForceManager implementation database. If the specified Activity does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Activities after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Activity to delete |
RESPONSE
Returns a JSON with information about the Activity just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activities/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activities/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/activities/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Types
https://api.forcemanager.com/api/v4/activityTypes/schema Returns properties object with the definition of each field in the Activity Type table.
With the Activity Type you can differentiate the Type of Activity with which professional relationships are stablished.
You will only receive the Activity Type Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Activity Type Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activityTypes/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activityTypes/schema",
headers=headers
)
data = response.json(){
"properties": {
"automatic": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"checkin": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"fastCheckin": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"general": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"hide": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"phoneCall": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"system": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"videoCall": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"visibleInActivities": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"visibleInAgendaActivities": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"visit": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"workflow": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
}
},
"required": [],
"title": "activityTypes",
"type": "object"
}https://api.forcemanager.com/api/v4/activityTypes Returns all Activity Types available in the user's ForceManager implementation database.
You will only receive the List of Activity Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/activityTypes?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/activityTypes?where= param1=value AND/OR param2=value2
You can also organise and view the results for Activity Types in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/activityTypes?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/activityTypes?lang=VALUE
RESPONSE
This endpoint returns information about all Activity Types available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Activity Types attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array, Null | In which Branches the Activity Type is visible |
| descriptionBR | String | Activity Type name in Brasilian Portuguese |
| descriptionDE | String | Activity Type name in German |
| descriptionDK | String | Activity Type name in Dutch |
| descriptionEN | String | Activity Type name in English |
| descriptionES | String | Activity Type name in Spanish |
| descriptionFR | String | Activity Type name in French |
| descriptionIT | String | Activity Type name in Italian |
| descriptionPT | String | Activity Type name in Portuguese |
| descriptionRU | String | Activity Type name in Russian |
| descriptionUS | String | Activity Type name in American English |
| general | Boolean | If true, this Activity Type will appear when adding a normal Activity |
| checkin | Boolean | If true, this Activity Type will appear when doing a check-in |
| fastCheckin | Boolean | If true, this Activity Type will appear when doing a fast check-in |
| phoneCall | Boolean | If true, the Activity Type is a phone call |
| visit | Boolean | If true, the Activity Type is a visit |
| videoCall | Boolean | If true, the Activity Type is a video call |
| visibleInActivities | Boolean | If true, the Activity Type is visible in the activity feed |
| visibleInAgendaActivities | Boolean | If true, the Activity Type is visible in the calendar |
| workflow | Boolean | If true, the Activity Type is visible in workflows |
| id | Integer | Unique identifier for the Activity Type in ForceManager |
| order | Integer | The position in what you want the Activity Type to appear in the list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Activity Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Activity Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Activity Type |
| dateCreated | String | Date and time when the Activity Type was created |
| dateDeleted | String | Date and time when the Activity Type was deleted |
| dateUpdated | String | Date and time when the Activity Type was last updated |
| deleted | Boolean | If true, the branch has been deleted and archived |
| system (Deprecated) | Boolean | |
| automatic (Deprecated) | Boolean |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/activityTypes" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activityTypes",
headers=headers
)
data = response.json()[
{
"automatic": false,
"branchVisibility": null,
"checkin": false,
"dateCreated": "2012-01-27T12:22:54.23Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.23Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Telefonanruf",
"descriptionDK": null,
"descriptionEN": "Phone call",
"descriptionES": "Llamada Telefónica",
"descriptionFR": "Appel téléphonique",
"descriptionIT": "Telefonata",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"fastCheckin": false,
"general": true,
"hide": false,
"id": 1,
"order": null,
"phoneCall": true,
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"system": true,
"videoCall": false,
"visibleInActivities": true,
"visibleInAgendaActivities": true,
"visit": false,
"workflow": false
},
{
"automatic": false,
"branchVisibility": null,
"checkin": true,
"dateCreated": "2012-01-27T12:22:54.23Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.23Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Besuch",
"descriptionDK": null,
"descriptionEN": "Visit",
"descriptionES": "Visita",
"descriptionFR": "Visite",
"descriptionIT": "Visita",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"fastCheckin": false,
"general": true,
"hide": false,
"id": 4,
"order": null,
"phoneCall": false,
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"system": false,
"videoCall": false,
"visibleInActivities": true,
"visibleInAgendaActivities": true,
"visit": true,
"workflow": false
},
{
"automatic": false,
"branchVisibility": null,
"checkin": false,
"dateCreated": "2012-01-27T12:22:54.23Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.23Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Besprechung",
"descriptionDK": null,
"descriptionEN": "Meeting",
"descriptionES": "Reunión",
"descriptionFR": "Réunion",
"descriptionIT": "Riunione",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"fastCheckin": false,
"general": true,
"hide": false,
"id": 5,
"order": null,
"phoneCall": false,
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"system": false,
"videoCall": false,
"visibleInActivities": true,
"visibleInAgendaActivities": true,
"visit": false,
"workflow": false
},
{
"automatic": false,
"branchVisibility": null,
"checkin": false,
"dateCreated": "2012-01-27T12:22:54.23Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.23Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Kommentar",
"descriptionDK": null,
"descriptionEN": "Comment",
"descriptionES": "Comentario",
"descriptionFR": "Commentaire",
"descriptionIT": "Commento",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"fastCheckin": false,
"general": true,
"hide": false,
"id": 8,
"order": null,
"phoneCall": false,
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"system": false,
"videoCall": false,
"visibleInActivities": true,
"visibleInAgendaActivities": true,
"visit": false,
"workflow": false
}
]https://api.forcemanager.com/api/v4/activityTypes This endpoint allows you to create an Activity Type based on JSON input.
You will only be able to create an Activity Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branches the Activity Type is visible |
| descriptionBR | String | Activity Type name in Brasilian Portuguese |
| descriptionDE | String | Activity Type name in German |
| descriptionDK | String | Activity Type name in Dutch |
| descriptionEN (Required) | String | Activity Type name in English |
| descriptionES | String | Activity Type name in Spanish |
| descriptionFR | String | Activity Type name in French |
| descriptionIT | String | Activity Type name in Italian |
| descriptionPT | String | Activity Type name in Portuguese |
| descriptionRU | String | Activity Type name in Russian |
| descriptionUS | String | Activity Type name in American English |
| general | Boolean | If true, this Activity Type will appear when adding a normal Activity |
| checkin | Boolean | If true, this Activity Type will appear when doing a check-in |
| fastCheckin | Boolean | If true, this Activity Type will appear when doing a fast check-in |
| phoneCall | Boolean | If true, the Activity Type is a phone call |
| visit | Boolean | If true, the Activity Type is a visit |
| videoCall | Boolean | If true, the Activity Type is a video call |
| visibleInActivities | Boolean | If true, the Activity Type is visible in the activity feed |
| visibleInAgendaActivities | Boolean | If true, the Activity Type is visible in the calendar |
| workflow | Boolean | If true, the Activity Type is visible in workflows |
| order | Integer | The position in what you want the Activity Type to appear in the list |
RESPONSE
Returns a JSON with information about the Activity Type just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Activity Type |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activityTypes" \
-X POST \
-H "Accept: */*" \
-d '{ "branchVisibility": [ 16, 17 ], "checkin": false, "descriptionEN": "Phone call", "descriptionES": "Llamada Telefónica", "fastCheckin": false, "general": true, "order": null, "phoneCall": true, "visit": false, "videocall": true }'const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"branchVisibility\": [\n 16,\n 17\n ],\n \"checkin\": false,\n \"descriptionEN\": \"Phone call\",\n \"descriptionES\": \"Llamada Telefónica\",\n \"fastCheckin\": false,\n \"general\": true,\n \"order\": null,\n \"phoneCall\": true,\n \"visit\": false,\n \"videocall\": true\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"branchVisibility\": [\n 16,\n 17\n ],\n \"checkin\": false,\n \"descriptionEN\": \"Phone call\",\n \"descriptionES\": \"Llamada Telefónica\",\n \"fastCheckin\": false,\n \"general\": true,\n \"order\": null,\n \"phoneCall\": true,\n \"visit\": false,\n \"videocall\": true\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/activityTypes",
headers=headers, json=json_body
)
data = response.json(){
"id": 9,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/activityTypes/{ID} This endpoint retrieves data of a specific Activity Type based on JSON input. The API returns a single Type available to the user in the Value List, according to the unique ID provided. If the specified Activity Type does not exist, the response will be a "bad request".
You will only receive the Activity Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Activity Type |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array, Null | In which Branches the Activity Type is visible |
| descriptionBR | String | Activity Type name in Brasilian Portuguese |
| descriptionDE | String | Activity Type name in German |
| descriptionDK | String | Activity Type name in Dutch |
| descriptionEN | String | Activity Type name in English |
| descriptionES | String | Activity Type name in Spanish |
| descriptionFR | String | Activity Type name in French |
| descriptionIT | String | Activity Type name in Italian |
| descriptionPT | String | Activity Type name in Portuguese |
| descriptionRU | String | Activity Type name in Russian |
| descriptionUS | String | Activity Type name in American English |
| general | Boolean | If true, this Activity Type will appear when adding a normal Activity |
| checkin | Boolean | If true, this Activity Type will appear when doing a check-in |
| fastCheckin | Boolean | If true, this Activity Type will appear when doing a fast check-in |
| phoneCall | Boolean | If true, the Activity Type is a phone call |
| visit | Boolean | If true, the Activity Type is a visit |
| videoCall | Boolean | If true, the Activity Type is a video call |
| visibleInActivities | Boolean | If true, the Activity Type is visible in the activity feed |
| visibleInAgendaActivities | Boolean | If true, the Activity Type is visible in the calendar |
| workflow | Boolean | If true, the Activity Type is visible in workflows |
| id | Integer | Unique identifier for the Activity Type in ForceManager |
| order | Integer | The position in what you want the Activity Type to appear in the list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Activity Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Activity Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Activity Type |
| dateCreated | String | Date and time when the Activity Type was created |
| dateDeleted | String | Date and time when the Activity Type was deleted |
| dateUpdated | String | Date and time when the Activity Type was last updated |
| deleted | Boolean | If true, the branch has been deleted and archived |
| system (Deprecated) | Boolean | |
| automatic (Deprecated) | Boolean |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activityTypes/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activityTypes/{ID}",
headers=headers
)
data = response.json(){
"automatic": false,
"branchVisibility": [
{
"id": 16,
"value": "Sales"
},
{
"id": 17,
"value": "Support"
}
],
"checkin": false,
"dateCreated": "2021-12-15T22:11:57.95Z",
"dateDeleted": null,
"dateUpdated": "2021-12-15T22:15:46.503Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Phone call",
"descriptionES": "Llamada Telefónica",
"descriptionFR": "appel téléphonique",
"descriptionIT": "telefonata",
"descriptionPT": "chamada telefonica",
"descriptionRU": null,
"descriptionUS": null,
"fastCheckin": false,
"general": true,
"hide": false,
"id": 9,
"order": null,
"phoneCall": true,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"system": false,
"videoCall": true,
"visibleInActivities": true,
"visibleInAgendaActivities": true,
"visit": false,
"workflow": false
}https://api.forcemanager.com/api/v4/activityTypes/{ID} This endpoint allows you to update a specific Activity Type. If the specified Type does not exist, the response will be a "bad request".
You will only be able to update a Activity Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Activity Type. In order to update a Type, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branches the Activity Type is visible |
| descriptionBR | String | Activity Type name in Brasilian Portuguese |
| descriptionDE | String | Activity Type name in German |
| descriptionDK | String | Activity Type name in Dutch |
| descriptionEN | String | Activity Type name in English |
| descriptionES | String | Activity Type name in Spanish |
| descriptionFR | String | Activity Type name in French |
| descriptionIT | String | Activity Type name in Italian |
| descriptionPT | String | Activity Type name in Portuguese |
| descriptionRU | String | Activity Type name in Russian |
| descriptionUS | String | Activity Type name in American English |
| general | Boolean | If true, this Activity Type will appear when adding a normal Activity |
| checkin | Boolean | If true, this Activity Type will appear when doing a check-in |
| fastCheckin | Boolean | If true, this Activity Type will appear when doing a fast check-in |
| phoneCall | Boolean | If true, the Activity Type is a phone call |
| visit | Boolean | If true, the Activity Type is a visit |
| videoCall | Boolean | If true, the Activity Type is a video call |
| visibleInActivities | Boolean | If true, the Activity Type is visible in the activity feed |
| visibleInAgendaActivities | Boolean | If true, the Activity Type is visible in the calendar |
| workflow | Boolean | If true, the Activity Type is visible in workflows |
| order | Integer | The position in what you want the Activity Type to appear in the list |
RESPONSE
Returns a JSON with information about the Activity Type just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activityTypes/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionFR": "appel téléphonique", "descriptionIT": "telefonata", "descriptionPT": "chamada telefonica" }'const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionFR\": \"appel téléphonique\",\n \"descriptionIT\": \"telefonata\",\n \"descriptionPT\": \"chamada telefonica\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionFR\": \"appel téléphonique\",\n \"descriptionIT\": \"telefonata\",\n \"descriptionPT\": \"chamada telefonica\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/activityTypes/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/activityTypes/{ID} This endpoint allows you to delete a specific Activity Type from the user's ForceManager implementation database. If the specified Activity Type does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Activity Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Activity Type to delete |
RESPONSE
Returns a JSON with information about the Activity Type just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activityTypes/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activityTypes/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/activityTypes/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Points
https://api.forcemanager.com/api/v4/activity/points Returns all Activity Points available in the user's ForceManager implementation database.
You will only receive the List of Activity Points after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
This endpoint returns all Activity Points that can be set, that are:
| Attribute | Type | Description |
|---|---|---|
| IntervalDays | Integer | Days before today that will be used to calculate the Scores |
| PointsPerActivity | Integer | Points that the user will receive when performing an Activity that is not of "Visit" Type |
| PointsPerCheckin | Integer | Points that the user will receive when performing a "Checkin" |
| PointsPerEmail | Integer | Points that the user will receive for each received/sent "Email" |
| PointsPerInternalEmail | Integer | Points the user will receive for each "Email" they receive/send internal |
| PointsPerInternalPhoneCallMinute | Integer | Points the user will receive depending on the duration of their internal "Calls" |
| PointsPerOpportunity | Integer | Points the user will receive for each Opportunity won |
| PointsPerPhoneCallMinute | Integer | Points the user will receive depending on the duration of their "Calls" |
| PointsPerSalesOrder | Integer | Points that the user will receive for each Order won |
| PointsPerVisit | Integer | Points that the user will receive when performing an Activity of "Visit" Type |
| SalesInput | Integer | The sales will be calculated: 0 -> with customized Z_viewsalesuser. If 1 -> With won Opportunities. If 2 -> With won Quotes. If 3 -> With won sales Orders |
| ScoringPerEnvironment | Integer | 0 -> the scores will be relative to the all implementation. If different than 0 the scores will be relative to the Branch |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activity/points" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/activity/points", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/activity/points",
headers=headers
)
data = response.json(){
"IntervalDays": 0,
"PointsPerActivity": 60,
"PointsPerCheckin": 60,
"PointsPerEmail": 60,
"PointsPerFastCheckin": 60,
"PointsPerInternalEmail": 60,
"PointsPerInternalPhoneCallMinute": 432,
"PointsPerOpportunity": 60,
"PointsPerPhoneCallMinute": 450,
"PointsPerQuote": 60,
"PointsPerSalesOrder": 20,
"PointsPerVisit": 60,
"SalesInput": 0,
"ScoringPerEnvironment": 0
}https://api.forcemanager.com/api/v4/activity/points This endpoint allows you to update one or more Activity Points.
You will only be able to update an Activity Point after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of an Activity Point. In order to update a Point, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| IntervalDays | Integer | Days before today that will be used to calculate the Scores |
| PointsPerActivity | Integer | Points that the user will receive when performing an Activity that is not of "Visit" Type |
| PointsPerCheckin | Integer | Points that the user will receive when performing a "Checkin" |
| PointsPerEmail | Integer | Points that the user will receive for each received/sent "Email" |
| PointsPerInternalEmail | Integer | Points the user will receive for each "Email" they receive/send internal |
| PointsPerInternalPhoneCallMinute | Integer | Points the user will receive depending on the duration of their internal "Calls" |
| PointsPerOpportunity | Integer | Points the user will receive for each Opportunity won |
| PointsPerPhoneCallMinute | Integer | Points the user will receive depending on the duration of their "Calls" |
| PointsPerSalesOrder | Integer | Points that the user will receive for each Order won |
| PointsPerVisit | Integer | Points that the user will receive when performing an Activity of "Visit" Type |
| SalesInput | Integer | The sales will be calculated: 0 -> with customized Z_viewsalesuser. If 1 -> With won Opportunities. If 2 -> With won Quotes. If 3 -> With won sales Orders |
| ScoringPerEnvironment | Integer | 0 -> the scores will be relative to the all implementation. If different than 0 the scores will be relative to the Branch |
RESPONSE
Returns a JSON with information about the Activity Point just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/activity/points" \
-X PUT \
-H "Accept: */*" \
-d '{ "IntervalDays": 0, "PointsPerActivity": 60, "PointsPerCheckin": 60, "PointsPerEmail": 60, "PointsPerFastCheckin": 60, "PointsPerInternalEmail": 60, "PointsPerInternalPhoneCallMinute": 432, "PointsPerOpportunity": 60, "PointsPerPhoneCallMinute": 450, "PointsPerQuote": 60, "PointsPerSalesOrder": 20, "PointsPerVisit": 60, "SalesInput": 0, "ScoringPerEnvironment": 0 }'const response = await fetch("https://api.forcemanager.com/api/v4/activity/points", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"IntervalDays\": 0,\n \"PointsPerActivity\": 60,\n \"PointsPerCheckin\": 60,\n \"PointsPerEmail\": 60,\n \"PointsPerFastCheckin\": 60,\n \"PointsPerInternalEmail\": 60,\n \"PointsPerInternalPhoneCallMinute\": 432,\n \"PointsPerOpportunity\": 60,\n \"PointsPerPhoneCallMinute\": 450,\n \"PointsPerQuote\": 60,\n \"PointsPerSalesOrder\": 20,\n \"PointsPerVisit\": 60,\n \"SalesInput\": 0,\n \"ScoringPerEnvironment\": 0\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"IntervalDays\": 0,\n \"PointsPerActivity\": 60,\n \"PointsPerCheckin\": 60,\n \"PointsPerEmail\": 60,\n \"PointsPerFastCheckin\": 60,\n \"PointsPerInternalEmail\": 60,\n \"PointsPerInternalPhoneCallMinute\": 432,\n \"PointsPerOpportunity\": 60,\n \"PointsPerPhoneCallMinute\": 450,\n \"PointsPerQuote\": 60,\n \"PointsPerSalesOrder\": 20,\n \"PointsPerVisit\": 60,\n \"SalesInput\": 0,\n \"ScoringPerEnvironment\": 0\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/activity/points",
headers=headers, json=json_body
)
data = response.json(){
"IntervalDays": 0,
"PointsPerActivity": 60,
"PointsPerCheckin": 60,
"PointsPerEmail": 60,
"PointsPerInternalEmail": 60,
"PointsPerInternalPhoneCallMinute": 432,
"PointsPerOpportunity": 60,
"PointsPerPhoneCallMinute": 450,
"PointsPerQuote": 60,
"PointsPerVisit": 60,
"SalesInput": 0,
"ScoringPerEnvironment": 0
}Authentication
https://api.forcemanager.com/api/v4/login Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/login" \
-X POST \
-H "Accept: */*" \
-d '{ "username": "YOUR_PUBLIC_KEY", "password": "YOUR_PRIVATE_KEY" }'const response = await fetch("https://api.forcemanager.com/api/v4/login", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"username\": \"YOUR_PUBLIC_KEY\",\n \"password\": \"YOUR_PRIVATE_KEY\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"username\": \"YOUR_PUBLIC_KEY\",\n \"password\": \"YOUR_PRIVATE_KEY\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/login",
headers=headers, json=json_body
)
data = response.json(){
"token": "MTUyODcxMTk1MXxRd3dBUUhzaVNXMXdiR1Z0Wlc1MFlYUnBiMjVKWkNJNklqRXdOak1jkaVZYTmxja2xrSWpvaU5URWlMQ0pVYVcxbFNXNXBkQ0k2TVRVeU9EY3hNVGsxTVgwPXyYpNYcZ6zQTU5q5wkh3b5KLYFmKi_rqIswzH6H9zwm1w=="
}Branches
https://api.forcemanager.com/api/v4/branches/schema Returns properties object with the definition of each field in the Branches table.
You will only receive the Branches Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Branches Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/branches/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/branches/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/branches/schema",
headers=headers
)
data = response.json(){
"properties": {
"currencyId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "currencies",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"default": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"imperialSystem": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"mainEnvironment": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"timeZoneId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "tblTimeZones",
"type": [
"object",
"null"
]
}
},
"required": [
"currencyId",
"timeZoneId"
],
"title": "branches",
"type": "object"
}https://api.forcemanager.com/api/v4/branches Returns all Branches. You will only receive the Branches after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Branches available for the value list.
List of the supported Branches attributes:
| Attribute | Type | Description |
|---|---|---|
| currencyId | Object, Null | ID of the Currency (see Currencies resource) associated to the Branch |
| dateCreated | String | Date and time when the Branch was created |
| dateDeleted | String | Date and time when the Branch was deleted |
| dateUpdated | String | Date and time when the Branch was last updated |
| default | Boolean | If true, the Branch is the one assigned by default, this is valid for any kind of implementations |
| deleted | Boolean | If true, the Branch has been deleted and archived |
| descriptionBR | String | Branch name in Brasilian Portuguese |
| descriptionDE | String | Branch name in German |
| descriptionDK | String | Branch name in Dutch |
| descriptionEN | String | Branch name in English |
| descriptionES | String | Branch name in Spanish |
| descriptionFR | String | Branch name in French |
| descriptionIT | String | Branch name in Italian |
| descriptionPT | String | Branch name in Portuguese |
| descriptionRU | String | Branch name in Russian |
| descriptionUS | String | Branch name in American English |
| extId | String | External unique identifier for the Branch |
| id | Integer | Unique identifier for the Branch in ForceManager |
| imperialSystem | Boolean | If true, the Branch adopt the imperial system measurement (i.e. miles instead of km) |
| mainEnvironment | Boolean | If true, the Branch is the main one, for long tail implementations |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Branch |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Branch |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Branch |
| timeZoneId | Object | The id and the friendly name of the Branch timezone |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/branches" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/branches", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/branches",
headers=headers
)
data = response.json()[
{
"currencyId": null,
"dateCreated": "2009-06-09T19:51:11Z",
"dateDeleted": null,
"dateUpdated": "2021-11-30T18:09:26.95Z",
"default": false,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Main Environment",
"descriptionES": "Main Environment",
"descriptionFR": null,
"descriptionIT": "Main Environment",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"extId": "",
"id": 16,
"imperialSystem": false,
"mainEnvironment": false,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"timeZoneId": {
"id": 31,
"value": "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"
}
}
]https://api.forcemanager.com/api/v4/branches/{ID} This endpoint retrieves data of a specific Branch based on JSON input. The API returns a single Branch available to the user in the Value List, according to the unique ID provided. If the specified Branch does not exist, the response will be a "bad request".
You will only receive the Branch after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Branch to retrieve data |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| currencyId | Object, Null | ID of the Currency (see Currencies resource) associated to the Branch |
| dateCreated | String | Date and time when the Branch was created |
| dateDeleted | String | Date and time when the Branch was deleted |
| dateUpdated | String | Date and time when the Branch was last updated |
| default | Boolean | If true, the Branch is the one assigned by default, this is valid for any kind of implementations |
| deleted | Boolean | If true, the Branch has been deleted and archived |
| descriptionBR | String | Branch name in Brasilian Portuguese |
| descriptionDE | String | Branch name in German |
| descriptionDK | String | Branch name in Dutch |
| descriptionEN | String | Branch name in English |
| descriptionES | String | Branch name in Spanish |
| descriptionFR | String | Branch name in French |
| descriptionIT | String | Branch name in Italian |
| descriptionPT | String | Branch name in Portuguese |
| descriptionRU | String | Branch name in Russian |
| descriptionUS | String | Branch name in American English |
| extId | String | External unique identifier for the Branch |
| id | Integer | Unique identifier for the Branch in ForceManager |
| imperialSystem | Boolean | If true, the Branch adopt the imperial system measurement (i.e. miles instead of km) |
| mainEnvironment | Boolean | If true, the Branch is the main one, for long tail implementations |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Branch |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Branch |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Branch |
| timeZoneId | Object | The id and the friendly name of the Branch timezone |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/branches/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/branches/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/branches/{ID}",
headers=headers
)
data = response.json(){
"currencyId": null,
"dateCreated": "2009-06-09T19:51:11Z",
"dateDeleted": null,
"dateUpdated": "2021-11-30T18:09:26.95Z",
"default": false,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Main Environment",
"descriptionES": "Main Environment",
"descriptionFR": null,
"descriptionIT": "Main Environment",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"extId": "",
"id": 16,
"imperialSystem": false,
"mainEnvironment": false,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"timeZoneId": {
"id": 31,
"value": "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"
}
}https://api.forcemanager.com/api/v4/branches/{ID} This endpoint allows you to delete a specific Branch from the Value List. If the specified Branch does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Branch after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Branch to delete |
RESPONSE
Returns a JSON with information about the Branch just deleted.
| Attribute | Type | Description |
|---|---|---|
| message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/branches/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/branches/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/branches/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Bulks
https://api.forcemanager.com/api/v4/VALUE/bulk This endpoint allows you to create multiple Resources (200 entities for request) based on JSON input.
You will only be able to create multiple Resources after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
You have to send a Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| data | Object | JSONObject with the Resource data (same data as Create Resource method) |
You can check the "data" object in the specific documentation section of each resource (e.g. Accounts, Contacts, Opportunities, Orders, Value Lists).
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| guid | Integer | Unique operation identifier |
| id | Integer | Id assigned to the new Resource |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/VALUE/bulk" \
-X POST \
-H "Accept: */*" \
-d '[ { "guid": "UniqueIdentifierOperation_1", "data": {} }, { "guid": "UniqueIdentifierOperation_2", "data": {} } ]'const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/bulk", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "[\n {\n \"guid\": \"UniqueIdentifierOperation_1\",\n \"data\": {}\n },\n {\n \"guid\": \"UniqueIdentifierOperation_2\",\n \"data\": {}\n }\n]",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("[\n {\n \"guid\": \"UniqueIdentifierOperation_1\",\n \"data\": {}\n },\n {\n \"guid\": \"UniqueIdentifierOperation_2\",\n \"data\": {}\n }\n]")
response = requests.post(
"https://api.forcemanager.com/api/v4/VALUE/bulk",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 403,
"message": "Entity create success",
"guid": "UniqueIdentifierOperation_1",
"code": 1
},
{
"id": 404,
"message": "Entity create success",
"guid": "UniqueIdentifierOperation_2",
"code": 1
}
]https://api.forcemanager.com/api/v4/VALUE/bulk This endpoint allows you to update a multiple Resources (200 entities for request) information from the user's ForceManager implementation database.
In order to update multiple Resources, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
You will only be able to update a Resource after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of multiple Resources. In order to update a Resource, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
You have to send an Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| data | Object | JSONObject with the Resource data (same data as Create Resource method) |
| id | Integer | Unique Resource's identifier |
You can check the "data" object in the specific documentation section of each resource (e.g. Accounts, Contacts, Opportunities, Orders, Value Lists).
RESPONSE
Returns a JSON with information about the Resource just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/VALUE/bulk" \
-X PUT \
-H "Accept: */*" \
-d '[ { "guid": "UniqueOperationIdentifier_1", "id": 19, "data": {} }, { "guid": "UniqueOperationIdentifier_2", "id": 21, "data": {} } ]'const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/bulk", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "[\n {\n \"guid\": \"UniqueOperationIdentifier_1\",\n \"id\": 19,\n \"data\": {}\n },\n {\n \"guid\": \"UniqueOperationIdentifier_2\",\n \"id\": 21,\n \"data\": {}\n }\n]",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("[\n {\n \"guid\": \"UniqueOperationIdentifier_1\",\n \"id\": 19,\n \"data\": {}\n },\n {\n \"guid\": \"UniqueOperationIdentifier_2\",\n \"id\": 21,\n \"data\": {}\n }\n]")
response = requests.put(
"https://api.forcemanager.com/api/v4/VALUE/bulk",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 19,
"message": "Entity update success",
"guid": "UniqueOperationIdentifier_1",
"code": 1
},
{
"id": 21,
"message": "Entity update success",
"guid": "UniqueOperationIdentifier_2",
"code": 1
}
]https://api.forcemanager.com/api/v4/VALUE/bulk This endpoint allows you to delete multiple Resources (120 entities for request) from the user's ForceManager implementation database. If the specified Resource does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete multiple Resources after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
You have to send an Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| id | Integer | Unique Resource's identifier |
RESPONSE
Returns a JSON with information about the Resource just deleted.
| Attribute | Type | Description |
|---|---|---|
| guid | Integer | Unique operation identifier |
| id | Integer | Id assigned to the new Resource |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/VALUE/bulk" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/bulk", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/VALUE/bulk",
headers=headers
)
data = response.json()[
{
"id": 19,
"message": "Entity delete success",
"guid": "UniqueOperationIdentifier_1",
"code": 1
},
{
"id": 21,
"message": "Entity delete success",
"guid": "UniqueOperationIdentifier_2",
"code": 1
}
]Calls
https://api.forcemanager.com/api/v4/calls Returns all Calls available in the user's ForceManager implementation database.
You will only receive the List of Calls after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/users/scores?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Calls available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Calls attributes:
| Attribute | Type | Description |
|---|---|---|
| duration | Integer | Duration of the Call, in seconds |
| startDate | String | Moment in which the Call is started |
| endDate | String | Moment in which the Call is ended |
| type | Integer | 0 if it is an incoming Call, 1 if it is an outgoing call, 2 if it is a missed call |
| terminalType | Integer | Set to 1, it is a free field to eventually distinguish the type of terminals |
| phone | String | The called phone number |
| accountId | Integer | Account to which the Call is linked to (see Accounts resource) |
| contactId | Integer | Contact to which the Call is linked to (see Contacts resource) |
| salesRepId | Integer | Unique identifier of the User associated to the Call (see Users resource) |
| opportunityId | Integer | Opportunity to which the Call is linked to (see Opportunities resource) |
| phoneAlias | String | An alias of the phone number, e.g. a Contact name |
| description | String | A descriptive text of the Call content |
| timeZoneId | Integer | TimeZone of the Call (see TimeZones resource) |
| id | Integer | Unique identifier for the Call in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Call |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Call |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Call |
| dateCreated | String | Date and time when the Call was created |
| dateDeleted | String | Date and time when the Call was deleted |
| dateUpdated | String | Date and time when the Call was last updated |
| deleted | boolean | If true, the Call has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/calls" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/calls", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calls",
headers=headers
)
data = response.json()[
{
"duration": 40,
"startDate": "0001/01/01 00:00:00",
"endDate": "0001/01/01 00:00:00",
"type": 1,
"terminalType": 1,
"phone": "00190320984",
"accountId": -1,
"contactId": -1,
"salesRepId": -1,
"opportunityId": -1,
"phoneAlias": "",
"description": "Urgent call",
"timeZoneId": 31,
"deleted": true,
"dateCreated": null,
"dateDeleted": "2016-02-09T11:11:53.287Z",
"dateUpdated": null,
"salesRepIdCreated": -1,
"salesRepIdUpdated": -1,
"salesRepIdDeleted": 1,
"id": 78996
},
{
"duration": 28,
"startDate": "2009/01/07 11:19:15",
"endDate": "2009/01/07 11:19:43",
"type": 1,
"terminalType": 1,
"phone": "+34667426052",
"accountId": 92,
"contactId": 119,
"salesRepId": 63,
"opportunityId": -1,
"phoneAlias": "Tom Clancy",
"description": "",
"timeZoneId": 31,
"deleted": false,
"dateCreated": "2021-12-21T12:36:43.657Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 120,
"salesRepIdUpdated": -1,
"salesRepIdDeleted": -1,
"id": 78999
}
]https://api.forcemanager.com/api/v4/calls This endpoint allows you to create a Call based on JSON input, providing the ForceManager User ID to whom the Call has to be associated.
You will only be able to create a Call after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| duration | Integer | Duration of the Call, in seconds |
| startDate | String | Moment in which the Call is started |
| endDate | String | Moment in which the Call is ended |
| type | Integer | 0 if it is an incoming Call, 1 if it is an outgoing call, 2 if it is a missed call |
| terminalType | Integer | Set to 1, it is a free field to eventually distinguish the type of terminals |
| phone (Required) | String | The called phone number |
| accountId (Required) | Integer | Account to which the Call is linked to (see Accounts resource) |
| contactId | Integer | Contact to which the Call is linked to (see Contacts resource) |
| salesRepId (Required) | Integer | Unique identifier of the User associated to the Call (see Users resource) |
| opportunityId | Integer | Opportunity to which the Call is linked to (see Opportunities resource) |
| phoneAlias | String | An alias of the phone number, e.g. a Contact name |
| description | String | A descriptive text of the Call content |
| timeZoneId | Integer | TimeZone of the Call (see TimeZones resource) |
RESPONSE
Returns a JSON with information about the Call just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calls" \
-X POST \
-H "Accept: */*" \
-d '{ "startDate": "2009/01/07 11:19:15", "endDate": "2009/01/07 11:35:43", "type": 1, "terminalType": 1, "phone": "+34667426052", "accountId": 92, "contactId": 119, "salesRepId": 63, "opportunityId": -1, "phoneAlias": "Bob O'\''Malley", "timeZoneId": 31 }'const response = await fetch("https://api.forcemanager.com/api/v4/calls", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:35:43\",\n \"type\": 1,\n \"terminalType\": 1,\n \"phone\": \"+34667426052\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"salesRepId\": 63,\n \"opportunityId\": -1,\n \"phoneAlias\": \"Bob O'Malley\",\n \"timeZoneId\": 31\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:35:43\",\n \"type\": 1,\n \"terminalType\": 1,\n \"phone\": \"+34667426052\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"salesRepId\": 63,\n \"opportunityId\": -1,\n \"phoneAlias\": \"Bob O'Malley\",\n \"timeZoneId\": 31\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/calls",
headers=headers, json=json_body
)
data = response.json()[
{
"duration": 988,
"startDate": "2009/01/07 11:19:15",
"endDate": "2009/01/07 11:35:43",
"type": 1,
"terminalType": 1,
"phone": "+34667426052",
"accountId": 92,
"contactId": 119,
"salesRepId": 63,
"opportunityId": -1,
"phoneAlias": "Bob O'Malley ",
"description": "",
"timeZoneId": 31,
"deleted": false,
"dateCreated": "2021-12-21T16:14:08.453Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": -1,
"salesRepIdDeleted": -1,
"id": 79007
},
{
"duration": 0,
"startDate": "2009/01/07 11:19:15",
"endDate": "2009/01/07 11:19:15",
"type": 2,
"terminalType": 1,
"phone": "+34667426052",
"accountId": 92,
"contactId": 119,
"salesRepId": 63,
"opportunityId": -1,
"phoneAlias": "Bob O'Malley ",
"description": "",
"timeZoneId": 31,
"deleted": false,
"dateCreated": "2021-12-21T16:14:08.523Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": -1,
"salesRepIdDeleted": -1,
"id": 79008
}
]https://api.forcemanager.com/api/v4/calls/identify This endpoint allows you to create a Call based on JSON input, providing as an identifier of the ForceManager User its email instead of the ID. This endpoint is useful in the case in which the external system (e.g. a PBX) is not aware of the ForceManager User ID but it has the reference of all the Users' phone numbers.
You will only be able to create a Call after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| duration | Integer | Duration of the Call, in seconds |
| startDate | String | Moment in which the Call is started |
| endDate | String | Moment in which the Call is ended |
| type | Integer | 0 if it is an incoming Call, 1 if it is an outgoing call, 2 if it is a missed call |
| terminalType | Integer | Set to 1, it is a free field to eventually distinguish the type of terminals |
| phone (Required) | String | The called phone number |
| accountId (Required) | Integer | Account to which the Call is linked to (see Accounts resource) |
| contactId | Integer | Contact to which the Call is linked to (see Contacts resource) |
| userPhoneFM (Required) | Integer | ForceManager email of the User associated to the Call (see Users resource) provided as unique identifier in place of the User ID |
| opportunityId | Integer | Opportunity to which the Call is linked to (see Opportunities resource) |
| phoneAlias | String | An alias of the phone number, e.g. a Contact name |
| description | String | A descriptive text of the Call content |
| timeZoneId | Integer | TimeZone of the Call (see TimeZones resource) |
RESPONSE
Returns a JSON with information about the Call just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calls/identify" \
-X POST \
-H "Accept: */*" \
-d '{ "startDate": "2009/01/07 11:19:15", "endDate": "2009/01/07 11:35:43", "type": 1, "terminalType": 1, "phone": "+34667426052", "accountId": 92, "contactId": 119, "userPhoneFM": "+0189732291", "opportunityId": -1, "phoneAlias": "Bob O'\''Malley", "timeZoneId": 31 }'const response = await fetch("https://api.forcemanager.com/api/v4/calls/identify", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:35:43\",\n \"type\": 1,\n \"terminalType\": 1,\n \"phone\": \"+34667426052\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"userPhoneFM\": \"+0189732291\",\n \"opportunityId\": -1,\n \"phoneAlias\": \"Bob O'Malley\",\n \"timeZoneId\": 31\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:35:43\",\n \"type\": 1,\n \"terminalType\": 1,\n \"phone\": \"+34667426052\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"userPhoneFM\": \"+0189732291\",\n \"opportunityId\": -1,\n \"phoneAlias\": \"Bob O'Malley\",\n \"timeZoneId\": 31\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/calls/identify",
headers=headers, json=json_body
)
data = response.json(){
"message": "success"
}https://api.forcemanager.com/api/v4/calls/{ID} This endpoint retrieves data of a specific Call based on JSON input. The API returns a single Call available to the user, according to the unique ID provided. If the specified Call does not exist, the response will be a "bad request".
You will only receive the Call after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | integer | The unique and specific identifier of the Call |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| duration | Integer | Duration of the Call, in seconds |
| startDate | String | Moment in which the Call is started |
| endDate | String | Moment in which the Call is ended |
| type | Integer | 0 if it is an incoming Call, 1 if it is an outgoing call, 2 if it is a missed call |
| terminalType | Integer | Set to 1, it is a free field to eventually distinguish the type of terminals |
| phone | String | The called phone number |
| accountId | Integer | Account to which the Call is linked to (see Accounts resource) |
| contactId | Integer | Contact to which the Call is linked to (see Contacts resource) |
| salesRepId | Integer | Unique identifier of the User associated to the Call (see Users resource) |
| opportunityId | Integer | Opportunity to which the Call is linked to (see Opportunities resource) |
| phoneAlias | String | An alias of the phone number, e.g. a Contact name |
| description | String | A descriptive text of the Call content |
| timeZoneId | Integer | TimeZone of the Call (see TimeZones resource) |
| id | Integer | Unique identifier for the Call in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Call |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Call |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Call |
| dateCreated | String | Date and time when the Call was created |
| dateDeleted | String | Date and time when the Call was deleted |
| dateUpdated | String | Date and time when the Call was last updated |
| deleted | boolean | If true, the Call has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calls/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/calls/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calls/{ID}",
headers=headers
)
data = response.json(){
"duration": 28,
"startDate": "2009/01/07 11:19:15",
"endDate": "2009/01/07 11:19:43",
"type": 0,
"terminalType": 0,
"phone": "3493223255",
"accountId": 92,
"contactId": 119,
"salesRepId": 63,
"opportunityId": -1,
"phoneAlias": "Mark Clancy ",
"description": "",
"timeZoneId": 31,
"deleted": true,
"dateCreated": null,
"dateDeleted": "2016-02-09T11:11:53.287Z",
"dateUpdated": "2021-12-21T16:01:02.253Z",
"salesRepIdCreated": -1,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 1,
"id": 78996
}https://api.forcemanager.com/api/v4/calls/{ID} This endpoint allows you to update specific information of a Call. If the specified Call does not exist, the response will be a "bad request".
You will only be able to update a Call after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Call. In order to update a Call, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| duration | Integer | Duration of the Call, in seconds |
| startDate | String | Moment in which the Call is started |
| endDate | String | Moment in which the Call is ended |
| type | Integer | 0 if it is an incoming Call, 1 if it is an outgoing call, 2 if it is a missed call |
| terminalType | Integer | Set to 1, it is a free field to eventually distinguish the type of terminals |
| phone | String | The called phone number |
| accountId | Integer | Account to which the Call is linked to (see Accounts resource) |
| contactId | Integer | Contact to which the Call is linked to (see Contacts resource) |
| salesRepId | Integer | Unique identifier of the User associated to the Call (see Users resource) |
| opportunityId | Integer | Opportunity to which the Call is linked to (see Opportunities resource) |
| phoneAlias | String | An alias of the phone number, e.g. a Contact name |
| description | String | A descriptive text of the Call content |
| timeZoneId | Integer | TimeZone of the Call (see TimeZones resource) |
RESPONSE
Returns a JSON with information about the Call just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calls/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "startDate": "2009/01/07 11:19:15", "endDate": "2009/01/07 11:19:43", "phone": "3493223255", "accountId": 92, "contactId": 119, "salesRepId": 63, "opportunityId": -1, "phoneAlias": "Mark Clancy", "timeZoneId": 31 }'const response = await fetch("https://api.forcemanager.com/api/v4/calls/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:19:43\",\n \"phone\": \"3493223255\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"salesRepId\": 63,\n \"opportunityId\": -1,\n \"phoneAlias\": \"Mark Clancy\",\n \"timeZoneId\": 31\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"startDate\": \"2009/01/07 11:19:15\",\n \"endDate\": \"2009/01/07 11:19:43\",\n \"phone\": \"3493223255\",\n \"accountId\": 92,\n \"contactId\": 119,\n \"salesRepId\": 63,\n \"opportunityId\": -1,\n \"phoneAlias\": \"Mark Clancy\",\n \"timeZoneId\": 31\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/calls/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"duration": 28,
"startDate": "2009/01/07 11:19:15",
"endDate": "2009/01/07 11:19:43",
"type": 0,
"terminalType": 0,
"phone": "3493223255",
"accountId": 92,
"contactId": 119,
"salesRepId": 63,
"opportunityId": -1,
"phoneAlias": "Mark Clancy ",
"description": "",
"timeZoneId": 31,
"deleted": true,
"dateCreated": null,
"dateDeleted": "2016-02-09T11:11:53.287Z",
"dateUpdated": "2021-12-21T16:01:02.253Z",
"salesRepIdCreated": -1,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 1,
"id": 78996
}https://api.forcemanager.com/api/v4/calls/{ID} This endpoint allows you to delete a specific Call from the user's ForceManager implementation database. If the specified Call does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Call after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Call to delete |
RESPONSE
Returns a JSON with information about the Call just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
Error Responses
{
"code": -1,
"error": "not exist"
} curl "https://api.forcemanager.com/api/v4/calls/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/calls/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/calls/{ID}",
headers=headers
)
data = response.json()https://api.forcemanager.com/api/v4/calls/phone/VALUE The Calls API provides a simple interface to manage your Calls. Calls are generally made via mobile apps, VoIP services or PBX systems.
The API allows you to read, update and delete your Calls. You can retrieve individual Calls, as well as a complete list.
You can also determine whose Contacts, Accounts and Users are associated to specific phone numbers.
Available methods:
| Type | URL | Action |
|---|---|---|
| GET | v4/calls | Get all Calls |
| POST | v4/calls | Create a specific Call specifing a ForceManager User ID |
| POST | v4/calls/identify | Create a specific Call specifing a ForceManager User phone number |
| GET | v4/calls/:ID | Get a specific Call |
| PUT | v4/calls/:ID | Update a specific Call |
| DEL | v4/calls/:ID | Delete a specific Call |
| GET | v4/calls/phone/VALUE | Get a list of Contacts, Accounts, Users IDs referred to a specific phone number |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calls/phone/VALUE" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/calls/phone/VALUE", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calls/phone/VALUE",
headers=headers
)
data = response.json(){
"userIds": [],
"contactIds": [
287,
288,
289
],
"accountIds": [
1,
1,
1
]
}Campaigns
Entity
https://api.forcemanager.com/api/v4/campaigns Returns all Campaigns available in the user's ForceManager implementation database.
You will only receive the List of Campaigns after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/campaigns?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Campaigns available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaigns attributes:
| Attribute | Type | Description |
|---|---|---|
| title | String | A short descriptive name for the specific Campaign |
| description | String | A longer description of the Campaign content, it can be also HTML |
| videoUrl | String | A link to a video that describe the sales Campaign |
| address2 | String | Second address to whom the Campaign is linked |
| startDate | String | Date in wich the Campaign starts |
| endDate | String | Date when the Campaign ends |
| ownerId | Integer | Unique identifier of the User associated to the Campaign (see Users resource) |
| typeId | Integer | Type of the Campaign (see Types resource) |
| statusId | Integer | Status of the Campaign (see Statues resource) |
| dateCreated | String | Date and time when the Campaign was created |
| dateDeleted | String | Date and time when the Campaign was deleted |
| dateUpdated | String | Date and time when the Campaign was last updated |
| deleted | Boolean | If true, the Campaign has been deleted and archived |
| id | Integer | Unique identifier for the Campaign in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaigns" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaigns",
headers=headers
)
data = response.json()[
{
"title": "Promo Campaign to present the new products portfolio",
"description": "",
"ownerId": 117,
"statusId": 1,
"typeId": 1,
"startDate": "2021-09-25T15:04:05Z",
"endDate": "2022-09-30T15:04:05Z",
"deleted": true,
"videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k",
"dateCreated": "2021-12-29T10:40:32.66Z",
"dateDeleted": "2021-12-29T11:42:05.7Z",
"dateUpdated": "2021-12-29T10:41:43.097Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 90,
"id": 1
},
{
"title": "Communication of the new pricing strategy for partners",
"description": "<p>Hi everyone.</p><p>We want to inform the new pricing strategy to the channel (see attached document).</p><p>To do this, we have assigned you the partners that correspond to your territories.</p><p>The campaign will end on February 26th.</p><p>In case of doubts, do not hesitate to ask. </p><p><br></p><p>Channel</p>",
"ownerId": 217,
"statusId": 4,
"typeId": 2,
"startDate": "2021-01-21T23:00:00Z",
"endDate": "2021-02-26T22:59:59Z",
"deleted": false,
"videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k",
"dateCreated": "2021-12-29T10:44:39.07Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 2
}
]https://api.forcemanager.com/api/v4/campaigns This endpoint allows you to create a Campaign based on JSON input.
You will only be able to create a Campaign after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| title (Required) | String | A short descriptive name for the specific Campaign |
| description | String | A longer description of the Campaign content, it can be also HTML |
| videoUrl | String | A link to a video that describe the sales Campaign |
| address2 | String | Second address to whom the Campaign is linked |
| startDate (Required) | String | Date in wich the Campaign starts |
| endDate (Required) | String | Date when the Campaign ends |
| ownerId (Required) | Integer | Unique identifier of the User associated to the Campaign (see Users resource) |
| typeId (Required) | Integer | Type of the Campaign (see Types resource) |
| statusId (Required) | Integer | Status of the Campaign (see Statues resource) |
RESPONSE
Returns a JSON with information about the Campaign just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Campaign |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns" \
-X POST \
-H "Accept: */*" \
-d '{ "title": "Communication of the new pricing strategy for partners", "description": "<p>Hi everyone.</p><p>We want to inform the new pricing strategy to the channel (see attached document).</p><p>To do this, we have assigned you the partners that correspond to your territories.</p><p>The campaign will end on February 26th.</p><p>In case of doubts, do not hesitate to ask. </p><p><br></p><p>Channel</p>", "ownerId": 217, "statusId": 4, "typeId": 2, "startDate": "2021-01-21T23:00:00Z", "endDate": "2021-02-26T22:59:59Z", "deleted": false, "videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaigns", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"title\": \"Communication of the new pricing strategy for partners\",\n \"description\": \"<p>Hi everyone.</p><p>We want to inform the new pricing strategy to the channel (see attached document).</p><p>To do this, we have assigned you the partners that correspond to your territories.</p><p>The campaign will end on February 26th.</p><p>In case of doubts, do not hesitate to ask. </p><p><br></p><p>Channel</p>\",\n \"ownerId\": 217,\n \"statusId\": 4,\n \"typeId\": 2,\n \"startDate\": \"2021-01-21T23:00:00Z\",\n \"endDate\": \"2021-02-26T22:59:59Z\",\n \"deleted\": false,\n \"videoUrl\": \"https://www.youtube.com/watch?v=YmcFveP-P7k\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"title\": \"Communication of the new pricing strategy for partners\",\n \"description\": \"<p>Hi everyone.</p><p>We want to inform the new pricing strategy to the channel (see attached document).</p><p>To do this, we have assigned you the partners that correspond to your territories.</p><p>The campaign will end on February 26th.</p><p>In case of doubts, do not hesitate to ask. </p><p><br></p><p>Channel</p>\",\n \"ownerId\": 217,\n \"statusId\": 4,\n \"typeId\": 2,\n \"startDate\": \"2021-01-21T23:00:00Z\",\n \"endDate\": \"2021-02-26T22:59:59Z\",\n \"deleted\": false,\n \"videoUrl\": \"https://www.youtube.com/watch?v=YmcFveP-P7k\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/campaigns",
headers=headers, json=json_body
)
data = response.json(){
"title": "Communication of the new pricing strategy for partners",
"description": "<p>Hi everyone.</p><p>We want to inform the new pricing strategy to the channel (see attached document).</p><p>To do this, we have assigned you the partners that correspond to your territories.</p><p>The campaign will end on February 26th.</p><p>In case of doubts, do not hesitate to ask. </p><p><br></p><p>Channel</p>",
"ownerId": 217,
"statusId": 4,
"typeId": 2,
"startDate": "2021-01-21T23:00:00Z",
"endDate": "2021-02-26T22:59:59Z",
"deleted": false,
"videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k",
"dateCreated": "2021-12-29T10:44:39.07Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 2
}https://api.forcemanager.com/api/v4/campaigns/{ID} This endpoint retrieves data of a specific Campaign based on JSON input. The API returns a single Campaign available to the user, according to the unique ID provided. If the specified Campaign does not exist, the response will be a "bad request".
You will only receive the Campaign after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Campaign |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| title | String | A short descriptive name for the specific Campaign |
| description | String | A longer description of the Campaign content, it can be also HTML |
| videoUrl | String | A link to a video that describe the sales Campaign |
| address2 | String | Second address to whom the Campaign is linked |
| startDate | String | Date in wich the Campaign starts |
| endDate | String | Date when the Campaign ends |
| ownerId | Integer | Unique identifier of the User associated to the Campaign (see Users resource) |
| typeId | Integer | Type of the Campaign (see Types resource) |
| statusId | Integer | Status of the Campaign (see Statues resource) |
| dateCreated | String | Date and time when the Campaign was created |
| dateDeleted | String | Date and time when the Campaign was deleted |
| dateUpdated | String | Date and time when the Campaign was last updated |
| deleted | Boolean | If true, the Campaign has been deleted and archived |
| id | Integer | Unique identifier for the Campaign in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaigns/{ID}",
headers=headers
)
data = response.json(){
"title": "Promo Campaign to present the new products portfolio",
"description": "",
"ownerId": 117,
"statusId": 1,
"typeId": 1,
"startDate": "2021-09-20T15:04:05Z",
"endDate": "2022-09-20T15:04:05Z",
"deleted": false,
"videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k",
"dateCreated": "2021-12-29T10:40:32.66Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaigns/{ID} This endpoint allows you to update a specific Campaign. If the specified Campaign does not exist, the response will be a "bad request".
You will only be able to update a Campaign after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign. In order to update a Campaign, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| title | String | A short descriptive name for the specific Campaign |
| description | String | A longer description of the Campaign content, it can be also HTML |
| videoUrl | String | A link to a video that describe the sales Campaign |
| address2 | String | Second address to whom the Campaign is linked |
| startDate | String | Date in wich the Campaign starts |
| endDate | String | Date when the Campaign ends |
| ownerId | Integer | Unique identifier of the User associated to the Campaign (see Users resource) |
| typeId | Integer | Type of the Campaign (see Types resource) |
| statusId | Integer | Status of the Campaign (see Statues resource) |
RESPONSE
Returns a JSON with information about the Campaign just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "startDate": "2021-09-25T15:04:05Z", "endDate": "2022-09-30T15:04:05Z" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"startDate\": \"2021-09-25T15:04:05Z\",\n \"endDate\": \"2022-09-30T15:04:05Z\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"startDate\": \"2021-09-25T15:04:05Z\",\n \"endDate\": \"2022-09-30T15:04:05Z\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/campaigns/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"title": "Promo Campaign to present the new products portfolio",
"description": "",
"ownerId": 117,
"statusId": 1,
"typeId": 1,
"startDate": "2021-09-25T15:04:05Z",
"endDate": "2022-09-30T15:04:05Z",
"deleted": false,
"videoUrl": "https://www.youtube.com/watch?v=YmcFveP-P7k",
"dateCreated": "2021-12-29T10:40:32.66Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T10:41:43.097Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaigns/{ID} This endpoint allows you to delete a specific Campaign from the user's ForceManager implementation database. If the specified Campaign does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Campaigns after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Campaign to delete |
RESPONSE
Returns a JSON with information about the Campaign just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/campaigns/{ID}",
headers=headers
)
data = response.json(){
"message": "success"
}Statuses
https://api.forcemanager.com/api/v4/campaignStatuses Returns all Campaign Statuses available in the user's ForceManager implementation database.
You will only receive the List of Campaign Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Campaign Statuses available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaign Statuses attributes:
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Campaign Status label in Brasilian Portuguese |
| descriptionDE | String | Campaign Status label in German |
| descriptionDK | String | Campaign Status label in Dutch |
| descriptionEN | String | Campaign Status label in English |
| descriptionES | String | Campaign Status label in Spanish |
| descriptionFR | String | Campaign Status label in French |
| descriptionIT | String | Campaign Status label in Italian |
| descriptionPT | String | Campaign Status label in Portuguese |
| descriptionRU | String | Campaign Status label in Russian |
| descriptionUS | String | Campaign Status label in American English |
| id | Integer | Unique identifier for the Campaign Status in ForceManager |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaignStatuses" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaignStatuses", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignStatuses",
headers=headers
)
data = response.json()[
{
"id": 1,
"descriptionEN": "Drafts",
"descriptionES": "Borradores",
"descriptionIT": "Bozze",
"descriptionFR": "Brouillons",
"descriptionDE": "Entwürfe",
"descriptionPT": "Rascunhos",
"descriptionUS": "Drafts",
"descriptionBR": "Rascunhos",
"descriptionRU": "Drafts",
"descriptionDK": "Draftet"
},
{
"id": 2,
"descriptionEN": "Ongoing",
"descriptionES": "Activas",
"descriptionIT": "Incompleta",
"descriptionFR": "Inachevées",
"descriptionDE": "Nicht abgeschlossen",
"descriptionPT": "Incompletas",
"descriptionUS": "Ongoing",
"descriptionBR": "Incompletas",
"descriptionRU": "Ongoing",
"descriptionDK": "Ufuldendt"
},
{
"id": 3,
"descriptionEN": "Scheduled",
"descriptionES": "Planificadas",
"descriptionIT": "Pianificato",
"descriptionFR": "Prévues",
"descriptionDE": "Geplant",
"descriptionPT": "Planejado",
"descriptionUS": "Scheduled",
"descriptionBR": "Planejado",
"descriptionRU": "Scheduled",
"descriptionDK": "Planlagt"
},
{
"id": 4,
"descriptionEN": "Ended",
"descriptionES": "Finalizadas",
"descriptionIT": "Terminata",
"descriptionFR": "Terminées",
"descriptionDE": "Beendet",
"descriptionPT": "Concluído",
"descriptionUS": "Ended",
"descriptionBR": "Acabada",
"descriptionRU": "Ended",
"descriptionDK": "Afsluttet"
}
]Accounts
https://api.forcemanager.com/api/v4/campaigns/{ID}/entities Returns all Campaign Accounts available in the user's ForceManager implementation database.
You will only receive the List of Campaign Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/campaigns/:ID/entities/VALUE?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Campaign Accounts available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaign Accounts attributes:
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign (see Activities resource) |
| accountId | Integer | ID of the Account targeted by the Campaign (see Accounts resource) |
| completed | Boolean | If true, an Activity related to the Account had been done for the corresponding Campaign |
| dateCreated | String | Date and time when the Campaign Account was created |
| dateDeleted | String | Date and time when the Campaign Account was deleted |
| dateUpdated | String | Date and time when the Campaign Account was last updated |
| deleted | Boolean | If true, the Campaign Account has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Account in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Account |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Account |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Account |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}/entities" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}/entities", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaigns/{ID}/entities",
headers=headers
)
data = response.json()https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE This endpoint allows you to update a specific Campaign Account. If the specified Campaign Account does not exist, the response will be a "bad request".
You will only be able to update a Campaign Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign Account.
| Parameter | Type | Description |
|---|---|---|
| accountId | Integer | The unique and specific identifier of the Campaign Account |
| id | Integer | The unique and specific identifier of the Campaign |
In order to update a Campaign Account, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign (see Activities resource) |
| accountId | Integer | ID of the Account targeted by the Campaign (see Accounts resource) |
| completed | Boolean | If true, an Activity related to the Account had been done for the corresponding Campaign |
RESPONSE
Returns a JSON with information about the Campaign Question just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE" \
-X POST \
-H "Accept: */*" \
-d '{ "activityId": -1, "completed": false }'const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"activityId\": -1,\n \"completed\": false\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"activityId\": -1,\n \"completed\": false\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE",
headers=headers, json=json_body
)
data = response.json(){
"campaignId": 1,
"accountId": 87,
"activityId": -1,
"completed": true,
"deleted": false,
"DateCreated": "2021-12-29T16:35:00.667Z",
"DateDeleted": null,
"DateUpdated": null,
"SalesRepIdCreated": 90,
"SalesRepIdUpdated": 0,
"SalesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE This endpoint retrieves data of a specific Campaign Account based on JSON input. The API returns a single Campaign Account available to the user, according to the unique ID provided. If the specified Campaign Account does not exist, the response will be a "bad request".
You will only receive the Campaign Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| accountId | Integer | The unique and specific identifier of the Campaign Account |
| id | Integer | The unique and specific identifier of the Campaign |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign (see Activities resource) |
| accountId | Integer | ID of the Account targeted by the Campaign (see Accounts resource) |
| completed | Boolean | If true, an Activity related to the Account had been done for the corresponding Campaign |
| dateCreated | String | Date and time when the Campaign Account was created |
| dateDeleted | String | Date and time when the Campaign Account was deleted |
| dateUpdated | String | Date and time when the Campaign Account was last updated |
| deleted | Boolean | If true, the Campaign Account has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Account in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Account |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Account |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Account |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE",
headers=headers
)
data = response.json(){
"campaignId": 1,
"accountId": 87,
"activityId": 5,
"completed": true,
"deleted": false,
"DateCreated": "2021-12-29T16:35:00.667Z",
"DateDeleted": null,
"DateUpdated": null,
"SalesRepIdCreated": 90,
"SalesRepIdUpdated": 0,
"SalesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE This endpoint allows you to update a specific Campaign Account. If the specified Campaign Account does not exist, the response will be a "bad request".
You will only be able to update a Campaign Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign Account.
| Parameter | Type | Description |
|---|---|---|
| accountId | Integer | The unique and specific identifier of the Campaign Account |
| id | Integer | The unique and specific identifier of the Campaign |
In order to update a Campaign Account, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign (see Activities resource) |
| accountId | Integer | ID of the Account targeted by the Campaign (see Accounts resource) |
| completed | Boolean | If true, an Activity related to the Account had been done for the corresponding Campaign |
RESPONSE
Returns a JSON with information about the Campaign Question just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE" \
-X PUT \
-H "Accept: */*" \
-d '{ "activityId": 9, "completed": true }'const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"activityId\": 9,\n \"completed\": true\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"activityId\": 9,\n \"completed\": true\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE",
headers=headers, json=json_body
)
data = response.json(){
"campaignId": 1,
"accountId": 87,
"activityId": 9,
"completed": true,
"deleted": false,
"DateCreated": "2021-12-29T16:35:00.667Z",
"DateDeleted": null,
"DateUpdated": "2021-12-29T16:36:25.257Z",
"SalesRepIdCreated": 90,
"SalesRepIdUpdated": 90,
"SalesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE This endpoint allows you to delete a specific Campaign Account from the user's ForceManager implementation database. If the specified Campaign Account does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Campaign Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| accountId | Integer | The unique and specific identifier of the Campaign Account |
| id | Integer | The unique and specific identifier of the Campaign |
RESPONSE
Returns a JSON with information about the Campaign Account just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/campaigns/{ID}/entities/VALUE",
headers=headers
)
data = response.json(){
"message": "success"
}Questions
https://api.forcemanager.com/api/v4/campaignQuestions Returns all Campaign Questions available in the user's ForceManager implementation database.
You will only receive the List of Campaign Questions after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/campaignQuestions?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Campaign Questions available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaign Questions attributes:
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| textBR | String | Campaign Question topic in Brasilian Portuguese |
| textDE | String | Campaign Question topic in German |
| textDK | String | Campaign Question topic in Dutch |
| textEN | String | Campaign Question topic in English |
| textES | String | Campaign Question topic in Spanish |
| textFR | String | Campaign Question topic in French |
| textIT | String | Campaign Question topic in Italian |
| textPT | String | Campaign Question topic in Portuguese |
| textRU | String | Campaign Question topic in Russian |
| textUS | String | Campaign Question topic in American English |
| type | String | Campaign Question data type. It can take the following values: bool, date, integer, multipleValueList, singleValueList, text |
| mandatory | Boolean | True if the Campaign Question is mandatory, false otherwise |
| order | Integer | The position of the Campaign Question in the Activity fields list |
| valueListName | String | The API name of the table that the Campaign Question type multipleValueList or singleValueList refers too |
| linkedEntity | String | This refers to the case in which the Campaign Question would populate a specific field of an entity through the answer provided by the User. Only accounts value is currently supported |
| linkedEntityField | String | It specifies the API name of the field (standard or custom) present in the linkedEntity table that the Campaing Question answer will populate |
| custom | Boolean | This indicate that for multipleValueList and singleValueList Campaign Questions, the list is not an existing one but a list created on purpose for the Campaign Question. If it is custom, the consumer of the API has to specify the corresponding list items, via the Campaign Question Values API (see Question Values resource) |
| dateCreated | String | Date and time when the Campaign Question was created |
| dateDeleted | String | Date and time when the Campaign Question was deleted |
| dateUpdated | String | Date and time when the Campaign Question was last updated |
| deleted | Boolean | If true, the Campaign Question has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaignQuestions" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions",
headers=headers
)
data = response.json()[
{
"campaignId": 1,
"textES": "",
"textEN": "How much money the company earned last year?",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"type": "integer",
"mandatory": true,
"deleted": true,
"order": 4,
"valueListName": "",
"linkedEntity": "",
"linkedEntityField": "",
"dateCreated": "2021-12-29T13:14:47.36Z",
"dateDeleted": "2021-12-29T14:18:22.737Z",
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 90,
"id": 1,
"custom": false
},
{
"campaignId": 1,
"textES": "",
"textEN": "How many sales representatives the company has?",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"type": "singleValueList",
"mandatory": false,
"deleted": false,
"order": 3,
"valueListName": "Z_tblEmployeesCountRanges",
"linkedEntity": "accounts",
"linkedEntityField": "Z_EmployeesCount",
"dateCreated": "2021-12-29T13:15:14.36Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:17:09.13Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 2,
"custom": false
}
]https://api.forcemanager.com/api/v4/campaignQuestions This endpoint allows you to create a Campaign Question based on JSON input.
You will only be able to create a Campaign Question after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| textBR | String | Campaign Question topic in Brasilian Portuguese |
| textDE | String | Campaign Question topic in German |
| textDK | String | Campaign Question topic in Dutch |
| textEN (Required) | String | Campaign Question topic in English |
| textES | String | Campaign Question topic in Spanish |
| textFR | String | Campaign Question topic in French |
| textIT | String | Campaign Question topic in Italian |
| textPT | String | Campaign Question topic in Portuguese |
| textRU | String | Campaign Question topic in Russian |
| textUS | String | Campaign Question topic in American English |
| type (Required) | String | Campaign Question data type. It can take the following values: bool, date, integer, multipleValueList, singleValueList, text |
| mandatory | Boolean | True if the Campaign Question is mandatory, false otherwise |
| order | Integer | The position of the Campaign Question in the Activity fields list |
| valueListName | String | The API name of the table that the Campaign Question type multipleValueList or singleValueList refers too |
| linkedEntity | String | This refers to the case in which the Campaign Question would populate a specific field of an entity through the answer provided by the User. Only accounts value is currently supported |
| linkedEntityField | String | It specifies the API name of the field (standard or custom) present in the linkedEntity table that the Campaing Question answer will populate |
| custom | Boolean | This indicate that for multipleValueList and singleValueList Campaign Questions, the list is not an existing one but a list created on purpose for the Campaign Question. If it is custom, the consumer of the API has to specify the corresponding list items, via the Campaign Question Values API (see Question Values resource) |
RESPONSE
Returns a JSON with information about the Campaign Question just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Campaign Question |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions" \
-X POST \
-H "Accept: */*" \
-d '[ { "campaignId": 1, "textES": "", "textEN": "How many employees the company has?", "textIT": "", "textFR": "", "textDE": "", "textPT": "", "textUS": "", "textBR": "", "textRU": "", "textDK": "", "type": "singleValueList", "mandatory": true, "order": 4, "valueListName": "Z_tblEmployeesCountRanges", "linkedEntity": "accounts", "linkedEntityField": "Z_EmployeesCount", "custom": false } ]'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "[\n {\n \"campaignId\": 1,\n \"textES\": \"\",\n \"textEN\": \"How many employees the company has?\",\n \"textIT\": \"\",\n \"textFR\": \"\",\n \"textDE\": \"\",\n \"textPT\": \"\",\n \"textUS\": \"\",\n \"textBR\": \"\",\n \"textRU\": \"\",\n \"textDK\": \"\",\n \"type\": \"singleValueList\",\n \"mandatory\": true,\n \"order\": 4,\n \"valueListName\": \"Z_tblEmployeesCountRanges\",\n \"linkedEntity\": \"accounts\",\n \"linkedEntityField\": \"Z_EmployeesCount\",\n \"custom\": false\n }\n]",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("[\n {\n \"campaignId\": 1,\n \"textES\": \"\",\n \"textEN\": \"How many employees the company has?\",\n \"textIT\": \"\",\n \"textFR\": \"\",\n \"textDE\": \"\",\n \"textPT\": \"\",\n \"textUS\": \"\",\n \"textBR\": \"\",\n \"textRU\": \"\",\n \"textDK\": \"\",\n \"type\": \"singleValueList\",\n \"mandatory\": true,\n \"order\": 4,\n \"valueListName\": \"Z_tblEmployeesCountRanges\",\n \"linkedEntity\": \"accounts\",\n \"linkedEntityField\": \"Z_EmployeesCount\",\n \"custom\": false\n }\n]")
response = requests.post(
"https://api.forcemanager.com/api/v4/campaignQuestions",
headers=headers, json=json_body
)
data = response.json()[
{
"campaignId": 1,
"textES": "",
"textEN": "How many employees the company has?",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"type": "singleValueList",
"mandatory": true,
"deleted": false,
"order": 4,
"valueListName": "Z_tblEmployeesCountRanges",
"linkedEntity": "accounts",
"linkedEntityField": "Z_EmployeesCount",
"dateCreated": "2021-12-29T13:15:14.36Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 2,
"custom": false
}
]https://api.forcemanager.com/api/v4/campaignQuestions/{ID} This endpoint retrieves data of a specific Campaign Question based on JSON input. The API returns a single Campaign Question available to the user, according to the unique ID provided. If the specified Campaign Question does not exist, the response will be a "bad request".
You will only receive the Campaign Question after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Campaign Question |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| textBR | String | Campaign Question topic in Brasilian Portuguese |
| textDE | String | Campaign Question topic in German |
| textDK | String | Campaign Question topic in Dutch |
| textEN | String | Campaign Question topic in English |
| textES | String | Campaign Question topic in Spanish |
| textFR | String | Campaign Question topic in French |
| textIT | String | Campaign Question topic in Italian |
| textPT | String | Campaign Question topic in Portuguese |
| textRU | String | Campaign Question topic in Russian |
| textUS | String | Campaign Question topic in American English |
| type | String | Campaign Question data type. It can take the following values: bool, date, integer, multipleValueList, singleValueList, text |
| mandatory | Boolean | True if the Campaign Question is mandatory, false otherwise |
| order | Integer | The position of the Campaign Question in the Activity fields list |
| valueListName | String | The API name of the table that the Campaign Question type multipleValueList or singleValueList refers too |
| linkedEntity | String | This refers to the case in which the Campaign Question would populate a specific field of an entity through the answer provided by the User. Only accounts value is currently supported |
| linkedEntityField | String | It specifies the API name of the field (standard or custom) present in the linkedEntity table that the Campaing Question answer will populate |
| custom | Boolean | This indicate that for multipleValueList and singleValueList Campaign Questions, the list is not an existing one but a list created on purpose for the Campaign Question. If it is custom, the consumer of the API has to specify the corresponding list items, via the Campaign Question Values API (see Question Values resource) |
| dateCreated | String | Date and time when the Campaign Question was created |
| dateDeleted | String | Date and time when the Campaign Question was deleted |
| dateUpdated | String | Date and time when the Campaign Question was last updated |
| deleted | Boolean | If true, the Campaign Question has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions/{ID}",
headers=headers
)
data = response.json(){
"campaignId": 1,
"textES": "",
"textEN": "How many sales representatives the company has?",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"type": "singleValueList",
"mandatory": false,
"deleted": false,
"order": 3,
"valueListName": "Z_tblEmployeesCountRanges",
"linkedEntity": "accounts",
"linkedEntityField": "Z_EmployeesCount",
"dateCreated": "2021-12-29T13:15:14.36Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:17:09.13Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 2,
"custom": false
}https://api.forcemanager.com/api/v4/campaignQuestions/{ID} This endpoint allows you to update a specific Campaign Question. If the specified Campaign Question does not exist, the response will be a "bad request".
You will only be able to update a Campaign Question after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign Question. In order to update a Campaign Question, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| campaignId | Integer | ID of the corresponding Campaign (see Campaigns resource) |
| textBR | String | Campaign Question topic in Brasilian Portuguese |
| textDE | String | Campaign Question topic in German |
| textDK | String | Campaign Question topic in Dutch |
| textEN | String | Campaign Question topic in English |
| textES | String | Campaign Question topic in Spanish |
| textFR | String | Campaign Question topic in French |
| textIT | String | Campaign Question topic in Italian |
| textPT | String | Campaign Question topic in Portuguese |
| textRU | String | Campaign Question topic in Russian |
| textUS | String | Campaign Question topic in American English |
| type | String | Campaign Question data type. It can take the following values: bool, date, integer, multipleValueList, singleValueList, text |
| mandatory | Boolean | True if the Campaign Question is mandatory, false otherwise |
| order | Integer | The position of the Campaign Question in the Activity fields list |
| valueListName | String | The API name of the table that the Campaign Question type multipleValueList or singleValueList refers too |
| linkedEntity | String | This refers to the case in which the Campaign Question would populate a specific field of an entity through the answer provided by the User. Only accounts value is currently supported |
| linkedEntityField | String | It specifies the API name of the field (standard or custom) present in the linkedEntity table that the Campaing Question answer will populate |
| custom | Boolean | This indicate that for multipleValueList and singleValueList Campaign Questions, the list is not an existing one but a list created on purpose for the Campaign Question. If it is custom, the consumer of the API has to specify the corresponding list items, via the Campaign Question Values API (see Question Values resource) |
RESPONSE
Returns a JSON with information about the Campaign Question just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "textEN": "How many sales representatives the company has?", "mandatory": false, "order": 3 }'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"textEN\": \"How many sales representatives the company has?\",\n \"mandatory\": false,\n \"order\": 3\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"textEN\": \"How many sales representatives the company has?\",\n \"mandatory\": false,\n \"order\": 3\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/campaignQuestions/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"campaignId": 1,
"textES": "",
"textEN": "How many sales representatives the company has?",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"type": "singleValueList",
"mandatory": false,
"deleted": false,
"order": 3,
"valueListName": "Z_tblEmployeesCountRanges",
"linkedEntity": "accounts",
"linkedEntityField": "Z_EmployeesCount",
"dateCreated": "2021-12-29T13:15:14.36Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:17:09.13Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 2,
"custom": false
}https://api.forcemanager.com/api/v4/campaignQuestions/{ID} This endpoint allows you to delete a specific Campaign Question from the user's ForceManager implementation database. If the specified Campaign Question does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Campaign Questions after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Campaign Question to delete |
RESPONSE
Returns a JSON with information about the Campaign Question just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/campaignQuestions/{ID}",
headers=headers
)
data = response.json(){
"message": "success"
}Question Answers
https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers Returns all Campaign Question Answers available in the user's ForceManager implementation database.
You will only receive the List of Campaign Question Answers after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Campaign Question Answers available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaign Question Answers attributes:
| Attribute | Type | Description |
|---|---|---|
| questionId | Integer | The ID of the Campaign Question that the Answer is referred to (see Questions resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign, in which the Campaign Question Answer is reported (see Activities resource) |
| value | String | The answer, determined from a value list choice or a free input of the User |
| dateCreated | String | Date and time when the Campaign Question Answer was created |
| dateDeleted | String | Date and time when the Campaign Question Answer was deleted |
| dateUpdated | String | Date and time when the Campaign Question Answer was last updated |
| deleted | Boolean | If true, the Campaign Question Answer has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question Answer in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question Answer |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question Answer |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question Answer |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers",
headers=headers
)
data = response.json()[
{
"questionId": 10,
"activityId": 35,
"value": "5000",
"deleted": false,
"dateCreated": "2021-12-29T13:40:33.96Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:41:45.787Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 1
}
]https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers This endpoint allows you to create a Campaign Question Answer based on JSON input.
You will only be able to create a Campaign Question Answer after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| Attribute | Type | Description |
|---|---|---|
| activityId (Required) | Integer | The ID of an Activity done for a sales Campaign, in which the Campaign Question Answer Answer is reported (see Activities resource) |
| value (Required) | String | The answer, determined from a value list choice or a free input of the User |
RESPONSE
Returns a JSON with information about the Campaign Question Answer just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Campaign Question Answer |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers" \
-X POST \
-H "Accept: */*" \
-d '{ "activityId": 35, "value": "10000" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"activityId\": 35,\n \"value\": \"10000\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"activityId\": 35,\n \"value\": \"10000\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers",
headers=headers, json=json_body
)
data = response.json(){
"questionId": 1,
"activityId": 35,
"value": "10000",
"deleted": false,
"dateCreated": "2021-12-29T13:40:33.96Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID} This endpoint retrieves data of a specific Campaign Question Answer based on JSON input. The API returns a single Campaign Question Answer available to the user, according to the unique ID provided. If the specified Campaign Question Answer does not exist, the response will be a "bad request".
You will only receive the Campaign Question Answer after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Answer to get |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| questionId | Integer | The ID of the Campaign Question that the Answer is referred to (see Questions resource) |
| activityId | Integer | The ID of an Activity done for a sales Campaign, in which the Campaign Question Answer is reported (see Activities resource) |
| value | String | The answer, determined from a value list choice or a free input of the User |
| dateCreated | String | Date and time when the Campaign Question Answer was created |
| dateDeleted | String | Date and time when the Campaign Question Answer was deleted |
| dateUpdated | String | Date and time when the Campaign Question Answer was last updated |
| deleted | Boolean | If true, the Campaign Question Answer has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question Answer in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question Answer |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question Answer |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question Answer |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}",
headers=headers
)
data = response.json(){
"questionId": 2,
"activityId": 35,
"value": "5000",
"deleted": false,
"dateCreated": "2021-12-29T13:40:33.96Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:41:45.787Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID} This endpoint allows you to update a specific Campaign Question Answer. If the specified Campaign Question Answer does not exist, the response will be a "bad request".
You will only be able to update a Campaign Question Answer after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign Question Answer.
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Answer to update |
In order to update a Campaign Question Answer, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| activityId | Integer | The ID of an Activity done for a sales Campaign, in which the Campaign Question Answer is reported (see Activities resource) |
| value | String | The answer, determined from a value list choice or a free input of the User |
RESPONSE
Returns a JSON with information about the Campaign Question just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "activityId": 35, "value": "5000" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"activityId\": 35,\n \"value\": \"5000\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"activityId\": 35,\n \"value\": \"5000\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"questionId": 2,
"activityId": 35,
"value": "5000",
"deleted": false,
"dateCreated": "2021-12-29T13:40:33.96Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T13:41:45.787Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID} This endpoint allows you to delete a specific Campaign Question Answer from the user's ForceManager implementation database. If the specified Campaign Question Answer does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Campaign Question Answers after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Answer to delete |
RESPONSE
Returns a JSON with information about the Campaign Question Answer just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/answers/{ID}",
headers=headers
)
data = response.json(){
"message": "success"
}Question Values
https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values Returns all Campaign Question Values available in the user's ForceManager implementation database.
You will only receive the List of Campaign Question Values after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| offset | Integer | Define position from which the records must be returned |
| count | Integer | Define the number of results to return |
e.g.
https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/Values?offset=VALUE&count=VALUE
RESPONSE
This endpoint returns information about all Campaign Question Values available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Campaign Question Values attributes:
| Attribute | Type | Description |
|---|---|---|
| questionId | Integer | The ID of the Campaign Question that the Value is referred to (see Questions resource) |
| textBR | String | Campaign Value label in Brasilian Portuguese |
| textDE | String | Campaign Value label in German |
| textDK | String | Campaign Value label in Dutch |
| textEN | String | Campaign Value label in English |
| textES | String | Campaign Value label in Spanish |
| textFR | String | Campaign Value label in French |
| textIT | String | Campaign Value label in Italian |
| textPT | String | Campaign Value label in Portuguese |
| textRU | String | Campaign Value label in Russian |
| textUS | String | Campaign Value label in American English |
| dateCreated | String | Date and time when the Campaign Question Value was created |
| dateDeleted | String | Date and time when the Campaign Question Value was deleted |
| dateUpdated | String | Date and time when the Campaign Question Value was last updated |
| deleted | Boolean | If true, the Campaign Question Value has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question Value in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question Value |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question Value |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question Value |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | {{Count}] |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values" \
-H "Accept: */*" \
-H "Count: {{Count}]" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values", {
headers: {
"Accept": "*/*",
"Count": "{{Count}]",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "{{Count}]",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values",
headers=headers
)
data = response.json()[
{
"questionId": 4,
"textES": "",
"textEN": "500-1000",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"deleted": true,
"dateCreated": "2021-12-29T15:40:45.137Z",
"dateDeleted": "2021-12-29T16:42:45.377Z",
"dateUpdated": "2021-12-29T15:42:15.817Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 90,
"id": 1
},
{
"questionId": 4,
"textES": "",
"textEN": "50-200",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"deleted": false,
"dateCreated": "2021-12-29T15:43:04.903Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 2
}
]https://api.forcemanager.com/api/v4/campaignQuestions/{ID}/values This endpoint allows you to create a Campaign Question Value based on JSON input.
You will only be able to create a Campaign Question Value after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| textBR | String | Campaign Value label in Brasilian Portuguese |
| textDE | String | Campaign Value label in German |
| textDK | String | Campaign Value label in Dutch |
| textEN (Required) | String | Campaign Value label in English |
| textES | String | Campaign Value label in Spanish |
| textFR | String | Campaign Value label in French |
| textIT | String | Campaign Value label in Italian |
| textPT | String | Campaign Value label in Portuguese |
| textRU | String | Campaign Value label in Russian |
| textUS | String | Campaign Value label in American English |
RESPONSE
Returns a JSON with information about the Campaign Question Value just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Campaign Question Value |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/{ID}/values" \
-X POST \
-H "Accept: */*" \
-d '{ "textEN": "50-200" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/{ID}/values", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"textEN\": \"50-200\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"textEN\": \"50-200\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/campaignQuestions/{ID}/values",
headers=headers, json=json_body
)
data = response.json(){
"questionId": 4,
"textES": "",
"textEN": "50-200",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"deleted": false,
"dateCreated": "2021-12-29T15:40:45.137Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID} This endpoint retrieves data of a specific Campaign Question Value based on JSON input. The API returns a single Campaign Question Value available to the user, according to the unique ID provided. If the specified Campaign Question Value does not exist, the response will be a "bad request".
You will only receive the Campaign Question Value after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Value to get |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| questionId | Integer | The ID of the Campaign Question that the Value is referred to (see Questions resource) |
| textBR | String | Campaign Value label in Brasilian Portuguese |
| textDE | String | Campaign Value label in German |
| textDK | String | Campaign Value label in Dutch |
| textEN | String | Campaign Value label in English |
| textES | String | Campaign Value label in Spanish |
| textFR | String | Campaign Value label in French |
| textIT | String | Campaign Value label in Italian |
| textPT | String | Campaign Value label in Portuguese |
| textRU | String | Campaign Value label in Russian |
| textUS | String | Campaign Value label in American English |
| dateCreated | String | Date and time when the Campaign Question Value was created |
| dateDeleted | String | Date and time when the Campaign Question Value was deleted |
| dateUpdated | String | Date and time when the Campaign Question Value was last updated |
| deleted | Boolean | If true, the Campaign Question Value has been deleted and archived |
| id | Integer | Unique identifier for the Campaign Question Value in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Campaign Question Value |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Campaign Question Value |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Campaign Question Value |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}",
headers=headers
)
data = response.json(){
"questionId": 4,
"textES": "",
"textEN": "50-200",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"deleted": false,
"dateCreated": "2021-12-29T15:40:45.137Z",
"dateDeleted": null,
"dateUpdated": null,
"salesRepIdCreated": 90,
"salesRepIdUpdated": 0,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID} This endpoint allows you to update a specific Campaign Question Value. If the specified Campaign Question Value does not exist, the response will be a "bad request".
You will only be able to update a Campaign Question Value after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Campaign Question Value.
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Value to update |
In order to update a Campaign Question Value, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| textBR | String | Campaign Value label in Brasilian Portuguese |
| textDE | String | Campaign Value label in German |
| textDK | String | Campaign Value label in Dutch |
| textEN | String | Campaign Value label in English |
| textES | String | Campaign Value label in Spanish |
| textFR | String | Campaign Value label in French |
| textIT | String | Campaign Value label in Italian |
| textPT | String | Campaign Value label in Portuguese |
| textRU | String | Campaign Value label in Russian |
| textUS | String | Campaign Value label in American English |
RESPONSE
Returns a JSON with information about the Campaign Question just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "textEN": "500-1000" }'const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"textEN\": \"500-1000\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"textEN\": \"500-1000\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"questionId": 4,
"textES": "",
"textEN": "500-1000",
"textIT": "",
"textFR": "",
"textDE": "",
"textPT": "",
"textUS": "",
"textBR": "",
"textRU": "",
"textDK": "",
"deleted": false,
"dateCreated": "2021-12-29T15:40:45.137Z",
"dateDeleted": null,
"dateUpdated": "2021-12-29T15:42:15.817Z",
"salesRepIdCreated": 90,
"salesRepIdUpdated": 90,
"salesRepIdDeleted": 0,
"id": 1
}https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID} This endpoint allows you to delete a specific Campaign Question Value from the user's ForceManager implementation database. If the specified Campaign Question Value does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Campaign Question Values after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| questionId | Integer | The unique and specific identifier of the Campaign Question |
| id | Integer | The unique and specific identifier of the Campaign Question Value to delete |
RESPONSE
Returns a JSON with information about the Campaign Question Value just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/campaignQuestions/VALUE/values/{ID}",
headers=headers
)
data = response.json(){
"message": "success"
}Contacts
Entity
https://api.forcemanager.com/api/v4/contacts/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Contact object.
You will only receive the Contacts Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Contacts Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contacts/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contacts/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contacts/schema",
headers=headers
)
data = response.json(){
"properties": {
"UseCompanyAddress": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"address1": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"birthday": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"city": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"comment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"countryId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "countries",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"email": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"email2": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"email3": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"fax": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"firstName": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"gender": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "genre",
"type": [
"object",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"lastName": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"linkedin": {
"description": "",
"maxLength": 300,
"readOnly": false,
"type": [
"string",
"null"
]
},
"marketingCommunications": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"phone1": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"phone2": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"postcode": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"region": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"skype": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"typeId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "contactTypes",
"type": [
"object",
"null"
]
}
},
"required": [
"accountId",
"lastName",
"firstName"
],
"title": "contacts",
"type": "object"
}https://api.forcemanager.com/api/v4/contacts Returns all Contacts available in the user's ForceManager implementation database.
You will only receive the List of Contacts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/contacts?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/contacts?where= param1=value AND/OR param2=value2
You can filter Contacts by firstName or accountId, or typeId for example.
You can also organise and view the results for Contacts in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/contacts?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/contacts?lang=VALUE
RESPONSE
This endpoint returns information about all Contacts available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Contacts attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to whom the Contact is linked to (see Accounts resource) |
| address1 | String | Contact's first address |
| city | String | City name |
| comment | String | Comment added to the Contact profile |
| countryId | Object, Null | Country ID (see Countries resource) of the address |
| dateCreated | String | Date and time when the Contact was created |
| dateDeleted | String | Date and time when the Contact was deleted |
| dateUpdated | String | Date and time when the Contact was last updated |
| deleted | boolean | If true, the Contact has been deleted and archived |
| String | Contact's email address | |
| email2 | String | Contact's second email address |
| email3 | String | Contact's third email address |
| extId | String | External ID of the Contact from a third party system (ERP, CRM, Accounting System) |
| fax | String | Contact's fax number |
| firstName | String | Contact's first name |
| gender | Integer | Male -> 0 or female -> 1 |
| id | Integer | Unique identifier for the Contact in ForceManager |
| lastName | String | Contact's last name |
| String | Contact's LinkedIn profile name | |
| permissionLevel | String | Defines the visibility of the Contact. Set from 1 to 5 being 5 the highest level of permission |
| phone1 | String | Contact's first phone number |
| phone2 | String | Contact's second phone number |
| postcode | String | Postcode of the Contact address |
| readOnly | boolean | If true, the Contact cannot be modified or deleted |
| region | String | Region/State name referred to the address |
| salesRepId | Object, Null | User responsible for the Contact |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Contact |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Contact |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Contact |
| skype | String | Contact's Skype name |
| typeId | Object, Null | Contact Type (see Type resource) |
| UseCompanyAddress | Boolean | If true, Contact's address is the one of the associated Account |
| birthday | String | Contact's birthday |
| marketingCommunications | Boolean | If true, Contact can receive marketing communications |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/contacts" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/contacts", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contacts",
headers=headers
)
data = response.json()[
{
"UseCompanyAddress": true,
"accountId": {
"id": 1,
"value": ""
},
"address1": "2765 Smith Street",
"birthday": null,
"city": "St. Louis",
"comment": "Very professional",
"countryId": {
"id": 75,
"value": "United States"
},
"dateCreated": "2021-12-16T14:05:53.027Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"email": "j.doe@email.com",
"email2": null,
"email3": null,
"extId": null,
"fax": "+39 789-5642",
"firstName": "John",
"gender": {
"id": 0,
"value": "Male"
},
"id": 287,
"lastName": "Doe",
"linkedin": "John_Doe",
"marketingCommunications": true,
"permissionLevel": 2,
"phone1": "+39 687-9234",
"phone2": "+39 982-6501",
"postcode": "63124",
"readOnly": false,
"region": "MO",
"salesRepId": {
"id": 310,
"value": ""
},
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"skype": "John_Doe",
"typeId": {
"id": 9,
"value": "Department of Administration"
}
}
]https://api.forcemanager.com/api/v4/contacts This endpoint allows you to create a Contact based on JSON input.
You will only be able to create a Contact after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| accountId (Required) | Integer | Account to whom the Contact is linked to (see Accounts resource) |
| address1 | String | Contact's first address |
| city | String | City name |
| comment | String | Comment added to the Contact profile |
| countryId | Integer | Country ID (see Countries resource) of the address |
| String | Contact's email address | |
| email2 | String | Contact's second email address |
| email3 | String | Contact's third email address |
| extId | String | External ID of the Contact from a third party system (ERP, CRM, Accounting System) |
| fax | String | Contact's fax number |
| firstName (Required) | String | Contact's first name |
| gender | Integer | Male -> 0 or female -> 1 |
| lastName (Required) | String | Contact's last name |
| String | Contact's LinkedIn profile name | |
| permissionLevel | String | Defines the visibility of the Contact. Set from 1 to 5 being 5 the highest level of permission |
| phone1 | String | Contact's first phone number |
| phone2 | String | Contact's second phone number |
| postcode | String | Postcode of the Contact address |
| readOnly | boolean | If true, the Contact cannot be modified or deleted |
| region | String | Region/State name referred to the address |
| salesRepId (Required) | Object, Null | Contact responsible for the Contact |
| skype | String | Contact's Skype name |
| typeId | Integer | Contact Type (see Type resource) |
| UseCompanyAddress | Boolean | If true, Contact's address is the one of the associated Account |
| birthday | String | Contact's birthday |
| marketingCommunications | Boolean | If true, Contact can receive marketing communications |
RESPONSE
Returns a JSON with information about the Contact just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Contact |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contacts" \
-X POST \
-H "Accept: */*" \
-d '{ "accountId": 1, "address1": "2765 Smith Street", "city": "St. Louis", "comment": "Very professional", "countryId": 75, "email": "j.doe@email.com", "fax": "+39 789-5642", "firstName": "John", "gender": 0, "lastName": "Doe", "linkedin": "John_Doe", "permissionLevel": 2, "phone1": "+39 687-9234", "phone2": "+39 982-6501", "postcode": "63124", "readOnly": false, "region": "MO", "salesRepId": 310, "skype": "John_Doe", "typeId": 9, "birthday": "2021-10-02" }'const response = await fetch("https://api.forcemanager.com/api/v4/contacts", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountId\": 1,\n \"address1\": \"2765 Smith Street\",\n \"city\": \"St. Louis\",\n \"comment\": \"Very professional\",\n \"countryId\": 75,\n \"email\": \"j.doe@email.com\",\n \"fax\": \"+39 789-5642\",\n \"firstName\": \"John\",\n \"gender\": 0,\n \"lastName\": \"Doe\",\n \"linkedin\": \"John_Doe\",\n \"permissionLevel\": 2,\n \"phone1\": \"+39 687-9234\",\n \"phone2\": \"+39 982-6501\",\n \"postcode\": \"63124\",\n \"readOnly\": false,\n \"region\": \"MO\",\n \"salesRepId\": 310,\n \"skype\": \"John_Doe\",\n \"typeId\": 9,\n \"birthday\": \"2021-10-02\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountId\": 1,\n \"address1\": \"2765 Smith Street\",\n \"city\": \"St. Louis\",\n \"comment\": \"Very professional\",\n \"countryId\": 75,\n \"email\": \"j.doe@email.com\",\n \"fax\": \"+39 789-5642\",\n \"firstName\": \"John\",\n \"gender\": 0,\n \"lastName\": \"Doe\",\n \"linkedin\": \"John_Doe\",\n \"permissionLevel\": 2,\n \"phone1\": \"+39 687-9234\",\n \"phone2\": \"+39 982-6501\",\n \"postcode\": \"63124\",\n \"readOnly\": false,\n \"region\": \"MO\",\n \"salesRepId\": 310,\n \"skype\": \"John_Doe\",\n \"typeId\": 9,\n \"birthday\": \"2021-10-02\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/contacts",
headers=headers, json=json_body
)
data = response.json(){
"id": 287,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/contacts/{ID} This endpoint retrieves data of a specific Contact based on JSON input. The API returns a single Contact available to the user, according to the unique ID provided. If the specified Contact does not exist, the response will be a "bad request".
You will only receive the Contact after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Contact |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to whom the Contact is linked to (see Accounts resource) |
| address1 | String | Contact's first address |
| city | String | City name |
| comment | String | Comment added to the Contact profile |
| countryId | Object, Null | Country ID (see Countries resource) of the address |
| dateCreated | String | Date and time when the Contact was created |
| dateDeleted | String | Date and time when the Contact was deleted |
| dateUpdated | String | Date and time when the Contact was last updated |
| deleted | boolean | If true, the Contact has been deleted and archived |
| String | Contact's email address | |
| email2 | String | Contact's second email address |
| email3 | String | Contact's third email address |
| extId | String | External ID of the Contact from a third party system (ERP, CRM, Accounting System) |
| fax | String | Contact's fax number |
| firstName | String | Contact's first name |
| gender | Integer | Male -> 0 or female -> 1 |
| id | Integer | Unique identifier for the Contact in ForceManager |
| lastName | String | Contact's last name |
| String | Contact's LinkedIn profile name | |
| permissionLevel | String | Defines the visibility of the Contact. Set from 1 to 5 being 5 the highest level of permission |
| phone1 | String | Contact's first phone number |
| phone2 | String | Contact's second phone number |
| postcode | String | Postcode of the Contact address |
| readOnly | boolean | If true, the Contact cannot be modified or deleted |
| region | String | Region/State name referred to the address |
| salesRepId | Object, Null | Contact responsible for the Contact |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Contact |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Contact |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Contact |
| skype | String | Contact's Skype name |
| typeId | Object, Null | Contact Type (see Type resource) |
| UseCompanyAddress | Boolean | If true, Contact's address is the one of the associated Account |
| birthday | String | Contact's birthday |
| marketingCommunications | Boolean | If true, Contact can receive marketing communications |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contacts/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contacts/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contacts/{ID}",
headers=headers
)
data = response.json(){
"UseCompanyAddress": true,
"accountId": {
"id": 1,
"value": ""
},
"address1": "2765 Smith Street",
"birthday": "2021-10-02T00:00:00Z",
"city": "St. Louis",
"comment": "Very professional",
"countryId": {
"id": 75,
"value": "United States"
},
"dateCreated": "2021-12-16T14:05:53.027Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"email": "j.doe@email.com",
"email2": null,
"email3": null,
"extId": null,
"fax": "+39 789-5642",
"firstName": "John",
"gender": {
"id": 0,
"value": "Male"
},
"id": 287,
"lastName": "Doe",
"linkedin": "John_Doe",
"marketingCommunications": true,
"permissionLevel": 2,
"phone1": "+39 687-9234",
"phone2": "+39 982-6501",
"postcode": "63124",
"readOnly": false,
"region": "MO",
"salesRepId": {
"id": 310,
"value": ""
},
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"skype": "John_Doe",
"typeId": {
"id": 9,
"value": "Department of Administration"
}
}https://api.forcemanager.com/api/v4/contacts/{ID} This endpoint allows you to update a specific Contact. If the specified Contact does not exist, the response will be a "bad request".
You will only be able to update a Contact after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Contact. In order to update a Contact, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | Account to whom the Contact is linked to (see Accounts resource) |
| address1 | String | Contact's first address |
| city | String | City name |
| comment | String | Comment added to the Contact profile |
| countryId | Integer | Country ID (see Countries resource) of the address |
| String | Contact's email address | |
| email2 | String | Contact's second email address |
| email3 | String | Contact's third email address |
| extId | String | External ID of the Contact from a third party system (ERP, CRM, Accounting System) |
| fax | String | Contact's fax number |
| firstName | String | Contact's first name |
| gender | Integer | Male -> 0 or female -> 1 |
| lastName | String | Contact's last name |
| String | Contact's LinkedIn profile name | |
| permissionLevel | String | Defines the visibility of the Contact. Set from 1 to 5 being 5 the highest level of permission |
| phone1 | String | Contact's first phone number |
| phone2 | String | Contact's second phone number |
| postcode | String | Postcode of the Contact address |
| readOnly | boolean | If true, the Contact cannot be modified or deleted |
| region | String | Region/State name referred to the address |
| salesRepId | Object, Null | Contact responsible for the Contact |
| skype | String | Contact's Skype name |
| typeId | Integer | Contact Type (see Type resource) |
| UseCompanyAddress | Boolean | If true, Contact's address is the one of the associated Account |
| birthday | String | Contact's birthday |
| marketingCommunications | Boolean | If true, Contact can receive marketing communications |
RESPONSE
Returns a JSON with information about the Contact just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contacts/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "address1": "22, Oxford Lane", "city": "Chicago" }'const response = await fetch("https://api.forcemanager.com/api/v4/contacts/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"address1\": \"22, Oxford Lane\",\n \"city\": \"Chicago\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"address1\": \"22, Oxford Lane\",\n \"city\": \"Chicago\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/contacts/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/contacts/{ID} This endpoint allows you to delete a specific Contact from the user's ForceManager account database. If the specified Contact does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Contacts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Contact to delete |
Returns a JSON with information about the Contact just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contacts/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contacts/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/contacts/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Types
https://api.forcemanager.com/api/v4/contactTypes/schema Returns properties object with the definition of each field in the Contact Types table.
You will only receive the Contact Types Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Contact Types Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactTypes/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contactTypes/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "contactTypes",
"type": "object"
}https://api.forcemanager.com/api/v4/contactTypes Returns all Contact Types available in the user's ForceManager implementation database.
You will only receive the List of Contact Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Contact Types available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Contact Types attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Contact Type is visible |
| dateCreated | String | Date and time when the Contact Type was created |
| dateDeleted | String | Date and time when the Contact Type was deleted |
| dateUpdated | String | Date and time when the Contact Type was last updated |
| deleted | Boolean | If true, the Contact Type has been deleted and archived |
| descriptionBR | String | Contact Type label in Brasilian Portuguese |
| descriptionDE | String | Contact Type label in German |
| descriptionDK | String | Contact Type label in Dutch |
| descriptionEN | String | Contact Type label in English |
| descriptionES | String | Contact Type label in Spanish |
| descriptionFR | String | Contact Type label in French |
| descriptionIT | String | Contact Type label in Italian |
| descriptionPT | String | Contact Type label in Portuguese |
| descriptionRU | String | Contact Type label in Russian |
| descriptionUS | String | Contact Type label in American English |
| id | Integer | Unique identifier for the Contact Type in ForceManager |
| order | Integer | The position of the Contact Type in the Contact Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Contact Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Contact Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Contact Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/contactTypes" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contactTypes",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Manager",
"descriptionDK": null,
"descriptionEN": "Manager",
"descriptionES": "Gerente",
"descriptionFR": "Directeur",
"descriptionIT": "Manager",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2020-07-15T16:57:32.173Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Eigentümer",
"descriptionDK": null,
"descriptionEN": "Owner",
"descriptionES": "Propietario",
"descriptionFR": "Propriétaire",
"descriptionIT": "Proprietario",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Chefeinkäufer",
"descriptionDK": null,
"descriptionEN": "Head buyer",
"descriptionES": "Jefe Compras",
"descriptionFR": "Directeur des achats",
"descriptionIT": "Direttore Acquisti",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Verkaufsleiter",
"descriptionDK": null,
"descriptionEN": "Sales Director",
"descriptionES": "Dir. Comercial",
"descriptionFR": "Directeur Commercial",
"descriptionIT": "Dir. Commerciale",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 5,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Abteilung Vertrieb und Verkauf",
"descriptionDK": null,
"descriptionEN": "Commercial Department",
"descriptionES": "Dpt. Comercial",
"descriptionFR": "Dpt. Commercial",
"descriptionIT": "Dipart. Commerciale",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 6,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "EDV-Abteilung",
"descriptionDK": null,
"descriptionEN": "Systems Department",
"descriptionES": "Dpt. Sistemas",
"descriptionFR": "Dpt. Systèmes",
"descriptionIT": "Dipart. Sistemi",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 7,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Abteilung Einkauf",
"descriptionDK": null,
"descriptionEN": "Purchasing Department",
"descriptionES": "Dpt. Compras",
"descriptionFR": "Dpt. Achats",
"descriptionIT": "Dipart. Acquisti",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 8,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Verwaltungsabteilung",
"descriptionDK": null,
"descriptionEN": "Department of Administration",
"descriptionES": "Dpt. Admon",
"descriptionFR": "Dpt. Administration",
"descriptionIT": "Dipart. Amministrazione",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 9,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Marketingabteilung",
"descriptionDK": null,
"descriptionEN": "Marketing department",
"descriptionES": "Dpt. Marqueting",
"descriptionFR": "Dpt. Marketing",
"descriptionIT": "Dipart. Marketing",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 10,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Sonstige",
"descriptionDK": null,
"descriptionEN": "Other",
"descriptionES": "Otro",
"descriptionFR": "Autre",
"descriptionIT": "Altro",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 11,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Partner",
"descriptionDK": null,
"descriptionEN": "Partner",
"descriptionES": "Socio",
"descriptionFR": "Partenaire",
"descriptionIT": "Socio",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 12,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.14Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.14Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "EDV-Leiter",
"descriptionDK": null,
"descriptionEN": "Systems manager",
"descriptionES": "Dir. Sistemas",
"descriptionFR": "Directeur des Systèmes",
"descriptionIT": "Dir. Sistemi",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 13,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
},
{
"branchVisibility": null,
"dateCreated": "2009-05-22T18:15:37Z",
"dateDeleted": null,
"dateUpdated": "2009-05-22T18:15:37Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Finanzleiter",
"descriptionDK": null,
"descriptionEN": "Chief Financial Officer",
"descriptionES": "Dir. Financiero",
"descriptionFR": "Directeur Administratif et Financier (DAF)",
"descriptionIT": "Dir. Finanziario",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 14,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
}
]https://api.forcemanager.com/api/v4/contactTypes This endpoint allows you to create a Contact Type based on JSON input.
You will only be able to create a Contact Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Contact Type is visible |
| descriptionBR | String | Contact Type label in Brasilian Portuguese |
| descriptionDE | String | Contact Type label in German |
| descriptionDK | String | Contact Type label in Dutch |
| descriptionEN (Required) | String | Contact Type label in English |
| descriptionES | String | Contact Type label in Spanish |
| descriptionFR | String | Contact Type label in French |
| descriptionIT | String | Contact Type label in Italian |
| descriptionPT | String | Contact Type label in Portuguese |
| descriptionRU | String | Contact Type label in Russian |
| descriptionUS | String | Contact Type label in American English |
| order | Integer | The position of the Contact Type in the Contact Types value list |
RESPONSE
Returns a JSON with information about the Contact Type just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Contact Type |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactTypes" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Sales Director" }'const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Sales Director\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Sales Director\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/contactTypes",
headers=headers, json=json_body
)
data = response.json(){
"id": 15,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/contactTypes/{ID} This endpoint retrieves data of a specific Contact Type based on JSON input. The API returns a single Contact Type available to the user in the Value List, according to the unique ID provided. If the specified Contact Type does not exist, the response will be a "bad request".
You will only receive the Contact Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Contact Type |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Contact Type is visible |
| dateCreated | String | Date and time when the Contact Type was created |
| dateDeleted | String | Date and time when the Contact Type was deleted |
| dateUpdated | String | Date and time when the Contact Type was last updated |
| deleted | Boolean | If true, the Contact Type has been deleted and archived |
| descriptionBR | String | Contact Type label in Brasilian Portuguese |
| descriptionDE | String | Contact Type label in German |
| descriptionDK | String | Contact Type label in Dutch |
| descriptionEN | String | Contact Type label in English |
| descriptionES | String | Contact Type label in Spanish |
| descriptionFR | String | Contact Type label in French |
| descriptionIT | String | Contact Type label in Italian |
| descriptionPT | String | Contact Type label in Portuguese |
| descriptionRU | String | Contact Type label in Russian |
| descriptionUS | String | Contact Type label in American English |
| id | Integer | Unique identifier for the Contact Type in ForceManager |
| order | Integer | The position of the Contact Type in the Contact Typees value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Contact Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Contact Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Contact Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactTypes/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contactTypes/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": null,
"dateCreated": "2009-05-22T18:15:37Z",
"dateDeleted": null,
"dateUpdated": "2009-05-22T18:15:37Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Finanzleiter",
"descriptionDK": null,
"descriptionEN": "Chief Financial Officer",
"descriptionES": "Dir. Financiero",
"descriptionFR": "Directeur Administratif et Financier (DAF)",
"descriptionIT": "Dir. Finanziario",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 14,
"order": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1
}https://api.forcemanager.com/api/v4/contactTypes/{ID} This endpoint allows you to update a specific Contact Type. If the specified Contact Type does not exist, the response will be a "bad request".
You will only be able to update a Contact Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Contact Type. In order to update a Contact Type, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Contact Type is visible |
| descriptionBR | String | Contact Type label in Brasilian Portuguese |
| descriptionDE | String | Contact Type label in German |
| descriptionDK | String | Contact Type label in Dutch |
| descriptionEN | String | Contact Type label in English |
| descriptionES | String | Contact Type label in Spanish |
| descriptionFR | String | Contact Type label in French |
| descriptionIT | String | Contact Type label in Italian |
| descriptionPT | String | Contact Type label in Portuguese |
| descriptionRU | String | Contact Type label in Russian |
| descriptionUS | String | Contact Type label in American English |
| order | Integer | The position of the Contact Type in the Contact Types value list |
RESPONSE
Returns a JSON with information about the Contact Type just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactTypes/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Partner" }'const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Partner\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Partner\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/contactTypes/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/contactTypes/{ID} This endpoint allows you to delete a specific Contact Type from the user's ForceManager implementation database. If the specified Contact Type does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Contact Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Contact Type to delete |
RESPONSE
Returns a JSON with information about the Contact Type just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactTypes/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contactTypes/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/contactTypes/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Countries
https://api.forcemanager.com/api/v4/countries/schema Returns properties object with the definition of each field in the Countries table.
You will only receive the Countries Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Countries Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/countries/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/countries/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/countries/schema",
headers=headers
)
data = response.json(){
"properties": {
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionde": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionen": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionfr": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionit": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionpt": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"iso2": {
"description": "",
"maxLength": 2,
"readOnly": false,
"type": [
"string",
"null"
]
},
"iso3": {
"description": "",
"maxLength": 3,
"readOnly": false,
"type": [
"string",
"null"
]
},
"isoNum": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"phoneCode": {
"description": "",
"maxLength": 10,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"strName": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
}
},
"required": [],
"title": "countries",
"type": "object"
}https://api.forcemanager.com/api/v4/countries Returns all Countries available. Countries are basically needed for the geolocalized data (e.g. Accounts, Opportunities, Activities) in which a full address need to be specified.
You will only receive the Countries after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Countries available for the value list.
List of the supported Countries attributes:
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the Country was created |
| dateDeleted | String | Date and time when the Country was deleted |
| dateUpdated | String | Date and time when the Country was last updated |
| deleted | Boolean | If true, the Country has been deleted and archived |
| descriptionBR | String | Country name in Brasilian Portuguese |
| descriptionDE | String | Country name in German |
| descriptionDK | String | Country name in Dutch |
| descriptionEN | String | Country name in English |
| descriptionES | String | Country name in Spanish |
| descriptionFR | String | Country name in French |
| descriptionIT | String | Country name in Italian |
| descriptionPT | String | Country name in Portuguese |
| descriptionRU | String | Country name in Russian |
| descriptionUS | String | Country name in American English |
| id | Integer | Unique identifier for the Country in ForceManager |
| iso2 | String | The ISO 3166 alpha-2 code of the Country |
| iso3 | String | The ISO 3166 alpha-3 code of the Country |
| isoNum | Integer | The ISO 3166 numeric code of the Country |
| phoneCode | String | Phone code of the specific the Country |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Country |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Country |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Country |
| strName | String | Generic Country name |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/countries" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/countries", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/countries",
headers=headers
)
data = response.json()[
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Afeganistão",
"descriptionDK": "Afghanistan",
"descriptionRU": null,
"descriptionUS": "Afghanistan",
"descriptionde": "Afghanistan",
"descriptionen": "Afghanistan",
"descriptionfr": "Afghanistan",
"descriptionit": "Afghanistan",
"descriptionpt": "Afeganistão",
"id": 1,
"iso2": "AF",
"iso3": "AFG",
"isoNum": 4,
"phoneCode": "93",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Afganistán"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Ilhas Alanda",
"descriptionDK": "Ålandsøerne",
"descriptionRU": null,
"descriptionUS": "Aland Islands",
"descriptionde": "Ålandinseln",
"descriptionen": "Aland Islands",
"descriptionfr": "Îles Åland",
"descriptionit": "Isole Aland",
"descriptionpt": "Ilhas Alanda",
"id": 2,
"iso2": "AX",
"iso3": "ALA",
"isoNum": 248,
"phoneCode": "358",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Islas Gland"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Albânia",
"descriptionDK": "Albanien",
"descriptionRU": null,
"descriptionUS": "Albania",
"descriptionde": "Albanien",
"descriptionen": "Albania",
"descriptionfr": "Albanie",
"descriptionit": "Albania",
"descriptionpt": "Albânia",
"id": 3,
"iso2": "AL",
"iso3": "ALB",
"isoNum": 8,
"phoneCode": "355",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Albania"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Alemanha",
"descriptionDK": "Tyskland",
"descriptionRU": null,
"descriptionUS": "Germany",
"descriptionde": "Deutschland",
"descriptionen": "Germany",
"descriptionfr": "Allemagne",
"descriptionit": "Germania",
"descriptionpt": "Alemanha",
"id": 4,
"iso2": "DE",
"iso3": "DEU",
"isoNum": 276,
"phoneCode": "49",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Alemania"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Andorra",
"descriptionDK": "Andorra",
"descriptionRU": null,
"descriptionUS": "Andorra",
"descriptionde": "Andorra",
"descriptionen": "Andorra",
"descriptionfr": "Andorre",
"descriptionit": "Andorra",
"descriptionpt": "Andorra",
"id": 5,
"iso2": "AD",
"iso3": "AND",
"isoNum": 20,
"phoneCode": "376",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Andorra"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Angola",
"descriptionDK": "Angola",
"descriptionRU": null,
"descriptionUS": "Angola",
"descriptionde": "Angola",
"descriptionen": "Angola",
"descriptionfr": "Angola",
"descriptionit": "Angola",
"descriptionpt": "Angola",
"id": 6,
"iso2": "AO",
"iso3": "AGO",
"isoNum": 24,
"phoneCode": "244",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Angola"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Anguilha",
"descriptionDK": "Anguilla",
"descriptionRU": null,
"descriptionUS": "Anguilla",
"descriptionde": "Anguilla",
"descriptionen": "Anguilla",
"descriptionfr": "Anguilla",
"descriptionit": "Anguilla",
"descriptionpt": "Anguilha",
"id": 7,
"iso2": "AI",
"iso3": "AIA",
"isoNum": 660,
"phoneCode": "1264",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Anguilla"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Antárctica",
"descriptionDK": "Antarktis",
"descriptionRU": null,
"descriptionUS": "Antarctica",
"descriptionde": "Antarktis",
"descriptionen": "Antarctica",
"descriptionfr": "Antarctique",
"descriptionit": "Antartide",
"descriptionpt": "Antárctica",
"id": 8,
"iso2": "AQ",
"iso3": "ATA",
"isoNum": 10,
"phoneCode": "672",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Antártida"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Antígua e Barbuda",
"descriptionDK": "Antigua og Barbuda",
"descriptionRU": null,
"descriptionUS": "Antigua and Barbuda",
"descriptionde": "Antigua und Barbuda",
"descriptionen": "Antigua and Barbuda",
"descriptionfr": "Antigua-et-Barbuda",
"descriptionit": "Antigua e Barbuda",
"descriptionpt": "Antígua e Barbuda",
"id": 9,
"iso2": "AG",
"iso3": "ATG",
"isoNum": 28,
"phoneCode": "1268",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Antigua y Barbuda"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": "2019-03-07T10:30:34.813Z",
"dateUpdated": "2017-02-06T17:27:58.523Z",
"deleted": true,
"descriptionBR": "Antilhas Holandesas",
"descriptionDK": "Hollandske Antiller",
"descriptionRU": null,
"descriptionUS": "Antillas Holandesas",
"descriptionde": null,
"descriptionen": "Antillas Holandesas",
"descriptionfr": "Antilles néerlandaises",
"descriptionit": "Antille Olandesi",
"descriptionpt": "Antilhas Holandesas",
"id": 10,
"iso2": "AN",
"iso3": "ANT",
"isoNum": 530,
"phoneCode": "599",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Antillas Holandesas"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Arábia Saudita",
"descriptionDK": "Saudi Arabien",
"descriptionRU": null,
"descriptionUS": "Saudi Arabia",
"descriptionde": "Saudi-Arabien",
"descriptionen": "Saudi Arabia",
"descriptionfr": "Arabie saoudite",
"descriptionit": "Arabia Saudita",
"descriptionpt": "Arábia Saudita",
"id": 11,
"iso2": "SA",
"iso3": "SAU",
"isoNum": 682,
"phoneCode": "966",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Arabia Saudí"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Argélia",
"descriptionDK": "Algeriet",
"descriptionRU": null,
"descriptionUS": "Algeria",
"descriptionde": "Algerien",
"descriptionen": "Algeria",
"descriptionfr": "Algérie",
"descriptionit": "Algeria",
"descriptionpt": "Argélia",
"id": 12,
"iso2": "DZ",
"iso3": "DZA",
"isoNum": 12,
"phoneCode": "213",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Argelia"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Argentina",
"descriptionDK": "Argentina",
"descriptionRU": null,
"descriptionUS": "Argentina",
"descriptionde": "Argentinien",
"descriptionen": "Argentina",
"descriptionfr": "Argentine",
"descriptionit": "Argentina",
"descriptionpt": "Argentina",
"id": 13,
"iso2": "AR",
"iso3": "ARG",
"isoNum": 32,
"phoneCode": "54",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Argentina"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Arménia",
"descriptionDK": "Armenien",
"descriptionRU": null,
"descriptionUS": "Armenia",
"descriptionde": "Armenien",
"descriptionen": "Armenia",
"descriptionfr": "Arménie",
"descriptionit": "Armenia",
"descriptionpt": "Arménia",
"id": 14,
"iso2": "AM",
"iso3": "ARM",
"isoNum": 51,
"phoneCode": "374",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Armenia"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Aruba",
"descriptionDK": "Aruba",
"descriptionRU": null,
"descriptionUS": "Aruba",
"descriptionde": "Aruba",
"descriptionen": "Aruba",
"descriptionfr": "Aruba",
"descriptionit": "Aruba",
"descriptionpt": "Aruba",
"id": 15,
"iso2": "AW",
"iso3": "ABW",
"isoNum": 533,
"phoneCode": "297",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Aruba"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Austrália",
"descriptionDK": "Australien",
"descriptionRU": null,
"descriptionUS": "Australia",
"descriptionde": "Australien",
"descriptionen": "Australia",
"descriptionfr": "Australie",
"descriptionit": "Australia",
"descriptionpt": "Austrália",
"id": 16,
"iso2": "AU",
"iso3": "AUS",
"isoNum": 36,
"phoneCode": "61",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Australia"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Áustria",
"descriptionDK": "Østrig",
"descriptionRU": null,
"descriptionUS": "Austria",
"descriptionde": "Österreich",
"descriptionen": "Austria",
"descriptionfr": "Autriche",
"descriptionit": "Austria",
"descriptionpt": "Áustria",
"id": 17,
"iso2": "AT",
"iso3": "AUT",
"isoNum": 40,
"phoneCode": "43",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Austria"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Azerbeijão",
"descriptionDK": "Aserbajdsjan",
"descriptionRU": null,
"descriptionUS": "Azerbaijan",
"descriptionde": "Aserbaidschan",
"descriptionen": "Azerbaijan",
"descriptionfr": "Azerbaïdjan",
"descriptionit": "Azerbaigian",
"descriptionpt": "Azerbeijão",
"id": 18,
"iso2": "AZ",
"iso3": "AZE",
"isoNum": 31,
"phoneCode": "994",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Azerbaiyán"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Baamas",
"descriptionDK": "Bahamas",
"descriptionRU": null,
"descriptionUS": "Bahamas",
"descriptionde": "Bahamas",
"descriptionen": "Bahamas",
"descriptionfr": "Bahamas",
"descriptionit": "Bahamas",
"descriptionpt": "Baamas",
"id": 19,
"iso2": "BS",
"iso3": "BHS",
"isoNum": 44,
"phoneCode": "1242",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bahamas"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bahrein",
"descriptionDK": "Bahrain",
"descriptionRU": null,
"descriptionUS": "Bahrain",
"descriptionde": "Bahrain",
"descriptionen": "Bahrain",
"descriptionfr": "Bahreïn",
"descriptionit": "Bahrein",
"descriptionpt": "Bahrein",
"id": 20,
"iso2": "BH",
"iso3": "BHR",
"isoNum": 48,
"phoneCode": "973",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bahréin"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bangladeche",
"descriptionDK": "Bangladesh",
"descriptionRU": null,
"descriptionUS": "Bangladesh",
"descriptionde": "Bangladesch",
"descriptionen": "Bangladesh",
"descriptionfr": "Bangladesh",
"descriptionit": "Bangladesh",
"descriptionpt": "Bangladeche",
"id": 21,
"iso2": "BD",
"iso3": "BGD",
"isoNum": 50,
"phoneCode": "880",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bangladesh"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Barbados",
"descriptionDK": "Barbados",
"descriptionRU": null,
"descriptionUS": "Barbados",
"descriptionde": "Barbados",
"descriptionen": "Barbados",
"descriptionfr": "Barbade",
"descriptionit": "Barbados",
"descriptionpt": "Barbados",
"id": 22,
"iso2": "BB",
"iso3": "BRB",
"isoNum": 52,
"phoneCode": "1246",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Barbados"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bielorrússia",
"descriptionDK": "Hviderusland",
"descriptionRU": null,
"descriptionUS": "Belarus",
"descriptionde": "Belarus (Weißrussland)",
"descriptionen": "Belarus",
"descriptionfr": "Bélarus",
"descriptionit": "Bielorussia",
"descriptionpt": "Bielorrússia",
"id": 23,
"iso2": "BY",
"iso3": "BLR",
"isoNum": 112,
"phoneCode": "375",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bielorrusia"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bélgica",
"descriptionDK": "Belgien",
"descriptionRU": null,
"descriptionUS": "Belgium",
"descriptionde": "Belgien",
"descriptionen": "Belgium",
"descriptionfr": "Belgique",
"descriptionit": "Belgio",
"descriptionpt": "Bélgica",
"id": 24,
"iso2": "BE",
"iso3": "BEL",
"isoNum": 56,
"phoneCode": "32",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bélgica"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Belize",
"descriptionDK": "Belize",
"descriptionRU": null,
"descriptionUS": "Belize",
"descriptionde": "Belize",
"descriptionen": "Belize",
"descriptionfr": "Belize",
"descriptionit": "Belize",
"descriptionpt": "Belize",
"id": 25,
"iso2": "BZ",
"iso3": "BLZ",
"isoNum": 84,
"phoneCode": "501",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Belice"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Benim",
"descriptionDK": "Benin",
"descriptionRU": null,
"descriptionUS": "Benin",
"descriptionde": "Benin",
"descriptionen": "Benin",
"descriptionfr": "Bénin",
"descriptionit": "Benin",
"descriptionpt": "Benim",
"id": 26,
"iso2": "BJ",
"iso3": "BEN",
"isoNum": 204,
"phoneCode": "229",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Benin"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bermudas",
"descriptionDK": "Bermuda",
"descriptionRU": null,
"descriptionUS": "Bermuda",
"descriptionde": "Bermuda",
"descriptionen": "Bermuda",
"descriptionfr": "Bermudes",
"descriptionit": "Bermuda",
"descriptionpt": "Bermudas",
"id": 27,
"iso2": "BM",
"iso3": "BMU",
"isoNum": 60,
"phoneCode": "1441",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bermudas"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Butão",
"descriptionDK": "Bhutan",
"descriptionRU": null,
"descriptionUS": "Bhutan",
"descriptionde": "Bhutan",
"descriptionen": "Bhutan",
"descriptionfr": "Bhoutan",
"descriptionit": "Bhutan",
"descriptionpt": "Butão",
"id": 28,
"iso2": "BT",
"iso3": "BTN",
"isoNum": 64,
"phoneCode": "975",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bhután"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bolívia",
"descriptionDK": "Bolivia",
"descriptionRU": null,
"descriptionUS": "Bolivia, Plurinational State of",
"descriptionde": "Bolivien, Plurinationaler Staat",
"descriptionen": "Bolivia, Plurinational State of",
"descriptionfr": "Bolivie",
"descriptionit": "Bolivia",
"descriptionpt": "Bolívia",
"id": 29,
"iso2": "BO",
"iso3": "BOL",
"isoNum": 68,
"phoneCode": "591",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bolivia"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bósnia-Herzegovina",
"descriptionDK": "Bosnien Hercegovina",
"descriptionRU": null,
"descriptionUS": "Bosnia and Herzegovina",
"descriptionde": "Bosnien und Herzegowina",
"descriptionen": "Bosnia and Herzegovina",
"descriptionfr": "Bosnie-Herzégovine",
"descriptionit": "Bosnia Erzegovina",
"descriptionpt": "Bósnia-Herzegovina",
"id": 30,
"iso2": "BA",
"iso3": "BIH",
"isoNum": 70,
"phoneCode": "387",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bosnia y Herzegovina"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Botswana",
"descriptionDK": "Botswana",
"descriptionRU": null,
"descriptionUS": "Botswana",
"descriptionde": "Botsuana",
"descriptionen": "Botswana",
"descriptionfr": "Botswana",
"descriptionit": "Botswana",
"descriptionpt": "Botswana",
"id": 31,
"iso2": "BW",
"iso3": "BWA",
"isoNum": 72,
"phoneCode": "267",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Botsuana"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Ilha Bouvet",
"descriptionDK": "Bouvetøen",
"descriptionRU": null,
"descriptionUS": "Bouvet Island",
"descriptionde": "Bouvetinsel",
"descriptionen": "Bouvet Island",
"descriptionfr": "Île Bouvet",
"descriptionit": "Isola Bouvet",
"descriptionpt": "Ilha Bouvet",
"id": 32,
"iso2": "BV",
"iso3": "BVT",
"isoNum": 74,
"phoneCode": "",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Isla Bouvet"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Brasil",
"descriptionDK": "Brasilien",
"descriptionRU": null,
"descriptionUS": "Brazil",
"descriptionde": "Brasilien",
"descriptionen": "Brazil",
"descriptionfr": "Brésil",
"descriptionit": "Brasile",
"descriptionpt": "Brasil",
"id": 33,
"iso2": "BR",
"iso3": "BRA",
"isoNum": 76,
"phoneCode": "55",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Brasil"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Brunei",
"descriptionDK": "Brunei",
"descriptionRU": null,
"descriptionUS": "Brunei Darussalam",
"descriptionde": "Brunei Darussalam",
"descriptionen": "Brunei Darussalam",
"descriptionfr": "Brunéi Darussalam",
"descriptionit": "Brunei",
"descriptionpt": "Brunei",
"id": 34,
"iso2": "BN",
"iso3": "BRN",
"isoNum": 96,
"phoneCode": "673",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Brunéi"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Bulgária",
"descriptionDK": "Bulgarien",
"descriptionRU": null,
"descriptionUS": "Bulgaria",
"descriptionde": "Bulgarien",
"descriptionen": "Bulgaria",
"descriptionfr": "Bulgarie",
"descriptionit": "Bulgaria",
"descriptionpt": "Bulgária",
"id": 35,
"iso2": "BG",
"iso3": "BGR",
"isoNum": 100,
"phoneCode": "359",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Bulgaria"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Burkina-Faso",
"descriptionDK": "Burkina Faso",
"descriptionRU": null,
"descriptionUS": "Burkina Faso",
"descriptionde": "Burkina Faso",
"descriptionen": "Burkina Faso",
"descriptionfr": "Burkina Faso",
"descriptionit": "Burkina Faso",
"descriptionpt": "Burkina-Faso",
"id": 36,
"iso2": "BF",
"iso3": "BFA",
"isoNum": 854,
"phoneCode": "226",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Burkina Faso"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Burundi",
"descriptionDK": "Burundi",
"descriptionRU": null,
"descriptionUS": "Burundi",
"descriptionde": "Burundi",
"descriptionen": "Burundi",
"descriptionfr": "Burundi",
"descriptionit": "Burundi",
"descriptionpt": "Burundi",
"id": 37,
"iso2": "BI",
"iso3": "BDI",
"isoNum": 108,
"phoneCode": "257",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Burundi"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Cabo Verde",
"descriptionDK": "Cape Verde",
"descriptionRU": null,
"descriptionUS": "Cape Verde",
"descriptionde": "Kap Verde",
"descriptionen": "Cape Verde",
"descriptionfr": "Cap-Vert",
"descriptionit": "Capo Verde",
"descriptionpt": "Cabo Verde",
"id": 38,
"iso2": "CV",
"iso3": "CPV",
"isoNum": 132,
"phoneCode": "238",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Cabo Verde"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Ilhas Caimão",
"descriptionDK": "Cayman Islands",
"descriptionRU": null,
"descriptionUS": "Cayman Islands",
"descriptionde": "Kaimaninseln",
"descriptionen": "Cayman Islands",
"descriptionfr": "Îles Caïmans",
"descriptionit": "Isole Cayman",
"descriptionpt": "Ilhas Caimão",
"id": 39,
"iso2": "KY",
"iso3": "CYM",
"isoNum": 136,
"phoneCode": "1345",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Islas Caimán"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Camboja",
"descriptionDK": "Cambodia",
"descriptionRU": null,
"descriptionUS": "Cambodia",
"descriptionde": "Kambodscha",
"descriptionen": "Cambodia",
"descriptionfr": "Cambodge",
"descriptionit": "Cambogia",
"descriptionpt": "Camboja",
"id": 40,
"iso2": "KH",
"iso3": "KHM",
"isoNum": 116,
"phoneCode": "855",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Camboya"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "República dos Camarões",
"descriptionDK": "Cameroun",
"descriptionRU": null,
"descriptionUS": "Cameroon",
"descriptionde": "Kamerun",
"descriptionen": "Cameroon",
"descriptionfr": "Cameroun",
"descriptionit": "Camerun",
"descriptionpt": "República dos Camarões",
"id": 41,
"iso2": "CM",
"iso3": "CMR",
"isoNum": 120,
"phoneCode": "237",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Camerún"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Canadá",
"descriptionDK": "Canada",
"descriptionRU": null,
"descriptionUS": "Canada",
"descriptionde": "Kanada",
"descriptionen": "Canada",
"descriptionfr": "Canada",
"descriptionit": "Canada",
"descriptionpt": "Canadá",
"id": 42,
"iso2": "CA",
"iso3": "CAN",
"isoNum": 124,
"phoneCode": "1",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Canadá"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "República Centro-Africana",
"descriptionDK": "Centralafrikanske Republik",
"descriptionRU": null,
"descriptionUS": "Central African Republic",
"descriptionde": "Zentralafrikanische Republik",
"descriptionen": "Central African Republic",
"descriptionfr": "République centrafricaine",
"descriptionit": "Repubblica Centrafricana",
"descriptionpt": "República Centro-Africana",
"id": 43,
"iso2": "CF",
"iso3": "CAF",
"isoNum": 140,
"phoneCode": "236",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "República Centroafricana"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Chade",
"descriptionDK": "Chad",
"descriptionRU": null,
"descriptionUS": "Chad",
"descriptionde": "Tschad",
"descriptionen": "Chad",
"descriptionfr": "Tchad",
"descriptionit": "Ciad",
"descriptionpt": "Chade",
"id": 44,
"iso2": "TD",
"iso3": "TCD",
"isoNum": 148,
"phoneCode": "235",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Chad"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "República Checa",
"descriptionDK": "Tjekkiet",
"descriptionRU": null,
"descriptionUS": "Czech Republic",
"descriptionde": "Tschechische Republik",
"descriptionen": "Czech Republic",
"descriptionfr": "République tchèque",
"descriptionit": "Repubblica Ceca",
"descriptionpt": "República Checa",
"id": 45,
"iso2": "CZ",
"iso3": "CZE",
"isoNum": 203,
"phoneCode": "420",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "República Checa"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Chile",
"descriptionDK": "Chile",
"descriptionRU": null,
"descriptionUS": "Chile",
"descriptionde": "Chile",
"descriptionen": "Chile",
"descriptionfr": "Chili",
"descriptionit": "Cile",
"descriptionpt": "Chile",
"id": 46,
"iso2": "CL",
"iso3": "CHL",
"isoNum": 152,
"phoneCode": "56",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Chile"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "China",
"descriptionDK": "Kina",
"descriptionRU": null,
"descriptionUS": "China",
"descriptionde": "China",
"descriptionen": "China",
"descriptionfr": "Chine",
"descriptionit": "Cina",
"descriptionpt": "China",
"id": 47,
"iso2": "CN",
"iso3": "CHN",
"isoNum": 156,
"phoneCode": "86",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "China"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Chipre",
"descriptionDK": "Cypern",
"descriptionRU": null,
"descriptionUS": "Cyprus",
"descriptionde": "Zypern",
"descriptionen": "Cyprus",
"descriptionfr": "Chypre",
"descriptionit": "Cipro",
"descriptionpt": "Chipre",
"id": 48,
"iso2": "CY",
"iso3": "CYP",
"isoNum": 196,
"phoneCode": "357",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Chipre"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Ilha do Natal",
"descriptionDK": null,
"descriptionRU": null,
"descriptionUS": "Christmas Island",
"descriptionde": "Weihnachtsinsel",
"descriptionen": "Christmas Island",
"descriptionfr": "Île Christmas",
"descriptionit": "Isola di Christmas",
"descriptionpt": "Ilha do Natal",
"id": 49,
"iso2": "CX",
"iso3": "CXR",
"isoNum": 162,
"phoneCode": "61",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Isla de Navidad"
},
{
"dateCreated": "2012-01-27T12:22:54.063Z",
"dateDeleted": null,
"dateUpdated": "2019-03-21T11:39:01.32Z",
"deleted": false,
"descriptionBR": "Vaticano",
"descriptionDK": "Vatikanstaten",
"descriptionRU": null,
"descriptionUS": "Holy See (Vatican City State)",
"descriptionde": "Der Heilige Stuhl (Vatikanstaat)",
"descriptionen": "Holy See (Vatican City State)",
"descriptionfr": "État de la Cité du Vatican",
"descriptionit": "Vaticano",
"descriptionpt": "Vaticano",
"id": 50,
"iso2": "VA",
"iso3": "VAT",
"isoNum": 336,
"phoneCode": "397",
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 1,
"strName": "Ciudad del Vaticano"
}
]Currencies
https://api.forcemanager.com/api/v4/currencies/schema Returns properties object with the definition of each field in the Currencies table.
You will only receive the Currencies Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Currencies Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/currencies/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/currencies/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/currencies/schema",
headers=headers
)
data = response.json(){
"properties": {
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"isoCode": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"symbol": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
}
},
"required": [
"descriptionES",
"symbol",
"isoCode"
],
"title": "currencies",
"type": "object"
}https://api.forcemanager.com/api/v4/currencies Returns all Currencies available. Currencies are needed for defining the measurement unit of the Opportunities.
You will only receive the Currencies after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Currencies available for the value list.
List of the supported Currencies attributes:
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the Currency was created |
| dateDeleted | String | Date and time when the Currency was deleted |
| dateUpdated | String | Date and time when the Currency was last updated |
| deleted | Boolean | If true, the Currency has been deleted and archived |
| descriptionBR | String | Currency name in Brasilian Portuguese |
| descriptionDE | String | Currency name in German |
| descriptionDK | String | Currency name in Dutch |
| descriptionEN | String | Currency name in English |
| descriptionES | String | Currency name in Spanish |
| descriptionFR | String | Currency name in French |
| descriptionIT | String | Currency name in Italian |
| descriptionPT | String | Currency name in Portuguese |
| descriptionRU | String | Currency name in Russian |
| descriptionUS | String | Currency name in American English |
| id | Integer | Unique identifier for the Currency in ForceManager |
| isoCode | String | The ISO 4217 code of the Currency |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Currency |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Currency |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Currency |
| symbol | String | The literal symbol of the Currency |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/currencies" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/currencies", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/currencies",
headers=headers
)
data = response.json()[
{
"dateCreated": null,
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Euro",
"descriptionDK": null,
"descriptionEN": "euro",
"descriptionES": "euro",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"isoCode": "eur",
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"symbol": "€"
},
{
"dateCreated": null,
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "US-Dollar",
"descriptionDK": null,
"descriptionEN": "dollar usa",
"descriptionES": "dollar usa",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"isoCode": "usd",
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"symbol": "$"
},
{
"dateCreated": null,
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Pfund Sterling",
"descriptionDK": null,
"descriptionEN": "pound sterling",
"descriptionES": "libra esterlina",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"isoCode": "gbp",
"salesRepIdCreated": null,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"symbol": "£"
}
]Documents
Entity
https://api.forcemanager.com/api/v4/documents Returns all Documents available in the user's ForceManager implementation database.
You will only receive the List of Documents after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/documents?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/documents?where= param1=value AND/OR param2=value2
You can filter Documents by dateCreated or dateUpdated, or size for example.
You can also organise and view the results for Documents in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/documents?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/documents?lang=VALUE
RESPONSE
This endpoint returns information about all Documents available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Documents attributes:
| Attribute | Type | Description |
|---|---|---|
| --- | --- | --- |
| accountId | Object, Null | The ID of the Account that Document belongs to (see Accounts resource) |
| activityId | Object, Null | The ID of the Activity that Document belongs to (see Activities resource) |
| billboardId | Object, Null | The ID of the News that Document belongs to (see News resource) |
| campaignId | Object, Null | The ID of the Campaign that Document belongs to (see Campaigns resource) |
| contactId | Object, Null | The ID of the Contact that Document belongs to (see Contacts resource) |
| opportunityId | Object, Null | The ID of the Opportunity that Document belongs to (see Opportunities resource) |
| salesOrderId | Object, Null | The ID of the Order that Document belongs to (see Orders resource) |
| folderId | Object, Null | The Folder Id that the Document belongs to (see Folders resource) |
| formId | Object, Null | The ID of the Form that Document belongs to to (see Forms resource) |
| dateCreated | String | Date and time when the Document was created |
| dateDeleted | String | Date and time when the Document was deleted |
| dateUpdated | String | Date and time when the Document was last updated |
| deleted | boolean | If true, the Document has been deleted and archived |
| description | String | The Document name. The user is gonna see this name. |
| extension | String | The Document extension (docx, pptx, pdf, xlsx, jpg, png...) |
| extId | String | External ID of the Document from a third party system (ERP, CRM, Accounting System) |
| hidden | Boolean | True if the Document is visible. Otherwise, false |
| id | Integer | Unique identifier for the Document in ForceManager |
| name | String | The original Document name. This is the stored name in ForceManager database |
| level | Integer | Defines the visibility of the Document. Set from 1 to 5 being 5 the highest level of permission |
| link | String | The url to retrieve the Document |
| userId | Integer | The ID of the User that upload the Document |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Document |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Document |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Document |
| size | Integer | The file size in bytes |
| carrousel | Boolean | True if the Document is a Product Carousel (see Carousels resource) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/documents" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/documents", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/documents",
headers=headers
)
data = response.json()[
{
"id": 14,
"description": "local_47a928b",
"name": "0000014.jpg",
"extension": "jpg",
"folderId": -1,
"opportunityId": -1,
"quoteId": -1,
"deleted": false,
"dateDeleted": null,
"userId": 103,
"size": 3615322,
"level": 2,
"accountId": -1,
"contactId": -1,
"activityId": -1,
"salesRepIdDeleted": null,
"salesRepIdCreated": 103,
"salesRepIdUpdated": 103,
"dateCreated": "2018-09-18T10:15:25.947Z",
"dateUpdated": "2018-09-18T10:15:26.473Z",
"extId": null,
"link": "https://forcemanager0001.s3.amazonaws.com/59340/0000014.jpg?AWSAccessKeyId=AKIAJ42UVINUBWRYEMMA&Expires=1567165253&Signature=jNTVTYe5efqavo4A0Asrsp5vDSs=",
"salesOrderId": -1,
"formId": 11,
"billboardId": -1,
"carrousel": false,
"campaignId": -1
},
{
"id": 19,
"description": "Design ticket categories",
"name": "0000019.docx",
"extension": "docx",
"folderId": 137,
"opportunityId": -1,
"quoteId": -1,
"deleted": false,
"dateDeleted": null,
"userId": 180,
"size": 17202,
"level": 2,
"accountId": -1,
"contactId": -1,
"activityId": -1,
"salesRepIdDeleted": null,
"salesRepIdCreated": 180,
"salesRepIdUpdated": 180,
"dateCreated": "2019-05-17T08:19:04.317Z",
"dateUpdated": "2019-05-17T08:19:08.01Z",
"extId": null,
"link": "https://forcemanager0001.s3.amazonaws.com/59340/0000019.docx?AWSAccessKeyId=AKIAJ42UVINUBWRYEMMA&Expires=1567165253&Signature=/936mcxdek3PYT9eCuJgN64upo0=",
"salesOrderId": -1,
"formId": -1,
"billboardId": -1,
"carrousel": false,
"campaignId": -1
}
]https://api.forcemanager.com/api/v4/documents This endpoint allows you to upload a Document based on JSON input.
You will only be able to upload a Document after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| folderId (Required) | String | Set the value -1 if you want to upload the Document in the Root folder, otherwise set the Folder's ID if you want to upload the file in a specific folder |
| name (Required) | String | The Document's name |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| locator | String | The url you should upload the Document (check table below). |
| id | Integer | The ID assigned to the Document in the ForceManager Database |
IMPORTANT: To upload your file to ForceManager storage you must do a PUT request with the binary data you want to upload and set the following headers:
| Attribute | Value | Description |
|---|---|---|
| Content-Type | application/octet-stream | Binary file specification |
| Content-Length | {file.size} | It is the size of the file you are going to upload, in bytes |
The endpoint to invoke with the PUT request is the one returned by this API call under the locator field.
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/documents" \
-X POST \
-H "Accept: */*" \
-d '{ "folderId": "-1", "name": "CashFlow_2021.xlsx" }'const response = await fetch("https://api.forcemanager.com/api/v4/documents", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"folderId\": \"-1\",\n \"name\": \"CashFlow_2021.xlsx\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"folderId\": \"-1\",\n \"name\": \"CashFlow_2021.xlsx\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/documents",
headers=headers, json=json_body
)
data = response.json()https://api.forcemanager.com/api/v4/VALUE/VALUE/documents Returns all Documents associated to the specific Resource (accounts, opportunities, salesOrders, ...) available in the user's ForceManager implementation database based on JSON input.
You will only receive the List of Documents after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/documents?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/documents?where= param1=value AND/OR param2=value2
You can filter Documents by dateCreated or dateUpdated, or size for example.
You can also organise and view the results for Documents in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/documents?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/documents?lang=VALUE
RESPONSE
This endpoint returns information about all Documents available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Documents attributes:
| Attribute | Type | Description |
|---|---|---|
| --- | --- | --- |
| accountId | Object, Null | The ID of the Account that Document belongs to (see Accounts resource) |
| activityId | Object, Null | The ID of the Activity that Document belongs to (see Activities resource) |
| billboardId | Object, Null | The ID of the News that Document belongs to (see News resource) |
| campaignId | Object, Null | The ID of the Campaign that Document belongs to (see Campaigns resource) |
| contactId | Object, Null | The ID of the Contact that Document belongs to (see Contacts resource) |
| opportunityId | Object, Null | The ID of the Opportunity that Document belongs to (see Opportunities resource) |
| salesOrderId | Object, Null | The ID of the Order that Document belongs to (see Orders resource) |
| folderId | Object, Null | The Folder Id that the Document belongs to (see Folders resource) |
| formId | Object, Null | The ID of the Form that Document belongs to to (see Forms resource) |
| dateCreated | String | Date and time when the Document was created |
| dateDeleted | String | Date and time when the Document was deleted |
| dateUpdated | String | Date and time when the Document was last updated |
| deleted | boolean | If true, the Document has been deleted and archived |
| description | String | The Document name. The user is gonna see this name. |
| extension | String | The Document extension (docx, pptx, pdf, xlsx, jpg, png...) |
| extId | String | External ID of the Document from a third party system (ERP, CRM, Accounting System) |
| hidden | Boolean | True if the Document is visible. Otherwise, false |
| id | Integer | Unique identifier for the Document in ForceManager |
| name | String | The original Document name. This is the stored name in ForceManager database |
| level | Integer | Defines the visibility of the Document. Set from 1 to 5 being 5 the highest level of permission |
| link | String | The url to retrieve the Document |
| userId | Integer | The ID of the User that upload the Document |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Document |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Document |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Document |
| size | Integer | The file size in bytes |
| carrousel | Boolean | True if the Document is a Product Carousel (see Carousels resource) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/VALUE/VALUE/documents" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/VALUE/documents", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/VALUE/VALUE/documents",
headers=headers
)
data = response.json()[
{
"id": 13,
"description": "local_temp_image_1534944044.253842",
"name": "0000013.jpg",
"extension": "jpg",
"folderId": -1,
"opportunityId": -1,
"quoteId": -1,
"deleted": false,
"dateDeleted": null,
"userId": 103,
"size": 3397,
"level": 2,
"accountId": 4,
"activityId": -1,
"salesRepIdDeleted": null,
"salesRepIdCreated": 103,
"salesRepIdUpdated": 103,
"dateCreated": "2018-08-22T15:20:34.303Z",
"dateUpdated": "2018-08-22T15:20:38.39Z",
"extId": null,
"link": "https://api.forcemanager.net/api/v4/download/aHR0cHM6Ly9mb3JjZW1hbmFnZXIwMDAxLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzY3OTIzLzAwMDAwMTMuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QVNJQTJCVDRISEtYTTZNNEtSQ0UlMkYyMDIxMTIxNSUyRmV1LXdlc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyMTEyMTVUMTc1NzUwWiZYLUFtei1FeHBpcmVzPTYwNDgwMCZYLUFtei1TZWN1cml0eS1Ub2tlbj1Gd29HWlhJdllYZHpFS1AlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkZ3RWFERWpCWjUxSzhBSXRZWk5QaENLV0JFbGVqZlh6NDBGeVRSUjI3NlBiOU5rWWNZWkM1N0U0Y0NPeXBsd2lrZGZYNlEzMWFsdGhKeVk4ME5wQWRqRWRlZXF0WVIwS2dyQVU1VWpsYklXbGZlcktDbzh2JTJCV05NaWl6ZGJxeiUyQlB4dXhhc1dvOW96QW4wTjNPSjQ0dEFWV2FqNzl3UWklMkYybEcwdkhRd2pKWjVyUXhSTHQ4TjBITkVMTHE0MmduakY5SyUyRk1mWE5CM3pxbkc5S0tBMnc2bkduOTBFWHdGeGolMkJQVmhWeElnWWh6c3VEOVhLRnAlMkZabUVVT0t2VUdpVE1SZUQ1WktSQU4wZSUyRjhBbExsQm9RdndndHRlcEUxJTJGeno4dkl5NDRrQXRuR2dVQ0RCQWs5MWNIMUNRZDM3MXRxTWxtJTJCalo0M21hZ1YzRzk1amZ5VG9vV2YwaWplaUl5U3ZiaVlDazk3dWgxUGolMkZIYVdOenZZWjd6c3NBWG8lMkJzbHZ5ZnhlRVkycHY5MzExNjd3UXpvZ0dPJTJGRHQlMkZRZXRvTHNLJTJCVXZjd2g4VVJLVXNXclZnS0trMno5bnU0eGloWGpNbDBVZXFYMk93M1Q0Q0p1cDFURVA1MFBRYmQxaiUyQjAyZW9aOW5PcklZaXlPc0ptWCUyRm1jTHNibkFzQ1ROR2R1OGVxNG5aT1ZJZ3ZRM0djSk1aNHlXZWw3QjdESkNXaEpFV1JWSVVJUnFDQm5WeUF6T2VwSE5mMzZLcDRFTUhHZWF3U0ZmaHMwSHN0bzdDJTJCWVZkb2FOUDJUQmxBSiUyQlA5Z3JyZU9mYUdoc29kdWlIMUEwM2JaZFolMkJSaks3YUNKQkxmaVFrc2ljNnJCdWFoT1l0M2FXN0NxQUFnJTJGMHJwanUlMkZ0Z2tZNEhPNkg5aW9RZDVxWndMcW1tWXBIY0RnOHBid25ZZDdSRzc1NThhU1RYRzlhV2p0SHd1VUE5MFVVcGhOaEs1Q2pNeXVpTkJqSXFCUmolMkJsUXNQeXZyTHhvVEdsSGQ2ZzA1JTJCUmljQkxFcUolMkIwekl0N2syWktuanhXaG15WERnQ09tcyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmWC1BbXotU2lnbmF0dXJlPTk0M2U1OGNiNjIzYTg3M2VlNDU1NzU3NDAyYmFmMmRjMjZhNTBkYjM1YjNhMDFjMDljYTgzNjhiOGY4NDM0M2I=/bG9jYWxfdGVtcF9pbWFnZV8xNTM0OTQ0MDQ0LjI1Mzg0Mg==",
"salesOrderId": -1,
"formId": -1,
"billboardId": -1,
"campaignId": -1,
"contactId": -1,
"isCarroussel": false
},
{
"id": 14,
"description": "local_temp_image_1534944044.253842",
"name": "0000014.jpg",
"extension": "jpg",
"folderId": -1,
"opportunityId": -1,
"quoteId": -1,
"deleted": false,
"dateDeleted": null,
"userId": 103,
"size": 3397,
"level": 2,
"accountId": 4,
"activityId": -1,
"salesRepIdDeleted": null,
"salesRepIdCreated": 103,
"salesRepIdUpdated": 103,
"dateCreated": "2018-08-22T15:20:34.327Z",
"dateUpdated": "2018-08-22T15:20:34.643Z",
"extId": null,
"link": "https://api.forcemanager.net/api/v4/download/aHR0cHM6Ly9mb3JjZW1hbmFnZXIwMDAxLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzY3OTIzLzAwMDAwMTQuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QVNJQTJCVDRISEtYTTZNNEtSQ0UlMkYyMDIxMTIxNSUyRmV1LXdlc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyMTEyMTVUMTc1NzUwWiZYLUFtei1FeHBpcmVzPTYwNDgwMCZYLUFtei1TZWN1cml0eS1Ub2tlbj1Gd29HWlhJdllYZHpFS1AlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkYlMkZ3RWFERWpCWjUxSzhBSXRZWk5QaENLV0JFbGVqZlh6NDBGeVRSUjI3NlBiOU5rWWNZWkM1N0U0Y0NPeXBsd2lrZGZYNlEzMWFsdGhKeVk4ME5wQWRqRWRlZXF0WVIwS2dyQVU1VWpsYklXbGZlcktDbzh2JTJCV05NaWl6ZGJxeiUyQlB4dXhhc1dvOW96QW4wTjNPSjQ0dEFWV2FqNzl3UWklMkYybEcwdkhRd2pKWjVyUXhSTHQ4TjBITkVMTHE0MmduakY5SyUyRk1mWE5CM3pxbkc5S0tBMnc2bkduOTBFWHdGeGolMkJQVmhWeElnWWh6c3VEOVhLRnAlMkZabUVVT0t2VUdpVE1SZUQ1WktSQU4wZSUyRjhBbExsQm9RdndndHRlcEUxJTJGeno4dkl5NDRrQXRuR2dVQ0RCQWs5MWNIMUNRZDM3MXRxTWxtJTJCalo0M21hZ1YzRzk1amZ5VG9vV2YwaWplaUl5U3ZiaVlDazk3dWgxUGolMkZIYVdOenZZWjd6c3NBWG8lMkJzbHZ5ZnhlRVkycHY5MzExNjd3UXpvZ0dPJTJGRHQlMkZRZXRvTHNLJTJCVXZjd2g4VVJLVXNXclZnS0trMno5bnU0eGloWGpNbDBVZXFYMk93M1Q0Q0p1cDFURVA1MFBRYmQxaiUyQjAyZW9aOW5PcklZaXlPc0ptWCUyRm1jTHNibkFzQ1ROR2R1OGVxNG5aT1ZJZ3ZRM0djSk1aNHlXZWw3QjdESkNXaEpFV1JWSVVJUnFDQm5WeUF6T2VwSE5mMzZLcDRFTUhHZWF3U0ZmaHMwSHN0bzdDJTJCWVZkb2FOUDJUQmxBSiUyQlA5Z3JyZU9mYUdoc29kdWlIMUEwM2JaZFolMkJSaks3YUNKQkxmaVFrc2ljNnJCdWFoT1l0M2FXN0NxQUFnJTJGMHJwanUlMkZ0Z2tZNEhPNkg5aW9RZDVxWndMcW1tWXBIY0RnOHBid25ZZDdSRzc1NThhU1RYRzlhV2p0SHd1VUE5MFVVcGhOaEs1Q2pNeXVpTkJqSXFCUmolMkJsUXNQeXZyTHhvVEdsSGQ2ZzA1JTJCUmljQkxFcUolMkIwekl0N2syWktuanhXaG15WERnQ09tcyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmWC1BbXotU2lnbmF0dXJlPTQ1OWY5N2IyZGU2ODRkZTRmNzc4ZTkzMGEwM2E5ZTU0MDY3MDg2Y2Q1MGM4NjE3ODc4YzQ3NjI3NDdlOWQxNmU=/bG9jYWxfdGVtcF9pbWFnZV8xNTM0OTQ0MDQ0LjI1Mzg0Mg==",
"salesOrderId": -1,
"formId": -1,
"billboardId": -1,
"campaignId": -1,
"contactId": -1,
"isCarroussel": false
}
]https://api.forcemanager.com/api/v4/VALUE/VALUE/documents This endpoint allows you to upload a Document linking it to a Resource (accounts, opportunities, salesOrders) based on JSON input.
You will only be able to upload a Document after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| folderId (Required) | String | Set the value -1 if you want to upload the Document in the Root folder, otherwise set the Folder's ID if you want to upload the file in a specific folder |
| name (Required) | String | The Document's name |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| locator | String | The url you should upload the Document to (check the table below) |
| id | Integer | The ID assigned to the Document in the ForceManager Database |
IMPORTANT: To upload your file to ForceManager storage you must do a PUT request with the binary data you want to upload and set the following headers:
| Attribute | Value | Description |
|---|---|---|
| Content-Type | application/octet-stream | Binary file specification |
| Content-Length | {file.size} | It is the size of the file you are going to upload, in bytes |
The endpoint to invoke with the PUT request is the one returned by this API call under the locator field.
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/VALUE/VALUE/documents" \
-X POST \
-H "Accept: */*" \
-d '{ "folderId": "-1", "name": "Filename.pdf" }'const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/VALUE/documents", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"folderId\": \"-1\",\n \"name\": \"Filename.pdf\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"folderId\": \"-1\",\n \"name\": \"Filename.pdf\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/VALUE/VALUE/documents",
headers=headers, json=json_body
)
data = response.json()Folders
https://api.forcemanager.com/api/v4/documents/folders Returns all Folders available in the user's ForceManager implementation database.
You will only receive the List of Folders after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?where= param1=value AND/OR param2=value2
You can filter Folders by dateCreated or dateUpdated, or entityId for example.
You can also organise and view the results for Folders in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?lang=VALUE
RESPONSE
This endpoint returns information about all Folders available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Folders attributes:
| Attribute | Type | Description |
|---|---|---|
| folderId | Integer | The folder that contains this folder. If value is -1 means the folder is in the directory root, otherwise, means the folder belongs to another folder |
| entityId | String | The ID of the entity associated to the folder. Entities can be: accounts, contacts, opportunities, etc. |
| id | Integer | Unique identifier for the Folder in ForceManager |
| name | String | The Folder name |
| level | Integer | Defines the visibility of the Folder. Set from 1 to 5 being 5 the highest level of permission |
| restrictSucursales | Boolean | True if not all the environment can see this Folder, otherwise False |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Folder |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Folder |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Folder |
| dateCreated | String | Date and time when the Folder was created |
| dateDeleted | String | Date and time when the Folder was deleted |
| dateUpdated | String | Date and time when the Folder was last updated |
| delete | boolean | If true, the Folder has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/documents/folders" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/documents/folders", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/documents/folders",
headers=headers
)
data = response.json()[
{
"id": 135,
"salesRepIdDeleted": null,
"salesRepIdCreated": 1,
"salesRepIdUpdated": null,
"dateCreated": "2018-08-21T15:35:19.673Z",
"dateUpdated": null,
"deleted": false,
"dateDeleted": null,
"name": "Videos",
"folderId": -1,
"restrictSucursales": false,
"level": 2,
"entityId": null
},
{
"id": 136,
"salesRepIdDeleted": null,
"salesRepIdCreated": 1,
"salesRepIdUpdated": null,
"dateCreated": "2018-08-21T15:35:19.707Z",
"dateUpdated": null,
"deleted": false,
"dateDeleted": null,
"name": "Presentations",
"folderId": -1,
"restrictSucursales": false,
"level": 2,
"entityId": null
},
{
"id": 140,
"salesRepIdDeleted": null,
"salesRepIdCreated": 105,
"salesRepIdUpdated": null,
"dateCreated": "2018-10-29T11:33:00.54Z",
"dateUpdated": null,
"deleted": false,
"dateDeleted": null,
"name": "Brochures",
"folderId": -1,
"restrictSucursales": false,
"level": 2,
"entityId": null
}
]https://api.forcemanager.com/api/v4/documents/folders This endpoint allows you to create a Folder based on JSON input.
You will only be able to create a Folder after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| name (Required) | String | The Folder name |
| folderId (Required) | String | The ID of the folder it belongs. -1 if it's gonna be in the root level, otherwise the Folder ID that will contains this Folder |
| level | Integer | Defines the visibility of the Folder. Set from 1 to 5 being 5 the highest level of permission |
| restrictSucursales | Boolean | True if not all the environment can see this Folder, otherwise False |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| message | String | "Entity Created" if everything it's OK. Otherwise, the error message |
| id | Integer | The ID assigned to the Folder in the ForceManager Database |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/documents/folders" \
-X POST \
-H "Accept: */*" \
-d '{ "folderId": -1, "name": "April" }'const response = await fetch("https://api.forcemanager.com/api/v4/documents/folders", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"folderId\": -1,\n \"name\": \"April\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"folderId\": -1,\n \"name\": \"April\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/documents/folders",
headers=headers, json=json_body
)
data = response.json(){
"id": 137,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders Returns all Folders of a specific Entity available in the user's ForceManager implementation database.
You will only receive the List of Folders after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?where= param1=value AND/OR param2=value2
You can filter Folders by dateCreated or dateUpdated, or entityId for example.
You can also organise and view the results for Folders in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/documents/folders?lang=VALUE
RESPONSE
This endpoint returns information about all Folders available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Folders attributes:
| Attribute | Type | Description |
|---|---|---|
| folderId | Integer | The folder that contains this folder. If value is -1 means the folder is in the directory root, otherwise, means the folder belongs to another folder |
| entityId | String | The ID of the entity associated to the folder. Entities can be: accounts, contacts, opportunities, etc. |
| id | Integer | Unique identifier for the Folder in ForceManager |
| name | String | The Folder name |
| level | Integer | Defines the visibility of the Folder. Set from 1 to 5 being 5 the highest level of permission |
| restrictSucursales | Boolean | True if not all the environment can see this folder, otherwise False |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Folder |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Folder |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Folder |
| dateCreated | String | Date and time when the Folder was created |
| dateDeleted | String | Date and time when the Folder was deleted |
| dateUpdated | String | Date and time when the Folder was last updated |
| delete | boolean | If true, the Folder has been deleted and archived |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders",
headers=headers
)
data = response.json()[
{
"id": 135,
"salesRepIdDeleted": null,
"salesRepIdCreated": 120,
"salesRepIdUpdated": null,
"dateCreated": "2021-12-15T20:57:25.953Z",
"dateUpdated": null,
"deleted": false,
"dateDeleted": null,
"name": "Invoices",
"folderId": -1,
"restrictSucursales": false,
"level": 2,
"entityId": null
},
{
"id": 136,
"salesRepIdDeleted": null,
"salesRepIdCreated": 120,
"salesRepIdUpdated": null,
"dateCreated": "2021-12-15T20:57:33.03Z",
"dateUpdated": null,
"deleted": false,
"dateDeleted": null,
"name": "2021",
"folderId": 135,
"restrictSucursales": false,
"level": 2,
"entityId": null
}
]https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders This endpoint allows you to create a Folder for a specific Entity based on JSON input.
You will only be able to create a Folder after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| name (Required) | String | The Folder name |
| folderId (Required) | String | The ID of the folder it belongs. -1 if it's gonna be in the root level, otherwise the Folder ID that will contains this Folder |
| level | Integer | Defines the visibility of the Folder. Set from 1 to 5 being 5 the highest level of permission |
| restrictSucursales | Boolean | True if not all the environment can see this Folder, otherwise False |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| message | String | "Entity Created" if everything it's OK. Otherwise, the error message |
| id | Integer | The ID assigned to the Folder in the ForceManager Database |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders" \
-X POST \
-H "Accept: */*" \
-d '{ "folderId": 136, "name": "January" }'const response = await fetch("https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"folderId\": 136,\n \"name\": \"January\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"folderId\": 136,\n \"name\": \"January\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/VALUE/VALUE/documents/folders",
headers=headers, json=json_body
)
data = response.json(){
"id": 138,
"Message": "entity created"
}Emails
https://api.forcemanager.com/api/v4/emails/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Email object.
You will only receive the Emails Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Emails Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/emails/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/emails/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/emails/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountId": {
"readOnly": false,
"table": "empresas",
"type": [
"integer",
"null"
]
},
"attachments": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": [
"string",
"null"
]
}
},
"readOnly": false
},
"body": {
"maxLength": 4000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"contactId": {
"readOnly": false,
"table": "contactos",
"type": [
"integer",
"null"
]
},
"date": {
"properties": {
"time": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"timeStamp": {
"format": "date-time",
"readOnly": true,
"type": [
"number",
"null"
]
},
"timeZone": {
"readOnly": true,
"type": [
"string",
"null"
]
}
},
"readOnly": false
},
"date_created": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"date_deleted": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"date_updated": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"emailFrom": {
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"emailTo": {
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"readOnly": true,
"type": "integer"
},
"mailFolder": {
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"opportunityId": {
"readOnly": false,
"table": "expedientes",
"type": [
"integer",
"null"
]
},
"salesRepId": {
"readOnly": false,
"table": "tblUsuarios",
"type": [
"integer",
"null"
]
},
"subject": {
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"type": {
"readOnly": false,
"type": "integer"
},
"user_created": {
"readOnly": true,
"type": [
"integer",
"null"
]
},
"user_deleted": {
"readOnly": true,
"type": [
"integer",
"null"
]
},
"user_updated": {
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [
"emailFrom",
"emailTo",
"date",
"type",
"mailFolder"
],
"title": "emails",
"type": "object"
}https://api.forcemanager.com/api/v4/emails Returns all Emails available in the user's ForceManager implementation database.
You will only receive the List of Emails after first providing the Session Key. TTo know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/emails?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/emails?where= param1=value AND/OR param2=value2
You can filter Emails by emailFrom or emailTo for example.
You can also organise and view the results for Emails in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/emails?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/emails?lang=VALUE
RESPONSE
This endpoint returns information about all Emails available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Emails attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the Email is linked to |
| attachments | Object (Array), Null | Attachment's lists |
| body | String | Email's content |
| contactId | Object, Null | Contact to which the Email is linked to |
| date | Object | JSONObject with the time, timestamp and timeZone attributes |
| dateCreated | String | Date and time when the Email was created |
| dateDeleted | String | Date and time when the Email was deleted |
| dateUpdated | String | Date and time when the Email was last updated |
| deleted | Boolean | If true, the Email has been deleted and archived |
| emailFrom | String | Email of the person who's sending the email |
| emailTo | Array | List of Emails, that will receive the mail |
| extId | String | External ID of the Email from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier for the Email in ForceManager |
| mailFolder | String | Folder to which the mail belongs. (For example: Inbox) |
| opportunityId | Object, Null | Opportunity to which the Email is linked to |
| salesRepId | Object, Null | Id of the User responsible for the Email |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Email |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Email |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Email |
| subject | String | Email's subject |
| type | Integer | 0 -> outgoing email and 1 -> incoming email |
List of the supported Attachments attributes:
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Unique identifier for the Attachment in ForceManager |
| name | String | Attachment name (include the file type (.pdf, xls...)) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/emails" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/emails", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/emails",
headers=headers
)
data = response.json()[
{
"id": 1,
"emailTo": "mark.zuck@domain.com",
"attachments": [],
"extId": null,
"accountId": 1,
"contactId": -1,
"opportunityId": null,
"salesRepId": -1,
"emailFrom": "chris.cruise@domain.com",
"body": "Hi, as agreed, see here enclosed the quotation.",
"date": {
"time": "2018-10-27T13:43:00Z",
"timeStamp": 1540647780,
"timeZone": "UTC"
},
"type": 0,
"mailFolder": null,
"subject": "RE: updated quotation",
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"dateCreated": "2018-10-29T11:33:00.4Z",
"dateUpdated": null,
"dateDeleted": null,
"deleted": false
},
{
"id": 2,
"emailTo": "mark.zuck@domain.com",
"attachments": [],
"extId": null,
"accountId": 2,
"contactId": -1,
"opportunityId": null,
"salesRepId": -1,
"emailFrom": "nathalie.london@domain.com",
"body": "Hi, this is just a reminder to confirm the meeting with your general manager for next week at 9am. Yours sincerely",
"date": {
"time": "2018-10-26T11:43:00Z",
"timeStamp": 1540554180,
"timeZone": "UTC"
},
"type": 0,
"mailFolder": null,
"subject": "Meeting confirmation",
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"dateCreated": "2018-10-29T11:33:00.42Z",
"dateUpdated": null,
"dateDeleted": null,
"deleted": false
}
]https://api.forcemanager.com/api/v4/emails This endpoint allows you to create an Email based on JSON input.
You will only be able to create an Email after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | Account to which the Email is linked to |
| attachments | Object (Array), Null | Attachment's lists |
| body | String | Email's content |
| contactId | Object, Null | Contact to which the Email is linked to |
| date | String | Date and time when the Email was sent or received |
| emailFrom | String | Email of the person who's sending the email |
| emailTo | Array | List of Emails, that will receive the mail |
| extId | String | External ID of the Email from a third party system (ERP, CRM, Accounting System) |
| mailFolder | String | Folder to which the mail belongs. (For example: Inbox) |
| opportunityId | Integer | Opportunity to which the Email is linked to |
| salesRepId | Integer | First sales representative responsible for the Email |
| subject | String | Email's subject |
| type | Integer | 0 -> outgoing email and 1 -> incoming email |
List of the supported Attachments attributes:
| Attribute | Type | Description |
|---|---|---|
| name | String | Attachment name (include the file type (.pdf, xls...)) |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new WebHook |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows the emails that will receive the email and the operation's id |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/emails" \
-X POST \
-H "Accept: */*" \
-d '{ "emailTo": [ "api.test.to1@email.com", "api.test.to2@email.com" ], "attachments": [ { "name": "attachament1.jpeg", "size": 100 }, { "name": "attachament2.jpeg", "size": 100 } ], "extId": "00000000BD5B2F047F11F44782AD033C4A04EB0FA4354000", "accountId": 2, "contactId": 3, "opportunityId": 4, "salesRepId": 2, "emailFrom": "api.test.from@email.com", "body": "This is just an example of an email addressed to two different recipients, with attachments.", "date": "2008-06-04T17:34:56+07:00", "type": 0, "mailFolder": null, "subject": "Sample email" }'const response = await fetch("https://api.forcemanager.com/api/v4/emails", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"emailTo\": [\n \"api.test.to1@email.com\",\n \"api.test.to2@email.com\"\n ],\n \"attachments\": [\n {\n \"name\": \"attachament1.jpeg\",\n \"size\": 100\n },\n {\n \"name\": \"attachament2.jpeg\",\n \"size\": 100\n }\n ],\n \"extId\": \"00000000BD5B2F047F11F44782AD033C4A04EB0FA4354000\",\n \"accountId\": 2,\n \"contactId\": 3,\n \"opportunityId\": 4,\n \"salesRepId\": 2,\n \"emailFrom\": \"api.test.from@email.com\",\n \"body\": \"This is just an example of an email addressed to two different recipients, with attachments.\",\n \"date\": \"2008-06-04T17:34:56+07:00\",\n \"type\": 0,\n \"mailFolder\": null,\n \"subject\": \"Sample email\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"emailTo\": [\n \"api.test.to1@email.com\",\n \"api.test.to2@email.com\"\n ],\n \"attachments\": [\n {\n \"name\": \"attachament1.jpeg\",\n \"size\": 100\n },\n {\n \"name\": \"attachament2.jpeg\",\n \"size\": 100\n }\n ],\n \"extId\": \"00000000BD5B2F047F11F44782AD033C4A04EB0FA4354000\",\n \"accountId\": 2,\n \"contactId\": 3,\n \"opportunityId\": 4,\n \"salesRepId\": 2,\n \"emailFrom\": \"api.test.from@email.com\",\n \"body\": \"This is just an example of an email addressed to two different recipients, with attachments.\",\n \"date\": \"2008-06-04T17:34:56+07:00\",\n \"type\": 0,\n \"mailFolder\": null,\n \"subject\": \"Sample email\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/emails",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 7,
"emailTo": "api.test.to1@email.com"
},
{
"id": 8,
"emailTo": "api.test.to2@email.com"
}
]https://api.forcemanager.com/api/v4/emails/{ID} This endpoint retrieves data of a specific Email based on JSON input. The API returns a single Email available to the user, according to the unique ID provided. If the specified Email does not exist, the response will be a "bad request".
You will only receive the Email after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Email |
RESPONSE
This endpoint returns information about all Emails available in the database.
List of the supported Emails attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the Email is linked to |
| attachments | Object (Array), Null | Attachment's lists |
| body | String | Email's content |
| contactId | Object, Null | Contact to which the Email is linked to |
| date | Object | JSONObject with the time, timestamp and timeZone attributes |
| dateCreated | String | Date and time when the Email was created |
| dateDeleted | String | Date and time when the Email was deleted |
| dateUpdated | String | Date and time when the Email was last updated |
| deleted | Boolean | If true, the Email has been deleted and archived |
| emailFrom | String | Email of the person who's sending the email |
| emailTo | Array | List of Emails, that will receive the mail |
| extId | String | External ID of the Email from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier for the Email in ForceManager |
| mailFolder | String | Folder to which the mail belongs. (For example: Inbox) |
| opportunityId | Object, Null | Opportunity to which the Email is linked to |
| salesRepId | Object, Null | Id of the User responsible for the Email |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Email |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Email |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Email |
| subject | String | Email's subject |
| type | Integer | 0 -> outgoing email and 1 -> incoming email |
List of the supported Attachments attributes:
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Unique identifier for the Attachment in ForceManager |
| name | String | Attachment name (include the file type (.pdf, xls...)) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/emails/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/emails/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/emails/{ID}",
headers=headers
)
data = response.json()Entity Contacts
https://api.forcemanager.com/api/v4/contactsEntities/schema Returns properties object with the definition of each field in the Entity Contacts table.
You will only receive the Entity Contacts Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Entity Contacts Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactsEntities/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contactsEntities/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contactsEntities/schema",
headers=headers
)
data = response.json()https://api.forcemanager.com/api/v4/contactsEntities Returns all Entity Contacts available. Entity Contacts are basically needed to associate more than one User to an Entity (e.g. the Opportunities with more than one sales rep).
You will only receive the Entity Contacts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/entityContacts?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/entityContacts?where= param1=value AND/OR param2=value2
You can filter Entity Contacts by entityId or contactId for example.
RESPONSE
This endpoint returns all Entity Contacts available for the value list.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Entity Contacts attributes:
| Attribute | Type | Description |
|---|---|---|
| entityId | Integer | The ID of the corresponding Entity that the User is associated to |
| entityTypeId | Integer | The Entity type: 1 for Opportunity, 2 for Account, 3 for Contact, 4 for Activity, 10 for Event/Task |
| contactId | Integer | The ID of the Contact to be related to the Entity (see Contacts resource) |
| id | Integer | Unique identifier for the Entity Contact in ForceManager |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/contactsEntities" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/contactsEntities", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/contactsEntities",
headers=headers
)
data = response.json()Entity Owners
https://api.forcemanager.com/api/v4/entityOwners/schema Returns properties object with the definition of each field in the Entity Owners table.
You will only receive the Entity Owners Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Entity Owners Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
Description of each property
Definition of the data type for each property
Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/entityOwners/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/entityOwners/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/entityOwners/schema",
headers=headers
)
data = response.json(){
"properties": {
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"entityId": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"entityTypeId": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepId": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepOrder": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "entityOwners",
"type": "object"
}https://api.forcemanager.com/api/v4/entityOwners Returns all Entity Owners available. Entity Owners are basically needed to associate more than one User to an Entity (e.g. the Opportunities with more than one sales rep).
You will only receive the Entity Owners after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/entityOwners?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/entityOwners?where= param1=value AND/OR param2=value2
You can filter Entity Owners by entityId or salesRepId for example.
RESPONSE
This endpoint returns all Entity Owners available for the value list.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Entity Owners attributes:
| Attribute | Type | Description |
|---|---|---|
| entityId | Integer | The ID of the corresponding Entity that the User is associated to |
| entityTypeId | Integer | The Entity type: 1 for Opportunity, 2 for Account, 3 for Contact, 4 for Activity |
| salesRepOrder | Integer | The order in which the User has to appear in the Entity Owners list |
| dateCreated | String | Date and time when the Entity Owner was created |
| dateDeleted | String | Date and time when the Entity Owner was deleted |
| dateUpdated | String | Date and time when the Entity Owner was last updated |
| deleted | Boolean | If true, the Entity Owner has been deleted and archived |
| id | Integer | Unique identifier for the Entity Owner in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Entity Owner |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Entity Owner |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Entity Owner |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/entityOwners" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/entityOwners", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/entityOwners",
headers=headers
)
data = response.json()[
{
"dateCreated": "2021-12-16T23:00:26.993Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"entityId": 130,
"entityTypeId": 1,
"id": 1,
"salesRepId": 121,
"salesRepIdCreated": 120,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"salesRepOrder": 2
},
{
"dateCreated": "2021-12-16T23:00:26.997Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"entityId": 130,
"entityTypeId": 1,
"id": 2,
"salesRepId": 125,
"salesRepIdCreated": 120,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"salesRepOrder": 3
}
]Events/Tasks
https://api.forcemanager.com/api/v4/calendar/schema The Schema is a metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Event/Task object.
Returns properties object with the definition of each field in the Event/Task table.
You will only receive the Event/Task Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Event/Task Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Tabla | String | The name of the Value List table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calendar/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/calendar/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calendar/schema",
headers=headers
)
data = response.json(){
"properties": {
"Completed": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"allDay": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"branchId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "branches",
"type": [
"object",
"null"
]
},
"comment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"contactId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "contacts",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"endDate": {
"description": "",
"maxLength": 10,
"readOnly": false,
"type": [
"string",
"null"
]
},
"endHour": {
"description": "",
"maxLength": 10,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"description": "",
"maxLength": 500,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"opportunityId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "opportunities",
"type": [
"object",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"reminder": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"sendNotification": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"startDate": {
"description": "",
"maxLength": 10,
"readOnly": false,
"type": [
"string",
"null"
]
},
"startHour": {
"description": "",
"maxLength": 10,
"readOnly": false,
"type": [
"string",
"null"
]
},
"subject": {
"description": "",
"maxLength": 2000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"task": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"typeId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "activityTypes",
"type": [
"object",
"null"
]
},
"videoCallMeetingDetails": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"videoCallProviderId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "tblVideoCallProviders",
"type": [
"object",
"null"
]
}
},
"required": [
"endDate",
"salesRepId",
"startDate",
"subject"
],
"title": "calendar",
"type": "object"
}https://api.forcemanager.com/api/v4/calendar Returns all Events and Tasks available in the user's ForceManager implementation database based on JSON input.
You will only receive the List of Events and Tasks after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/calendar?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/calendar?where= param1=value AND/OR param2=value2
You can filter Events and Tasks by accountId, salesRepId, startDate for example.
You can also organise and view the results for Event/Tasks in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/calendar?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/calendar?lang=VALUE
RESPONSE
This endpoint returns information about all Event/Tasks available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Event/Tasks attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the Event/Task is linked |
| allDay | Boolean | If true, the Event/Task takes all day, it does not have a start and end time specified |
| branchId | Object, Null | Branch the Event/Task is assigned to |
| city | String | City name |
| comment | String | Comment added to the Event/Task |
| contactId | Object, Null | Contact to which an Event/Task is linked |
| dateCreated | String | Date and time when the Event/Task was created |
| dateDeleted | String | Date and time when the Event/Task was deleted |
| dateUpdated | String | Date and time when the Event/Task was last updated |
| deleted | Boolean | If true, the Account has been deleted and archived |
| endDate | String | End Date and time of the Event/Task |
| extId | String | External ID of the Event/Task from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The Event/Task's unique identifier |
| opportunityId | Object, Null | Opportunity to which the Event/Task is linked |
| permissionLevel | String | Defines the visibility of the Event/Task. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Event/Task can not be modified or deleted |
| reminder | Integer | Time before the Event/Task when you want to be reminded of it: -2: not used, 1: Remind at the start time, 5: 5 minutes before to start, 15: 15 minutes before to start, 30: 30 minutes before to start, 1440: 1 hour before to start, 3600: 1 days before to start, 10080: 1 week before to start |
| salesRepId | Object, Null | User responsible for this Event/Task |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Event/Task |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Event/Task |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Event/Task |
| sendNotification | Boolean | If true, an invitation email will be sent to the Contacts of the Event/Task |
| startDate | String | Start Date of the Event/Task |
| startHour | String | Start hour of the Event/Task |
| subject | String | Description or name of the Event/Task |
| task | Boolean | If true, the entity is a Task. Then endDate and endHour is not needed |
| typeId | Object, Null | Type of the Event/Task. e.g. meeting, visit, etc. |
| completed | Boolean | If true, the Task is considered completed |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/calendar" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/calendar", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calendar",
headers=headers
)
data = response.json()[
{
"accountId": null,
"allDay": false,
"branchId": {
"id": 4380,
"value": "ForceManager"
},
"comment": "Remember to buy ForceManager before the trial expires so I can improve my sales efficiency.",
"completed": true,
"contactId": null,
"dateCreated": "2015-07-03T12:05:28.113Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"endDate": null,
"endHour": null,
"extId": null,
"id": 446,
"opportunityId": null,
"permissionLevel": 1,
"readOnly": false,
"reminder": -1,
"salesRepId": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"sendNotification": false,
"startDate": "15/07/16",
"startHour": "15:00",
"subject": "Buy ForceManager",
"task": true,
"typeId": {
"id": 6420,
"value": "Comment"
}
},
{
"accountId": null,
"allDay": false,
"branchId": {
"id": 4380,
"value": "ForceManager"
},
"comment": null,
"confirmed": true,
"contactId": null,
"dateCreated": "2015-07-03T12:05:28.13Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"endDate": "15/07/03",
"endHour": "13:46",
"extId": null,
"id": 447,
"opportunityId": null,
"permissionLevel": 1,
"readOnly": false,
"reminder": -1,
"salesRepId": {
"id": 5548,
"value": "Luis Sánchez"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"sendNotification": false,
"startDate": "15/07/03",
"startHour": "23:59",
"subject": "Quotation meeting",
"task": false,
"typeId": {
"id": 6420,
"value": "Meeting"
}
}
]https://api.forcemanager.com/api/v4/calendar This endpoint allows you to create a Event/Task based on JSON input.
You will only be able to create an Event after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | Account to which the Event/Task is linked |
| allDay | Boolean | If true, the Event/Task takes all day, it does not have a start and end time specified |
| branchId | Integer | Branch the Event/Task is assigned to |
| city | String | City name |
| comment | String | Comment added to the Event/Task |
| contactId | Integer | Contact to which an Event/Task is linked |
| endDate | String | End Date and time of the Event/Task |
| extId | String | External ID of the Event/Task from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The Event/Task's unique identifier |
| opportunityId | Integer | Opportunity to which the Event/Task is linked |
| permissionLevel | String | Defines the visibility of the Event/Task. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Event/Task can not be modified or deleted |
| reminder | Integer | Time before the Event/Task when you want to be reminded of it: -2: not used, 1: Remind at the start time, 5: 5 minutes before to start, 15: 15 minutes before to start, 30: 30 minutes before to start, 1440: 1 hour before to start, 3600: 1 days before to start, 10080: 1 week before to start |
| salesRepId | Integer | User responsible for this Event/Task |
| sendNotification | Boolean | If true, an invitation email will be sent to the Contacts of the Event/Task |
| startDate | String | Start Date of the Event/Task |
| startHour | String | Start hour of the Event/Task |
| subject | String | Description or name of the Event/Task |
| task | Boolean | If true, the entity is a Task. Then endDate and endHour is not needed |
| typeId | Integer | Type of the Event/Task. e.g. meeting, visit, etc. |
| completed | Boolean | If true, the Task is considered completed |
RESPONSE
Returns a JSON with information about the Event/Task just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Event/Task |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calendar" \
-X POST \
-H "Accept: */*" \
-d '{ "accountId": 56, "allDay": false, "branchId": 16, "comment": "Follow-up meeting", "contactId": 898, "endDate": "07/10/08", "salesRepId": 365, "sendNotification": true, "startDate": "07/10/08", "startHour": "08:30", "subject": "Sales Meeting", "task": false, "typeId": null }'const response = await fetch("https://api.forcemanager.com/api/v4/calendar", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountId\": 56,\n \"allDay\": false,\n \"branchId\": 16,\n \"comment\": \"Follow-up meeting\",\n \"contactId\": 898,\n \"endDate\": \"07/10/08\",\n \"salesRepId\": 365,\n \"sendNotification\": true,\n \"startDate\": \"07/10/08\",\n \"startHour\": \"08:30\",\n \"subject\": \"Sales Meeting\",\n \"task\": false,\n \"typeId\": null\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountId\": 56,\n \"allDay\": false,\n \"branchId\": 16,\n \"comment\": \"Follow-up meeting\",\n \"contactId\": 898,\n \"endDate\": \"07/10/08\",\n \"salesRepId\": 365,\n \"sendNotification\": true,\n \"startDate\": \"07/10/08\",\n \"startHour\": \"08:30\",\n \"subject\": \"Sales Meeting\",\n \"task\": false,\n \"typeId\": null\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/calendar",
headers=headers, json=json_body
)
data = response.json(){
"id": 763,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/calendar/{ID} This endpoint retrieves data of a specific calendar Event or Task based on JSON input. The API returns a single Type available to the user, according to the unique ID provided. If the specified calendar Event or Task does not exist, the response will be a "bad request".
You will only receive the calendar Event or Task after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the calendar Event or Task |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountId | Object, Null | Account to which the Event/Task is linked |
| allDay | Boolean | If true, the Event/Task takes all day, it does not have a start and end time specified |
| branchId | Object, Null | Branch the Event/Task is assigned to |
| city | String | City name |
| comment | String | Comment added to the Event/Task |
| contactId | Object, Null | Contact to which an Event/Task is linked |
| dateCreated | String | Date and time when the Event/Task was created |
| dateDeleted | String | Date and time when the Event/Task was deleted |
| dateUpdated | String | Date and time when the Event/Task was last updated |
| deleted | Boolean | If true, the Account has been deleted and archived |
| endDate | String | End Date and time of the Event/Task |
| extId | String | External ID of the Event/Task from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The Event/Task's unique identifier |
| opportunityId | Object, Null | Opportunity to which the Event/Task is linked |
| permissionLevel | String | Defines the visibility of the Event/Task. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Event/Task can not be modified or deleted |
| reminder | Integer | Time before the Event/Task when you want to be reminded of it: -2: not used, 1: Remind at the start time, 5: 5 minutes before to start, 15: 15 minutes before to start, 30: 30 minutes before to start, 1440: 1 hour before to start, 3600: 1 days before to start, 10080: 1 week before to start |
| salesRepId | Object, Null | User responsible for this Event/Task |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Event/Task |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Event/Task |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Event/Task |
| sendNotification | Boolean | If true, an invitation email will be sent to the Contacts of the Event/Task |
| startDate | String | Start Date of the Event/Task |
| startHour | String | Start hour of the Event/Task |
| subject | String | Description or name of the Event/Task |
| task | Boolean | If true, the entity is a Task. Then endDate and endHour is not needed |
| typeId | Object, Null | Type of the Event/Task. e.g. meeting, visit, etc. |
| completed | Boolean | If true, the Task is considered completed |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/calendar/{ID}" \
-H "Accept: */*" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/calendar/{ID}", {
headers: {
"Accept": "*/*",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/calendar/{ID}",
headers=headers
)
data = response.json(){
"accountId": {
"id": 1757,
"value": "Acme Inc."
},
"allDay": true,
"branchId": {
"id": 4380,
"value": "UK Dept."
},
"comment": "Remember to carry the documentation",
"completed": false,
"contactId": null,
"dateCreated": "2018-06-12T16:08:51.973Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"endDate": "15/07/07",
"endHour": "15:00",
"extId": null,
"id": 763,
"opportunityId": null,
"permissionLevel": 2,
"readOnly": false,
"reminder": -2,
"salesRepId": {
"id": 5548,
"value": "Walter White"
},
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"sendNotification": false,
"startDate": "15/07/07",
"startHour": "23:59",
"subject": "Meeting",
"task": false,
"typeId": {
"id": 6419,
"value": "Meeting"
}
}https://api.forcemanager.com/api/v4/calendar/{ID} The endpoint allows you to update specific information of a calendar Event or Task from the user's ForceManager implementation database. If the specified Event or Task does not exist, the response will be a "bad request".
You will only receive the Products after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific calendar Event or Task. In order to update an Event or Task, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountId | Integer | Account to which the Event/Task is linked |
| allDay | Boolean | If true, the Event/Task takes all day, it does not have a start and end time specified |
| branchId | Integer | Branch the Event/Task is assigned to |
| city | String | City name |
| comment | String | Comment added to the Event/Task |
| contactId | Integer | Contact to which an Event/Task is linked |
| endDate | String | End Date and time of the Event/Task |
| extId | String | External ID of the Event/Task from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The Event/Task's unique identifier |
| opportunityId | Integer | Opportunity to which the Event/Task is linked |
| permissionLevel | String | Defines the visibility of the Event/Task. Set from 1 to 5 being 5 the highest level of permission |
| readOnly | Boolean | If true, the Event/Task can not be modified or deleted |
| reminder | Integer | Time before the Event/Task when you want to be reminded of it: -2: not used, 1: Remind at the start time, 5: 5 minutes before to start, 15: 15 minutes before to start, 30: 30 minutes before to start, 1440: 1 hour before to start, 3600: 1 days before to start, 10080: 1 week before to start |
| salesRepId | Integer | User responsible for this Event/Task |
| sendNotification | Boolean | If true, an invitation email will be sent to the Contacts of the Event/Task |
| startDate | String | Start Date of the Event/Task |
| startHour | String | Start hour of the Event/Task |
| subject | String | Description or name of the Event/Task |
| task | Boolean | If true, the entity is a Task. Then endDate and endHour is not needed |
| typeId | Integer | Type of the Event/Task. e.g. meeting, visit, etc. |
| completed | Boolean | If true, the Task is considered completed |
RESPONSE
Returns a JSON with information about the Event or Task just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calendar/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "salesRepId": "Susan North", "sendNotification": true, "startDate": "22/10/08", "startHour": "09:30", "subject": "Meeting" }'const response = await fetch("https://api.forcemanager.com/api/v4/calendar/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"salesRepId\": \"Susan North\",\n \"sendNotification\": true,\n \"startDate\": \"22/10/08\",\n \"startHour\": \"09:30\",\n \"subject\": \"Meeting\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"salesRepId\": \"Susan North\",\n \"sendNotification\": true,\n \"startDate\": \"22/10/08\",\n \"startHour\": \"09:30\",\n \"subject\": \"Meeting\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/calendar/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/calendar/{ID} This endpoint allows you to delete a specific calendar Event or Task from the user's ForceManager implementation database. If the specified calendar Event or Task does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete calendar Event or Tasks after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the calendar Event or Task to delete |
RESPONSE
Returns a JSON with information about the calendar Event or Task just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/calendar/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/calendar/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/calendar/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Extra Fields
Entity
https://api.forcemanager.com/api/v4/extrafields/VALUE/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for an Extra Field object.
You will only receive the Extra Field's information after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| resource | String | The unique and specific identifier for the Entity you to retrieve data. The allowed values are: accounts, activities, calendar, contacts, opportunities, products, rates, salesorders, users |
RESPONSE
The Extra Field Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafields/VALUE/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/extrafields/VALUE/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/extrafields/VALUE/schema",
headers=headers
)
data = response.json(){
"properties": {
"branches": {
"items": {
"maxLength": 180,
"type": "string"
},
"type": "array"
},
"dateCreated": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"defaultValue": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"dependenceField": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"description": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionBR": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"dynamicField": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"dynamicFieldValues": {
"items": {
"type": "number"
},
"readOnly": false,
"type": [
"array",
"null"
]
},
"entity": {
"readOnly": false,
"type": [
"string"
]
},
"fieldName": {
"readOnly": false,
"type": [
"string"
]
},
"id": {
"readOnly": true,
"type": "integer"
},
"idsDynamism": {
"readOnly": false,
"type": [
"integer",
"null"
]
},
"length": {
"readOnly": false,
"type": [
"integer",
"null"
]
},
"mandatory": {
"type": [
"boolean",
"null"
]
},
"mobileVisibility": {
"type": [
"boolean",
"null"
]
},
"multilanguage": {
"type": [
"boolean",
"null"
]
},
"order": {
"readOnly": false,
"type": [
"integer",
"null"
]
},
"readOnly": {
"type": [
"boolean",
"null"
]
},
"restApi": {
"type": [
"boolean",
"null"
]
},
"salesRepIdCreated": {
"readOnly": false,
"table": "tblUsuarios",
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"readOnly": false,
"table": "tblUsuarios",
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"readOnly": false,
"table": "tblUsuarios",
"type": [
"integer",
"null"
]
},
"searchable": {
"format": "date-time",
"type": [
"boolean",
"null"
]
},
"tabId": {
"readOnly": false,
"type": [
"integer",
"null"
]
},
"type": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"valueListRelated": {
"readOnly": false,
"type": [
"string",
"null"
]
},
"visibleInList": {
"type": [
"boolean",
"null"
]
},
"visibleInPhoneCallForm": {
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"webVisibility": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"entity",
"fieldName",
"type"
],
"title": "extrafield",
"type": "object"
}https://api.forcemanager.com/api/v4/extrafields/VALUE Returns all Extra Fields available in the user's ForceManager implementation database, for a specific Entity.
You will only receive the Extra Field's information after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
PARAMETERS REQUEST
You can organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| resource | String | The unique and specific identifier for the Entity you to retrieve data. The allowed values are: accounts, activities, calendar, contacts, opportunities, products, rates, salesorders, users |
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | Organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/extrafields/VALUE?page=PAGE_NUMBER
You can also organise and view the results for Extra Fields in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/extrafields/VALUE?order=VALUE
RESPONSE
Returns information about all Extra Fields existing in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Extra Fields attributes:
| Attribute | Type | Description |
|---|---|---|
| entity | String | The name of the entity the Extra Field is linked to |
| description | String | Field name in Spanish |
| fieldName | String | Field name in the ForceManager database |
| type | Integer | Define the Extra Field's data type. The allowed types are: datetime, text, decimal, bit, list, multivalue |
| valueListRelated | String | If type is list or multivalue, it has to contain the database name of table that the Extra Field is sticked to |
| dateCreated | String | Date and time when the Extra Field was created |
| dateDeleted | String | Date and time when the Extra Field was deleted |
| dateUpdated | String | Date and time when the Extra Field was last updated |
| deleted | Boolean | If true, the Extra Field has been deleted and archived |
| defaultValue | String | The default value that the field should have |
| descriptionEN | String | Field name in English |
| descriptionIT | String | Field name in Italian |
| descriptionFR | String | Field name in French |
| descriptionDE | String | Field name in German |
| descriptionPT | String | Field name in Portuguese |
| descriptionUS | String | Field name in American English |
| descriptionRU | String | Field name in Russian |
| descriptionBR | String | Field name in Brasilian Portuguese |
| descriptionDK | String | Field name in Dutch |
| branches | Array | Branches in which the Extra Field is visibile |
| id | Integer | The Extra Field unique identifier |
| length | Integer | If Type is Text, define the length of this field |
| mandatory | Boolean | If true, the Extra Field is mandatory |
| mandatoryRestApi | Boolean | If true, the Extra Field is mandatory in the API requests |
| readOnly | Boolean | If true, the Extra Field is read only |
| order | Integer | Define its position inside the Tab |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Extra Field |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Extra Field |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Extra Field |
| tabId | Integer | The id of the tab that contains the Extra Field |
| searchable | Boolean | If true, you can search by the Extra Field |
| visibleInList | Boolean | If true, the Extra Field is visible in the entity list views of the web app |
| visibleInPhoneCallForm | Boolean | If true, the Extra Field is visible in the Phone Call form |
| webVisibility | Boolean | If true, the Extra Field is visible in all the devices |
| mobileVisibility | Boolean | If true, the Extra Field is visible in the mobile version |
| restApi | String | If true, the Extra Field will be visible in the API requests |
| dynamicField | String | The database name of the table that the Extra Field visibility depends from |
| dynamicFieldValues | Array | The IDs of the values of the table, the one specified in the dynamicField field, that make the Extra Field visibile |
| dependenceField | String | If type is list or multivalue, it has to contain the databae name fo the dependent table. This also requires to fill the idParent field of each Value of the valueListRelated table, to make the dependency effective |
| fuzzySearch | Boolean | If type is list or multivalue, a value of the table can be selected through a search input instead of a option drop down menu, inside the entity create/update form |
| includeTime | Boolean | If type is datetime, it lets you specify if the field has to include time values |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafields/VALUE" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/extrafields/VALUE", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/extrafields/VALUE",
headers=headers
)
data = response.json()[
{
"id": 36,
"entity": "opportunities",
"fieldName": "Z_LossReason",
"valueListRelated": "Z_tblLossReasons",
"description": "Loss Reason",
"deleted": false,
"dateDeleted": null,
"searchable": true,
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": null,
"dateCreated": "2021-11-17T00:53:35.95Z",
"dateUpdated": null,
"visibleInList": true,
"order": 2,
"webVisibility": true,
"tabId": -1,
"mobileVisibility": true,
"mandatory": false,
"readOnly": false,
"descriptionEN": "",
"descriptionIT": "",
"descriptionFR": "",
"descriptionDE": "",
"descriptionPT": "",
"descriptionUS": "",
"descriptionRU": "",
"descriptionBR": "",
"descriptionDK": "",
"branches": null,
"defaultValue": "",
"restApi": true,
"idsDynamism": null,
"visibleInPhoneCallForm": false,
"type": "list",
"length": 500,
"dynamicField": null,
"dynamicFieldValues": null,
"dependenceField": null,
"fuzzySearch": null,
"includeTime": false,
"mandatoryRestApi": false
},
{
"id": 37,
"entity": "opportunities",
"fieldName": "Z_Source",
"valueListRelated": "Z_tblSources",
"description": "Source",
"deleted": false,
"dateDeleted": null,
"searchable": true,
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": null,
"dateCreated": "2021-11-17T00:53:36.337Z",
"dateUpdated": null,
"visibleInList": true,
"order": 1,
"webVisibility": true,
"tabId": -1,
"mobileVisibility": true,
"mandatory": false,
"readOnly": false,
"descriptionEN": "Source",
"descriptionIT": "Source",
"descriptionFR": "Source",
"descriptionDE": "Source",
"descriptionPT": "Source",
"descriptionUS": "Source",
"descriptionRU": "Source",
"descriptionBR": "Source",
"descriptionDK": "Source",
"branches": null,
"defaultValue": "",
"restApi": true,
"idsDynamism": null,
"visibleInPhoneCallForm": false,
"type": "list",
"length": 500,
"dynamicField": null,
"dynamicFieldValues": null,
"dependenceField": null,
"fuzzySearch": null,
"includeTime": false,
"mandatoryRestApi": false
},
{
"id": 46,
"entity": "opportunities",
"fieldName": "Z_Pipeline",
"valueListRelated": "Z_tblPipelines",
"description": "Pipelines",
"deleted": false,
"dateDeleted": null,
"searchable": true,
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": 51,
"dateCreated": "2021-11-17T23:45:46.63Z",
"dateUpdated": "2021-12-08T17:27:22.22Z",
"visibleInList": true,
"order": 0,
"webVisibility": true,
"tabId": -1,
"mobileVisibility": true,
"mandatory": false,
"readOnly": true,
"descriptionEN": "",
"descriptionIT": "",
"descriptionFR": "",
"descriptionDE": "",
"descriptionPT": "",
"descriptionUS": "",
"descriptionRU": "",
"descriptionBR": "",
"descriptionDK": "",
"branches": [
"16"
],
"defaultValue": "",
"restApi": true,
"idsDynamism": null,
"visibleInPhoneCallForm": true,
"type": "list",
"length": 500,
"dynamicField": "idestadoobra",
"dynamicFieldValues": [
475
],
"dependenceField": "idsucursal",
"fuzzySearch": true,
"includeTime": false,
"mandatoryRestApi": false
}
]https://api.forcemanager.com/api/v4/extrafields/VALUE This endpoint allows you to create an Extra Field for a specific entity.
You will only be able to create an Extra Field after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Type | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| entity (Required) | String | The name of the entity the Extra Field is linked to |
| description | String | Field name in Spanish |
| fieldName (Required) | String | Field name in the ForceManager database |
| type (Required) | Integer | Define the Extra Field's data type. The allowed types are: datetime, text, decimal, bit, list, multivalue |
| valueListRelated | String | If type is list or multivalue, it has to contain the database name of table that the Extra Field is sticked to |
| defaultValue | String | The default value that the field should have |
| descriptionEN | String | Field name in English |
| descriptionIT | String | Field name in Italian |
| descriptionFR | String | Field name in French |
| descriptionDE | String | Field name in German |
| descriptionPT | String | Field name in Portuguese |
| descriptionUS | String | Field name in American English |
| descriptionRU | String | Field name in Russian |
| descriptionBR | String | Field name in Brasilian Portuguese |
| descriptionDK | String | Field name in Dutch |
| branches | Array | Branches in which the Extra Field is visibile |
| id | Integer | The Extra Field unique identifier |
| length | Integer | If Type is Text, define the length of this field |
| mandatory | Boolean | If true, the Extra Field is mandatory |
| mandatoryRestApi | Boolean | If true, the Extra Field is mandatory in the API requests |
| readOnly | Boolean | If true, the Extra Field is read only |
| order | Integer | Define its position inside the Tab |
| tabId | Integer | The id of the tab that contains the Extra Field |
| searchable | Boolean | If true, you can search by the Extra Field |
| visibleInList | Boolean | If true, the Extra Field is visible in the entity list views of the web app |
| visibleInPhoneCallForm | Boolean | If true, the Extra Field is visible in the Phone Call form |
| webVisibility | Boolean | If true, the Extra Field is visible in all the devices |
| mobileVisibility | Boolean | If true, the Extra Field is visible in the mobile version |
| restApi | String | If true, the Extra Field will be visible in the API requests |
| dynamicField | String | The database name of the table that the Extra Field visibility depends from |
| dynamicFieldValues | Array | The values of the table that make the Extra Field visibile |
| dependenceField | String | If type is list or multivalue, it has to contain the databae name fo the dependent table. This also requires to fill the idParent field of each Value of the valueListRelated table, to make the dependency effective |
| fuzzySearch | Boolean | If type is list or multivalue, a value of the table can be selected through a search input instead of a option drop down menu, inside the entity create/update form |
| includeTime | Boolean | If type is datetime, it lets you specify if the field has to include time values |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new ExtraField |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafields/VALUE" \
-X POST \
-H "Accept: */*" \
-d '{ "fieldName": "EmployeesNumber", "valueListRelated": null, "description": "Número de empleados", "searchable": true, "visibleInList": true, "order": 3, "webVisibility": true, "tabId": -1, "multilanguage": true, "mobileVisibility": true, "mandatory": true, "readOnly": true, "descriptionEN": "Num. Employees", "descriptionIT": "No. Dipendenti", "descriptionFR": "Nombre d'\''employés", "descriptionDE": "", "descriptionPT": "", "descriptionUS": "", "descriptionRU": "", "descriptionBR": "", "descriptionDK": "", "branches": [ "17" ], "defaultValue": "0", "restApi": true, "visibleInPhoneCallForm": true, "type": "int", "length": 180 }'const response = await fetch("https://api.forcemanager.com/api/v4/extrafields/VALUE", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"fieldName\": \"EmployeesNumber\",\n \"valueListRelated\": null,\n \"description\": \"Número de empleados\",\n \"searchable\": true,\n \"visibleInList\": true,\n \"order\": 3,\n \"webVisibility\": true,\n \"tabId\": -1,\n \"multilanguage\": true,\n \"mobileVisibility\": true,\n \"mandatory\": true,\n \"readOnly\": true,\n \"descriptionEN\": \"Num. Employees\",\n \"descriptionIT\": \"No. Dipendenti\",\n \"descriptionFR\": \"Nombre d'employés\",\n \"descriptionDE\": \"\",\n \"descriptionPT\": \"\",\n \"descriptionUS\": \"\",\n \"descriptionRU\": \"\",\n \"descriptionBR\": \"\",\n \"descriptionDK\": \"\",\n \"branches\": [\n \"17\"\n ],\n \"defaultValue\": \"0\",\n \"restApi\": true,\n \"visibleInPhoneCallForm\": true,\n \"type\": \"int\",\n \"length\": 180\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"fieldName\": \"EmployeesNumber\",\n \"valueListRelated\": null,\n \"description\": \"Número de empleados\",\n \"searchable\": true,\n \"visibleInList\": true,\n \"order\": 3,\n \"webVisibility\": true,\n \"tabId\": -1,\n \"multilanguage\": true,\n \"mobileVisibility\": true,\n \"mandatory\": true,\n \"readOnly\": true,\n \"descriptionEN\": \"Num. Employees\",\n \"descriptionIT\": \"No. Dipendenti\",\n \"descriptionFR\": \"Nombre d'employés\",\n \"descriptionDE\": \"\",\n \"descriptionPT\": \"\",\n \"descriptionUS\": \"\",\n \"descriptionRU\": \"\",\n \"descriptionBR\": \"\",\n \"descriptionDK\": \"\",\n \"branches\": [\n \"17\"\n ],\n \"defaultValue\": \"0\",\n \"restApi\": true,\n \"visibleInPhoneCallForm\": true,\n \"type\": \"int\",\n \"length\": 180\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/extrafields/VALUE",
headers=headers, json=json_body
)
data = response.json(){
"id": 50,
"Message": "entity created"
}Tabs
https://api.forcemanager.com/api/v4/extrafieldsTabs Returns all Tabs available. Tabs are needed for grouping together Extra Fields of each entity.
You will only receive the Tabs after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Tabs available for the value list.
List of the supported Tabs attributes:
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the Tab was created |
| dateDeleted | String | Date and time when the Tab was deleted |
| dateUpdated | String | Date and time when the Tab was last updated |
| deleted | Boolean | If true, the Tab has been deleted and archived |
| descriptionBR | String | Tab name in Brasilian Portuguese |
| descriptionDE | String | Tab name in German |
| descriptionDK | String | Tab name in Dutch |
| descriptionEN | String | Tab name in English |
| descriptionES | String | Tab name in Spanish |
| descriptionFR | String | Tab name in French |
| descriptionIT | String | Tab name in Italian |
| descriptionPT | String | Tab name in Portuguese |
| descriptionRU | String | Tab name in Russian |
| descriptionUS | String | Tab name in American English |
| id | Integer | Unique identifier for the Tab in ForceManager |
| order | Integer | The order of the Tab in the entity detail view |
| entity | String | The values can be: account, contact, opportunity, activity, calendar, salesOrder |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Tab |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Tab |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Tab |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafieldsTabs" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/extrafieldsTabs", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/extrafieldsTabs",
headers=headers
)
data = response.json()[
{
"dateCreated": "2022-01-27T06:32:56.127Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "GDPR acceptances",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"order": 0,
"entity": "contacts",
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
},
{
"dateCreated": "2022-01-27T06:53:16.583Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null,
"descriptionES": "Billing address infos",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"order": 4,
"entity": "accounts",
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/extrafieldsTabs This endpoint allows you to create a Tab based on JSON input.
You will only be able to create a Tab after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Tab name in Brasilian Portuguese |
| descriptionDE | String | Tab name in German |
| descriptionDK | String | Tab name in Dutch |
| descriptionEN | String | Tab name in English |
| descriptionES (Required) | String | Tab name in Spanish |
| descriptionFR | String | Tab name in French |
| descriptionIT | String | Tab name in Italian |
| descriptionPT | String | Tab name in Portuguese |
| descriptionRU | String | Tab name in Russian |
| descriptionUS | String | Tab name in American English |
| order | Integer | The order of the Tab in the entity detail view |
| entity (Required) | String | The values can be: account, contact, opportunity, activity, calendar, salesOrder |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Tab |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafieldsTabs" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionES": "Billing address infos", "order": 4, "entity": "accounts" }'const response = await fetch("https://api.forcemanager.com/api/v4/extrafieldsTabs", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionES\": \"Billing address infos\",\n \"order\": 4,\n \"entity\": \"accounts\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionES\": \"Billing address infos\",\n \"order\": 4,\n \"entity\": \"accounts\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/extrafieldsTabs",
headers=headers, json=json_body
)
data = response.json(){
"id": 5,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID} This endpoint retrieves data of a specific Tab based on JSON input. The API returns a single Tab available, according to the unique ID provided. If the specified Tab does not exist, the response will be a "bad request".
You will only receive the Tab after first providing the Session Key.
To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Tab |
RESPONSE
This endpoint returns information about a Tabs available.
List of the supported Tabs attributes:
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the Tab was created |
| dateDeleted | String | Date and time when the Tab was deleted |
| dateUpdated | String | Date and time when the Tab was last updated |
| deleted | Boolean | If true, the Tab has been deleted and archived |
| descriptionBR | String | Tab name in Brasilian Portuguese |
| descriptionDE | String | Tab name in German |
| descriptionDK | String | Tab name in Dutch |
| descriptionEN | String | Tab name in English |
| descriptionES | String | Tab name in Spanish |
| descriptionFR | String | Tab name in French |
| descriptionIT | String | Tab name in Italian |
| descriptionPT | String | Tab name in Portuguese |
| descriptionRU | String | Tab name in Russian |
| descriptionUS | String | Tab name in American English |
| id | Integer | Unique identifier for the Tab in ForceManager |
| order | Integer | The order of the Tab in the entity detail view |
| entity | String | The values can be: account, contact, opportunity, activity, calendar, salesOrder |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Tab |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Tab |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Tab |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}",
headers=headers
)
data = response.json(){
"dateCreated": "2022-01-27T06:53:16.583Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": null
"descriptionES": "Billing address infos",
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"order": 4,
"entity": "accounts",
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID} This endpoint allows you to update a specific Tab's information. If the specified Tab does not exist, the response will be a "bad request".
You will only be able to update an Tabs after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows you to update the information of a specific Tab. In order to update a Tab, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Tab name in Brasilian Portuguese |
| descriptionDE | String | Tab name in German |
| descriptionDK | String | Tab name in Dutch |
| descriptionEN | String | Tab name in English |
| descriptionES | String | Tab name in Spanish |
| descriptionFR | String | Tab name in French |
| descriptionIT | String | Tab name in Italian |
| descriptionPT | String | Tab name in Portuguese |
| descriptionRU | String | Tab name in Russian |
| descriptionUS | String | Tab name in American English |
| order | Integer | The order of the Tab in the entity detail view |
| entity | String | The values can be: account, contact, opportunity, activity, calendar, salesOrder |
RESPONSE
Returns a JSON with information about the Tab just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionES": "Billing address info", "order": 2 }'const response = await fetch("https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionES\": \"Billing address info\",\n \"order\": 2\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionES\": \"Billing address info\",\n \"order\": 2\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID} This endpoint allows you to delete a specific Tab from the user's ForceManager implementation database. If the specified Tab does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete an Tab after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Accept any data of whatever mime type |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Tab to delete |
RESPONSE
Returns a JSON with information about the Tab just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/extrafieldsTabs/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Forms
Entity
https://api.forcemanager.com/api/v4/forms/{ID} This endpoint retrieves data of a specific Form based on JSON input. The API returns a single Form available to the user, according to the unique ID provided. If the specified Form does not exist, the response will be a "bad request".
You will only receive the Form after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Form to retrieve data |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the Form was created |
| dateDeleted | String | Date and time when the Form was deleted |
| dateUpdated | String | Date and time when the Form was last updated |
| deleted | Boolean | If true, the Form has been deleted and archived |
| list | String | Form's lists specifications |
| detail | String | Form's fields specifications |
| jsonData | String | Form's general specifications |
| formTemplateId | String | he ID of the Template that Form belongs to (see Templates resource) |
| statusId | Integer | The ID of the State that Form belongs to (see States resource) |
| id | Integer | Unique identifier for the Form in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Form |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Form |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Form |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/forms/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/forms/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/forms/{ID}",
headers=headers
)
data = response.json(){
"id": 40,
"list": "{\"pos11\":\"\",\"pos12\":\"\",\"pos13\":\"\",\"pos21\":\"\",\"pos22\":\"\",\"pos23\":\"06\\/04\\/2020 15:07 PM\"}",
"detail": "[{\"type\":\"title\",\"titleName\":\"Form\",\"key\":\"\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Provider name\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Product type\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Quantity\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Models\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"}]",
"jsonData": "{\"formObject\":{\"fechaCreacion\":\"06/04/2020 15:07 PM\",\"stocks\":{\"ProductType\":{\"activitytypeid\":0,\"blnHide\":null,\"blnIsCheckin\":null,\"blnIsFastCheckin\":null,\"blnIsGeneral\":null,\"blnIsPhoneCall\":null,\"blnIsVisibleInActivity\":\"True\",\"blnIsVisibleInAgenda\":\"True\",\"blnIsVisita\":null,\"blnIsWorkflow\":\"False\",\"children\":[],\"defaultStatusId\":-1,\"descripcion\":null,\"extId\":\"\",\"extraFields\":{},\"iconUrl\":null,\"id\":1,\"idCurrency\":-100,\"idParent\":0,\"isLost\":\"0\",\"isParent\":false,\"isWon\":\"0\",\"isoCode\":null,\"label\":\"AOI\",\"order\":0,\"parentEntry\":null,\"ratioStatus\":-1,\"symbol\":null,\"endState\":false,\"intEndStateType\":0,\"value\":1,\"checked\":false},\"Providers\":{\"activitytypeid\":0,\"blnHide\":null,\"blnIsCheckin\":null,\"blnIsFastCheckin\":null,\"blnIsGeneral\":null,\"blnIsPhoneCall\":null,\"blnIsVisibleInActivity\":\"True\",\"blnIsVisibleInAgenda\":\"True\",\"blnIsVisita\":null,\"blnIsWorkflow\":\"False\",\"children\":[],\"defaultStatusId\":-1,\"descripcion\":null,\"extId\":\"\",\"extraFields\":{\"z_stocked\":\"True\"},\"iconUrl\":null,\"id\":132,\"idCurrency\":-100,\"idParent\":0,\"isLost\":\"0\",\"isParent\":false,\"isWon\":\"0\",\"isoCode\":null,\"label\":\"TRI\",\"order\":0,\"parentEntry\":null,\"ratioStatus\":-1,\"symbol\":null,\"endState\":false,\"intEndStateType\":0,\"value\":132,\"checked\":false,\"z_stocked\":\"True\"},\"Models\":{\"activitytypeid\":0,\"blnHide\":null,\"blnIsCheckin\":null,\"blnIsFastCheckin\":null,\"blnIsGeneral\":null,\"blnIsPhoneCall\":null,\"blnIsVisibleInActivity\":\"True\",\"blnIsVisibleInAgenda\":\"True\",\"blnIsVisita\":null,\"blnIsWorkflow\":\"False\",\"children\":[],\"defaultStatusId\":-1,\"descripcion\":null,\"extId\":\"\",\"extraFields\":{},\"iconUrl\":null,\"id\":49,\"idCurrency\":-100,\"idParent\":0,\"isLost\":\"0\",\"isParent\":false,\"isWon\":\"0\",\"isoCode\":null,\"label\":\"ICT\",\"order\":0,\"parentEntry\":null,\"ratioStatus\":-1,\"symbol\":null,\"endState\":false,\"intEndStateType\":0,\"value\":49,\"checked\":false},\"quantity\":\"6\",\"note\":\"\"}},\"idFormType\":1,\"idState\":1,\"endState\":1,\"selectedForm\":null,\"listObject\":{\"pos11\":\"\",\"pos12\":\"\",\"pos13\":\"\",\"pos21\":\"\",\"pos22\":\"\",\"pos23\":\"06/04/2020 15:07 PM\"},\"detailObject\":{\"detailTitle\":\"Detalles\",\"detailValues\":[{\"type\":\"title\",\"titleName\":\"Form\",\"key\":\"\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Provider name\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Product type\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Quantity\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"},{\"type\":\"text\",\"titleName\":\"\",\"key\":\"Models\",\"value\":\"\",\"entityId\":\"\",\"entityType\":\"\"}]},\"idFormSubtype\":\"stocks\"}",
"formTemplateId": 1,
"statusId": 1,
"salesRepIdDeleted": 94,
"salesRepIdCreated": 94,
"salesRepIdUpdated": null,
"dateCreated": "2020-04-06T15:07:15.93Z",
"dateUpdated": null,
"dateDeleted": "2020-04-06T15:34:13.4Z",
"deleted": true
}States
https://api.forcemanager.com/api/v4/forms/{ID}/state This endpoint retrieves data of a specific Form State based on JSON input. The API returns a single Form State available to the user, according to the unique ID provided. If the specified Form State does not exist, the response will be a "bad request".
You will only receive the Form State after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Form State to retrieve data |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Unique identifier for the Form State in ForceManager |
| intOrder | Integer | The order in which the State has to appear in the Form States list |
| idParent | Integer | Unique identifier of the parent |
| blnEndState | Boolean | Set to 1 if the Form is fullfilled 0 otherwise |
| strIDEnvironment | String | IDs of the Branches (see Branches resource) associated to the Form State |
| dateCreated | String | Date and time when the Form State was created |
| dateDeleted | String | Date and time when the Form State was deleted |
| dateUpdated | String | Date and time when the Form State was last updated |
| deleted | Boolean | If true, the Form State has been deleted and archived |
| description | String | Form State name |
| descriptionBR | String | Form State name in Brasilian Portuguese |
| descriptionDE | String | Form State name in German |
| descriptionDK | String | Form State name in Dutch |
| descriptionEN | String | Form State name in English |
| descriptionES | String | Form State name in Spanish |
| descriptionFR | String | Form State name in French |
| descriptionIT | String | Form State name in Italian |
| descriptionPT | String | Form State name in Portuguese |
| descriptionRU | String | Form State name in Russian |
| descriptionUS | String | Form State name in American English |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Form State |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Form State |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Form State |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/forms/{ID}/state" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/forms/{ID}/state", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/forms/{ID}/state",
headers=headers
)
data = response.json(){
"id": 1,
"intOrder": 1,
"idParent": null,
"blnEndState": true,
"strIdEnvironment": ";-1;",
"descriptionEN": null,
"description": "Fullfilled",
"descriptionIT": null,
"descriptionFR": null,
"descriptionDE": null,
"descriptionPT": null,
"descriptionUS": null,
"descriptionBR": null,
"descriptionRU": null,
"descriptionDK": null,
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": null,
"dateCreated": "2020-03-26T15:16:45.32Z",
"dateUpdated": null,
"dateDeleted": null,
"deleted": false
}Templates
https://api.forcemanager.com/api/v4/forms/{ID}/template This endpoint retrieves data of a specific Form Template based on JSON input. The API returns a single Form Template available to the user, according to the unique ID provided. If the specified Form Template does not exist, the response will be a "bad request".
You will only receive the Form Template after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Form Template to retrieve data |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| guid | String | Globally Unique identifier for the Form Template in ForceManager |
| type | Integer | Internal type of the Entity associated to the Form Template |
| typeDescription | Integer | Friendly name of the Entity associated to the Form Template |
| url | Integer | URL of the Form Template index file |
| active | Boolean | True if the Form Template is activated, false otherwise |
| idRole | Integer | ID of the Role (see Roles resource) associated to the Form Template |
| extraFields | String | |
| id | Integer | Unique identifier for the Form Template in ForceManager |
| dateCreated | String | Date and time when the Form Template was created |
| dateDeleted | String | Date and time when the Form Template was deleted |
| dateUpdated | String | Date and time when the Form Template was last updated |
| deleted | Boolean | If true, the Form Template has been deleted and archived |
| descriptionBR | String | Form Template name in Brasilian Portuguese |
| descriptionDE | String | Form Template name in German |
| descriptionDK | String | Form Template name in Dutch |
| descriptionEN | String | Form Template name in English |
| descriptionES | String | Form Template name in Spanish |
| descriptionFR | String | Form Template name in French |
| descriptionIT | String | Form Template name in Italian |
| descriptionPT | String | Form Template name in Portuguese |
| descriptionRU | String | Form Template name in Russian |
| descriptionUS | String | Form Template name in American English |
| id | Integer | Unique identifier for the Form Template in ForceManager |
| userCreated | Integer | Unique identifier of the user who created the Form Template |
| userDeleted | Integer | Unique identifier of the user who deleted the Form Template |
| userUpdated | Integer | Unique identifier of the user who last updated the Form Template |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/forms/{ID}/template" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/forms/{ID}/template", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/forms/{ID}/template",
headers=headers
)
data = response.json(){
"id": 1,
"guid": "5EB67696-A67B-4797-AB53-ACEC98667945",
"type": 2,
"typeDescription": "Empresa",
"url": "https://e2fi43u98l79ij.cloudfront.net/code/5EB67696-A67B-4797-AB53-ACEC98667945/index.html",
"active": true,
"idRole": null,
"extraFields": null,
"deleted": false,
"userDeleted": null,
"userCreated": 51,
"userUpdated": 51,
"dateCreated": "2020-03-26T11:28:22.067Z",
"dateUpdated": "2021-09-15T13:29:31.03Z",
"dateDeleted": null,
"descriptionEN": null,
"description": "Providers",
"descriptionIT": null,
"descriptionFR": null,
"descriptionDE": null,
"descriptionPT": null,
"descriptionUS": null,
"descriptionBR": null,
"descriptionRU": null,
"descriptionDK": null
}News
https://api.forcemanager.com/api/v4/news Returns all News available. News are basically messages that you can sent to the whole organization, to your team or to an User. These messages can be tracked in terms of the number of Users that had received, open or read it.
You will only receive the News after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all News available for the value list.
List of the supported News attributes:
| Attribute | Type | Description |
|---|---|---|
| dateCreated | String | Date and time when the News was created |
| dateDeleted | String | Date and time when the News was deleted |
| dateUpdated | String | Date and time when the News was last updated |
| deleted | Boolean | If true, the News has been deleted and archived |
| descriptionText | String | The content of the News to be communicated |
| id | Integer | Unique identifier for the News in ForceManager |
| idIanaZone | String | Identifier of the News in the IANA database |
| salesRepIdCreated | Integer | Unique identifier of the user who created the News |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the News |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the News |
| startDate | Date | When the News is sent |
| endDate | Date | When the News is going to expire |
| status | Integer | The status of the News (1 for Confirmed,2 for Opened,3 for Received,4 for Sent) |
| subject | String | The title of the News |
| totalUsers | Integer | The number of Users to whom the News is addressed |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/news" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/news", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/news",
headers=headers
)
data = response.json()[
{
"dateCreated": "2022-02-08T14:16:36.103Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionText": "<p>Dear team, see here enclosed the updated portfolio for this year</p><br><p>I invite you to take a look and work for making this year another successful one!</p>",
"endDate": "1900-01-01T00:00:00Z",
"id": 1,
"salesRepIDeleted": null,
"salesRepIdCreated": 120,
"salesRepIdUpdated": null,
"startDate": "2022-02-08T14:16:36Z",
"status": 2,
"subject": "New product portofolio for season 2022",
"totalUsers": 3
},
{
"dateCreated": "2022-02-08T14:17:07.973Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionText": "<p>Hi all, we are glad to announce that we have started a new marketing campaing in the US.</p><br><p>Expect to receive new leads in the following weeks!</p>",
"endDate": "1900-01-01T00:00:00Z",
"id": 2,
"salesRepIDeleted": null,
"salesRepIdCreated": 120,
"salesRepIdUpdated": null,
"startDate": "2022-02-08T14:17:08Z",
"status": 1,
"subject": "Important message",
"totalUsers": 30
}
]Opportunities
Types
https://api.forcemanager.com/api/v4/opportunityTypes Returns all Opportunity Types available in the user's ForceManager implementation database.
You will only receive the List of Opportunity Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Opportunity Types available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Opportunity Types attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Opportunity Type is visible |
| defaultStatus | Boolean | The ID of the Opportunity Status selected by default for a chosen Opportunity Type, in the multiple pipeline context |
| dateCreated | String | Date and time when the Opportunity Type was created |
| dateDeleted | String | Date and time when the Opportunity Type was deleted |
| dateUpdated | String | Date and time when the Opportunity Type was last updated |
| deleted | Boolean | If true, the Opportunity Type has been deleted and archived |
| descriptionBR | String | Opportunity Type label in Brasilian Portuguese |
| descriptionDE | String | Opportunity Type label in German |
| descriptionDK | String | Opportunity Type label in Dutch |
| descriptionEN | String | Opportunity Type label in English |
| descriptionES | String | Opportunity Type label in Spanish |
| descriptionFR | String | Opportunity Type label in French |
| descriptionIT | String | Opportunity Type label in Italian |
| descriptionPT | String | Opportunity Type label in Portuguese |
| descriptionRU | String | Opportunity Type label in Russian |
| descriptionUS | String | Opportunity Type label in American English |
| id | Integer | Unique identifier for the Opportunity Type in ForceManager |
| order | Integer | The position of the Opportunity Type in the Opportunity Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Opportunity Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Opportunity Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Opportunity Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/opportunityTypes" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityTypes",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"dateCreated": "2021-11-29T17:16:04.9Z",
"dateDeleted": null,
"dateUpdated": null,
"defaultStatus": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Sales Pipeline",
"descriptionES": "Flujo de ventas",
"descriptionFR": null,
"descriptionIT": "Linea di vendita",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"order": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": null
},
{
"branchVisibility": null,
"dateCreated": "2021-11-29T17:16:05.223Z",
"dateDeleted": null,
"dateUpdated": null,
"defaultStatus": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Customer care line",
"descriptionES": "Linea de soporte",
"descriptionFR": null,
"descriptionIT": "Supporto post-vendita",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"order": 1,
"salesRepIdCreated": 90,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": null
},
]https://api.forcemanager.com/api/v4/opportunityTypes This endpoint allows you to create a Opportunity Status based on JSON input.
You will only be able to create a Opportunity Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Opportunity Type is visible |
| defaultStatus | Boolean | The ID of the Opportunity Status selected by default for a chosen Opportunity Type, in the multiple pipeline context |
| descriptionBR | String | Opportunity Type label in Brasilian Portuguese |
| descriptionDE | String | Opportunity Type label in German |
| descriptionDK | String | Opportunity Type label in Dutch |
| descriptionEN | String | Opportunity Type label in English |
| descriptionES | String | Opportunity Type label in Spanish |
| descriptionFR | String | Opportunity Type label in French |
| descriptionIT | String | Opportunity Type label in Italian |
| descriptionPT | String | Opportunity Type label in Portuguese |
| descriptionRU | String | Opportunity Type label in Russian |
| descriptionUS | String | Opportunity Type label in American English |
| order | Integer | The position of the Opportunity Type in the Opportunity Types value list |
RESPONSE
Returns a JSON with information about the Opportunity Status just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity Status |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityTypes" \
-X POST \
-H "Accept: */*" \
-d '{ "branchVisibility": [ 16 ], "descriptionEN": "Food and Beverage", "defaultStatus": 1, "order": 4 }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"branchVisibility\": [\n 16\n ],\n \"descriptionEN\": \"Food and Beverage\",\n \"defaultStatus\": 1,\n \"order\": 4\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"branchVisibility\": [\n 16\n ],\n \"descriptionEN\": \"Food and Beverage\",\n \"defaultStatus\": 1,\n \"order\": 4\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/opportunityTypes",
headers=headers, json=json_body
)
data = response.json(){
"id": 69,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/opportunityTypes/schema Returns properties object with the definition of each field in the Opportunity Types table.
You will only receive the Opportunity Types Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Opportunity Types Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityTypes/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityTypes/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"defaultStatus": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 4000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 4000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 4000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "opportunityTypes",
"type": "object"
}https://api.forcemanager.com/api/v4/opportunityTypes/{ID} This endpoint retrieves data of a specific Opportunity Type based on JSON input. The API returns a single Opportunity Type available to the user in the Value List, according to the unique ID provided. If the specified Opportunity Type does not exist, the response will be a "bad request".
You will only receive the Opportunity Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity Type |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Opportunity Type is visible |
| defaultStatus | Boolean | The ID of the Opportunity Status selected by default for a chosen Opportunity Type, in the multiple pipeline context |
| dateCreated | String | Date and time when the Opportunity Type was created |
| dateDeleted | String | Date and time when the Opportunity Type was deleted |
| dateUpdated | String | Date and time when the Opportunity Type was last updated |
| deleted | Boolean | If true, the Opportunity Type has been deleted and archived |
| descriptionBR | String | Opportunity Type label in Brasilian Portuguese |
| descriptionDE | String | Opportunity Type label in German |
| descriptionDK | String | Opportunity Type label in Dutch |
| descriptionEN | String | Opportunity Type label in English |
| descriptionES | String | Opportunity Type label in Spanish |
| descriptionFR | String | Opportunity Type label in French |
| descriptionIT | String | Opportunity Type label in Italian |
| descriptionPT | String | Opportunity Type label in Portuguese |
| descriptionRU | String | Opportunity Type label in Russian |
| descriptionUS | String | Opportunity Type label in American English |
| id | Integer | Unique identifier for the Opportunity Type in ForceManager |
| order | Integer | The position of the Opportunity Type in the Opportunity Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Opportunity Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Opportunity Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Opportunity Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityTypes/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityTypes/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": [
{
"id": 16,
"value": "Sales dept."
}
],
"dateCreated": "2021-12-16T11:12:21.667Z",
"dateDeleted": null,
"dateUpdated": null,
"defaultStatus": 1,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Food and Beverage",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 69,
"order": 4,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/opportunityTypes/{ID} This endpoint allows you to update a specific Opportunity Status. If the specified Opportunity Status does not exist, the response will be a "bad request".
You will only be able to update a Opportunity Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Opportunity Status. In order to update an Opportunity Status, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Opportunity Type is visible |
| defaultStatus | Boolean | The ID of the Opportunity Status selected by default for a chosen Opportunity Type, in the multiple pipeline context |
| descriptionBR | String | Opportunity Type label in Brasilian Portuguese |
| descriptionDE | String | Opportunity Type label in German |
| descriptionDK | String | Opportunity Type label in Dutch |
| descriptionEN | String | Opportunity Type label in English |
| descriptionES | String | Opportunity Type label in Spanish |
| descriptionFR | String | Opportunity Type label in French |
| descriptionIT | String | Opportunity Type label in Italian |
| descriptionPT | String | Opportunity Type label in Portuguese |
| descriptionRU | String | Opportunity Type label in Russian |
| descriptionUS | String | Opportunity Type label in American English |
| order | Integer | The position of the Opportunity Type in the Opportunity Types value list |
RESPONSE
Returns a JSON with information about the Opportunity Status just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityTypes/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionES": "Alimentos y Bebidas" }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionES\": \"Alimentos y Bebidas\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionES\": \"Alimentos y Bebidas\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/opportunityTypes/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/opportunityTypes/{ID} This endpoint allows you to delete a specific Opportunity Type from the user's ForceManager implementation database. If the specified Opportunity Type does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Opportunity Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity Type to delete |
RESPONSE
Returns a JSON with information about the Opportunity Type just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityTypes/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityTypes/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/opportunityTypes/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Entity
https://api.forcemanager.com/api/v4/opportunities/schema The Schema is metadata that tells you how the data is structured for a specific resource. The Schema defines all the fields that exist for an Opportunity object.
You will only receive the Opportunity Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Opportunities Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunities/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunities/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunities/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountId1": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"accountId2": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"accountId3": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"address1": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"address2": {
"description": "",
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"branchId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "branches",
"type": [
"object",
"null"
]
},
"city": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"closedDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"comments": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"countryId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "countries",
"type": [
"object",
"null"
]
},
"currencyId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "currencies",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateGeocoded": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"extId": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"geocoded": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"geocodingAccuracy": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"latitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"longitude": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"lostDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"postcode": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"reference": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"region": {
"description": "",
"maxLength": 200,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesForecastDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesProbability": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"statusId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "opportunityStatuses",
"type": [
"object",
"null"
]
},
"total": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"type_id": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "opportunityTypes",
"type": [
"object",
"null"
]
},
"wonDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
}
},
"required": [
"branchId",
"salesProbability",
"salesRepId",
"statusId",
"reference"
],
"title": "opportunities",
"type": "object"
}https://api.forcemanager.com/api/v4/opportunities Returns all Opportunities available in the user's ForceManager implementation database.
You will only receive the List of Opportunities after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/opportunities?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/opportunities?where= param1=value AND/OR param2=value2
You can filter Opportunities by dateCreated or statusId, or typeId for example.
You can also organise and view the results for Opportunities in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/opportunities?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/opportunities?lang=VALUE
RESPONSE
This endpoint returns information about all Opportunities available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Opportunities attributes:
| Attribute | Type | Description |
|---|---|---|
| accountId1 | Object, Null | First Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId2 | Object, Null | Second Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId3 | Object, Null | Third Account to whom the Opportunity is linked to (see Accounts resource) |
| address1 | String | First address to whom the Opportunity is linked |
| address2 | String | Second address to whom the Opportunity is linked |
| branchId | Object, Null | Branch to whom the Opportunity has been assigned (see Branches resource) |
| city | String | City name |
| closedDate | String | Date when the Opportunity was closed |
| comments | String | Comment added to the Opportunity |
| countryId | Object, Null | Country ID (see Countries resource) of the Opportunity address |
| currencyId | Object, Null | Currency ID (see Currencies resource) related to the Opportunity amount |
| dateCreated | String | Date and time when the Opportunity was created |
| dateDeleted | String | Date and time when the Opportunity was deleted |
| dateUpdated | String | Date and time when the Opportunity was last updated |
| deleted | Boolean | If true, the Opportunity has been deleted and archived |
| extId | String | External ID of the Opportunity from a third party system (ERP, CRM, Accounting System) |
| geocoded | Boolean | If true, the Opportunity has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile client can detect |
| id | Integer | Unique identifier for the Opportunity in ForceManager |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| lostDate | String | Date when the Opportunity was lost |
| permissionLevel | String | Defines the visibility of the Opportunity. Set from 1 to 5 being 5 the highest level of permission |
| postcode | String | The Opportunity's address postal code |
| readOnly | Boolean | If true, the Opportunity can not be modified or deleted |
| reference | String | Opportunity's name |
| region | String | Region/State name |
| salesForeCastDate | String | Forecast sale date |
| salesProbability | Object, Null | Probability of sale |
| salesRepId | Object, Null | Unique identifier of the User associated to the Opportunity (see Users resource) |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Opportunity |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Opportunity |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Opportunity |
| type_id | Object, Null | Type of the Opportunity (see Types resource) |
| statusId | Object, Null | Status of the Opportunity (see Statues resource) |
| total | Number | Total amount of the Opportunity |
| wonDate | String | Date when the Opportunity was won |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/opportunities" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/opportunities", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunities",
headers=headers
)
data = response.json()[
{
"accountId1": {
"id": 150,
"value": "Acme Inc."
},
"accountId2": null,
"accountId3": null,
"address1": null,
"address2": null,
"branchId": {
"id": 16,
"value": "Subsidiary"
},
"city": null,
"closedDate": "2017-05-11T13:51:08Z",
"comments": null,
"countryId": {
"id": 112,
"value": "Italy"
},
"currencyId": {
"id": 1,
"value": "euro"
},
"dateCreated": "2021-11-19T15:39:51.19Z",
"dateDeleted": null,
"dateGeocoded": null,
"dateUpdated": "2021-11-30T13:08:43.997Z",
"deleted": false,
"extId": "536537-D",
"geocoded": false,
"geocodingAccuracy": null,
"id": 111,
"latitude": null,
"longitude": null,
"lostDate": null,
"permissionLevel": 0,
"postcode": null,
"readOnly": false,
"reference": "Closed opportunity",
"region": null,
"salesForecastDate": "2017-05-31T12:59:59Z",
"salesProbability": 10,
"salesRepId": {
"id": 120,
"value": "Filippo Zanella"
},
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"statusId": {
"id": 434,
"value": "Won"
},
"total": 5000,
"type_id": {
"id": 61,
"value": "Sales Pipeline"
},
"wonDate": null
},
{
"accountId1": {
"id": 150,
"value": "Acme Inc."
},
"accountId2": null,
"accountId3": null,
"address1": null,
"address2": null,
"branchId": {
"id": 16,
"value": "Subsidiary"
},
"city": null,
"closedDate": "2017-05-30T19:13:08Z",
"comments": null,
"countryId": {
"id": 112,
"value": "Italy"
},
"currencyId": {
"id": 1,
"value": "euro"
},
"dateCreated": "2021-11-19T15:40:24.22Z",
"dateDeleted": null,
"dateGeocoded": null,
"dateUpdated": "2021-11-30T13:09:20.917Z",
"deleted": false,
"extId": "536536-D",
"geocoded": false,
"geocodingAccuracy": null,
"id": 121,
"latitude": null,
"longitude": null,
"lostDate": null,
"permissionLevel": 0,
"postcode": null,
"readOnly": false,
"reference": "Your first opportunity",
"region": null,
"salesForecastDate": "2017-05-31T12:59:59Z",
"salesProbability": 10,
"salesRepId": {
"id": 120,
"value": "Filippo Zanella"
},
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 90,
"statusId": {
"id": 434,
"value": "Won"
},
"total": 4000,
"type_id": {
"id": 61,
"value": "Sales Pipeline"
},
"wonDate": null
}
]https://api.forcemanager.com/api/v4/opportunities This endpoint allows you to create a Opportunity based on JSON input.
You will only be able to create a Opportunity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| accountId1 | Integer | First Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId2 | Integer | Second Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId3 | Integer | Third Account to whom the Opportunity is linked to (see Accounts resource) |
| address1 | String | First address to whom the Opportunity is linked |
| address2 | String | Second address to whom the Opportunity is linked |
| branchId (Required) | Integer | Branch to whom the Opportunity has been assigned (see Branches resource) |
| city | String | City name |
| closedDate | String | Date when the Opportunity was closed |
| comments | String | Comment added to the Opportunity |
| countryId | Integer | Country ID (see Countries resource) of the Opportunity address |
| currencyId | Integer | Currency ID (see Currencies resource) related to the Opportunity amount |
| extId | String | External ID of the Opportunity from a third party system (ERP, CRM, Accounting System) |
| geocoded | Boolean | If true, the Opportunity has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile client can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| lostDate | String | Date when the Opportunity was lost |
| permissionLevel | String | Defines the visibility of the Opportunity. Set from 1 to 5 being 5 the highest level of permission |
| postcode | String | The Opportunity's address postal code |
| readOnly | Boolean | If true, the Opportunity can not be modified or deleted |
| reference (Required) | String | Opportunity's name |
| region | String | Region/State name |
| salesForeCastDate | String | Forecast sale date |
| salesProbability (Required) | Integer | Probability of sale, it is a number between 0 and 10 |
| salesRepId (Required) | Integer | Unique identifier of the User associated to the Opportunity (see Users resource) |
| type_id | Integer | Type of the Opportunity (see Types resource) |
| statusId (Required) | Integer | Status of the Opportunity (see Statues resource) |
| total | Number | Total amount of the Opportunity |
| wonDate | String | Date when the Opportunity was won |
RESPONSE
Returns a JSON with information about the Opportunity just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunities" \
-X POST \
-H "Accept: */*" \
-d '{ "accountId1": 1757, "address1": "Street Anthon, 125", "branchId": 43, "city": "London", "comments": "It is an important opportunity", "currencyId": 1, "geocoded": true, "geocodingAccuracy": 20, "latitude": 41.3916328, "longitude": 2.1293214, "lostDate": null, "permissionLevel": 0, "postcode": "08950", "readOnly": false, "reference": "10x packages", "salesProbability": 10, "salesRepId": 554, "statusId": 7, "total": 34560 }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunities", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountId1\": 1757,\n \"address1\": \"Street Anthon, 125\",\n \"branchId\": 43,\n \"city\": \"London\",\n \"comments\": \"It is an important opportunity\",\n \"currencyId\": 1,\n \"geocoded\": true,\n \"geocodingAccuracy\": 20,\n \"latitude\": 41.3916328,\n \"longitude\": 2.1293214,\n \"lostDate\": null,\n \"permissionLevel\": 0,\n \"postcode\": \"08950\",\n \"readOnly\": false,\n \"reference\": \"10x packages\",\n \"salesProbability\": 10,\n \"salesRepId\": 554,\n \"statusId\": 7,\n \"total\": 34560\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountId1\": 1757,\n \"address1\": \"Street Anthon, 125\",\n \"branchId\": 43,\n \"city\": \"London\",\n \"comments\": \"It is an important opportunity\",\n \"currencyId\": 1,\n \"geocoded\": true,\n \"geocodingAccuracy\": 20,\n \"latitude\": 41.3916328,\n \"longitude\": 2.1293214,\n \"lostDate\": null,\n \"permissionLevel\": 0,\n \"postcode\": \"08950\",\n \"readOnly\": false,\n \"reference\": \"10x packages\",\n \"salesProbability\": 10,\n \"salesRepId\": 554,\n \"statusId\": 7,\n \"total\": 34560\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/opportunities",
headers=headers, json=json_body
)
data = response.json(){
"id": 127,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/opportunities/{ID} This endpoint retrieves data of a specific Opportunity based on JSON input. The API returns a single Opportunity available to the user, according to the unique ID provided. If the specified Opportunity does not exist, the response will be a "bad request".
You will only receive the Opportunity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountId1 | Object, Null | First Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId2 | Object, Null | Second Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId3 | Object, Null | Third Account to whom the Opportunity is linked to (see Accounts resource) |
| address1 | String | First address to whom the Opportunity is linked |
| address2 | String | Second address to whom the Opportunity is linked |
| branchId | Object, Null | Branch to whom the Opportunity has been assigned (see Branches resource) |
| city | String | City name |
| closedDate | String | Date when the Opportunity was closed |
| comments | String | Comment added to the Opportunity |
| countryId | Object, Null | Country ID (see Countries resource) of the Opportunity address |
| currencyId | Object, Null | Currency ID (see Currencies resource) related to the Opportunity amount |
| dateCreated | String | Date and time when the Opportunity was created |
| dateDeleted | String | Date and time when the Opportunity was deleted |
| dateUpdated | String | Date and time when the Opportunity was last updated |
| deleted | Boolean | If true, the Opportunity has been deleted and archived |
| extId | String | External ID of the Opportunity from a third party system (ERP, CRM, Accounting System) |
| geocoded | Boolean | If true, the Opportunity has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile client can detect |
| id | Integer | Unique identifier for the Opportunity in ForceManager |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| lostDate | String | Date when the Opportunity was lost |
| permissionLevel | String | Defines the visibility of the Opportunity. Set from 1 to 5 being 5 the highest level of permission |
| postcode | String | The Opportunity's address postal code |
| readOnly | Boolean | If true, the Opportunity can not be modified or deleted |
| reference | String | Opportunity's name |
| region | String | Region/State name |
| salesForeCastDate | String | Forecast sale date |
| salesProbability | Object, Null | Probability of sale |
| salesRepId | Object, Null | Unique identifier of the User associated to the Opportunity (see Users resource) |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Opportunity |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Opportunity |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Opportunity |
| type_id | Object, Null | Type of the Opportunity (see Types resource) |
| statusId | Object, Null | Status of the Opportunity (see Statues resource) |
| total | Number | Total amount of the Opportunity |
| wonDate | String | Date when the Opportunity was won |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/opportunities/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]"const response = await fetch("https://api.forcemanager.com/api/v4/opportunities/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunities/{ID}",
headers=headers
)
data = response.json(){
"accountId1": {
"id": 1757,
"value": "Universal ltd"
},
"accountId2": null,
"accountId3": null,
"address1": "Street Anthon, 125",
"address2": null,
"branchId": {
"id": 43,
"value": "Main unit"
},
"city": "London",
"closedDate": null,
"comments": "It is an important opportunity",
"countryId": null,
"currencyId": {
"id": 1,
"value": "euro"
},
"dateCreated": "2021-12-16T21:44:46.333Z",
"dateDeleted": null,
"dateGeocoded": null,
"dateUpdated": null,
"deleted": false,
"extId": null,
"geocoded": true,
"geocodingAccuracy": 20,
"id": 127,
"latitude": 41.3916328,
"longitude": 2.1293214,
"lostDate": null,
"permissionLevel": 0,
"postcode": "08950",
"readOnly": false,
"reference": "10x packages",
"region": null,
"salesForecastDate": null,
"salesProbability": 10,
"salesRepId": {
"id": 558,
"value": "Tadala Asnappar"
},
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"statusId": {
"id": 7,
"value": "In progress"
},
"total": 34560,
"type_id": null,
"wonDate": null
}https://api.forcemanager.com/api/v4/opportunities/{ID} This endpoint allows you to update a specific Opportunity. If the specified Opportunity does not exist, the response will be a "bad request".
You will only be able to update a Opportunity after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Opportunity. In order to update an Opportunity, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountId1 | Integer | First Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId2 | Integer | Second Account to whom the Opportunity is linked to (see Accounts resource) |
| accountId3 | Integer | Third Account to whom the Opportunity is linked to (see Accounts resource) |
| address1 | String | First address to whom the Opportunity is linked |
| address2 | String | Second address to whom the Opportunity is linked |
| branchId | Integer | Branch to whom the Opportunity has been assigned (see Branches resource) |
| city | String | City name |
| closedDate | String | Date when the Opportunity was closed |
| comments | String | Comment added to the Opportunity |
| countryId | Integer | Country ID (see Countries resource) of the Opportunity address |
| currencyId | Integer | Currency ID (see Currencies resource) related to the Opportunity amount |
| extId | String | External ID of the Opportunity from a third party system (ERP, CRM, Accounting System) |
| geocoded | Boolean | If true, the Opportunity has been geolocated |
| geocodingAccuracy | Integer | Accuracy radius based on information about cell towers and WiFi nodes that the mobile client can detect |
| latitude | Number | Geocode address for the latitude coordinates |
| longitude | Number | Geocode address for the longitude coordinates |
| lostDate | String | Date when the Opportunity was lost |
| permissionLevel | String | Defines the visibility of the Opportunity. Set from 1 to 5 being 5 the highest level of permission |
| postcode | String | The Opportunity's address postal code |
| readOnly | Boolean | If true, the Opportunity can not be modified or deleted |
| reference | String | Opportunity's name |
| region | String | Region/State name |
| salesForeCastDate | String | Forecast sale date |
| salesProbability (Required) | Integer | Probability of sale, it is a number between 0 and 10 |
| salesRepId | Integer | Unique identifier of the User associated to the Opportunity (see Users resource) |
| type_id | Integer | Type of the Opportunity (see Types resource) |
| statusId | Integer | Status of the Opportunity (see Statues resource) |
| total | Number | Total amount of the Opportunity |
| wonDate | String | Date when the Opportunity was won |
RESPONSE
Returns a JSON with information about the Opportunity just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunities/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "salesProbability": 60, "total": 54780.5, "comments": "Fairy deal - 7" }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunities/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"salesProbability\": 60,\n \"total\": 54780.5,\n \"comments\": \"Fairy deal - 7\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"salesProbability\": 60,\n \"total\": 54780.5,\n \"comments\": \"Fairy deal - 7\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/opportunities/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/opportunities/{ID} This endpoint allows you to delete a specific Opportunity from the user's ForceManager implementation database. If the specified Opportunity does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Opportunities after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity to delete |
RESPONSE
Returns a JSON with information about the Opportunity just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunities/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunities/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/opportunities/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Statuses
https://api.forcemanager.com/api/v4/opportunityStatuses/schema Returns properties object with the definition of each field in the Opportunity Status table.
You will only receive the Opportunity Status Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Opportunity Status Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityStatuses/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"endStatus": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"idParent": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesProbability": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"won": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "opportunityStatuses",
"type": "object"
}https://api.forcemanager.com/api/v4/opportunityStatuses Returns all Opportunity Statuses available in the user's ForceManager implementation database.
You will only receive the List of Opportunity Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
This endpoint returns information about all Opportunity Statuses available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Opportunity Statuses attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Opportunity Status is visible |
| endStatus | Integer | Set to 1 if the Opportunity is closed 0 otherwise |
| won | Boolean | If true, the close opportunity has been won |
| idParent | Integer | This is mostly used to stick an Opportunity Status with an Opportunity Type (see Types resource), in the case the Opportunity Types are used to represent multiple pipelines |
| dateCreated | String | Date and time when the Opportunity Status was created |
| dateDeleted | String | Date and time when the Opportunity Status was deleted |
| dateUpdated | String | Date and time when the Opportunity Status was last updated |
| deleted | Boolean | If true, the Opportunity Status has been deleted and archived |
| descriptionDE | String | Opportunity Status label in German |
| descriptionDK | String | Opportunity Status label in Dutch |
| descriptionEN (Required) | String | Opportunity Status label in English |
| descriptionES | String | Opportunity Status label in Spanish |
| descriptionFR | String | Opportunity Status label in French |
| descriptionIT | String | Opportunity Status label in Italian |
| descriptionPT | String | Opportunity Status label in Portuguese |
| descriptionRU | String | Opportunity Status label in Russian |
| descriptionUS | String | Opportunity Status label in American English |
| id | Integer | Unique identifier for the Opportunity Status in ForceManager |
| order | Integer | The position of the Opportunity Status in the Opportunity Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Opportunity Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Opportunity Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Opportunity Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityStatuses",
headers=headers
)
data = response.json()[
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.803Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.803Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "1. In Arbeit",
"descriptionDK": null,
"descriptionEN": "1. In Progress",
"descriptionES": "1. En tramites",
"descriptionFR": "1. En cours de démarche",
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"endStatus": false,
"id": 1,
"idParent": null,
"order": 0,
"salesProbability": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1,
"won": 0
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.803Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.803Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "6. Verkauft",
"descriptionDK": null,
"descriptionEN": "6. Sold",
"descriptionES": "6. Vendido",
"descriptionFR": "6. Vendu",
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"endStatus": true,
"id": 8,
"idParent": null,
"order": 0,
"salesProbability": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1,
"won": 1
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.803Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.803Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "7. Verloren",
"descriptionDK": null,
"descriptionEN": "7. Lost",
"descriptionES": "7. Perdido",
"descriptionFR": "7. Perdu",
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"endStatus": true,
"id": 9,
"idParent": null,
"order": 0,
"salesProbability": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1,
"won": 0
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.803Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.803Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "2. Genehmigung anhängig",
"descriptionDK": null,
"descriptionEN": "2. Pending Approval",
"descriptionES": "2. Pendiente de aprobación",
"descriptionFR": "2. En attente d´approbation",
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"endStatus": false,
"id": 10,
"idParent": null,
"order": 0,
"salesProbability": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1,
"won": 0
},
{
"branchVisibility": null,
"dateCreated": "2012-01-27T12:22:54.803Z",
"dateDeleted": null,
"dateUpdated": "2012-01-27T12:22:54.803Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": "0. Stand-by",
"descriptionDK": null,
"descriptionEN": "0. Stand By",
"descriptionES": "0. Parada",
"descriptionFR": "0. Stand-By",
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"endStatus": false,
"id": 12,
"idParent": null,
"order": 0,
"salesProbability": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 90,
"salesRepIdUpdated": 1,
"won": 0
}
]https://api.forcemanager.com/api/v4/opportunityStatuses This endpoint allows you to create a Opportunity Status based on JSON input.
You will only be able to create a Opportunity Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Opportunity Status is visible |
| endStatus | Integer | Set to 1 if the Opportunity is closed 0 otherwise |
| won | Boolean | If true, the close opportunity has been won |
| idParent | Integer | This is mostly used to stick an Opportunity Status with an Opportunity Type (see Types resource), in the case the Opportunity Types are used to represent multiple pipelines |
| descriptionDE | String | Opportunity Status label in German |
| descriptionDK | String | Opportunity Status label in Dutch |
| descriptionEN (Required) | String | Opportunity Status label in English |
| descriptionES | String | Opportunity Status label in Spanish |
| descriptionFR | String | Opportunity Status label in French |
| descriptionIT | String | Opportunity Status label in Italian |
| descriptionPT | String | Opportunity Status label in Portuguese |
| descriptionRU | String | Opportunity Status label in Russian |
| descriptionUS | String | Opportunity Status label in American English |
| order | Integer | The position of the Opportunity Status in the Opportunity Statuses value list |
RESPONSE
Returns a JSON with information about the Opportunity Status just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity Status |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionBR": null, "descriptionDE": "", "descriptionDK": null, "descriptionEN": "Last visit", "descriptionES": "Última visita", "descriptionFR": "", "descriptionIT": "Ultima visita", "descriptionPT": "", "descriptionRU": null, "descriptionUS": "", "endStatus": true, "order": 5, "won": 1, "idParent": 1 }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionBR\": null,\n \"descriptionDE\": \"\",\n \"descriptionDK\": null,\n \"descriptionEN\": \"Last visit\",\n \"descriptionES\": \"Última visita\",\n \"descriptionFR\": \"\",\n \"descriptionIT\": \"Ultima visita\",\n \"descriptionPT\": \"\",\n \"descriptionRU\": null,\n \"descriptionUS\": \"\",\n \"endStatus\": true,\n \"order\": 5,\n \"won\": 1,\n \"idParent\": 1\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionBR\": null,\n \"descriptionDE\": \"\",\n \"descriptionDK\": null,\n \"descriptionEN\": \"Last visit\",\n \"descriptionES\": \"Última visita\",\n \"descriptionFR\": \"\",\n \"descriptionIT\": \"Ultima visita\",\n \"descriptionPT\": \"\",\n \"descriptionRU\": null,\n \"descriptionUS\": \"\",\n \"endStatus\": true,\n \"order\": 5,\n \"won\": 1,\n \"idParent\": 1\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/opportunityStatuses",
headers=headers, json=json_body
)
data = response.json(){
"id": 478,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/opportunityStatuses/{ID} This endpoint retrieves data of a specific Opportunity Status based on JSON input. The API returns a single Opportunity Status available to the user in the Value List, according to the unique ID provided. If the specified Opportunity Status does not exist, the response will be a "bad request".
You will only receive the Opportunity Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity Status |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Opportunity Status is visible |
| endStatus | Integer | Set to 1 if the Opportunity is closed 0 otherwise |
| won | Boolean | If true, the close opportunity has been won |
| idParent | Integer | This is mostly used to stick an Opportunity Status with an Opportunity Type (see Types resource), in the case the Opportunity Types are used to represent multiple pipelines |
| dateCreated | String | Date and time when the Opportunity Status was created |
| dateDeleted | String | Date and time when the Opportunity Status was deleted |
| dateUpdated | String | Date and time when the Opportunity Status was last updated |
| deleted | Boolean | If true, the Opportunity Status has been deleted and archived |
| descriptionDE | String | Opportunity Status label in German |
| descriptionDK | String | Opportunity Status label in Dutch |
| descriptionEN (Required) | String | Opportunity Status label in English |
| descriptionES | String | Opportunity Status label in Spanish |
| descriptionFR | String | Opportunity Status label in French |
| descriptionIT | String | Opportunity Status label in Italian |
| descriptionPT | String | Opportunity Status label in Portuguese |
| descriptionRU | String | Opportunity Status label in Russian |
| descriptionUS | String | Opportunity Status label in American English |
| id | Integer | Unique identifier for the Opportunity Status in ForceManager |
| order | Integer | The position of the Opportunity Status in the Opportunity Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Opportunity Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Opportunity Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Opportunity Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": null,
"dateCreated": "2021-12-16T10:27:51.753Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "",
"descriptionDK": null,
"descriptionEN": "First visit",
"descriptionES": "Primera visita",
"descriptionFR": "",
"descriptionIT": "Prima visita",
"descriptionPT": "",
"descriptionRU": null,
"descriptionUS": "",
"endStatus": true,
"id": 478,
"idParent": 1,
"order": 5,
"salesProbability": null,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": 1
}https://api.forcemanager.com/api/v4/opportunityStatuses/{ID} This endpoint allows you to update a specific Opportunity Status. If the specified Opportunity Status does not exist, the response will be a "bad request".
You will only be able to update a Opportunity Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Opportunity Status. In order to update an Opportunity Status, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Array | In which Branch the Opportunity Status is visible |
| endStatus | Integer | Set to 1 if the Opportunity is closed 0 otherwise |
| won | Boolean | If true, the close opportunity has been won |
| idParent | Integer | This is mostly used to stick an Opportunity Status with an Opportunity Type (see Types resource), in the case the Opportunity Types are used to represent multiple pipelines |
| descriptionDE | String | Opportunity Status label in German |
| descriptionDK | String | Opportunity Status label in Dutch |
| descriptionEN | String | Opportunity Status label in English |
| descriptionES | String | Opportunity Status label in Spanish |
| descriptionFR | String | Opportunity Status label in French |
| descriptionIT | String | Opportunity Status label in Italian |
| descriptionPT | String | Opportunity Status label in Portuguese |
| descriptionRU | String | Opportunity Status label in Russian |
| descriptionUS | String | Opportunity Status label in American English |
| order | Integer | The position of the Opportunity Status in the Opportunity Statuses value list |
RESPONSE
Returns a JSON with information about the Opportunity Status just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "branchVisibility": [ 20 ], "descriptionEN": "2. First visit", "descriptionES": "2. Primera visita", "descriptionFR": "", "descriptionIT": "2. Prima visita", "endStatus": false, "won": 0 }'const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"branchVisibility\": [\n 20\n ],\n \"descriptionEN\": \"2. First visit\",\n \"descriptionES\": \"2. Primera visita\",\n \"descriptionFR\": \"\",\n \"descriptionIT\": \"2. Prima visita\",\n \"endStatus\": false,\n \"won\": 0\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"branchVisibility\": [\n 20\n ],\n \"descriptionEN\": \"2. First visit\",\n \"descriptionES\": \"2. Primera visita\",\n \"descriptionFR\": \"\",\n \"descriptionIT\": \"2. Prima visita\",\n \"endStatus\": false,\n \"won\": 0\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/opportunityStatuses/{ID} This endpoint allows you to delete a specific Opportunity Status from the user's ForceManager implementation database. If the specified Opportunity Status does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Opportunity Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Opportunity Status to delete |
RESPONSE
Returns a JSON with information about the Opportunity Status just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/opportunityStatuses/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Orders
Entity
https://api.forcemanager.com/api/v4/salesorders/schema The Schema is metadata that tells you how the data is structured for a specific resource.
The Schema defines all the fields that exist for an Order Header object.
You will only receive the Order Headers Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
RESPONSE
The Order Headers Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Data Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorders/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesorders/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorders/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountAddressId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accountAddresses",
"type": [
"object",
"null"
]
},
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"archived": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"blocked": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"branchId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "branches",
"type": [
"object",
"null"
]
},
"closedDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"comment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"contactId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "contacts",
"type": [
"object",
"null"
]
},
"currencyId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "currencies",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"discount1": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount2": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount3": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount4": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"extId": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"internalComment": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"internalCommentUpdateDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"internalCommentUpdateSalesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"mainSalesorder": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"number": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"opportunityId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "opportunities",
"type": [
"object",
"null"
]
},
"rateId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "rates",
"type": [
"object",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"reference": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesForcecastDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"statusId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "salesorderStatuses",
"type": [
"object",
"null"
]
},
"total": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"year": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [
"statusId"
],
"title": "salesorders",
"type": "object"
}https://api.forcemanager.com/api/v4/salesorders Returns all Order Headers available in the user's ForceManager implementation database.
You will only receive the List of Order Headers after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/salesorders?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/salesorders?where= param1=value AND/OR param2=value2
You can filter Order Headers by dateCreated or accountId, or salesRepId for example.
You can also organise and view the results for Order Headers in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/salesorders?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/salesorders?lang=VALUE
RESPONSE
This endpoint returns information about all Order Headers available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Order Headers attributes:
| Attribute | Type | Description |
|---|---|---|
| accountAddressId | Object, Null | Account's address to which the Order is linked to (see Address resource) |
| accountId | Object, Null | Account to which the Order Header is linked to (see Accounts resource) |
| archived | Boolean | If true, the Order has been archived |
| blocked | Boolean | If true, the Order has been temporary locked to prevent edits (e.g. when a signature is in progress) |
| branchId | Object, Null | Branch to which the Order has been assigned (see Branches resource) |
| closedDate | String | Date when the Order has been closed |
| comment | String | Comment added to the Order |
| contactId | Object, Null | Contact to which the Order Header is linked to (see Contacts resource) |
| currencyId | Object, Null | Currency type (see Currencies resource) |
| discount1 | Number | First discount that can be applied to the Order, in percents |
| discount2 | Number | Second discount that can be applied to the Order, in percents |
| discount3 | Number | Third discount that can be applied to the Order, in percents |
| discount4 | Number | Fourth discount that can be applied to the Order, in percents |
| extId | String | External ID of the Order from a third party system (ERP, CRM, Accounting System) |
| internalComment | String | Internal comment |
| internalCommentUpdateDate | String | Date when the internal comment was updated |
| internalCommentUpdateSalesRepId | Object, Null | Id of the User who that added the internal comment |
| mainSalesorder | Boolean | If true, the Order is relevant for the linked opportunity |
| opportunityId | Object, Null | Opportunity to which the Order is linked to (see Opportunities resource) |
| rateId | Object, Null | Rate for the Order Header (see Rates resource) |
| readOnly | Boolean | If true, the Order Header cannot be modified or deleted |
| reference | String | Order Header's label |
| number | Integer | Order number (should be sequential and unique in general) |
| salesForcecastDate | String | Forecast date for the Sale |
| salesRepId | Object, Null | User responsible for the Order |
| statusId (Required) | Object, Null | Status of the Order (see Statues resource) |
| salesorderType | Object, Null | Type of the Order (see Type resource) |
| total | Number | Total amount of the Order |
| year | Integer | Year when the Order was created |
| dateCreated | String | Date and time when the Order Header was created |
| dateDeleted | String | Date and time when the Order Header was deleted |
| dateUpdated | String | Date and time when the Order Header was last updated |
| deleted | Boolean | If true, the Order Header has been deleted and archived |
| id | Integer | Unique identifier for the Order Header in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Header |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Header |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Header |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/salesorders" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/salesorders", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorders",
headers=headers
)
data = response.json()[
{
"accountAddressId": null,
"accountId": null,
"archived": null,
"blocked": false,
"branchId": {
"id": 18,
"value": "Tritium Software SL"
},
"closedDate": null,
"comment": "",
"contactId": null,
"currencyId": null,
"dateCreated": "2018-12-03T11:00:39.213Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"discount1": 0,
"discount2": 0,
"discount3": 0,
"discount4": 0,
"extId": null,
"id": 1,
"internalComment": "",
"internalCommentUpdateDate": null,
"internalCommentUpdateSalesRepId": null,
"mainSalesorder": null,
"number": 1,
"opportunityId": 6,
"rateId": 3,
"readOnly": true,
"reference": "#123",
"salesForcecastDate": null,
"salesRepId": {
"id": 105,
"value": "Clarice Malcolm"
},
"salesRepIdCreated": 105,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"statusId": null,
"salesOrderType": {
"id": 1,
"value": "Invoices"
},
"total": 0,
"year": 2018
},
{
"accountAddressId": null,
"accountId": {
"id": 31,
"value": "Dario Bianchi"
},
"archived": true,
"blocked": false,
"branchId": {
"id": 18,
"value": "Tritium Software SL"
},
"closedDate": "2019-03-11T16:13:04Z",
"comment": "",
"contactId": null,
"currencyId": {
"id": 1,
"value": "Euro"
},
"dateCreated": "2018-12-20T12:12:45.997Z",
"dateDeleted": null,
"dateUpdated": "2019-03-11T16:13:04.21Z",
"deleted": false,
"discount1": 0,
"discount2": 0,
"discount3": 0,
"discount4": 0,
"extId": null,
"id": 33,
"internalComment": "",
"internalCommentUpdateDate": null,
"internalCommentUpdateSalesRepId": null,
"mainSalesorder": null,
"number": 1234,
"opportunityId": null,
"rateId": null,
"readOnly": false,
"reference": "#999",
"salesForcecastDate": "2019-02-27T00:00:00Z",
"salesRepId": {
"id": 108,
"value": "Malika Yaniv"
},
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 105,
"statusId": {
"id": 1,
"value": "Invoiced"
},
"total": 344,
"year": 2019
}
]https://api.forcemanager.com/api/v4/salesorders This endpoint allows you to create am Order Header based on JSON input.
You will only be able to create an Order Header after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| accountAddressId | Integer | Account's address to which the Order is linked to (see Address resource) |
| accountId | Integer | Account to which the Order Header is linked to (see Accounts resource) |
| archived | Boolean | If true, the Order has been archived |
| blocked | Boolean | If true, the Order has been temporary locked to prevent edits (e.g. when a signature is in progress) |
| branchId (Required) | Integer | Branch to which the Order has been assigned (see Branches resource) |
| closedDate | String | Date when the Order has been closed |
| comment | String | Comment added to the Order |
| contactId | Integer | Contact to which the Order Header is linked to (see Contacts resource) |
| currencyId | Integer | Currency type (see Currencies resource) |
| discount1 | Number | First discount that can be applied to the Order, in percents |
| discount2 | Number | Second discount that can be applied to the Order, in percents |
| discount3 | Number | Third discount that can be applied to the Order, in percents |
| discount4 | Number | Fourth discount that can be applied to the Order, in percents |
| extId | String | External ID of the Order from a third party system (ERP, CRM, Accounting System) |
| internalComment | String | Internal comment |
| mainSalesorder | Boolean | If true, the Order is relevant for the linked opportunity |
| opportunityId | Integer | Opportunity to which the Order is linked to (see Opportunities resource) |
| rateId | Integer | Rate for the Order Header (see Rates resource) |
| readOnly | Boolean | If true, the Order Header cannot be modified or deleted |
| reference (Required) | String | Order Header's label |
| number | Integer | Order number (should be sequential and unique in general) |
| salesForcecastDate | String | Forecast date for the Sale |
| salesRepId (Required) | Integer | User responsible for the Order |
| statusId | Integer | Status of the Order (see Statues resource) |
| total | Number | Total amount of the Order |
| year | Integer | Year when the Order was created |
RESPONSE
Returns a JSON with information about the Order Header just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Order Header |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorders" \
-X POST \
-H "Accept: */*" \
-d '{ "accountAddressId": null, "accountId": 1234, "archived": false, "branchId": 461, "closedDate": "2022-06-10T00:00:00Z", "comment": "Contract have to be signed one month from now", "contactId": null, "currencyId": null, "discount1": 10, "discount2": 20, "discount3": 0, "discount4": 0, "extId": null, "internalComment": "This is a comment just for internal purposes", "internalCommentUpdateDate": null, "internalCommentUpdateSalesRepId": null, "mainSalesorder": null, "number": 1, "opportunityId": null, "rateId": 33, "readOnly": false, "reference": "Order #1", "salesRepId": 5548, "statusId": 18, "total": 35, "year": 2018 }'const response = await fetch("https://api.forcemanager.com/api/v4/salesorders", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountAddressId\": null,\n \"accountId\": 1234,\n \"archived\": false,\n \"branchId\": 461,\n \"closedDate\": \"2022-06-10T00:00:00Z\",\n \"comment\": \"Contract have to be signed one month from now\",\n \"contactId\": null,\n \"currencyId\": null,\n \"discount1\": 10,\n \"discount2\": 20,\n \"discount3\": 0,\n \"discount4\": 0,\n \"extId\": null,\n \"internalComment\": \"This is a comment just for internal purposes\",\n \"internalCommentUpdateDate\": null,\n \"internalCommentUpdateSalesRepId\": null,\n \"mainSalesorder\": null,\n \"number\": 1,\n \"opportunityId\": null,\n \"rateId\": 33,\n \"readOnly\": false,\n \"reference\": \"Order #1\",\n \"salesRepId\": 5548,\n \"statusId\": 18,\n \"total\": 35,\n \"year\": 2018\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountAddressId\": null,\n \"accountId\": 1234,\n \"archived\": false,\n \"branchId\": 461,\n \"closedDate\": \"2022-06-10T00:00:00Z\",\n \"comment\": \"Contract have to be signed one month from now\",\n \"contactId\": null,\n \"currencyId\": null,\n \"discount1\": 10,\n \"discount2\": 20,\n \"discount3\": 0,\n \"discount4\": 0,\n \"extId\": null,\n \"internalComment\": \"This is a comment just for internal purposes\",\n \"internalCommentUpdateDate\": null,\n \"internalCommentUpdateSalesRepId\": null,\n \"mainSalesorder\": null,\n \"number\": 1,\n \"opportunityId\": null,\n \"rateId\": 33,\n \"readOnly\": false,\n \"reference\": \"Order #1\",\n \"salesRepId\": 5548,\n \"statusId\": 18,\n \"total\": 35,\n \"year\": 2018\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/salesorders",
headers=headers, json=json_body
)
data = response.json(){
"id": 23,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/salesorders/{ID} This endpoint retrieves data of a specific Order Header based on JSON input. The API returns a single Header available to the user, according to the unique ID provided. If the specified Order Header does not exist, the response will be a "bad request".
You will only receive the Order Header after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Header |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountAddressId | Object, Null | Account's address to which the Order is linked to (see Address resource) |
| accountId | Object, Null | Account to which the Order Header is linked to (see Accounts resource) |
| archived | Boolean | If true, the Order has been archived |
| blocked | Boolean | If true, the Order has been temporary locked to prevent edits (e.g. when a signature is in progress) |
| branchId | Object, Null | Branch to which the Order has been assigned (see Branches resource) |
| closedDate | String | Date when the Order has been closed |
| comment | String | Comment added to the Order |
| contactId | Object, Null | Contact to which the Order Header is linked to (see Contacts resource) |
| currencyId | Object, Null | Currency type (see Currencies resource) |
| discount1 | Number | First discount that can be applied to the Order, in percents |
| discount2 | Number | Second discount that can be applied to the Order, in percents |
| discount3 | Number | Third discount that can be applied to the Order, in percents |
| discount4 | Number | Fourth discount that can be applied to the Order, in percents |
| extId | String | External ID of the Order from a third party system (ERP, CRM, Accounting System) |
| internalComment | String | Internal comment |
| internalCommentUpdateDate | String | Date when the internal comment was updated |
| internalCommentUpdateSalesRepId | Object, Null | Id of the User who that added the internal comment |
| mainSalesorder | Boolean | If true, the Order is relevant for the linked opportunity |
| opportunityId | Object, Null | Opportunity to which the Order is linked to (see Opportunities resource) |
| rateId | Object, Null | Rate for the Order Header (see Rates resource) |
| readOnly | Boolean | If true, the Order Header cannot be modified or deleted |
| reference | String | Order Header's label |
| number | Integer | Order number (should be sequential and unique in general) |
| salesForcecastDate | String | Forecast date for the Sale |
| salesRepId | Object, Null | User responsible for the Order |
| statusId (Required) | Object, Null | Status of the Order (see Statues resource) |
| total | Number | Total amount of the Order |
| year | Integer | Year when the Order was created |
| dateCreated | String | Date and time when the Order Header was created |
| dateDeleted | String | Date and time when the Order Header was deleted |
| dateUpdated | String | Date and time when the Order Header was last updated |
| deleted | Boolean | If true, the Order Header has been deleted and archived |
| id | Integer | Unique identifier for the Order Header in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Header |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Header |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Header |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | 10 |
curl "https://api.forcemanager.com/api/v4/salesorders/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: 10"const response = await fetch("https://api.forcemanager.com/api/v4/salesorders/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "10"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "10"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorders/{ID}",
headers=headers
)
data = response.json(){
"accountAddressId": null,
"accountId": {
"id": 1533,
"value": "Acme Inc."
},
"archived": false,
"branchId": {
"id": 4380,
"value": "Financial Dept."
},
"closedDate": null,
"comment": "",
"contactId": null,
"currencyId": {
"id": 1,
"value": "euro"
},
"dateCreated": "2017-06-02T14:35:30.243Z",
"dateDeleted": null,
"dateUpdated": "2017-10-17T11:17:57.363Z",
"deleted": false,
"discount1": 5,
"discount2": 0,
"discount3": 0,
"discount4": 0,
"extId": null,
"id": 6,
"internalComment": "",
"internalCommentUpdateDate": null,
"internalCommentUpdateSalesRepId": null,
"mainSalesorder": null,
"number": 6,
"opportunityId": null,
"rateId": null,
"readOnly": false,
"reference": "112233",
"salesForcecastDate": "2017-06-23T00:00:00Z",
"salesRepId": {
"id": 5548,
"value": "John Jackson"
},
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 5548,
"statusId": {
"id": 4,
"value": "Lost"
},
"total": 1000,
"year": 2021
}https://api.forcemanager.com/api/v4/salesorders/{ID} This endpoint allows you to update a specific Order Header. If the specified Header does not exist, the response will be a "bad request".
You will only be able to update an Order Header after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Order Header. In order to update an Header, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountAddressId | Integer | Account's address to which the Order is linked to (see Address resource) |
| accountId | Integer | Account to which the Order Header is linked to (see Accounts resource) |
| archived | Boolean | If true, the Order has been archived |
| blocked | Boolean | If true, the Order has been temporary locked to prevent edits (e.g. when a signature is in progress) |
| branchId | Integer | Branch to which the Order has been assigned (see Branches resource) |
| closedDate | String | Date when the Order has been closed |
| comment | String | Comment added to the Order |
| contactId | Integer | Contact to which the Order Header is linked to (see Contacts resource) |
| currencyId | Integer | Currency type (see Currencies resource) |
| discount1 | Number | First discount that can be applied to the Order, in percents |
| discount2 | Number | Second discount that can be applied to the Order, in percents |
| discount3 | Number | Third discount that can be applied to the Order, in percents |
| discount4 | Number | Fourth discount that can be applied to the Order, in percents |
| extId | String | External ID of the Order from a third party system (ERP, CRM, Accounting System) |
| internalComment | String | Internal comment |
| mainSalesorder | Boolean | If true, the Order is relevant for the linked opportunity |
| opportunityId | Integer | Opportunity to which the Order is linked to (see Opportunities resource) |
| rateId | Integer | Rate for the Order Header (see Rates resource) |
| readOnly | Boolean | If true, the Order Header cannot be modified or deleted |
| reference | String | Order Header's label |
| number | Integer | Order number (should be sequential and unique in general) |
| salesForcecastDate | String | Forecast date for the Sale |
| salesRepId | Integer | User responsible for the Order |
| statusId | Integer | Status of the Order (see Statues resource) |
| total | Number | Total amount of the Order |
| year | Integer | Year when the Order was created |
RESPONSE
Returns a JSON with information about the Order Header just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorders/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "comment": "All right", "discount1": 10, "discount2": 20, "total": 35, "year": 2018 }'const response = await fetch("https://api.forcemanager.com/api/v4/salesorders/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"comment\": \"All right\",\n \"discount1\": 10,\n \"discount2\": 20,\n \"total\": 35,\n \"year\": 2018\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"comment\": \"All right\",\n \"discount1\": 10,\n \"discount2\": 20,\n \"total\": 35,\n \"year\": 2018\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/salesorders/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/salesorders/{ID} This endpoint allows you to delete a specific Order Header from the user's ForceManager implementation database. If the specified Order Header does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Order Headers after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Header to delete |
RESPONSE
Returns a JSON with information about the Order Header just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorders/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesorders/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/salesorders/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}https://api.forcemanager.com/api/v4/salesordersLines/schema The Schema is metadata that tells you how the data is structured for a specific resource. The Schema defines all the fields that exist for an Order Line object.
You will only receive the Order Line Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Order Line Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Data Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesordersLines/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesordersLines/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesordersLines/schema",
headers=headers
)
data = response.json(){
"properties": {
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"description": {
"description": "",
"maxLength": 2000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"discount1": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount2": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount3": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount4": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"price": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"productId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "products",
"type": [
"object",
"null"
]
},
"quantity": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesorderId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "salesorders",
"type": [
"object",
"null"
]
},
"total": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
}
},
"required": [],
"title": "salesordersLines",
"type": "object"
}https://api.forcemanager.com/api/v4/salesordersLines Returns all Orders Lines available in the user's ForceManager implementation database.
You will only receive the List of Orders Lines after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/salesordersLines?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/salesordersLines?where= param1=value AND/OR param2=value2
You can filter Order Lines by dateCreated or total for example.
You can also organise and view the results for Order Lines in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/salesordersLines?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/salesordersLines?lang=VALUE
RESPONSE
This endpoint returns information about all Order Lines available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Order Lines attributes:
| Attribute | Type | Description |
|---|---|---|
| quantity | Integer | Quantity of Product for the Order Line |
| price | Number | Price of the Order Line |
| description | String | Description added to the Order Line |
| discount1 | Number | First discount that can be applied to the Order Line in percents |
| discount2 | Number | Second discount that can be applied to the Order Line in percents |
| discount3 | Number | Third discount that can be applied to the Order Line in percents |
| discount4 | Number | Forth discount that can be applied to the Order Line in percents |
| total | Number | Total amount of the Order Line |
| productId | Object, Null | Id of the Product related to the Order Line (see Products resource) |
| salesOrderId | Object, Null | Id of the Order Header (see Headers resource) |
| order | Integer | The position of the Order Line in the whole Lines list |
| dateCreated | String | Date and time when the Order Line was created |
| dateDeleted | String | Date and time when the Order Line was deleted |
| dateUpdated | String | Date and time when the Order Line was last updated |
| deleted | Boolean | If true, the Order Line has been deleted and archived |
| id | Integer | Unique identifier for the Order Line in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Line |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Line |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Line |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/salesordersLines" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/salesordersLines", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesordersLines",
headers=headers
)
data = response.json()[
{
"dateCreated": "2017-05-29T13:42:21.57Z",
"dateDeleted": null,
"dateUpdated": "2017-05-31T13:04:59.56Z",
"deleted": false,
"description": "",
"discount1": 0,
"discount2": 0,
"discount3": 0,
"discount4": 5,
"id": 2,
"price": 58,
"productId": {
"id": 128,
"value": "Enterprise"
},
"quantity": 1,
"salesRepIdCreated": 5548,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 5548,
"salesorderId": {
"id": 2,
"value": "Order-2021#5"
},
"total": 55.1
}
]https://api.forcemanager.com/api/v4/salesOrdersLines This endpoint allows you to create Orders Lines based on JSON input.
You will only be able to create the Order Line after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| quantity (Required) | Integer | Quantity of Product for the Order Line |
| price (Required) | Number | Price of the Order Line |
| description | String | Description added to the Order Line |
| discount1 | Number | First discount that can be applied to the Order Line in percents |
| discount2 | Number | Second discount that can be applied to the Order Line in percents |
| discount3 | Number | Third discount that can be applied to the Order Line in percents |
| discount4 | Number | Forth discount that can be applied to the Order Line in percents |
| total | Number | Total amount of the Order Line |
| productId (Required) | Integer | Id of the Product related to the Order Line (see Products resource) |
| salesOrderId | Integer | Id of the Order Header (see Headers resource) |
| order | Integer | The position of the Order Line in the whole Lines list |
RESPONSE
Returns a JSON with information about the Order Line just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Order Line |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesOrdersLines" \
-X POST \
-H "Accept: */*" \
-d '{ "description": "Professional Services", "discount1": 15, "price": 80, "productId": 1984, "quantity": 4, "salesorderId": 93, "total": 300 }'const response = await fetch("https://api.forcemanager.com/api/v4/salesOrdersLines", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"description\": \"Professional Services\",\n \"discount1\": 15,\n \"price\": 80,\n \"productId\": 1984,\n \"quantity\": 4,\n \"salesorderId\": 93,\n \"total\": 300\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"description\": \"Professional Services\",\n \"discount1\": 15,\n \"price\": 80,\n \"productId\": 1984,\n \"quantity\": 4,\n \"salesorderId\": 93,\n \"total\": 300\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/salesOrdersLines",
headers=headers, json=json_body
)
data = response.json(){
"id": 35,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/salesordersLines/{ID} This endpoint retrieves data of a specific Order Line based on JSON input. The API returns a single Line available to the user, according to the unique ID provided. If the specified Order Line does not exist, the response will be a "bad request".
You will only receive the Order Line after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Line |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| quantity | Integer | Quantity of Product for the Order Line |
| price | Number | Price of the Order Line |
| description | String | Description added to the Order Line |
| discount1 | Number | First discount that can be applied to the Order Line in percents |
| discount2 | Number | Second discount that can be applied to the Order Line in percents |
| discount3 | Number | Third discount that can be applied to the Order Line in percents |
| discount4 | Number | Forth discount that can be applied to the Order Line in percents |
| total | Number | Total amount of the Order Line |
| productId | Object, Null | Id of the Product related to the Order Line (see Products resource) |
| salesOrderId | Object, Null | Id of the Order Header (see Headers resource) |
| order | Integer | The position of the Order Line in the whole Lines list |
| dateCreated | String | Date and time when the Order Line was created |
| dateDeleted | String | Date and time when the Order Line was deleted |
| dateUpdated | String | Date and time when the Order Line was last updated |
| deleted | Boolean | If true, the Order Line has been deleted and archived |
| id | Integer | Unique identifier for the Order Line in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Line |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Line |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Line |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/salesordersLines/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]"const response = await fetch("https://api.forcemanager.com/api/v4/salesordersLines/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesordersLines/{ID}",
headers=headers
)
data = response.json(){
"dateCreated": "2017-10-04T10:14:27.463Z",
"dateDeleted": "2018-06-14T13:07:40.817Z",
"dateUpdated": "2018-06-14T13:07:09.807Z",
"deleted": true,
"description": "This is a plan for SMBs",
"discount1": 10,
"discount2": 0,
"discount3": 0,
"discount4": 0,
"id": 50,
"price": 30,
"productId": {
"id": 128,
"value": "Starter"
},
"quantity": 5,
"salesRepIdCreated": 5548,
"salesRepIdDeleted": 51,
"salesRepIdUpdated": 51,
"salesorderId": {
"id": 15,
"value": "33445566"
},
"total": 20
}https://api.forcemanager.com/api/v4/salesordersLines/{ID} This endpoint allows you to update a specific Order Line. If the specified Line does not exist, the response will be a "bad request".
You will only be able to update a Order Line after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Order Line. In order to update a Line, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| quantity | Integer | Quantity of Product for the Order Line |
| price | Number | Price of the Order Line |
| description | String | Description added to the Order Line |
| discount1 | Number | First discount that can be applied to the Order Line in percents |
| discount2 | Number | Second discount that can be applied to the Order Line in percents |
| discount3 | Number | Third discount that can be applied to the Order Line in percents |
| discount4 | Number | Forth discount that can be applied to the Order Line in percents |
| total | Number | Total amount of the Order Line |
| productId | Integer | Id of the Product related to the Order Line (see Products resource) |
| salesOrderId | Integer | Id of the Order Header (see Headers resource) |
| order | Integer | The position of the Order Line in the whole Lines list |
RESPONSE
Returns a JSON with information about the Order Line just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesordersLines/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "discount1": 10, "price": 30, "quantity": 5, "total": 20 }'const response = await fetch("https://api.forcemanager.com/api/v4/salesordersLines/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"discount1\": 10,\n \"price\": 30,\n \"quantity\": 5,\n \"total\": 20\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"discount1\": 10,\n \"price\": 30,\n \"quantity\": 5,\n \"total\": 20\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/salesordersLines/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/salesordersLines/{ID} This endpoint allows you to delete a specific Order Line from the user's ForceManager implementation database. If the specified Order Line does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Order Lines after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Line to delete |
RESPONSE
Returns a JSON with information about the Order Line just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesordersLines/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesordersLines/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/salesordersLines/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Statuses
https://api.forcemanager.com/api/v4/salesorderStatuses/schema The Schema is metadata that tells you how the data is structured for this specific Value list.
You will only receive the Orders Statuses Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE The Order Statuses Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorderStatuses/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"lost": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"won": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
}
},
"required": [],
"title": "salesorderStatuses",
"type": "object"
}https://api.forcemanager.com/api/v4/salesorderStatuses Returns all Orders Statuses available.
You will only receive the Orders Statuses after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Order Statuses available for the value list.
List of the supported Orders Statuses attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| dateCreated | String | Date and time when the Order Status was created |
| dateDeleted | String | Date and time when the Order Status was deleted |
| dateUpdated | String | Date and time when the Order Status was last updated |
| deleted | Boolean | If true, the Order Status has been deleted and archived |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| id | Integer | Unique identifier for the Order Status in ForceManager |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | The position of the Order Status in the Order Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorderStatuses",
headers=headers
)
data = response.json()[
{
"branchVisibility": [],
"dateCreated": "2017-03-16T11:01:57.1Z",
"dateDeleted": null,
"dateUpdated": "2017-10-17T10:37:35.01Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Acquired",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"lost": null,
"order": 3,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": true
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:14:59.387Z",
"dateDeleted": null,
"dateUpdated": "2017-06-02T14:17:40.043Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Sent",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"lost": null,
"order": 1,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:16:52.52Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Canceled",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"lost": null,
"order": 0,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:17:26.82Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Lost",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 4,
"lost": null,
"order": 4,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
}
]https://api.forcemanager.com/api/v4/salesorderStatuses This endpoint allows you to create an Order Status based on JSON input.
You will only be able to create an Order Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN (Required) | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | he position of the Order Status in the Order Statuses value list |
RESPONSE
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Order Status |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Drafted", "order": 0, "won": false, "lost": false }'const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Drafted\",\n \"order\": 0,\n \"won\": false,\n \"lost\": false\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Drafted\",\n \"order\": 0,\n \"won\": false,\n \"lost\": false\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/salesorderStatuses",
headers=headers, json=json_body
)
data = response.json(){
"id": 6,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/salesorderStatuses/{ID} This endpoint retrieves data of a specific Order Status based on JSON input. The API returns a single Status available to the user in the Value List, according to the unique ID provided. If the specified Order Status does not exist, the response will be a "bad request".
You will only receive the Order Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Status |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| dateCreated | String | Date and time when the Order Status was created |
| dateDeleted | String | Date and time when the Order Status was deleted |
| dateUpdated | String | Date and time when the Order Status was last updated |
| deleted | Boolean | If true, the Order Status has been deleted and archived |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| id | Integer | Unique identifier for the Order Status in ForceManager |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | The position of the Order Status in the Order Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": [],
"dateCreated": "2017-03-16T11:01:57.1Z",
"dateDeleted": null,
"dateUpdated": "2017-10-17T10:37:35.01Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Acquired",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"lost": null,
"order": 3,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": true
}https://api.forcemanager.com/api/v4/salesorderStatuses/{ID} This endpoint allows you to update a specific Order Status. If the specified Status does not exist, the response will be a "bad request".
You will only be able to update an Order Status after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Order Status. In order to update a Status, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | he position of the Order Status in the Order Statuses value list |
RESPONSE
Returns a JSON with information about the Order Status just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Canceled", "lost": true, "order": 4 }'const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Canceled\",\n \"lost\": true,\n \"order\": 4\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Canceled\",\n \"lost\": true,\n \"order\": 4\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/salesorderStatuses/{ID} This endpoint allows you to delete a specific Order Status from the user's ForceManager implementation database. If the specified Order Status does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Order Statuss after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Status to delete |
RESPONSE
Returns a JSON with information about the Order Status just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/salesorderStatuses/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Types
https://api.forcemanager.com/api/v4/orderTypes/schema The Schema is metadata that tells you how the data is structured for this specific Value list.
You will only receive the Orders Types Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Order Types Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
Description of each property
Definition of the data type for each property
Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/orderTypes/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/orderTypes/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"lost": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"order": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"won": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
}
},
"required": [],
"title": "salesorderStatuses",
"type": "object"
}https://api.forcemanager.com/api/v4/orderTypes Returns all Orders Types available.
You will only receive the Orders Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Order Types available for the value list.
List of the supported Orders Types attributes:
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Type is visible |
| dateCreated | String | Date and time when the Order Type was created |
| dateDeleted | String | Date and time when the Order Type was deleted |
| dateUpdated | String | Date and time when the Order Type was last updated |
| deleted | Boolean | If true, the Order Type has been deleted and archived |
| descriptionBR | String | Order Type label in Brasilian Portuguese |
| descriptionDE | String | Order Type label in German |
| descriptionDK | String | Order Type label in Dutch |
| descriptionEN | String | Order Type label in English |
| descriptionES | String | Order Type label in Spanish |
| descriptionFR | String | Order Type label in French |
| descriptionIT | String | Order Type label in Italian |
| descriptionPT | String | Order Type label in Portuguese |
| descriptionRU | String | Order Type label in Russian |
| descriptionUS | String | Order Type label in American English |
| id | Integer | Unique identifier for the Order Type in ForceManager |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | The position of the Order Type in the Order Types value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/orderTypes" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/orderTypes",
headers=headers
)
data = response.json()[
{
"branchVisibility": [],
"dateCreated": "2017-03-16T11:01:57.1Z",
"dateDeleted": null,
"dateUpdated": "2017-10-17T10:37:35.01Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Acquired",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"lost": null,
"order": 3,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": true
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:14:59.387Z",
"dateDeleted": null,
"dateUpdated": "2017-06-02T14:17:40.043Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Sent",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"lost": null,
"order": 1,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:16:52.52Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Canceled",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 3,
"lost": null,
"order": 0,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
},
{
"branchVisibility": [],
"dateCreated": "2017-06-02T14:17:26.82Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Lost",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 4,
"lost": null,
"order": 4,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": null
}
]https://api.forcemanager.com/api/v4/orderTypes This endpoint allows you to create an Order Types based on JSON input.
You will only be able to create an Order Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN (Required) | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | he position of the Order Status in the Order Statuses value list |
RESPONSE
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Order Status |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/orderTypes" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Drafted", "order": 0, "won": false, "lost": false }'const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Drafted\",\n \"order\": 0,\n \"won\": false,\n \"lost\": false\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Drafted\",\n \"order\": 0,\n \"won\": false,\n \"lost\": false\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/orderTypes",
headers=headers, json=json_body
)
data = response.json(){
"id": 6,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/orderTypes/{ID} This endpoint retrieves data of a specific Order Types based on JSON input. The API returns a single Type available to the user in the Value List, according to the unique ID provided. If the specified Order Types does not exist, the response will be a "bad request".
You will only receive the Order Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Status |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Status is visible |
| dateCreated | String | Date and time when the Order Status was created |
| dateDeleted | String | Date and time when the Order Status was deleted |
| dateUpdated | String | Date and time when the Order Status was last updated |
| deleted | Boolean | If true, the Order Status has been deleted and archived |
| descriptionBR | String | Order Status label in Brasilian Portuguese |
| descriptionDE | String | Order Status label in German |
| descriptionDK | String | Order Status label in Dutch |
| descriptionEN | String | Order Status label in English |
| descriptionES | String | Order Status label in Spanish |
| descriptionFR | String | Order Status label in French |
| descriptionIT | String | Order Status label in Italian |
| descriptionPT | String | Order Status label in Portuguese |
| descriptionRU | String | Order Status label in Russian |
| descriptionUS | String | Order Status label in American English |
| id | Integer | Unique identifier for the Order Status in ForceManager |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | The position of the Order Status in the Order Statuses value list |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Order Status |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Order Status |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Order Status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/orderTypes/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/orderTypes/{ID}",
headers=headers
)
data = response.json(){
"branchVisibility": [],
"dateCreated": "2017-03-16T11:01:57.1Z",
"dateDeleted": null,
"dateUpdated": "2017-10-17T10:37:35.01Z",
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Acquired",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"lost": null,
"order": 3,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"won": true
}https://api.forcemanager.com/api/v4/orderTypes/{ID} This endpoint allows you to update a specific Order Types. If the specified Types does not exist, the response will be a "bad request".
You will only be able to update an Order Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Order Types. In order to update a Types, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchVisibility | Object, Null | In which Branch the Order Type is visible |
| descriptionBR | String | Order Type label in Brasilian Portuguese |
| descriptionDE | String | Order Type label in German |
| descriptionDK | String | Order Type label in Dutch |
| descriptionEN | String | Order Type label in English |
| descriptionES | String | Order Type label in Spanish |
| descriptionFR | String | Order Type label in French |
| descriptionIT | String | Order Type label in Italian |
| descriptionPT | String | Order Type label in Portuguese |
| descriptionRU | String | Order Type label in Russian |
| descriptionUS | String | Order Type label in American English |
| won | Boolean | If true, the Order has been won |
| lost | Boolean | If true, the Order has been lost |
| order | Integer | he position of the Order Type in the Order Types value list |
RESPONSE
Returns a JSON with information about the Order Types just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/orderTypes/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Canceled", "lost": true, "order": 4 }'const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Canceled\",\n \"lost\": true,\n \"order\": 4\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Canceled\",\n \"lost\": true,\n \"order\": 4\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/orderTypes/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/orderTypes/{ID} This endpoint allows you to delete a specific Order Types from the user's ForceManager implementation database. If the specified Order Types does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Order Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Order Status to delete |
RESPONSE
Returns a JSON with information about the Order Types just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/orderTypes/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/orderTypes/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/orderTypes/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Products
Carousel
https://api.forcemanager.com/api/v4/documents/{ID} This endpoint allows you to delete a specific Picture from the user's ForceManager implementation database. If the specified Picture does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Picture after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id (Required) | Integer | The unique and specific identifier of the Picture to delete |
RESPONSE
Returns a JSON with information about the Document just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/documents/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/documents/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/documents/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}https://api.forcemanager.com/api/v4/products/VALUE/documents This endpoint allows you to upload a Picture based on JSON input.
You will only be able to upload a Picture after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| name (Required) | String | The picture's name |
| isCarrousel (Required) | Boolean | It has to be set to true to have the picture appearing in the Products carousel |
| folderId (Required) | String | -1 if you want to upload the Picture in the Root folder, the Folder's ID if you want to upload the file in a specific folder |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| locator | String | The url you should upload the Picture (check table below). |
| id | Integer | The ID assigned to the Picture in the ForceManager Database |
- IMPORTANT: You can use whatever you want to upload your file to FM System. Despite of that, you must do a PUT request with the binary data you want to upload and set the following headers:
| Attribute | Value |
|---|---|
| Content-Type | application/octet-stream |
| Content-Length | {file.size} -> file.size is the size of the file you are going to upload |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/VALUE/documents" \
-X POST \
-H "Accept: */*" \
-d '{ "name": "example_of_product_image.png", "isCarrousel": true, "folderId": "-1" }'const response = await fetch("https://api.forcemanager.com/api/v4/products/VALUE/documents", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"name\": \"example_of_product_image.png\",\n \"isCarrousel\": true,\n \"folderId\": \"-1\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"name\": \"example_of_product_image.png\",\n \"isCarrousel\": true,\n \"folderId\": \"-1\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/products/VALUE/documents",
headers=headers, json=json_body
)
data = response.json(){
"locator": "https://forcemanager0001.s3-eu-west-1.amazonaws.com/63613/0000013.pdf?X-Amz-Expires=604800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ42UVINUBWRYEMMA/20181107/eu-west-1/s3/aws4_request&X-Amz-Date=20181107T153333Z&X-Amz-SignedHeaders=content-type;host&X-Amz-Signature=330d5e5b574c4a3389d7b2c8a09284b83e8d2394a3549251e93149b3925414c4",
"id": "345"
}Entity
https://api.forcemanager.com/api/v4/products/schema The Schema is metadata that tells you how the data is structured for a specific resource.
The Schema defines all the fields that exist for a Product object.
You will only receive the Products Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Products Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/products/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/products/schema",
headers=headers
)
data = response.json(){
"properties": {
"categoryId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "productCategories",
"type": [
"object",
"null"
]
},
"cost": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"description": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"extId": {
"description": "",
"maxLength": 30,
"readOnly": false,
"type": [
"string",
"null"
]
},
"familyId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "productFamilies",
"type": [
"object",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"maxDiscount": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"model": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"notAvailable": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"permissionLevel": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"price": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"readOnly": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"stock": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "products",
"type": "object"
}https://api.forcemanager.com/api/v4/products Returns all Products available in the user's ForceManager implementation database.
You will only receive the Products after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/products?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/products?where= param1=value AND/OR param2=value2
You can filter Products by dateCreated, familyId and model for example.
You can also organise and view the results for Rates in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/products?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/products?lang=VALUE
RESPONSE
This endpoint returns information about all Products available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Products attributes:
| Attribute | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| dateCreated | String | Date and time when the Product was created |
| dateDeleted | String | Date and time when the Product was deleted |
| dateUpdated | string | Date and time when the Product was last updated |
| deleted | Boolean | If true, the Product has been deleted and archived |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Object, Null | Id of the Family that the Product belongs to (see Families resource) |
| id | Integer | Unique identifier for the Product in ForceManager |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Product |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Product |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Product |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/products" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/products", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/products",
headers=headers
)
data = response.json()[
{
"Z_SKU": "SKU2006-001",
"categoryId": null,
"cost": 10,
"dateCreated": "2018-12-03T12:09:13.48Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"description": "",
"extId": null,
"familyId": null,
"id": 128,
"maxDiscount": null,
"model": "Aviator sunglasses",
"notAvailable": false,
"permissionLevel": 0,
"price": 100,
"readOnly": false,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"stock": null
},
{
"Z_SKU": "SKU2006-020",
"categoryId": null,
"cost": 0,
"dateCreated": "2018-12-03T12:09:14.373Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"description": "",
"extId": null,
"familyId": null,
"id": 129,
"maxDiscount": null,
"model": "Rayban sunglasses",
"notAvailable": false,
"permissionLevel": 0,
"price": 200,
"readOnly": false,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"stock": null
}
]https://api.forcemanager.com/api/v4/products This endpoint allows you to create a Product based on JSON input.
You will only be able to create a Product after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Integer | Id of the Family that the Product belongs to (see Families resource) |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model (Required) | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
RESPONSE
Returns a JSON with information about the Product just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Product |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products" \
-X POST \
-H "Accept: */*" \
-d '{ "categoryId": 4, "cost": 0, "description": "Lens pack", "familyId": 12, "maxDiscount": 15, "permissionLevel": 2, "price": 1999.99 }'const response = await fetch("https://api.forcemanager.com/api/v4/products", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"categoryId\": 4,\n \"cost\": 0,\n \"description\": \"Lens pack\",\n \"familyId\": 12,\n \"maxDiscount\": 15,\n \"permissionLevel\": 2,\n \"price\": 1999.99\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"categoryId\": 4,\n \"cost\": 0,\n \"description\": \"Lens pack\",\n \"familyId\": 12,\n \"maxDiscount\": 15,\n \"permissionLevel\": 2,\n \"price\": 1999.99\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/products",
headers=headers, json=json_body
)
data = response.json(){
"id": 131,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/products/{ID} This endpoint retrieves data of a specific Product based on JSON input. The API returns a single Product available to the user, according to the unique Product ID provided. If the specified Product does not exist, the response will be a "bad request".
You will only receive the Product after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Product |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| dateCreated | String | Date and time when the Product was created |
| dateDeleted | String | Date and time when the Product was deleted |
| dateUpdated | string | Date and time when the Product was last updated |
| deleted | Boolean | If true, the Product has been deleted and archived |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Object, Null | Id of the Family that the Product belongs to (see Families resource) |
| id | Integer | Unique identifier for the Product in ForceManager |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Product |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Product |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Product |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| ExtraFieldDescription | VALUE |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/products/{ID}" \
-H "Accept: */*" \
-H "ExtraFieldDescription: VALUE" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]"const response = await fetch("https://api.forcemanager.com/api/v4/products/{ID}", {
headers: {
"Accept": "*/*",
"ExtraFieldDescription": "VALUE",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"ExtraFieldDescription": "VALUE",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/products/{ID}",
headers=headers
)
data = response.json(){
"Z_SKU": "SKU2006-001",
"categoryId": null,
"cost": 10,
"dateCreated": "2018-12-03T12:09:13.48Z",
"dateDeleted": null,
"dateUpdated": "2021-12-08T22:45:25.753Z",
"deleted": false,
"description": "Unisex model",
"extId": null,
"familyId": null,
"id": 128,
"maxDiscount": 15,
"model": "Aviator sunglasses",
"notAvailable": false,
"permissionLevel": 0,
"price": 100,
"readOnly": false,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 51,
"stock": null
}https://api.forcemanager.com/api/v4/products/{ID} This endpoint allows you to update specific information of a Product from the user's ForceManager implementation database. If the specified Product does not exist, the response will be a "bad request".
You will only be able to update a Product after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Product. In order to update a Product, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Integer | Id of the Family that the Product belongs to (see Families resource) |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
RESPONSE
Returns a JSON with information about the Product just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "cost": 10, "description": "Unisex model", "maxDiscount": 15, "price": 100 }'const response = await fetch("https://api.forcemanager.com/api/v4/products/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"cost\": 10,\n \"description\": \"Unisex model\",\n \"maxDiscount\": 15,\n \"price\": 100\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"cost\": 10,\n \"description\": \"Unisex model\",\n \"maxDiscount\": 15,\n \"price\": 100\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/products/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/products/{ID} This endpoint allows you to delete a specific Product from the user's ForceManager implementation database. If the specified Product does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Product after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product to delete |
RESPONSE
Returns a JSON with information about the Product just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/products/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/products/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}https://api.forcemanager.com/api/v4/products/bulk This endpoint allows you to create Multiple Products (100 entities for request) based on JSON input.
You will only be able to create Multiple Products after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
You have to send a Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| data | Object | JSONObject with the Product data (same data as Create Product method) |
You can check the "data" object in the following table:
| Parameter | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Integer | Id of the Family that the Product belongs to (see Families resource) |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model (Required) | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| guid | Integer | Unique operation identifier |
| id | Integer | Id assigned to the new Account |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/bulk" \
-X POST \
-H "Accept: */*" \
-d '[ { "guid": "UniqueIdentifierOperation_1", "data": { "categoryId": 4, "cost": 0, "description": "Lens pack", "familyId": 12, "maxDiscount": 15, "permissionLevel": 2, "price": 1999.99 } }, { "guid": "UniqueIdentifierOperation_2", "data": { "categoryId": 1, "cost": 0, "description": "Glasses pack", "familyId": 4, "maxDiscount": 10, "permissionLevel": 2, "price": 399.99 } } ]'const response = await fetch("https://api.forcemanager.com/api/v4/products/bulk", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "[\n {\n \"guid\": \"UniqueIdentifierOperation_1\",\n \"data\": {\n \"categoryId\": 4,\n \"cost\": 0,\n \"description\": \"Lens pack\",\n \"familyId\": 12,\n \"maxDiscount\": 15,\n \"permissionLevel\": 2,\n \"price\": 1999.99\n }\n },\n {\n \"guid\": \"UniqueIdentifierOperation_2\",\n \"data\": {\n \"categoryId\": 1,\n \"cost\": 0,\n \"description\": \"Glasses pack\",\n \"familyId\": 4,\n \"maxDiscount\": 10,\n \"permissionLevel\": 2,\n \"price\": 399.99\n }\n }\n]",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("[\n {\n \"guid\": \"UniqueIdentifierOperation_1\",\n \"data\": {\n \"categoryId\": 4,\n \"cost\": 0,\n \"description\": \"Lens pack\",\n \"familyId\": 12,\n \"maxDiscount\": 15,\n \"permissionLevel\": 2,\n \"price\": 1999.99\n }\n },\n {\n \"guid\": \"UniqueIdentifierOperation_2\",\n \"data\": {\n \"categoryId\": 1,\n \"cost\": 0,\n \"description\": \"Glasses pack\",\n \"familyId\": 4,\n \"maxDiscount\": 10,\n \"permissionLevel\": 2,\n \"price\": 399.99\n }\n }\n]")
response = requests.post(
"https://api.forcemanager.com/api/v4/products/bulk",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 125,
"message": "Entity create success",
"guid": "UniqueIdentifierOperation_1",
"code": 1
},
{
"id": 126,
"message": "Entity create success",
"guid": "UniqueIdentifierOperation_2",
"code": 1
}
]https://api.forcemanager.com/api/v4/products/bulk This endpoint allows you to update a Multiple Products (100 entities for request) information from the user's ForceManager implementation database.
In order to update Multiple Products, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
You will only be able to update an Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of Multiple Products. In order to update an Account, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
You have to send an Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| data | Object | JSONObject with the Account data (same data as Create Account method) |
| id | Integer | Unique Account's identifier |
You can check the "data" object in the following table:
| Parameter | Type | Description |
|---|---|---|
| categoryId | Object, Null | Id of the Category that the Product belongs to (see Categories resource) |
| cost | Number | Cost of the Product |
| description | String | Description of the Product |
| extId | String | External ID of the Product from a third party system (ERP, CRM, Accounting System) |
| familyId | Integer | Id of the Family that the Product belongs to (see Families resource) |
| maxDiscount | Number | Maximum discount that can be applied to the Product in percents |
| model | String | Product name |
| notAvailable | Boolean | If true, the Product is not available |
| permissionLevel | Integer | Defines the visibility of the Product. Set from 1 to 5 being 5 the highest level of permission |
| price | Number | Specific price for the Product |
| stock | Integer | Amount of Product in stock |
| readOnly | Boolean | If true, the Product can not be modified or deleted |
RESPONSE
Returns a JSON with information about the Account just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/bulk" \
-X PUT \
-H "Accept: */*" \
-d '[ { "guid": "UniqueOperationIdentifier_1", "id": 19, "data": { "cost": 10, "description": "Unisex model", "maxDiscount": 15, "price": 100 } }, { "guid": "UniqueOperationIdentifier_2", "id": 21, "data": { "cost": 15, "description": "Winter model", "maxDiscount": 0, "price": 89 } } ]'const response = await fetch("https://api.forcemanager.com/api/v4/products/bulk", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "[\n {\n \"guid\": \"UniqueOperationIdentifier_1\",\n \"id\": 19,\n \"data\": {\n \"cost\": 10,\n \"description\": \"Unisex model\",\n \"maxDiscount\": 15,\n \"price\": 100\n }\n },\n {\n \"guid\": \"UniqueOperationIdentifier_2\",\n \"id\": 21,\n \"data\": {\n \"cost\": 15,\n \"description\": \"Winter model\",\n \"maxDiscount\": 0,\n \"price\": 89\n }\n }\n]",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("[\n {\n \"guid\": \"UniqueOperationIdentifier_1\",\n \"id\": 19,\n \"data\": {\n \"cost\": 10,\n \"description\": \"Unisex model\",\n \"maxDiscount\": 15,\n \"price\": 100\n }\n },\n {\n \"guid\": \"UniqueOperationIdentifier_2\",\n \"id\": 21,\n \"data\": {\n \"cost\": 15,\n \"description\": \"Winter model\",\n \"maxDiscount\": 0,\n \"price\": 89\n }\n }\n]")
response = requests.put(
"https://api.forcemanager.com/api/v4/products/bulk",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 19,
"message": "Entity update success",
"guid": "UniqueOperationIdentifier_1",
"code": 1
},
{
"id": 21,
"message": "Entity update success",
"guid": "UniqueOperationIdentifier_2",
"code": 1
}
]https://api.forcemanager.com/api/v4/products/bulk This endpoint allows you to delete Multiple Products (100 entities for request) from the user's ForceManager implementation database. If the specified Account does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Multiple Products after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
You have to send an Array with the following JSON data:
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique operation identifier |
| id | Integer | Unique Account's identifier |
RESPONSE
Returns a JSON with information about the Account just deleted.
| Attribute | Type | Description |
|---|---|---|
| guid | Integer | Unique operation identifier |
| id | Integer | Id assigned to the new Account |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/products/bulk" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/products/bulk", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/products/bulk",
headers=headers
)
data = response.json()[
{
"id": 19,
"message": "Entity delete success",
"guid": "UniqueOperationIdentifier_1",
"code": 1
},
{
"id": 21,
"message": "Entity delete success",
"guid": "UniqueOperationIdentifier_2",
"code": 1
}
]Families
https://api.forcemanager.com/api/v4/productFamilies/schema Returns properties object with the definition of each field in the Product Families table.
With the Product Family you can classify each Product.
You will only receive the Product Family Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Product Family Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productFamilies/schema" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies/schema", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productFamilies/schema",
headers=headers
)
data = response.json(){
"properties": {
"branchRestriction": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"idParent": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"notAvailable": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "productFamilies",
"type": "object"
}https://api.forcemanager.com/api/v4/productFamilies Returns all Product Families available.
You will only receive the Product Families after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Product Families available for the value list.
List of the supported Product Families attributes:
| Attribute | Type | Description |
|---|---|---|
| branchRestriction | Integer | If true, the User has limited visibility in some branches |
| descriptionBR | String | Product Family name in Brasilian Portuguese |
| descriptionDE | String | Product Family name in German |
| descriptionDK | String | Product Family name in Dutch |
| descriptionEN | String | Product Family name in English |
| descriptionES | String | Product Family name in Spanish |
| descriptionFR | String | Product Family name in French |
| descriptionIT | String | Product Family name in Italian |
| descriptionPT | String | Product Family name in Portuguese |
| descriptionRU | String | Product Family name in Russian |
| descriptionUS | String | Product Family name in American English |
| id | Integer | Unique identifier of the Product Family in ForceManager |
| idParent | Integer | Unique identifier of the parent Product Family, for Product Families hierarchy purposes |
| notAvailable | Boolean | If true, the Product Family is not available |
| dateCreated | String | Date and time when the Product Family was created |
| dateDeleted | String | Date and time when the Product Family was deleted |
| dateUpdated | String | Date and time when the Product Family was last updated |
| deleted | Boolean | If true, the Product Family has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Family |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Family |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Family |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productFamilies" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productFamilies",
headers=headers
)
data = response.json()[
{
"branchRestriction": false,
"dateCreated": "2018-10-29T17:05:31.877Z",
"dateDeleted": "2018-10-29T17:15:31.803Z",
"dateUpdated": null,
"deleted": true,
"descriptionBR": "",
"descriptionDE": "",
"descriptionDK": "",
"descriptionEN": "Packs",
"descriptionES": "",
"descriptionFR": "",
"descriptionIT": "",
"descriptionPT": "",
"descriptionRU": "",
"descriptionUS": "",
"id": 138,
"idParent": -1,
"notAvailable": false,
"salesRepIdCreated": 105,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/productFamilies This endpoint allows you to create a Product Family based on JSON input.
You will only be able to create a Product Family after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchRestriction | Boolean | If true, the User has limited visibility in some branches |
| descriptionBR | String | Product Family name in Brasilian Portuguese |
| descriptionDE | String | Product Family name in German |
| descriptionDK | String | Product Family name in Dutch |
| descriptionEN (Required) | String | Product Family name in English |
| descriptionES | String | Product Family name in Spanish |
| descriptionFR | String | Product Family name in French |
| descriptionIT | String | Product Family name in Italian |
| descriptionPT | String | Product Family name in Portuguese |
| descriptionRU | String | Product Family name in Russian |
| descriptionUS | String | Product Family name in American English |
| idParent | Integer | Unique identifier of the parent Product Family, for Product Families hierarchy purposes |
| notAvailable | Boolean | If true, the Product Family is not available |
RESPONSE
Returns a JSON with information about the Product Family just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Product Family |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productFamilies" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Black Friday Packs", "branchRestriction": true, "notAvailable": true, "idParent": -1 }'const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Black Friday Packs\",\n \"branchRestriction\": true,\n \"notAvailable\": true,\n \"idParent\": -1\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Black Friday Packs\",\n \"branchRestriction\": true,\n \"notAvailable\": true,\n \"idParent\": -1\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/productFamilies",
headers=headers, json=json_body
)
data = response.json(){
"id": 139,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/productFamilies/{ID} This endpoint retrieves data of a specific Product Family based on JSON input. The API returns a single Product Family available to the user in the Value List, according to the unique ID provided. If the specified Family does not exist, the response will be a "bad request".
You will only receive the Product Family after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Family |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchRestriction | Integer | If true, the User has limited visibility in some branches |
| descriptionBR | String | Product Family name in Brasilian Portuguese |
| descriptionDE | String | Product Family name in German |
| descriptionDK | String | Product Family name in Dutch |
| descriptionEN (Required) | String | Product Family name in English |
| descriptionES | String | Product Family name in Spanish |
| descriptionFR | String | Product Family name in French |
| descriptionIT | String | Product Family name in Italian |
| descriptionPT | String | Product Family name in Portuguese |
| descriptionRU | String | Product Family name in Russian |
| descriptionUS | String | Product Family name in American English |
| id | Integer | Unique identifier of the Product Family in ForceManager |
| idParent | Integer | Unique identifier of the parent Product Family, for Product Families hierarchy purposes |
| notAvailable | Boolean | If true, the Product Family is not available |
| dateCreated | String | Date and time when the Product Family was created |
| dateDeleted | String | Date and time when the Product Family was deleted |
| dateUpdated | String | Date and time when the Product Family was last updated |
| deleted | Boolean | If true, the Product Family has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Family |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Family |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Family |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productFamilies/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productFamilies/{ID}",
headers=headers
)
data = response.json(){
"branchRestriction": false,
"dateCreated": "2018-10-29T17:05:31.877Z",
"dateDeleted": "2018-10-29T17:15:31.803Z",
"dateUpdated": null,
"deleted": true,
"descriptionBR": "",
"descriptionDE": "",
"descriptionDK": "",
"descriptionEN": "Packs",
"descriptionES": "",
"descriptionFR": "",
"descriptionIT": "",
"descriptionPT": "",
"descriptionRU": "",
"descriptionUS": "",
"id": 138,
"idParent": -1,
"notAvailable": false,
"salesRepIdCreated": 105,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/productFamilies/{ID} This endpoint allows you to update a specific information of a Product Family. If the specified Type does not exist, the response will be a "bad request".
You will only be able to update a Product Family after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Product Family. In order to update a Family, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchRestriction | Boolean | If true, the User has limited visibility in some branches |
| descriptionBR | String | Product Family name in Brasilian Portuguese |
| descriptionDE | String | Product Family name in German |
| descriptionDK | String | Product Family name in Dutch |
| descriptionEN | String | Product Family name in English |
| descriptionES | String | Product Family name in Spanish |
| descriptionFR | String | Product Family name in French |
| descriptionIT | String | Product Family name in Italian |
| descriptionPT | String | Product Family name in Portuguese |
| descriptionRU | String | Product Family name in Russian |
| descriptionUS | String | Product Family name in American English |
| idParent | Integer | Unique identifier of the parent Product Family, for Product Families hierarchy purposes |
| notAvailable | Boolean | If true, the Product Family is not available |
RESPONSE
Returns a JSON with information about the Product Family just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productFamilies/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "branchRestriction": false, "descriptionEN": "New Packs", "idParent": 138 }'const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"branchRestriction\": false,\n \"descriptionEN\": \"New Packs\",\n \"idParent\": 138\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"branchRestriction\": false,\n \"descriptionEN\": \"New Packs\",\n \"idParent\": 138\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/productFamilies/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/productFamilies/232 This endpoint allows you to delete a specific Product Family. If the specified Product Family does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Product Family after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Family to delete |
RESPONSE
Returns a JSON with information about the Product Family just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productFamilies/232" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productFamilies/232", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/productFamilies/232",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Categories
https://api.forcemanager.com/api/v4/productCategories/schema Returns properties object with the definition of each field in the Product Categories table.
With the Product Category you can classify each Product.
You will only receive the Product Category Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Product Category Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productCategories/schema" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productCategories/schema", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productCategories/schema",
headers=headers
)
data = response.json(){
"properties": {
"cLevel2": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "productCategories",
"type": "object"
}https://api.forcemanager.com/api/v4/productCategories Returns all Product Categories available.
You will only receive the Product Categories after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Product Categories available for the value list.
List of the supported Product Categories attributes:
| Attribute | Type | Description |
|---|---|---|
| cLevel2 | Integer | Unique identifier of the Product Family that the Product Category belongs to (see Families resource) |
| descriptionBR | String | Product Category name in Brasilian Portuguese |
| descriptionDE | String | Product Category name in German |
| descriptionDK | String | Product Category name in Dutch |
| descriptionEN | String | Product Category name in English |
| descriptionES | String | Product Category name in Spanish |
| descriptionFR | String | Product Category name in French |
| descriptionIT | String | Product Category name in Italian |
| descriptionPT | String | Product Category name in Portuguese |
| descriptionRU | String | Product Category name in Russian |
| descriptionUS | String | Product Category name in American English |
| id | Integer | Unique identifier for the Product Category in ForceManager |
| dateCreated | String | Date and time when the Product Category was created |
| dateDeleted | String | Date and time when the Product Category was deleted |
| dateUpdated | String | Date and time when the Product Category was last updated |
| deleted | Boolean | If true, the Product Category has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Category |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Category |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Category |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productCategories" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productCategories", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productCategories",
headers=headers
)
data = response.json()[
{
"cLevel2": 57,
"dateCreated": "2009-10-15T19:23:32Z",
"dateDeleted": "2016-05-11T11:03:04.28Z",
"dateUpdated": "2009-10-15T19:23:32Z",
"deleted": true,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Business Licenses",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 127,
"salesRepIdCreated": 1,
"salesRepIdDeleted": 51,
"salesRepIdUpdated": 1
},
{
"cLevel2": 0,
"dateCreated": "2018-10-29T17:09:44.933Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Performance Licenses",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 128,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/productCategories This endpoint allows you to create a Product Category based on JSON input.
You will only be able to create a Product Category after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| cLevel2 | Integer | Unique identifier of the Product Family that the Product Category belongs to (see Families resource) |
| descriptionBR | String | Product Category name in Brasilian Portuguese |
| descriptionDE | String | Product Category name in German |
| descriptionDK | String | Product Category name in Dutch |
| descriptionEN (Required) | String | Product Category name in English |
| descriptionES | String | Product Category name in Spanish |
| descriptionFR | String | Product Category name in French |
| descriptionIT | String | Product Category name in Italian |
| descriptionPT | String | Product Category name in Portuguese |
| descriptionRU | String | Product Category name in Russian |
| descriptionUS | String | Product Category name in American English |
RESPONSE
Returns a JSON with information about the Product Category just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Product Category |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productCategories" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Enterprise Licenses", "cLevel2": 20 }'const response = await fetch("https://api.forcemanager.com/api/v4/productCategories", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Enterprise Licenses\",\n \"cLevel2\": 20\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Enterprise Licenses\",\n \"cLevel2\": 20\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/productCategories",
headers=headers, json=json_body
)
data = response.json(){
"id": 130,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/productCategories/{ID} This endpoint retrieves data of a specific Product Category based on JSON input. The API returns a single Product Category available to the user in the Value List, according to the unique ID provided. If the specified Category does not exist, the response will be a "bad request".
You will only receive the Product Category after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Category |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| cLevel2 | Integer | Unique identifier of the Product Family that the Product Category belongs to (see Families resource) |
| descriptionBR | String | Product Category name in Brasilian Portuguese |
| descriptionDE | String | Product Category name in German |
| descriptionDK | String | Product Category name in Dutch |
| descriptionEN (Required) | String | Product Category name in English |
| descriptionES | String | Product Category name in Spanish |
| descriptionFR | String | Product Category name in French |
| descriptionIT | String | Product Category name in Italian |
| descriptionPT | String | Product Category name in Portuguese |
| descriptionRU | String | Product Category name in Russian |
| descriptionUS | String | Product Category name in American English |
| id | Integer | Unique identifier for the Product Category in ForceManager |
| dateCreated | String | Date and time when the Product Category was created |
| dateDeleted | String | Date and time when the Product Category was deleted |
| dateUpdated | String | Date and time when the Product Category was last updated |
| deleted | Boolean | If true, the Product Category has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Category |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Category |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Category |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productCategories/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productCategories/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productCategories/{ID}",
headers=headers
)
data = response.json(){
"cLevel2": 20,
"dateCreated": "2021-12-09T10:54:20.923Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Enterprise Licenses",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 130,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/productCategories/{ID} This endpoint allows you to update a specific information of a Product Category. If the specified Type does not exist, the response will be a "bad request".
You will only be able to update an Product Category after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Product Category. In order to update a Category, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| cLevel2 | Integer | Unique identifier of the Product Family that the Product Category belongs to (see Families resource) |
| descriptionBR | String | Product Category name in Brasilian Portuguese |
| descriptionDE | String | Product Category name in German |
| descriptionDK | String | Product Category name in Dutch |
| descriptionEN | String | Product Category name in English |
| descriptionES | String | Product Category name in Spanish |
| descriptionFR | String | Product Category name in French |
| descriptionIT | String | Product Category name in Italian |
| descriptionPT | String | Product Category name in Portuguese |
| descriptionRU | String | Product Category name in Russian |
| descriptionUS | String | Product Category name in American English |
RESPONSE
Returns a JSON with information about the Product Category just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productCategories/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "cLevel2": 32 }'const response = await fetch("https://api.forcemanager.com/api/v4/productCategories/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"cLevel2\": 32\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"cLevel2\": 32\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/productCategories/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/productCategories/{ID} This endpoint allows you to delete a specific Product Category. If the specified Product Category does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete an Product Category after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Category to delete |
RESPONSE
Returns a JSON with information about the Product Category just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productCategories/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productCategories/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/productCategories/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Rates
https://api.forcemanager.com/api/v4/productRates/schema Returns properties object with the definition of each field in the Product Rates table.
With the Product Rate you can associate a Rate to each Product.
You will only receive the Product Rate Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Product Rate Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productRates/schema" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productRates/schema", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productRates/schema",
headers=headers
)
data = response.json(){
"properties": {
"costPrice": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"discount1": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount2": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount3": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"discount4": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"productId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "products",
"type": [
"object",
"null"
]
},
"rateId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "rates",
"type": [
"object",
"null"
]
},
"salePrice": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"tempBuyingPrice": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
},
"tempListedPrice": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
}
},
"required": [],
"title": "productRates",
"type": "object"
}https://api.forcemanager.com/api/v4/productRates Returns all Product Rates available.
You will only receive the Product Rates after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Product Rates available for the value list.
List of the supported Product Rates attributes:
| Attribute | Type | Description |
|---|---|---|
| costPrice | Number | Cost that can be applied to the Product |
| discount1 | Number | First discount that can be applied to the Product, in percents |
| discount2 | Number | Second discount that can be applied to the Product, in percents |
| discount3 | Number | Third discount that can be applied to the Product, in percents |
| discount4 | Number | Fourth discount that can be applied to the Product, in percents |
| productId | Object, Null | ID of the Product to be associated with the Rate (see Products resource) |
| rateId | Object, Null | ID of the Rate to be associated with the Product (see Rates resource) |
| salePrice | Number | Price that can be applied to the Product |
| tempBuyingPrice | Number | |
| tempListedPrice | Number | |
| id | Integer | Unique identifier for the Product Rate in ForceManager |
| dateCreated | String | Date and time when the Product Rate was created |
| dateDeleted | String | Date and time when the Product Rate was deleted |
| dateUpdated | String | Date and time when the Product Rate was last updated |
| deleted | Boolean | If true, the Product Rate has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Rate |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Rate |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Rate |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/productRates" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/productRates", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productRates",
headers=headers
)
data = response.json()https://api.forcemanager.com/api/v4/productRates This endpoint allows you to create a Product Rate based on JSON input.
You will only be able to create a Product Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| costPrice | Number | Cost that can be applied to the Product |
| discount1 | Number | First discount that can be applied to the Product, in percents |
| discount2 | Number | Second discount that can be applied to the Product, in percents |
| discount3 | Number | Third discount that can be applied to the Product, in percents |
| discount4 | Number | Fourth discount that can be applied to the Product, in percents |
| productId (Required) | Object, Null | ID of the Product to be associated with the Rate (see Products resource) |
| rateId (Required) | Object, Null | ID of the Rate to be associated with the Product (see Rates resource) |
| salePrice | Number | Price that can be applied to the Product |
| tempBuyingPrice | Number | |
| tempListedPrice | Number |
RESPONSE
Returns a JSON with information about the Product Rate just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Product Rate |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productRates" \
-X POST \
-H "Accept: */*" \
-d '{ "costPrice": 1000, "discount1": 5, "discount2": 0, "discount3": 0, "discount4": 0, "productId": 1, "rateId": 2, "salePrice": 2500, "tempBuyingPrice": 0, "tempListedPrice": 0 }'const response = await fetch("https://api.forcemanager.com/api/v4/productRates", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"costPrice\": 1000,\n \"discount1\": 5,\n \"discount2\": 0,\n \"discount3\": 0,\n \"discount4\": 0,\n \"productId\": 1,\n \"rateId\": 2,\n \"salePrice\": 2500,\n \"tempBuyingPrice\": 0,\n \"tempListedPrice\": 0\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"costPrice\": 1000,\n \"discount1\": 5,\n \"discount2\": 0,\n \"discount3\": 0,\n \"discount4\": 0,\n \"productId\": 1,\n \"rateId\": 2,\n \"salePrice\": 2500,\n \"tempBuyingPrice\": 0,\n \"tempListedPrice\": 0\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/productRates",
headers=headers, json=json_body
)
data = response.json(){
"id": 1,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/productRates/{ID} This endpoint retrieves data of a specific Product Rate based on JSON input. The API returns a single Product Rate available to the user in the Value List, according to the unique ID provided. If the specified Rate does not exist, the response will be a "bad request".
You will only receive the Product Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | / | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Rate |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| costPrice | Number | Cost that can be applied to the Product |
| discount1 | Number | First discount that can be applied to the Product, in percents |
| discount2 | Number | Second discount that can be applied to the Product, in percents |
| discount3 | Number | Third discount that can be applied to the Product, in percents |
| discount4 | Number | Fourth discount that can be applied to the Product, in percents |
| productId | Object, Null | ID of the Product to be associated with the Rate (see Products resource) |
| rateId | Object, Null | ID of the Rate to be associated with the Product (see Rates resource) |
| salePrice | Number | Price that can be applied to the Product |
| tempBuyingPrice | Number | |
| tempListedPrice | Number | |
| id | Integer | Unique identifier for the Product Rate in ForceManager |
| dateCreated | String | Date and time when the Product Rate was created |
| dateDeleted | String | Date and time when the Product Rate was deleted |
| dateUpdated | String | Date and time when the Product Rate was last updated |
| deleted | Boolean | If true, the Product Rate has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Product Rate |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Product Rate |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Product Rate |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productRates/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productRates/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/productRates/{ID}",
headers=headers
)
data = response.json(){
"costPrice": 1000,
"dateCreated": "2021-12-16T23:47:00.44Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"discount1": 5,
"discount2": 0,
"discount3": 0,
"discount4": 0,
"productId": {
"id": 1,
"value": ""
},
"rateId": {
"id": 2,
"value": ""
},
"salePrice": 2500,
"salesRepIdCreated": 90,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"tempBuyingPrice": 0,
"tempListedPrice": 0
}https://api.forcemanager.com/api/v4/productRates/{ID} This endpoint allows you to update a specific information of a Product Rate. If the specified Type does not exist, the response will be a "bad request".
You will only be able to update an Product Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Product Rate. In order to update a Rate, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| costPrice | Number | Cost that can be applied to the Product |
| discount1 | Number | First discount that can be applied to the Product, in percents |
| discount2 | Number | Second discount that can be applied to the Product, in percents |
| discount3 | Number | Third discount that can be applied to the Product, in percents |
| discount4 | Number | Fourth discount that can be applied to the Product, in percents |
| productId | Object, Null | ID of the Product to be associated with the Rate (see Products resource) |
| rateId | Object, Null | ID of the Rate to be associated with the Product (see Rates resource) |
| salePrice | Number | Price that can be applied to the Product |
| tempBuyingPrice | Number | |
| tempListedPrice | Number |
RESPONSE
Returns a JSON with information about the Product Rate just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productRates/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "costPrice": 800, "salePrice": 3000 }'const response = await fetch("https://api.forcemanager.com/api/v4/productRates/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"costPrice\": 800,\n \"salePrice\": 3000\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"costPrice\": 800,\n \"salePrice\": 3000\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/productRates/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/productRates/{ID} This endpoint allows you to delete a specific Product Rate. If the specified Product Rate does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete an Product Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | / | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Product Rate to delete |
RESPONSE
Returns a JSON with information about the Product Rate just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/productRates/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/productRates/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/productRates/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Rates
https://api.forcemanager.com/api/v4/rates/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Rate object.
You will only receive the Rate Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
RESPONSE
The Rates schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/rates/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/rates/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/rates/schema",
headers=headers
)
data = response.json(){
"properties": {
"Comments": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"branchId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "branches",
"type": [
"object",
"null"
]
},
"branchVisibility": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
},
"currencyId": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"endDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"extID": {
"description": "",
"maxLength": 50,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"startDate": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
}
},
"required": [],
"title": "rates",
"type": "object"
}https://api.forcemanager.com/api/v4/rates Returns all Rates available in the user's ForceManager implementation database.
You will only receive the List of Rates after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/rates?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/rates?where= param1=value AND/OR param2=value2
You can filter Rates by dateCreated and id for example.
You can also organise and view the results for Rates in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/rates?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/rates?lang=VALUE
RESPONSE
This endpoint returns information about all Rates available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Rates attributes:
| Attribute | Type | Description |
|---|---|---|
| branchId | Object, Null | Branch the Rate is assigned to |
| branchVisibility | Object, Null | In which Branch the Rate is visible |
| comments | String | A comment to be added to the Rate |
| currencyId | Integer | Currency type e.g. Dollar, Euro, etc. (see Currencies resource) |
| dateCreated | String | Date and time when the Rate was created |
| dateDeleted | String | Date and time when the Rate was deleted |
| dateUpdated | String | Date and time when the Rate was last updated |
| deleted | boolean | If true, the Rate has been deleted and archived |
| descriptionBR | String | Rate label in Brasilian Portuguese |
| descriptionDE | String | Rate label in German |
| descriptionDK | String | Rate label in Dutch |
| descriptionEN (Required) | String | Rate label in English |
| descriptionES | String | Rate label in Spanish |
| descriptionFR | String | Rate label in French |
| descriptionIT | String | Rate label in Italian |
| descriptionPT | String | Rate label in Portuguese |
| descriptionRU | String | Rate label in Russian |
| descriptionUS | String | Rate label in American English |
| endDate | String | Date when the Rate expires |
| extID | String | External ID of the Rate from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier of the Rate in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Rate |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Rate |
| salesRepIdUpdated | Integer | Unique identifier of the User who last updated the Rate |
| startDate | String | Date when the Rate starts |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/rates" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/rates", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/rates",
headers=headers
)
data = response.json()[
{
"Comments": "",
"branchId": {
"id": 16,
"value": "Main Environment"
},
"branchVisibility": [
{
"id": 16,
"value": "Main Environment"
}
],
"currencyId": 1,
"dateCreated": "2021-04-26T16:47:10.1Z",
"dateDeleted": null,
"dateUpdated": "2021-04-26T16:47:23.127Z",
"deleted": false,
"descriptionBR": "",
"descriptionDE": "",
"descriptionDK": "",
"descriptionEN": "",
"descriptionES": "",
"descriptionFR": "",
"descriptionIT": "",
"descriptionPT": "",
"descriptionRU": "",
"descriptionUS": "Premium",
"endDate": null,
"extID": null,
"id": 1,
"salesRepIdCreated": 105,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 105,
"startDate": "2021-04-26T16:47:23.127Z"
}
]https://api.forcemanager.com/api/v4/rates This endpoint allows you to create a Rate based on JSON input.
You will only be able to create a Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST BODY
| Attribute | Type | Description |
|---|---|---|
| branchId | Integer | Branch the Rate is assigned to |
| branchVisibility | Array | In which Branch the Rate is visible |
| comments | String | A comment to be added to the Rate |
| currencyId | Integer | Currency type e.g. Dollar, Euro, etc. (see Currencies resource) |
| descriptionBR | String | Rate label in Brasilian Portuguese |
| descriptionDE | String | Rate label in German |
| descriptionDK | String | Rate label in Dutch |
| descriptionEN | String | Rate label in English |
| descriptionES (Required) | String | Rate label in Spanish |
| descriptionFR | String | Rate label in French |
| descriptionIT | String | Rate label in Italian |
| descriptionPT | String | Rate label in Portuguese |
| descriptionRU | String | Rate label in Russian |
| descriptionUS | String | Rate label in American English |
| endDate | String | Date when the Rate expires |
| extID | String | External ID of the Rate from a third party system (ERP, CRM, Accounting System) |
| startDate | String | Date when the Rate starts |
RESPONSE
Returns a JSON with information about the Rate just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Opportunity |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/rates" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionES": "Gold", "branchId": 16, "comments": "This is the higher rate", "currencyId": 1, "startDate": "2020-12-01", "endDate": "2021-12-01" }'const response = await fetch("https://api.forcemanager.com/api/v4/rates", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionES\": \"Gold\",\n \"branchId\": 16,\n \"comments\": \"This is the higher rate\",\n \"currencyId\": 1,\n \"startDate\": \"2020-12-01\",\n \"endDate\": \"2021-12-01\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionES\": \"Gold\",\n \"branchId\": 16,\n \"comments\": \"This is the higher rate\",\n \"currencyId\": 1,\n \"startDate\": \"2020-12-01\",\n \"endDate\": \"2021-12-01\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/rates",
headers=headers, json=json_body
)
data = response.json(){
"id": 14,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/rates/{ID} This endpoint retrieves data of a specific Rate based on JSON input. The API returns a single Rate available to the user, according to the unique ID provided. If the specified Rate does not exist, the response will be a "bad request".
You will only receive the Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | integer | The unique and specific identifier of the Rate |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| branchId | Object, Null | Branch the Rate is assigned to |
| branchVisibility | Object, Null | In which Branch the Rate is visible |
| comments | String | A comment to be added to the Rate |
| currencyId | Integer | Currency type e.g. Dollar, Euro, etc. (see Currencies resource) |
| dateCreated | String | Date and time when the Rate was created |
| dateDeleted | String | Date and time when the Rate was deleted |
| dateUpdated | String | Date and time when the Rate was last updated |
| deleted | boolean | If true, the Rate has been deleted and archived |
| descriptionBR | String | Rate label in Brasilian Portuguese |
| descriptionDE | String | Rate label in German |
| descriptionDK | String | Rate label in Dutch |
| descriptionEN (Required) | String | Rate label in English |
| descriptionES | String | Rate label in Spanish |
| descriptionFR | String | Rate label in French |
| descriptionIT | String | Rate label in Italian |
| descriptionPT | String | Rate label in Portuguese |
| descriptionRU | String | Rate label in Russian |
| descriptionUS | String | Rate label in American English |
| endDate | String | Date when the Rate expires |
| extID | String | External ID of the Rate from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier of the Rate in ForceManager |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Rate |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Rate |
| salesRepIdUpdated | Integer | Unique identifier of the User who last updated the Rate |
| startDate | String | Date when the Rate starts |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/rates/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/rates/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/rates/{ID}",
headers=headers
)
data = response.json(){
"Comments": "",
"branchId": {
"id": 16,
"value": "Main Environment"
},
"branchVisibility": [
{
"id": 16,
"value": "Main Environment"
}
],
"currencyId": 1,
"dateCreated": "2021-04-26T16:47:10.1Z",
"dateDeleted": null,
"dateUpdated": "2021-04-26T16:47:23.127Z",
"deleted": false,
"descriptionBR": "",
"descriptionDE": "",
"descriptionDK": "",
"descriptionEN": "",
"descriptionES": "",
"descriptionFR": "",
"descriptionIT": "",
"descriptionPT": "",
"descriptionRU": "",
"descriptionUS": "Premium",
"endDate": null,
"extID": null,
"id": 1,
"salesRepIdCreated": 105,
"salesRepIdDeleted": null,
"salesRepIdUpdated": 105,
"startDate": "2021-04-26T16:47:23.127Z"
}https://api.forcemanager.com/api/v4/rates/{ID} This endpoint allows you to update specific information of a Rate. If the specified Rate does not exist, the response will be a "bad request".
You will only be able to update a Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Rate. In order to update a Rate, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| branchId | Integer | Branch the Rate is assigned to |
| branchVisibility | Array | In which Branch the Rate is visible |
| comments | String | A comment to be added to the Rate |
| currencyId | Integer | Currency type e.g. Dollar, Euro, etc. (see Currencies resource) |
| descriptionBR | String | Rate label in Brasilian Portuguese |
| descriptionDE | String | Rate label in German |
| descriptionDK | String | Rate label in Dutch |
| descriptionEN | String | Rate label in English |
| descriptionES | String | Rate label in Spanish |
| descriptionFR | String | Rate label in French |
| descriptionIT | String | Rate label in Italian |
| descriptionPT | String | Rate label in Portuguese |
| descriptionRU | String | Rate label in Russian |
| descriptionUS | String | Rate label in American English |
| endDate | String | Date when the Rate expires |
| extID | String | External ID of the Rate from a third party system (ERP, CRM, Accounting System) |
| startDate | String | Date when the Rate starts |
RESPONSE
Returns a JSON with information about the Rate just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/rates/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Gold", "branchId": 16, "branchVisibility": [ 16 ] }'const response = await fetch("https://api.forcemanager.com/api/v4/rates/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Gold\",\n \"branchId\": 16,\n \"branchVisibility\": [\n 16\n ]\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Gold\",\n \"branchId\": 16,\n \"branchVisibility\": [\n 16\n ]\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/rates/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/rates/{ID} This endpoint allows you to delete a specific Rate from the user's ForceManager implementation database. If the specified Rate does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete a Rate after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Rate to delete |
RESPONSE
Returns a JSON with information about the Rate just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/rates/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/rates/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/rates/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Related Accounts
Entity
https://api.forcemanager.com/api/v4/accountsRelated/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Related Account object.
You will only receive the Related Accounts Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Related Accounts Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelated/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelated/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountOneId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"accountTwoId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": false,
"type": [
"boolean",
"null"
]
},
"id": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"relationId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accountsRelations",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": false,
"type": [
"integer",
"null"
]
}
},
"required": [
"accountOneId",
"accountTwoId",
"relationId"
],
"title": "accountsRelated",
"type": "object"
}https://api.forcemanager.com/api/v4/accountsRelated Returns all Related Accounts available in the user's ForceManager implementation database.
You will only receive the List of Related Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an AND separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/accountsRelated?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/accountsRelated?where= param1=value AND/OR param2=value2
You can also organise and view the results for Related Accounts in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/accountsRelated?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/accountsRelated?lang=VALUE
RESPONSE
This endpoint returns information about all Related Accounts available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Related Accounts attributes:
| Attribute | Type | Description |
|---|---|---|
| accountOneId | Number, Null | First Account to be referred to the relationships |
| accountTwoId | Number, Null | Second Account to be referred to the relationships |
| relationId | Number, Null | Related Account Type that defines the type of the relationships (see Types resource) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription | VALUE |
curl "https://api.forcemanager.com/api/v4/accountsRelated" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelated",
headers=headers
)
data = response.json()[
{
"accountOneId": {
"id": 963,
"value": "ACME INC."
},
"accountTwoId": {
"id": 969,
"value": "HOLDING S.P.A."
},
"dateCreated": "2021-10-25T15:32:46.65Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"id": 1,
"relationId": {
"id": 1,
"value": "Relacionadas"
},
"salesRepIdCreated": 98,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/accountsRelated This endpoint allows you to create a Related Account based on JSON input.
You will only be able to create a Related Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| accountOneId (Required) | Integer | First Account to be referred to the relationships |
| accountTwoId (Required) | Integer | Second Account to be referred to the relationships |
| relationId (Required) | Integer | Related Account Type that defines the type of the relationships (see Types resource) |
RESPONSE
Returns a JSON with information about the Related Account just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Related Account |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelated" \
-X POST \
-H "Accept: */*" \
-d '{ "accountOneId": 963, "accountTwoId": 969, "relationId": 1 }'const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountOneId\": 963,\n \"accountTwoId\": 969,\n \"relationId\": 1\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountOneId\": 963,\n \"accountTwoId\": 969,\n \"relationId\": 1\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountsRelated",
headers=headers, json=json_body
)
data = response.json(){
"id": 1,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountsRelated/{ID} This endpoint retrieves data of a specific Related Account based on JSON input. The API returns a single Related Account available to the user, according to the unique ID provided. If the specified Related Account does not exist, the response will be a "bad request".
You will only receive the Related Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier for the Related Account |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountOneId | Number, Null | First Account to be referred to the relationships |
| accountTwoId | Number, Null | Second Account to be referred to the relationships |
| relationId | Number, Null | Related Account Type that defines the type of the relationships (see Types resource) |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelated/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelated/{ID}",
headers=headers
)
data = response.json(){
"accountOneId": {
"id": 963,
"value": "ACME INC."
},
"accountTwoId": {
"id": 969,
"value": "HOLDING S.P.A."
},
"dateCreated": "2021-10-25T15:32:46.65Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"id": 1,
"relationId": {
"id": 1,
"value": "Relacionadas"
},
"salesRepIdCreated": 98,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/accountsRelated/{ID} The endpoint allows you to update a specific Related Account information from the user's ForceManager implementation database. If the specified Related Account does not exist, the response will be a "bad request".
You will only be able to update a Related Account after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Related Account. In order to update a Related Account, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| accountOneId (Required) | Integer | First Account to be referred to the relationships |
| accountTwoId (Required) | Integer | Second Account to be referred to the relationships |
| relationId (Required) | Integer | Related Account Type that defines the type of the relationships (see Types resource) |
RESPONSE
Returns a JSON with information about the Related Account just updated.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelated/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "accountOneId": 963, "accountTwoId": 971, "relationId": 2 }'const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountOneId\": 963,\n \"accountTwoId\": 971,\n \"relationId\": 2\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountOneId\": 963,\n \"accountTwoId\": 971,\n \"relationId\": 2\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accountsRelated/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accountsRelated/{ID} This endpoint allows you to delete a specific Related Account from the user's ForceManager implementation database. If the specified Related Account does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Related Accounts after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Related Account to delete |
RESPONSE
Returns a JSON with information about the Related Account just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelated/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelated/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accountsRelated/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Types
https://api.forcemanager.com/api/v4/accountsRelations/schema Returns properties object with the definition of each field in the Related Account Type table.
With the Related Account Type you can differentiate the Type of Relation.
You will only receive the Related Account Types Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Related Account Types Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/accountsRelations/schema" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations/schema", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelations/schema",
headers=headers
)
data = response.json(){
"properties": {
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"descriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionES": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"descriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"reverseDescriptionBR": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionDE": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionDK": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionEN": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionES": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionFR": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionIT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionPT": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionRU": {
"description": "",
"maxLength": 6000,
"readOnly": false,
"type": [
"string",
"null"
]
},
"reverseDescriptionUS": {
"description": "",
"maxLength": 150,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "accountsRelations",
"type": "object"
}https://api.forcemanager.com/api/v4/accountsRelations Returns all Related Account Types available, based on JSON input.
You will only receive the Related Account Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns all Related Account Types available.
List of the supported Related Account Types attributes:
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Direct relationship name of the Related Account Type in Brasilian Portuguese |
| descriptionDE | String | Direct relationship name of the Related Account Type in German |
| descriptionDK | String | Direct relationship name of the Related Account Type in Dutch |
| descriptionEN | String | Direct relationship name of the Related Account Type in English |
| descriptionES | String | Direct relationship name of the Related Account Type in Spanish |
| descriptionFR | String | Direct relationship name of the Related Account Type in French |
| descriptionIT | String | Direct relationship name of the Related Account Type in Italian |
| descriptionPT | String | Direct relationship name of the Related Account Type in Portuguese |
| descriptionRU | String | Direct relationship name of the Related Account Type in Russian |
| descriptionUS | String | Direct relationship name of the Related Account Type in American English |
| reverseDescriptionBR | String | Inverse relationship name of the Related Account Type in Brasilian Portuguese |
| reverseDescriptionDE | String | Inverse relationship name of the Related Account Type in German |
| reverseDescriptionDK | String | Inverse relationship name of the Related Account Type in Dutch |
| reverseDescriptionEN | String | Inverse relationship name of the Related Account Type in English |
| reverseDescriptionES | String | Inverse relationship name of the Related Account Type in Spanish |
| reverseDescriptionFR | String | Inverse relationship name of the Related Account Type in French |
| reverseDescriptionIT | String | Inverse relationship name of the Related Account Type in Italian |
| reverseDescriptionPT | String | Inverse relationship name of the Related Account Type in Portuguese |
| reverseDescriptionRU | String | Inverse relationship name of the Related Account Type in Russian |
| reverseDescriptionUS | String | Inverse relationship name of the Related Account Type in American English |
| id | Integer | Unique identifier for the Related Account Type in ForceManager |
| dateCreated | String | Date and time when the Related Account Type was created |
| dateDeleted | String | Date and time when the Related Account Type was deleted |
| dateUpdated | String | Date and time when the Related Account Type was last updated |
| deleted | Boolean | If true, the Related Account Type has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Related Account Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Related Account Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Related Account Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/accountsRelations" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelations",
headers=headers
)
data = response.json()[
{
"dateCreated": "2015-03-02T10:41:46.85Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Verwandt",
"descriptionDK": null,
"descriptionEN": "Related",
"descriptionES": "Relacionadas",
"descriptionFR": null,
"descriptionIT": "Relazionate",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"reverseDescriptionBR": null,
"reverseDescriptionDE": null,
"reverseDescriptionDK": null,
"reverseDescriptionEN": null,
"reverseDescriptionES": null,
"reverseDescriptionFR": null,
"reverseDescriptionIT": null,
"reverseDescriptionPT": null,
"reverseDescriptionRU": null,
"reverseDescriptionUS": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
},
{
"dateCreated": "2021-10-25T12:46:04.017Z",
"dateDeleted": "2021-10-25T12:46:14.477Z",
"dateUpdated": null,
"deleted": true,
"descriptionBR": null,
"descriptionDE": null,
"descriptionDK": null,
"descriptionEN": "Holding",
"descriptionES": null,
"descriptionFR": null,
"descriptionIT": null,
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 2,
"reverseDescriptionBR": null,
"reverseDescriptionDE": null,
"reverseDescriptionDK": null,
"reverseDescriptionEN": "Subsidiary",
"reverseDescriptionES": null,
"reverseDescriptionFR": null,
"reverseDescriptionIT": null,
"reverseDescriptionPT": null,
"reverseDescriptionRU": null,
"reverseDescriptionUS": null,
"salesRepIdCreated": 98,
"salesRepIdDeleted": 98,
"salesRepIdUpdated": null
}
]https://api.forcemanager.com/api/v4/accountsRelations This endpoint allows you to create a Related Account Type based on JSON input.
You will only be able to create a Related Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Direct relationship name of the Related Account Type in Brasilian Portuguese |
| descriptionDE | String | Direct relationship name of the Related Account Type in German |
| descriptionDK | String | Direct relationship name of the Related Account Type in Dutch |
| descriptionEN (Required) | String | Direct relationship name of the Related Account Type in English |
| descriptionES | String | Direct relationship name of the Related Account Type in Spanish |
| descriptionFR | String | Direct relationship name of the Related Account Type in French |
| descriptionIT | String | Direct relationship name of the Related Account Type in Italian |
| descriptionPT | String | Direct relationship name of the Related Account Type in Portuguese |
| descriptionRU | String | Direct relationship name of the Related Account Type in Russian |
| descriptionUS | String | Direct relationship name of the Related Account Type in American English |
| reverseDescriptionBR | String | Inverse relationship name of the Related Account Type in Brasilian Portuguese |
| reverseDescriptionDE | String | Inverse relationship name of the Related Account Type in German |
| reverseDescriptionDK | String | Inverse relationship name of the Related Account Type in Dutch |
| reverseDescriptionEN | String | Inverse relationship name of the Related Account Type in English |
| reverseDescriptionES | String | Inverse relationship name of the Related Account Type in Spanish |
| reverseDescriptionFR | String | Inverse relationship name of the Related Account Type in French |
| reverseDescriptionIT | String | Inverse relationship name of the Related Account Type in Italian |
| reverseDescriptionPT | String | Inverse relationship name of the Related Account Type in Portuguese |
| reverseDescriptionRU | String | Inverse relationship name of the Related Account Type in Russian |
| reverseDescriptionUS | String | Inverse relationship name of the Related Account Type in American English |
RESPONSE
Returns a JSON with information about the Related Account Type just created.
| Attribute | Type |
|---|---|
| Id | Id assigned to the new Related Account Type |
| Message | The operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelations" \
-X POST \
-H "Accept: */*" \
-d '{ "descriptionEN": "Holding", "reverseDescriptionEN": "Subsidiary" }'const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Holding\",\n \"reverseDescriptionEN\": \"Subsidiary\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Holding\",\n \"reverseDescriptionEN\": \"Subsidiary\"\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/accountsRelations",
headers=headers, json=json_body
)
data = response.json(){
"id": 2,
"Message": "entity created"
}https://api.forcemanager.com/api/v4/accountsRelations/{ID} This endpoint retrieves data of a specific Related Account Type based on JSON input. The API returns a single Type available to the user in the Value List, according to the unique ID provided. If the specified Related Account Type does not exist, the response will be a "bad request".
You will only receive the Related Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Related Account Type |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Direct relationship name of the Related Account Type in Brasilian Portuguese |
| descriptionDE | String | Direct relationship name of the Related Account Type in German |
| descriptionDK | String | Direct relationship name of the Related Account Type in Dutch |
| descriptionEN | String | Direct relationship name of the Related Account Type in English |
| descriptionES | String | Direct relationship name of the Related Account Type in Spanish |
| descriptionFR | String | Direct relationship name of the Related Account Type in French |
| descriptionIT | String | Direct relationship name of the Related Account Type in Italian |
| descriptionPT | String | Direct relationship name of the Related Account Type in Portuguese |
| descriptionRU | String | Direct relationship name of the Related Account Type in Russian |
| descriptionUS | String | Direct relationship name of the Related Account Type in American English |
| reverseDescriptionBR | String | Inverse relationship name of the Related Account Type in Brasilian Portuguese |
| reverseDescriptionDE | String | Inverse relationship name of the Related Account Type in German |
| reverseDescriptionDK | String | Inverse relationship name of the Related Account Type in Dutch |
| reverseDescriptionEN | String | Inverse relationship name of the Related Account Type in English |
| reverseDescriptionES | String | Inverse relationship name of the Related Account Type in Spanish |
| reverseDescriptionFR | String | Inverse relationship name of the Related Account Type in French |
| reverseDescriptionIT | String | Inverse relationship name of the Related Account Type in Italian |
| reverseDescriptionPT | String | Inverse relationship name of the Related Account Type in Portuguese |
| reverseDescriptionRU | String | Inverse relationship name of the Related Account Type in Russian |
| reverseDescriptionUS | String | Inverse relationship name of the Related Account Type in American English |
| id | Integer | Unique identifier for the Related Account Type in ForceManager |
| dateCreated | String | Date and time when the Related Account Type was created |
| dateDeleted | String | Date and time when the Related Account Type was deleted |
| dateUpdated | String | Date and time when the Related Account Type was last updated |
| deleted | Boolean | If true, the Related Account Type has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Related Account Type |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Related Account Type |
| salesRepIdUpdated | Integer | Unique identifier of the user who last updated the Related Account Type |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelations/{ID}" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations/{ID}", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/accountsRelations/{ID}",
headers=headers
)
data = response.json(){
"dateCreated": "2015-03-02T10:41:46.85Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": false,
"descriptionBR": null,
"descriptionDE": "Verwandt",
"descriptionDK": null,
"descriptionEN": "Related",
"descriptionES": "Relacionadas",
"descriptionFR": null,
"descriptionIT": "Relazionate",
"descriptionPT": null,
"descriptionRU": null,
"descriptionUS": null,
"id": 1,
"reverseDescriptionBR": null,
"reverseDescriptionDE": null,
"reverseDescriptionDK": null,
"reverseDescriptionEN": null,
"reverseDescriptionES": null,
"reverseDescriptionFR": null,
"reverseDescriptionIT": null,
"reverseDescriptionPT": null,
"reverseDescriptionRU": null,
"reverseDescriptionUS": null,
"salesRepIdCreated": 1,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null
}https://api.forcemanager.com/api/v4/accountsRelations/{ID} This endpoint allows you to update a specific Related Account Type. If the specified Type does not exist, the response will be a "bad request".
You will only be able to update a Related Account Type after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific Related Account Type. In order to update a Type, you just have to specify the attributes you want to modify and complete with the up to date information. It is not necessary to send all attributes.
| Attribute | Type | Description |
|---|---|---|
| descriptionBR | String | Direct relationship name of the Related Account Type in Brasilian Portuguese |
| descriptionDE | String | Direct relationship name of the Related Account Type in German |
| descriptionDK | String | Direct relationship name of the Related Account Type in Dutch |
| descriptionEN | String | Direct relationship name of the Related Account Type in English |
| descriptionES | String | Direct relationship name of the Related Account Type in Spanish |
| descriptionFR | String | Direct relationship name of the Related Account Type in French |
| descriptionIT | String | Direct relationship name of the Related Account Type in Italian |
| descriptionPT | String | Direct relationship name of the Related Account Type in Portuguese |
| descriptionRU | String | Direct relationship name of the Related Account Type in Russian |
| descriptionUS | String | Direct relationship name of the Related Account Type in American English |
| reverseDescriptionBR | String | Inverse relationship name of the Related Account Type in Brasilian Portuguese |
| reverseDescriptionDE | String | Inverse relationship name of the Related Account Type in German |
| reverseDescriptionDK | String | Inverse relationship name of the Related Account Type in Dutch |
| reverseDescriptionEN | String | Inverse relationship name of the Related Account Type in English |
| reverseDescriptionES | String | Inverse relationship name of the Related Account Type in Spanish |
| reverseDescriptionFR | String | Inverse relationship name of the Related Account Type in French |
| reverseDescriptionIT | String | Inverse relationship name of the Related Account Type in Italian |
| reverseDescriptionPT | String | Inverse relationship name of the Related Account Type in Portuguese |
| reverseDescriptionRU | String | Inverse relationship name of the Related Account Type in Russian |
| reverseDescriptionUS | String | Inverse relationship name of the Related Account Type in American English |
RESPONSE
Returns a JSON with information about the Related Account Type just updated.
| Attribute | Description |
|---|---|
| Message | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelations/{ID}" \
-X PUT \
-H "Accept: */*" \
-d '{ "descriptionEN": "Related" }'const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations/{ID}", {
method: "PUT",
headers: {
"Accept": "*/*"
},
body: "{\n \"descriptionEN\": \"Related\"\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"descriptionEN\": \"Related\"\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/accountsRelations/{ID}",
headers=headers, json=json_body
)
data = response.json(){
"Message": "entity updated"
}https://api.forcemanager.com/api/v4/accountsRelations/{ID} This endpoint allows you to delete a specific Related Account Type from the user's ForceManager implementation database. If the specified Related Account Type does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete Related Account Types after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The unique and specific identifier of the Related Account Type to delete |
RESPONSE
Returns a JSON with information about the Related Account Type just deleted.
| Attribute | Type | Description |
|---|---|---|
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/accountsRelations/{ID}" \
-X DELETE \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/accountsRelations/{ID}", {
method: "DELETE",
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/accountsRelations/{ID}",
headers=headers
)
data = response.json(){
"Message": "entity deleted"
}Resources
https://api.forcemanager.com/api/v4/resources This endpoint retrieves all the methods available in the API on JSON input.
You will only receive the Resource's information after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Accept any data of whatever mime type |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| description | String | The endpoint description. (Extra information to get more context) |
| end_point | String | The method's url |
| operations | Object | This object contains the CRUD operations available in a JSON Object |
| schema | String | The schema's url for this method |
The operations object contains the following structure
| Attribute | Type | Description |
|---|---|---|
| create | Boolean | True if the create method is available, otherwise False |
| delete | Boolean | True if the create method is available, otherwise False |
| read | Boolean | True if the create method is available, otherwise False |
| update | Boolean | True if the create method is available, otherwise False |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/resources" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/resources", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/resources",
headers=headers
)
data = response.json()[
{
"end_point": "/v4/opportunityStatuses",
"description": "",
"schema": "/v4/opportunityStatuses/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/activityTypes",
"description": "",
"schema": "/v4/activityTypes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/branches",
"description": "",
"schema": "/v4/branches/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/contactTypes",
"description": "",
"schema": "/v4/contactTypes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/accountTypes",
"description": "",
"schema": "/v4/accountTypes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/rates",
"description": "",
"schema": "/v4/rates/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/accountSegments",
"description": "",
"schema": "/v4/accountSegments/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/quoteTypes",
"description": "",
"schema": "/v4/quoteTypes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/accountStatuses",
"description": "",
"schema": "/v4/accountStatuses/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/salesorderStatuses",
"description": "",
"schema": "/v4/salesorderStatuses/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/accounts",
"description": "",
"schema": "/v4/accounts/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/contacts",
"description": "",
"schema": "/v4/contacts/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/opportunities",
"description": "",
"schema": "/v4/opportunities/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/activities",
"description": "",
"schema": "/v4/activities/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/quotes",
"description": "",
"schema": "/v4/quotes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/lineQuotes",
"description": "",
"schema": "/v4/lineQuotes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/calendar",
"description": "",
"schema": "/v4/calendar/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/calendarAttendees",
"description": "",
"schema": "/v4/calendarAttendees/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/sales",
"description": "",
"schema": "/v4/sales/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/salesorders",
"description": "",
"schema": "/v4/salesorders/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/salesordersLines",
"description": "",
"schema": "/v4/salesordersLines/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/accountAddresses",
"description": "",
"schema": "/v4/accountAddresses/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/products",
"description": "",
"schema": "/v4/products/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/mailchimpCampaign",
"description": "",
"schema": "/v4/mailchimpCampaign/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/mailchimpEmailActivity",
"description": "",
"schema": "/v4/mailchimpEmailActivity/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/tblcustomActivity",
"description": "",
"schema": "/v4/tblcustomActivity/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/countries",
"description": "",
"schema": "/v4/countries/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/users",
"description": "",
"schema": "/v4/users/schema",
"operations": {
"create": true,
"read": true,
"update": false,
"delete": false
}
},
{
"end_point": "/v4/externalIds",
"description": "",
"schema": "/v4/externalIds/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/externalIntegrationLog",
"description": "",
"schema": "/v4/externalIntegrationLog/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/externalProvider",
"description": "",
"schema": "/v4/externalProvider/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/currencies",
"description": "",
"schema": "/v4/currencies/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/productCategories",
"description": "",
"schema": "/v4/productCategories/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/productFamilies",
"description": "",
"schema": "/v4/productFamilies/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
},
{
"end_point": "/v4/opportunityTypes",
"description": "",
"schema": "/v4/opportunityTypes/schema",
"operations": {
"create": true,
"read": true,
"update": true,
"delete": true
}
}
]Roles
https://api.forcemanager.com/api/v4/roles/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Roles object.
You will only receive the Roles Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | The acceptance |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Roles schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/roles/schema" \
-H "Accept: */*"const response = await fetch("https://api.forcemanager.com/api/v4/roles/schema", {
headers: {
"Accept": "*/*"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/roles/schema",
headers=headers
)
data = response.json(){
"properties": {
"branches": {
"description": "",
"items": {
"properties": {
"id": {
"type": "integer",
"value": {
"type": [
"string",
"null"
]
}
},
"required": [
"id"
],
"type": "object"
},
"readOnly": false,
"table": "branches",
"type": [
"array",
"null"
]
}
},
"dataDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"extId": {
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"readOnly": true,
"type": [
"integer",
"null"
]
},
"level": {
"readOnly": false,
"type": [
"integer",
"null"
]
},
"name": {
"maxLength": 180,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepIdCreated": {
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"readOnly": true,
"type": [
"integer",
"null"
]
}
},
"required": [],
"title": "roles",
"type": "object"
}https://api.forcemanager.com/api/v4/roles Returns all Roles available in the user's ForceManager account database based on JSON input.
You will only receive the List of Roles after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an "and" separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/users?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/roles?where= param1=value AND/OR param2=value2
You can filter Roles by name for example.
You can also organise and view the results for Roles in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/roles?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/roles?lang=VALUE
RESPONSE
This endpoint returns information about all Roles available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Roles attributes:
| Attribute | Type | Description |
|---|---|---|
| branches | Object, Null | List of the user branches |
| extId | Integer | External ID of the User from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the Role in ForceManager |
| level | Integer | Between 1-5. The priority of this role, being 1 minor and 5 major |
| name | String | The name of the role |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
curl "https://api.forcemanager.com/api/v4/roles" \
-H "Accept: */*" \
-H "Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/roles", {
headers: {
"Accept": "*/*",
"Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/roles",
headers=headers
)
data = response.json()[
{
"id": 30,
"extId": null,
"level": 2,
"name": "Sales Role",
"branches": [
16,
18
],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 0,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2021-02-24T12:22:31.357Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
},
{
"id": 33,
"extId": null,
"level": 3,
"name": "Sales Manager Role",
"branches": [],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 0,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2021-02-25T18:27:32.847Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
},
{
"id": 54,
"extId": null,
"level": 5,
"name": "WebService Role",
"branches": [],
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": 0,
"dateCreated": "2013-01-10T11:14:19.75Z",
"dateUpdated": "2021-02-24T12:23:22.257Z",
"dateDeleted": null,
"deleted": false
},
{
"id": 89,
"extId": null,
"level": 5,
"name": "Sales Director",
"branches": [],
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": null,
"dateCreated": "2021-02-25T19:16:44.527Z",
"dateUpdated": null,
"dateDeleted": null,
"deleted": false
}
]https://api.forcemanager.com/api/v4/roles/{ID} This endpoint retrieves data of a specific Role based on JSON input. The API returns a single Role available to the user, according to the unique ID provided. If the specified Role does not exist, the response will be a "bad request".
You will only receive the Role's information after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
| Parameter | Type | Description |
|---|---|---|
| id | integer | The unique and specific identifier of the Role |
RESPONSE BODY
| Attribute | Type | Description |
|---|---|---|
| branches | Object | List of the Role Branches |
| extId | Integer | External ID of the Role from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the Role in ForceManager |
| level | Integer | Between 1-5. The priority of this role, being 1 minor and 5 major |
| name | String | The name of the role |
| dateCreated | String | Date and time when the Role was created |
| dateDeleted | String | Date and time when the Role was deleted |
| dateUpdated | String | Date and time when the Role was last updated |
| deleted | Boolean | If true, the Role has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Role |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Role |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Role |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/roles/{ID}" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]"const response = await fetch("https://api.forcemanager.com/api/v4/roles/{ID}", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/roles/{ID}",
headers=headers
)
data = response.json(){
"id": 30,
"extId": null,
"level": 2,
"name": "Sales Role",
"branches": null,
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 0,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2021-02-24T12:22:31.357Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
}https://api.forcemanager.com/api/v4/users/{ID}/roles Returns all the Roles assigned to the user in ForceManager account database based on JSON input.
You will only receive the List of Roles associated to the defined user after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
RESPONSE
This endpoint returns information about the Roles associated to the defined user available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 100.
List of the supported Users attributes:
| Attribute | Type | Description |
|---|---|---|
| branches | Object, Null | List of the Role branches |
| extId | Integer | External ID of the Role from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the Role in ForceManager |
| level | Integer | Between 1-5. The priority of this Role, being 1 minor and 5 major |
| name | String | The name of the Role |
| dateCreated | String | Date and time when the Role was created |
| dateDeleted | String | Date and time when the Role was deleted |
| dateUpdated | String | Date and time when the Role was last updated |
| deleted | Boolean | If true, the Role has been deleted and archived |
| salesRepIdCreated | Integer | Unique identifier of the user who created the Role |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Role |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Role |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/users/{ID}/roles" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/users/{ID}/roles", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/users/{ID}/roles",
headers=headers
)
data = response.json()[
{
"id": 30,
"extId": null,
"level": 2,
"name": "Sales Role",
"branches": [],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 0,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2021-02-24T12:22:31.357Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
},
{
"id": 54,
"extId": null,
"level": 5,
"name": "WebService Role",
"branches": [],
"salesRepIdDeleted": null,
"salesRepIdCreated": 51,
"salesRepIdUpdated": 0,
"dateCreated": "2013-01-10T11:14:19.75Z",
"dateUpdated": "2021-02-24T12:23:22.257Z",
"dateDeleted": null,
"deleted": false
}
]https://api.forcemanager.com/api/v4/users/{ID}/roles This endpoint allows you to update a specific User's Roles information from the user's ForceManager account database. If the specified User does not exist, the response will be a "bad request". In order to update the User's Roles, you just have to specify the Role you want to add at.
You will only be able to update the User's Roles after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Type | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | The acceptance |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
This endpoint allows updating the information of a specific User's Roles. In order to update the User's Roles, you just have to specify the Role you want to add at.
| Attribute | Type | Description |
|---|---|---|
| rolesId | Object | Array of the Roles Id that you want to add for a specific User |
RESPONSE
Returns a JSON with information with the User Roles.
| Attribute | Type | Description |
|---|---|---|
| branches | Array | Branch to which the User has been assigned |
| dateCreated | String | Date and time when the User's Role was associated |
| dateDeleted | String | Date and time when the User's Role was deleted |
| dateUpdated | String | Date and time when the User's Role was updated |
| deleted | Boolean | If true, the User's Role has been deleted and archived |
| extId | String | External ID of the Role from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the Role in ForceManager |
| level | Boolean | If true, the User is billable. ForceManager charges a fee for the user |
| name | String | The Role name |
| salesRepIdCreated | Integer | Unique identifier of the user who associated the Role |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Role |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Role |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/users/{ID}/roles" \
-X PUT \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]" \
-d '{ "rolesId": [ 32 ] }'const response = await fetch("https://api.forcemanager.com/api/v4/users/{ID}/roles", {
method: "PUT",
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
body: "{\n \"rolesId\": [\n 32\n ]\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
json_body = json.loads("{\n \"rolesId\": [\n 32\n ]\n}")
response = requests.put(
"https://api.forcemanager.com/api/v4/users/{ID}/roles",
headers=headers, json=json_body
)
data = response.json()[
{
"id": 32,
"extId": null,
"level": 5,
"name": "Usuario de tipo Administrador",
"branches": [],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 48,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2012-05-29T00:04:14Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
},
{
"id": 68,
"extId": null,
"level": 2,
"name": "Demo AppStore",
"branches": [],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 48,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2012-07-04T22:32:31Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
}
]https://api.forcemanager.com/api/v4/users/{ID}/roles This endpoint allows you to delete a specific User's Role from the user's ForceManager account database. If the specified User's Role does not exist, the response will be a "bad request". This operation cannot be undone.
You will only be able to delete an User's Role after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication. [ HEADERS
| Parameter | Type | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | The acceptance |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| ]: <> | ||
| REQUEST |
| Parameter | Type | Description |
|---|---|---|
| rolesId | Object | Array of the Roles Id that you want to delete for a specific User |
Returns a JSON with information with the updated User's Roles.
| Attribute | Type | Description |
|---|---|---|
| branches | Object, Null | Branch to which the User has been assigned |
| dateCreated | String | Date and time when the User's Role was associated |
| dateDeleted | String | Date and time when the User's Role was deleted |
| dateUpdated | String | Date and time when the User's Role was udpated |
| deleted | Boolean | If true, the User's Role has been deleted and archived |
| extId | String | External ID of the Role from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the Role in ForceManager |
| level | Boolean | If true, the User is billable. ForceManager charges a fee for the user |
| name | String | The Role name |
| salesRepIdCreated | Integer | Unique identifier of the user who associated the Role |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the Role |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the Role |
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | Number (e.g. 10) [optional] |
curl "https://api.forcemanager.com/api/v4/users/{ID}/roles" \
-X DELETE \
-H "Accept: */*" \
-H "X-FM-Entity-Count: Number (e.g. 10) [optional]"const response = await fetch("https://api.forcemanager.com/api/v4/users/{ID}/roles", {
method: "DELETE",
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "Number (e.g. 10) [optional]"
}
response = requests.delete(
"https://api.forcemanager.com/api/v4/users/{ID}/roles",
headers=headers
)
data = response.json()[
{
"id": 68,
"extId": null,
"level": 2,
"name": "Demo AppStore",
"branches": [],
"salesRepIdDeleted": 0,
"salesRepIdCreated": 1,
"salesRepIdUpdated": 48,
"dateCreated": "2008-01-02T00:21:38Z",
"dateUpdated": "2012-07-04T22:32:31Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"deleted": false
}
]https://api.forcemanager.com/api/v4/roles/{ID}/users Returns all Users assigned to the specific Role available in the user's ForceManager implementation database.
You will only receive the List of Users assigned to the specific Role after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| X-FM-Entity-Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an "and" separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/roles/:ID/users?page={{number}You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/roles/:ID/users?where= param1=value AND/OR param2=value2
You can also organise and view the results for Users in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/roles/:ID/users?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/roles/:ID/users?lang=VALUE
RESPONSE
This endpoint returns information about all Users assigned to the specific Role available in the database.
If you didn't apply any page or count number in the header the default number of records in the response is 50.
List of the supported Users attributes:
| Attribute | Type | Description |
|---|---|---|
| billable | Boolean | If true, the User is billable. ForceManager charges a fee for the user |
| branches | Object, Null | Branch to which the User has been assigned |
| branchRestriction | Boolean | If true, the user has limited visibility in some branches |
| computeSfm | Boolean | If true, the User counts for the Sales Analytics |
| dateCreated | String | Date and time when the User was created |
| dateDeleted | String | Date and time when the User was deleted |
| dateUpdated | String | Date and time when the User was last updated |
| deleted | Boolean | If true, the User has been deleted and archived |
| String | User’s email | |
| extId | String | External ID of the User from a third party system (ERP, CRM, Accounting System) |
| id | Integer | The unique identifier of the User in ForceManager |
| lastName | String | User’s last name |
| lastPasswordChangeDate | String | Date when the password was last changed |
| level | Integer | Permission level of the user. Set from 1 to 5 being 5 the highest level of permission and visibility |
| name | String | User's first name |
| nic | String | User's name in ForceManager |
| phone | String | User’s phone number |
| phoneExtension | String | User's phone number extension |
| rateId | Object, Null | Rate for the User (Check Rates Values List) |
| salesRepId | Object, Null | Sales representative responsible for the User |
| salesRepIdCreated | Integer | Unique identifier of the user who created the User |
| salesRepIdDeleted | Integer | Unique identifier of the user who deleted the User |
| salesRepIdUpdated | Integer | Unique identifier of the user who updated the User |
| session | Object, Null | If true, the User has access to the app |
| userType | Object, Null | Type of user in ForceManager |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| X-FM-Entity-Count | VALUE |
curl "https://api.forcemanager.com/api/v4/roles/{ID}/users" \
-H "Accept: */*" \
-H "X-FM-Entity-Count: VALUE"const response = await fetch("https://api.forcemanager.com/api/v4/roles/{ID}/users", {
headers: {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"X-FM-Entity-Count": "VALUE"
}
response = requests.get(
"https://api.forcemanager.com/api/v4/roles/{ID}/users",
headers=headers
)
data = response.json()[
{
"id": 46,
"extId": "",
"billable": false,
"lastPasswordChangeDate": null,
"branches": {
"id": 16,
"description": "FORCEMANAGER"
},
"userTypeId": {
"id": 1,
"description": "Sales Manager"
},
"level": 2,
"name": "Carlos",
"lastName": "Gomez",
"email": "carlos.gomez@forcemanager.net",
"nic": "Carlos Gomez",
"dateCreated": "1900-01-01T00:00:00Z",
"dateUpdated": "2014-07-10T12:02:07.317Z",
"dateDeleted": "1899-12-30T00:00:00Z",
"salesRepIdCreated": 2,
"salesRepIdUpdated": 46,
"salesRepIdDeleted": -1,
"deleted": false,
"phone": "1234567890",
"phoneExtension": "",
"managerId": {
"id": -1,
"name": null
},
"rateId": {
"id": -1,
"name": null
},
"computeSfm": true
}
]Sales
https://api.forcemanager.com/api/v4/sales/schema The Schema is metadata that tells you how the data is structured for a specific resource. The schema defines all the fields that exist for a Sales object.
You will only receive the Sales Schema after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
RESPONSE
The Sales Schema is a fields structure with the resource. For each property the API Schema will provide you some information:
- Description of each property
- Definition of the data type for each property
- Whether each property is required or optional
| Attribute | Type | Description |
|---|---|---|
| Field name | Object | Name of the attribute in ForceManager Schema |
| Properties | Object | Definition of the entity |
| Id | Object | Identifier of the value of field name |
| Value | Object | The value of the field name |
| Type | Object, String, Integer, Number, Boolean, Null | The kind of data you have to complete the field with |
| Required | Array | If it’s a mandatory field or not |
Fields like "Value list" have extra information:
| Attribute | Type | Description |
|---|---|---|
| Table | String | The name of the values list table |
| Type | Object, Null | The kind of data you will receive in the response |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| count | |
| ExtraFieldDescription |
curl "https://api.forcemanager.com/api/v4/sales/schema" \
-H "Accept: */*" \
-H "count: " \
-H "ExtraFieldDescription: "const response = await fetch("https://api.forcemanager.com/api/v4/sales/schema", {
headers: {
"Accept": "*/*",
"count": "",
"ExtraFieldDescription": ""
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"count": "",
"ExtraFieldDescription": ""
}
response = requests.get(
"https://api.forcemanager.com/api/v4/sales/schema",
headers=headers
)
data = response.json(){
"properties": {
"accountExtId": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"accountId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "accounts",
"type": [
"object",
"null"
]
},
"date": {
"description": "",
"format": "date-time",
"readOnly": false,
"type": [
"string",
"null"
]
},
"dateCreated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateDeleted": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"dateUpdated": {
"description": "",
"format": "date-time",
"readOnly": true,
"type": [
"string",
"null"
]
},
"deleted": {
"description": "",
"readOnly": true,
"type": [
"boolean",
"null"
]
},
"extId": {
"description": "",
"maxLength": 255,
"readOnly": false,
"type": [
"string",
"null"
]
},
"id": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepExtId": {
"description": "",
"maxLength": 100,
"readOnly": false,
"type": [
"string",
"null"
]
},
"salesRepId": {
"description": "",
"properties": {
"id": {
"type": "integer"
},
"value": {
"type": [
"string",
"null"
]
}
},
"readOnly": false,
"required": [
"id"
],
"table": "users",
"type": [
"object",
"null"
]
},
"salesRepIdCreated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdDeleted": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"salesRepIdUpdated": {
"description": "",
"readOnly": true,
"type": [
"integer",
"null"
]
},
"total": {
"description": "",
"readOnly": false,
"type": [
"number",
"null"
]
}
},
"required": [],
"title": "sales",
"type": "object"
}https://api.forcemanager.com/api/v4/sales Returns all Sales available in the user's ForceManager implementation database.
You will only receive the List of Sales after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
| Count | {number} | The number of records to return in each page of results. The default page limit is 50 |
| ExtraFieldDescription | {number} | If equal to "0", the response returns only the value of each Extra Fields, if equal to "1" also the description is returned |
REQUEST
You can apply filters, organise and choose the language and pagination using any query string parameter in SQL. Query string parameters appear after a question mark in the endpoint followed by the parameters and their values. In the query string, each parameter is listed one right after the other with an "and" separating them. The order of the parameters does not matter.
| Parameter | Type | Description |
|---|---|---|
| page | Integer | Define the pagination data for the returned objects |
| param1, param2... | String, Integer | Apply filters using any query string parameter in SQL |
| order | String | organise and view the results for a specific attribute in descendent order - at the top the most recent results while the oldest results will be down the list |
| lang | String | Define the language in which you want to receive the response |
You can define the pagination data for the returned objects. The default page number is 0, otherwise you can optionally determine the page number.
e.g.
https://api.forcemanager.com/api/v4/sales?page=PAGE_NUMBER
You can apply filters.
e.g.
https://api.forcemanager.com/api/v4/sales?where= param1=value AND/OR param2=value2
You can also organise and view the results for Sales in descendent order - at the top, the most recent results while the oldest results will be down the list.
e.g.
https://api.forcemanager.com/api/v4/sales?order=VALUE
In the request, and using query string parameters, you can also define the language in which you want to receive the response.
e.g.
https://api.forcemanager.com/api/v4/sales?lang=VALUE
RESPONSE
| Attribute | Type | Description |
|---|---|---|
| accountExtId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| accountId | Object, Null | Account to which the Sale is linked to |
| date | String | The Sale's date |
| dateCreated | String | Date and time when the Sale was created |
| dateDeleted | String | Date and time when the Sale was deleted |
| dateUpdated | String | Date and time when the Sale was last updated |
| deleted | boolean | If true, the Sale has been deleted and archived |
| extId | String | External ID of the Sale from a third party system (ERP, CRM, Accounting System) |
| id | Integer | Unique identifier for the Sale in ForceManager |
| salesRepExtId | Object, Null | External ID of the User from a third party system (ERP, CRM, Accounting System) |
| salesRepId | Object, Null | User responsible for the Sale |
| salesRepIdCreated | Integer | Unique identifier of the User who created the Sale |
| salesRepIdDeleted | Integer | Unique identifier of the User who deleted the Sale |
| salesRepIdUpdated | Integer | Unique identifier of the User who updated the Sale |
| total | Number | Total amount of the Sale |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
| Count | VALUE |
| ExtraFieldDescription |
curl "https://api.forcemanager.com/api/v4/sales" \
-H "Accept: */*" \
-H "Count: VALUE" \
-H "ExtraFieldDescription: "const response = await fetch("https://api.forcemanager.com/api/v4/sales", {
headers: {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": ""
},
});
const data = await response.json();import requests
headers = {
"Accept": "*/*",
"Count": "VALUE",
"ExtraFieldDescription": ""
}
response = requests.get(
"https://api.forcemanager.com/api/v4/sales",
headers=headers
)
data = response.json()[
{
"accountExtId": "A001",
"accountId": {
"id": 1,
"value": "ICM Industrial S.r.l."
},
"date": "2018-10-10T00:00:00Z",
"dateCreated": "2021-12-08T21:47:48.797Z",
"dateDeleted": null,
"dateUpdated": null,
"deleted": 0,
"extId": "SALE10002",
"id": 1,
"salesRepExtId": "REP10002",
"salesRepId": null,
"salesRepIdCreated": 51,
"salesRepIdDeleted": null,
"salesRepIdUpdated": null,
"total": 168
}
]https://api.forcemanager.com/api/v4/sales This endpoint allows you to create a Sales
based on JSON input.
You will only be able to create a Sale after first providing the Session Key. To know how you can obtain the Session Key, go to Authentication.
HEADERS
| Parameter | Value | Description |
|---|---|---|
| Content-Type | application/json | Language in which all request and response bodies are encoded |
| Accept | */* | Any data of whatever mime type is accepted |
| X-Session-Key | AUTH_TOKEN | This field must be completed with the token obtained at the authentication |
REQUEST
| Attribute | Type | Description |
|---|---|---|
| accountExtId | String | External ID of the Account from a third party system (ERP, CRM, Accounting System) |
| accountId | Integer | Account to which the Sale is linked to |
| date | String | The Sale's date |
| extId | String | External ID of the Sale from a third party system (ERP, CRM, Accounting System) |
| salesRepExtId | String | External ID of the User from a third party system (ERP, CRM, Accounting System) |
| total | Number | Total amount of the Sale |
RESPONSE
Returns a JSON with information about the Contact just created.
| Attribute | Type | Description |
|---|---|---|
| id | Integer | Id assigned to the new Contact |
| Message | String | Shows the operation status |
RESPONSE CODES
| Status | Description |
|---|---|
| 200 OK | Shows if operation succeeded |
| 400 Bad Request | Shows when an invalid request or the requested service is not available |
Headers
| Key | Value |
|---|---|
| Accept | */* |
curl "https://api.forcemanager.com/api/v4/sales" \
-X POST \
-H "Accept: */*" \
-d '{ "accountExtId": "A001", "accountId": 1, "date": "2018-10-10 00:00:00", "extId": "SALE10002", "salesRepExtId": "REP10002", "total": 168 }'const response = await fetch("https://api.forcemanager.com/api/v4/sales", {
method: "POST",
headers: {
"Accept": "*/*"
},
body: "{\n \"accountExtId\": \"A001\",\n \"accountId\": 1,\n \"date\": \"2018-10-10 00:00:00\",\n \"extId\": \"SALE10002\",\n \"salesRepExtId\": \"REP10002\",\n \"total\": 168\n}",
});
const data = await response.json();import requests
import json
headers = {
"Accept": "*/*"
}
json_body = json.loads("{\n \"accountExtId\": \"A001\",\n \"accountId\": 1,\n \"date\": \"2018-10-10 00:00:00\",\n \"extId\": \"SALE10002\",\n \"salesRepExtId\": \"REP10002\",\n \"total\": 168\n}")
response = requests.post(
"https://api.forcemanager.com/api/v4/sales",
headers=headers, json=json_body
)
data = response.json(){
"id": 1,
"Message": "entity created"
}