{- "user": {
- "email": "operator@example.com",
- "password": "secret"
}
}{- "bearer_token": "string",
- "refresh_token": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "name": "John Doe",
- "roles": [
- "SysAdmin"
], - "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}{- "user": {
- "email": "driver@example.com",
- "password": "secret",
- "name": "Cleo",
- "phone_number": 12345678
}
}{- "message": "Successfully register freelance driver account"
}object |
{- "user": {
- "email": "user@example.com",
- "phone_number": "string"
}
}{- "message": "Successfully sent security code to the email"
}{- "user": {
- "name": "Budi",
- "password": "secret",
- "invitation_token": "Bmdvstzgm6ySjkBWN7pV"
}
}{- "status": "Invitation Accepted!"
}The invited user will automatically been assigned to OrgAdmin's organisation
object |
{- "user": {
- "email": "user@example.com"
}
}{- "status": "Invitation sent!"
}The invited user will automatically been assigned to OrgTransporter's organisation
object |
{- "user": {
- "email": "user@example.com"
}
}{- "status": "Invitation sent!"
}object |
{- "user": {
- "email": "user@example.com",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}{- "status": "Invitation sent!"
}object |
{- "user": {
- "emails": [
- "user1@example.com",
- "user2@example.com"
], - "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "role_id": "00000000-0000-0000-0000-000000000000"
}
}{- "invited": [
- "user1@example.com",
- "user2@example.com"
], - "failed": [ ]
}{- "user": {
- "email": "user@example.com"
}
}{- "message": "You will receive an email with instructions on how to reset your password in a few minutes."
}{- "user": {
- "password": "secret",
- "reset_password_token": "tBPAwD_N4ctQ6vCiUHqv"
}
}{- "message": "Your password has been changed successfully."
}object |
{- "user": {
- "name": "John Doe",
- "current_password": "secret",
- "password": "supersecret"
}
}{- "message": "Your account has been updated successfully."
}object |
{- "user": {
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "name": "John Doe",
- "phone_number": 68780444555
}
}{- "message": "Your account has been updated successfully."
}Only SysAdmin can access it, Users can be filtered by org_id query string
| org_id | string Filter users by org id (Only available for SysAdmin) |
| search | string Filter users by name or email (Only available for SysAdmin) |
| page | integer <int64> >= 1 Default: 1 |
| per_page | integer <int64> >= 1 Default: 20 |
{- "users": [
- {
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "email": "xxx@xxxx.com",
- "name": "John Doe",
- "created_at": "2020-12-30T04:21:29.712Z",
- "updated_at": "2020-12-30T04:21:29.712Z",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "roles": [
- "SysAdmin"
]
}
], - "meta": {
- "page": 1,
- "per_page": 20,
- "total": 1
}
}Only SysAdmin can access it. Returns users within an organization filtered by role.
| org_id required | string Organization ID to filter users |
| role_name required | string Enum: "OrgAdmin" "OrgDriver" "OrgTransporter" Role name to filter |
| page | integer <int64> >= 1 Default: 1 |
| per_page | integer <int64> >= 1 Default: 20 |
| sort_by | string Default: "created_at" Enum: "name" "email" "created_at" Sort field. One of |
| order | string Default: "desc" Enum: "asc" "desc" Sort direction for |
{- "users": [
- {
- "id": "8f0824e6-ab71-47f5-9aac-7a1679848d80",
- "email": "user@example.com",
- "name": "Driver One",
- "created_at": "2025-07-29T03:54:52.418Z",
- "updated_at": "2025-07-29T03:54:52.583Z",
- "org_id": "aa292132-223b-4eed-822c-36311da43354",
- "roles_name": [ ],
- "confirmed_at": "2025-07-29T03:54:52.515Z",
- "invitation_token": null
}
], - "meta": {
- "page": 1,
- "per_page": 50,
- "total": 6,
- "total_records": 6,
- "total_pages": 1,
- "has_next": false,
- "has_previous": false
}
}Only SysAdmin can access it
| userID required | string ID of the user to be read |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "name": "John Doe",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "roles": [
- "SysAdmin"
], - "confirmed_at": "2019-08-24T14:15:22Z"
}Only SysAdmin can access it, update the user email, adding deleted prefix
object |
{- "user": {
- "email": "operator@example.com"
}
}{- "code": "success",
- "message": "Your user has been successfully deleted."
}Only SysAdmin can access it
string user email |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "name": "John Doe",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "roles": [
- "SysAdmin"
], - "confirmed_at": "2019-08-24T14:15:22Z"
}Only OrgAdmin can access it, Users are filtered by org id (same as user logged in)
| page | integer <int64> >= 1 Default: 1 |
| per_page | integer <int64> >= 1 Default: 20 |
{- "users": [
- {
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "email": "xxx@xxxx.com",
- "name": "John Doe",
- "created_at": "2020-12-30T04:21:29.712Z",
- "updated_at": "2020-12-30T04:21:29.712Z",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "roles": [
- "OrgAdmin"
]
}
], - "meta": {
- "page": 1,
- "per_page": 20,
- "total": 1
}
}OrgAdmin and OrgTransporter can access it, update the currently logged in user
object |
{- "user": {
- "name": "John Doe",
- "phone_number": 12345678
}
}{- "code": "success",
- "message": "Your user has been successfully updated."
}Only Driver can access it, update the currently logged in user's email
object |
{- "user": {
- "user": {
- "phone_number": 12345678,
- "driver_profile": {
- "version_rev": "xx-0000"
}
}
}
}{- "code": "success",
- "message": "Your user has been successfully deleted."
}Only Transporter can access it
object |
{- "user": {
- "user": {
- "email": "operator@example.com"
}
}
}{- "code": "success",
- "message": "Your user has been successfully deleted."
}OrgAdmin and OrgTransporter can access it
| userID required | string ID of the user to be read |
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "name": "John Doe",
- "roles": [
- "SysAdmin"
], - "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}Only users who registered through merchant self registration are allowed to use this API
object |
{- "user": {
- "name": "John",
- "password": "randomPassword"
}
}{- "code": "success",
- "message": "Successfully set name and password"
}Only SysAdmin is allowed and the user should not have an org_id before
object |
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b"
}
}{- "code": "success",
- "message": "Successfully assign org to user"
}Only SysAdmin is allowed and the user must not be confirmed before
| userID required | string ID of the user to be confirmed |
{- "code": "success",
- "message": "User successfully confirmed"
}For internal fill client_key with 'gotsurge'
| refresh_token | string |
| client_key | string |
{- "refresh_token": "string",
- "client_key": "string"
}{- "bearer_token": "string"
}object |
{- "user": {
- "email": "platformpartners-child@example.com",
- "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "role_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}{- "status": "Invitation sent!"
}Receives an MDP Bearer token via the Authorization header and attempts to verify it with the MDP service. If successful, it generates and returns a GotSurge Bearer token for the corresponding user (or a default payload if the user doesn't exist in GotSurge yet).
| Authorization required | string Example: Bearer mdp_token_value_here The Bearer token provided by MDP. |
{- "message": "Token exchanged successfully",
- "bearer_token": "eyJhbGciOiJIUzI1NiJ9...",
- "bearer_token_expired_at": 1678886400
}