User Provisioning

This API will provision the user, if user does not exist already in system. If the user already exists, then the user info will be updated based on values sent in the request payload.

Note: Passing null at a certain field would reset the value to null in store.

End Point:

/api/pi-api/v1/syscon/users

Method:

POST

Request Headers:

Header

Value

Description

Authorization

"Signature keyId=<tenantId>,algorithm=<algorithm>,headers=(<space separated list of header names used at request signing>),signature=<signature>"

Signature detail to check authorization to call API

Request Body:

Key

Data Type

Mandatory

Description

referenceId

String

Yes

External reference ID that uniquely identifies the user in partner systems.

This is case sensitive value - so make sure to use it consistently across API interactions

Max length of string supported is 320 characters.

firstName

String

No

First Name of the user. Max length of string supported is 100 characters.

lastName

String

No

Last Name of the user. Max length of string supported is 100 characters.

email

String

No

Email of the user. Max length of string supported is 255 characters.

gender

String

No

Gender of the user. If value is passed it has to be one of the values in list: "male", "female", "other"

birthDate

String

No

Date of birth of user. Date value should in format: “YYYY-MM-DD”

userCategory

String

No

Type / role of the user. If value is passed it has to be one of the values in list: "teacher", "student", "other". Default value set is “student”.

countryCode

String

No

Country code of the user. Value passed should be two letters in upper case as identified at ISO-3611-1.

stateCode

String

No

State code of the user. Value passed should be of format CC-SS where CC is country code and SS is state code, as identified at ISO-3611-2. All letters are in upper case.

misc

JSON

No

Partner can capture any other data as key value pairs at this. Ex: mobile, group…

This should contain whatever additional info needs to be sent to Gooru which may not be used today but can store for record keeping purpose.

The value for this field will not be validated.

Response Object:

status

200, if successful

body.message

Message indicating the status of operation, in case API is not successful and returns HTTP status code other than 200.

The message is indicative and is not localized / internationalized value to use at display; and applications should not rely on this message.