If you are building an app that connects to our backend, the process is very simple, to start, you must first request appID & appSecret access credentials from our technical support team (hola@manoexperta.com)


When you have them, remember that:

  • ALL requests are POSTS to the same endpoint (https://back.manoexperta.com/rest/v21)
  • ALL requests must have Basic Authorization Header ("Basic B64(appid:appsecret)")
  • ALL content-type will be exchanged using text/plain & UTF-8 charset
  • ALL requests need to have a JSON serialised Body 
  • ALL requests will return a JSON serialised Response
  • ALL requests require an action (the core goal) and a userApp (worker or client)


Coldfusion Example:


<cfset auth = appid & ":" & appSecret>        
<cfset args = structnew()>
<cfset args["action"] = "getMarkets">
<cfset args["mode"] = "worker">

<cfhttp url="https://back.manoexperta.com/rest/v21" method="POST">
 <cfhttpparam type="header" name="Authorization" value="Basic #ToBase64(auth)#" />
 <cfhttpparam type="header" name="Content-Type" value="text/plain; charset=UTF-8" />                
 <cfhttpparam type="body" value="#serializeJSON(args)#" />
</cfhttp>


You will get specific error exceptions (errorcode) from the security module in the following cases:


BADHEADWhen you fail to pass the Authorisation header properly covered and formatted
APPIDWhen there is no valid AppID associated to the provided credentials
APPINACTIVEWhen the App exists but has been blocked for any given reason
APPAUTHWhen supplied credentials are invalid for requests




Shared Variables


Since you will be using a single endpoint for all requests, you can, at any time, update shared variables that will make the user experience much more consistent and real time. You can send a shared variable by simply adding them to the body of the post request, update will be processed after the core action and therefore you can also include these shared variables in actions such as Login and Register.


An example of the shared variables that you can pass and store, associated to the active profile are:

{
"deviceId" : "fFC1bY0a000blNLUc7vo6T:APA91bHM5UTn9P_oQ3a9FfMvcT2dsEoYkP-2kefKE1-7WDRlvGUY4MkpU37VvRXQRZS-MBh6Q7qAYwoFmU6w-FLRlKSSjlHHwYiNH6UwGN4u6EQc8odYLrC5U6r_44DmfrZ5bGLNEYV9",
"platform" : "I",
"latlng" : "19,24976,-99.09437"
}


Shared variables are all Optional Fields (that can/should be posted with any other action)

  • deviceID and Platform are optional, and refer to the DeviceKey generated for FCM Push Notifications. When sending deviceId you must include Platform which can be either "I" for "IOS","A" for "ANDROID or "W" for Web.
  • latlng refers to latest user location using latitude, longitude. This is also Optional but extremely useful to customise the user experience (for example: category/worker availability).