API Introduction

OneDesk provides Representational State Transfer (REST) web service. To use a REST API, your can make an HTTP request and parse the response. The request and response support JSON.

URI Structures

The URIs in OneDesk have the following structures: https://onedesk.com/rest/api-version/api-name/resource-name api-version: The current api-version is 2.0

Login API

Login

POST http://onedesk.com/rest/2.0/login/loginUser
You should either send the email and the password OR the cookie

Request fields

Path Type Description

email

Number

Email of the user

password

Number

password of the user

cookie

String

Login cookie

Response fields

Path Type Description

code

String

the result of the API operation

data.name

String

user name

data.authenticationToken

String

Authentication token

data.cookie

String

Cookie to be used next time the user want to login

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/login/loginUser' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "cookie" : null,
  "email" : "john.smith@acme.com",
  "password" : "XXXXXXXXXX"
}'

Example request

POST /rest/2.0/login/loginUser HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 85

{
  "cookie" : null,
  "email" : "john.smith@acme.com",
  "password" : "XXXXXXXXXX"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 166

{
  "code" : "SUCCESS",
  "data" : {
    "name" : "John Smith",
    "authenticationToken" : "5GOpVwd1DVi",
    "cookie" : "4b034b7a-9c3d-4a67-b2d9-a0c4dd2a134a"
  }
}

Logout

GET http://onedesk.com/rest/2.0/login/logoutUser

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/login/logoutUser?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/login/logoutUser?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 41

{
  "code" : "SUCCESS",
  "data" : null
}

Organization API

Get organization basic information

GET http://onedesk.com/rest/2.0/organization/getOrgInfo

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.statuses.[].id

Number

Id of the lifecycleStatus

data.statuses.[].name

String

Name of the lifecycleStatus

data.statuses.[].iconStyleName

String

icon style of the lifecycleStatus

data.statuses.[].iconColor

Number

Icon color of the lifecycleStatus

data.statuses.[].appliedProperty

String

Applied property of the lifecycleStatus

data.itemTypes.[].name

String

Name of the item type

data.itemTypes.[].iconStyleName

String

icon style of the item type

data.itemTypes.[].iconColor

Number

Icon color of the item type

data.itemTypes.[].itemType

String

item type

data.userTypes.[].name

String

Name of the user type

data.userTypes.[].iconStyleName

String

icon style of the user type

data.userTypes.[].iconColor

Number

Icon color of the user type

data.userTypes.[].userType

String

user type

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/organization/getOrgInfo?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/organization/getOrgInfo?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1016

{
  "code" : "SUCCESS",
  "data" : {
    "statuses" : [ {
      "id" : 6544131,
      "name" : "In Progress",
      "iconStyleName" : "in_progress_icon_style",
      "iconColor" : 25651,
      "appliedProperty" : "TASK_TYPE_1_LCS"
    }, {
      "id" : 6544132,
      "name" : "Finished",
      "iconStyleName" : "finished_icon_style",
      "iconColor" : 21526,
      "appliedProperty" : "TASK_TYPE_1_LCS"
    } ],
    "itemTypes" : [ {
      "itemType" : "TASK_TYPE_1",
      "name" : "Task",
      "iconStyleName" : "task_icon_style",
      "iconColor" : 21526
    }, {
      "itemType" : "TASK_TYPE_2",
      "name" : "Issue",
      "iconStyleName" : "issue_icon_style",
      "iconColor" : 987426
    } ],
    "userTypes" : [ {
      "userType" : "USER_TYPE_1",
      "name" : "User",
      "iconStyleName" : "user_icon_style",
      "iconColor" : 845152
    }, {
      "userType" : "USER_TYPE_2",
      "name" : "VIP user",
      "iconStyleName" : "vip_user_icon_style",
      "iconColor" : 21654
    } ]
  }
}

User API

Create user

POST http://onedesk.com/rest/2.0/user/create

Request fields

Path Type Description

authenticationToken

String

Authentication token

email

String

The new user email

isAdministrator

Boolean

true if the new user should be an administrator

Response fields

Path Type Description

code

String

the result of the API operation

data.id

Number

Id of the newly created user

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/create' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "authenticationToken" : "5GOpVwd1DVi",
  "email" : "guillaume.rebesche@onedesk.com",
  "isAdministrator" : false
}'

Example request

POST /rest/2.0/user/create HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 118

{
  "authenticationToken" : "5GOpVwd1DVi",
  "email" : "guillaume.rebesche@onedesk.com",
  "isAdministrator" : false
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 60

{
  "code" : "SUCCESS",
  "data" : {
    "id" : 945621
  }
}

Load user work timer

GET http://onedesk.com/rest/2.0/user/userWorkTimer

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.id

Number

the user id

data.itemId

Number

the work item id

data.startDate

Number

the start date of this work timer

data.amountOfWork

Number

The amount of work in hours for this work timer

data.startCurrentTimer

Number

the start date of the current progress of the work timer

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/userWorkTimer?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/user/userWorkTimer?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 183

{
  "code" : "SUCCESS",
  "data" : {
    "id" : 651321,
    "itemId" : 213547,
    "startDate" : 1468872696568,
    "amountOfWork" : 6.0,
    "startCurrentTimer" : 1468872696568
  }
}

Start work timer

GET http://onedesk.com/rest/2.0/user/startWorkTimer

Request parameters

Parameter Description

token

authentication token

itemId

Id of the work item to start the work timer

Response fields

Path Type Description

code

String

the result of the API operation

data.amountOfWork

Number

the amount of work already spent on this work timer

data.type

String

the result of your activity change (SUCCESS, FAILED,FAILED_ITEM_NOT_FOUND, FAILED_USER_NOT_FOUND, FAILED_VALUE_NOT_FOUND, FAILED_USER_ALREADY_EXIST,FAILED_WRONG_FUNCTION_SEQUENCE, FAILED_BUSY, FAILED_WRONG_INPUT_DATA)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/startWorkTimer?token=5GOpVwd1DVi&itemId=9846251' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/user/startWorkTimer?token=5GOpVwd1DVi&itemId=9846251 HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 91

{
  "code" : "SUCCESS",
  "data" : {
    "type" : "SUCCESS",
    "amountOfWork" : 6.0
  }
}

Pause work timer

GET http://onedesk.com/rest/2.0/user/pauseWorkTimer

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.amountOfWork

Number

the amount of work already spent on this work timer

data.type

String

the result of your activity change (SUCCESS, FAILED,FAILED_ITEM_NOT_FOUND, FAILED_USER_NOT_FOUND, FAILED_VALUE_NOT_FOUND, FAILED_USER_ALREADY_EXIST,FAILED_WRONG_FUNCTION_SEQUENCE, FAILED_BUSY, FAILED_WRONG_INPUT_DATA)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/pauseWorkTimer?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/user/pauseWorkTimer?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 91

{
  "code" : "SUCCESS",
  "data" : {
    "type" : "SUCCESS",
    "amountOfWork" : 6.0
  }
}

Resume work timer

GET http://onedesk.com/rest/2.0/user/resumeWorkTimer

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.amountOfWork

Number

the amount of work already spent on this work timer

data.type

String

the result of your activity change (SUCCESS, FAILED,FAILED_ITEM_NOT_FOUND, FAILED_USER_NOT_FOUND, FAILED_VALUE_NOT_FOUND, FAILED_USER_ALREADY_EXIST,FAILED_WRONG_FUNCTION_SEQUENCE, FAILED_BUSY, FAILED_WRONG_INPUT_DATA)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/resumeWorkTimer?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/user/resumeWorkTimer?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 91

{
  "code" : "SUCCESS",
  "data" : {
    "type" : "SUCCESS",
    "amountOfWork" : 6.0
  }
}

Reset work timer

GET http://onedesk.com/rest/2.0/user/resetWorkTimer

Request parameters

Parameter Description

token

authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.amountOfWork

Number

the amount of work already spent on this work timer

data.type

String

the result of your activity change (SUCCESS, FAILED,FAILED_ITEM_NOT_FOUND, FAILED_USER_NOT_FOUND, FAILED_VALUE_NOT_FOUND, FAILED_USER_ALREADY_EXIST,FAILED_WRONG_FUNCTION_SEQUENCE, FAILED_BUSY, FAILED_WRONG_INPUT_DATA)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/user/resetWorkTimer?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/user/resetWorkTimer?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 91

{
  "code" : "SUCCESS",
  "data" : {
    "type" : "SUCCESS",
    "amountOfWork" : 6.0
  }
}

Activity API

Get followed discussions

POST http://onedesk.com/rest/2.0/activity/getFollowedDiscussions

Request fields

Path Type Description

authenticationToken

String

Authentication token

offset

Number

offset of the pagination

limit

Number

limit of the pagination

Response fields

Path Type Description

code

String

the result of the API operation

data.total

Number

Total number of followed activities

data.items.[].followedActivityId

Number

Id of the followed activity

data.items.[].timestamp

Number

Date and time of the activity

data.items.[].author.id

Number

Id of the author

data.items.[].author.name

String

name of the author

data.items.[].author.pictureFileId

Number

profile picture id of the author

data.items.[].author.type

String

type of the author

data.items.[].itemId

Number

Id of the item

data.items.[].itemName

String

Name of the item

data.items.[].newValueName

String

new value name

data.items.[].newValue

String

new value

data.items.[].read

Boolean

is this followed activity read?

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/activity/getFollowedDiscussions' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "authenticationToken" : "5GOpVwd1DVi",
  "offset" : 0,
  "limit" : 10
}'

Example request

POST /rest/2.0/activity/getFollowedDiscussions HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 75

{
  "authenticationToken" : "5GOpVwd1DVi",
  "offset" : 0,
  "limit" : 10
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 845

{
  "code" : "SUCCESS",
  "data" : {
    "items" : [ {
      "followedActivityId" : 65835,
      "timestamp" : null,
      "author" : {
        "id" : 851651,
        "name" : "John Smith",
        "pictureFileId" : 59169156,
        "type" : "USER_TYPE_1"
      },
      "itemId" : 51651,
      "itemName" : "Modify all the products",
      "newValueName" : "Are you sure?",
      "newValue" : "DiscussionPost.985143",
      "read" : false
    }, {
      "followedActivityId" : 8156,
      "timestamp" : null,
      "author" : {
        "id" : 123547,
        "name" : "Derek Gold",
        "pictureFileId" : 165475,
        "type" : "USER_TYPE_2"
      },
      "itemId" : 858156,
      "itemName" : "Delete typos",
      "newValueName" : "Done!",
      "newValue" : "DiscussionPost.1581526",
      "read" : null
    } ],
    "total" : 2
  }
}

Mark followed discussion as read

GET http://onedesk.com/rest/2.0/activity/markAsRead

Request parameters

Parameter Description

token

authentication token

followedActivityId

Id of the followed item

Response fields

Path Type Description

code

String

the result of the API operation

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/activity/markAsRead?token=5GOpVwd1DVi&followedActivityId=6541251' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/activity/markAsRead?token=5GOpVwd1DVi&followedActivityId=6541251 HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 41

{
  "code" : "SUCCESS",
  "data" : null
}

Work items API

Get todo list

POST http://onedesk.com/rest/2.0/workitem/getToDoItems

Request fields

Path Type Description

authenticationToken

String

Authentication token

offset

Number

Offset of the pagination

limit

Number

Limit of the pagination

Response fields

Path Type Description

code

String

the result of the API operation

data.total

Number

total number of items

data.items.[].id

Number

Id of the work item

data.items.[].name

String

Name of the work item

data.items.[].type

String

Type of the work item

data.items.[].plannedFinish

Number

Planned finish of the work item

data.items.[].lifecycleStatusId

Number

Lifecycle status id of the work item

data.items.[].priority

String

organization URI

data.items.[].numberOfComments

Number

Number of comments in the work item

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/workitem/getToDoItems' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "authenticationToken" : "5GOpVwd1DVi",
  "filterId" : 123,
  "limit" : 10,
  "offset" : 0
}'

Example request

POST /rest/2.0/workitem/getToDoItems HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 95

{
  "authenticationToken" : "5GOpVwd1DVi",
  "filterId" : 123,
  "limit" : 10,
  "offset" : 0
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 555

{
  "code" : "SUCCESS",
  "data" : {
    "items" : [ {
      "id" : 6948156,
      "name" : "Define the planning for next release",
      "type" : "TASK_TYPE_1",
      "plannedFinish" : 1468872696775,
      "lifecycleStatusId" : 561581,
      "priority" : 20,
      "numberOfComments" : 2
    }, {
      "id" : 488456,
      "name" : "The blue button doesn't work",
      "type" : "TASK_TYPE_2",
      "plannedFinish" : 1468872696775,
      "lifecycleStatusId" : 126447,
      "priority" : 100,
      "numberOfComments" : 18
    } ],
    "total" : 2
  }
}

Get work item details

GET http://onedesk.com/rest/2.0/workitem/getItemDetails

Request parameters

Parameter Description

token

authentication token

workItemId

Id of the work item

Response fields

Path Type Description

code

String

the result of the API operation

data.id

Number

work item id

data.organizationalId

Number

work item id in the organization

data.name

String

name of the work item

data.description

String

description of the work item

data.type

String

type of the work item

data.plannedFinish

Number

planned finish of the work item

data.priority

Number

priority of the work item

data.numberOfComments

Number

number of comments in the work item

data.numberOfAttachments

Number

number of attachments in the work item

data.assigned

Boolean

Is the current user assigned to this work item?

data.lifecycleStatusId

Number

lifecycle id of the work item

data.agilePoints

Number

Number of agile points of the work item

data.scheduledDurationAmount

Number

planned duration amount of the work item

data.scheduledDurationUnit

String

planned duration unit of the work item (DAYS, HOURS)

data.percentComplete

Number

percent complete of the work item

data.attachments.[].fileId

Number

id of the attachment

data.attachments.[].name

String

name of the attachment

data.posts.[].id

Number

Id of the comment

data.posts.[].title

String

title of the comment

data.posts.[].content

String

body of the comment

data.posts.[].author.id

Number

author id of the comment

data.posts.[].author.type

String

author type of the comment

data.posts.[].author.name

String

author name of the comment

data.posts.[].author.pictureFileId

Number

profile picture id of the author of the comment

data.posts.[].creationDate

Number

creation date of the comment

data.posts.[].relatedItemId

Number

Id of the item related to this comment

data.posts.[].postType

String

Comment type (DISCUSSION_POST, COMMUNITY_DISCUSSION_POST, INTERNAL_DISCUSSION_POST)

data.posts.[].replies

Array

Replies of this comment (with the same properties)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/workitem/getItemDetails?token=5GOpVwd1DVi&workItemId=695165' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/workitem/getItemDetails?token=5GOpVwd1DVi&workItemId=695165 HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1583

{
  "code" : "SUCCESS",
  "data" : {
    "id" : 695165,
    "organizationalId" : 102,
    "name" : "The blue button doesn't work",
    "description" : "Why is the blue button <strong>not</strong> working. I was working last week !",
    "type" : "TASK_TYPE_2",
    "plannedFinish" : 1468872696762,
    "priority" : 80,
    "numberOfComments" : 2,
    "numberOfAttachments" : 1,
    "lifecycleStatusId" : 65165,
    "agilePoints" : 2,
    "scheduledDurationAmount" : 1.0,
    "scheduledDurationUnit" : "DAYS",
    "percentComplete" : 30.0,
    "attachments" : [ {
      "fileId" : 514954,
      "name" : "Blue bug.jpg"
    } ],
    "posts" : [ {
      "id" : 513258,
      "title" : "I don't see this bug",
      "content" : "I have tried <strong>everything</strong>, but I cannot reproduce this issue",
      "author" : {
        "id" : 12354,
        "name" : "John Smith",
        "pictureFileId" : 894651,
        "type" : "USER_TYPE_1"
      },
      "creationDate" : 1468872696762,
      "relatedItemId" : 695165,
      "postType" : "INTERNAL_DISCUSSION_POST",
      "replies" : [ {
        "id" : 98258,
        "title" : "Ho ok now I see it",
        "content" : "Ho ok now I see it, <strong>this<strong> actually was easy",
        "author" : {
          "id" : 12354,
          "name" : "John Smith",
          "pictureFileId" : 894651,
          "type" : "USER_TYPE_1"
        },
        "creationDate" : 1468872696762,
        "relatedItemId" : 695165,
        "postType" : "INTERNAL_DISCUSSION_POST",
        "replies" : [ ]
      } ]
    } ],
    "assigned" : true
  }
}

Create comment

POST http://onedesk.com/rest/2.0/workitem/createComment

Request fields

Path Type Description

token

String

Authentication token

itemId

Number

Id of the work item to post a comment on

description

String

comment content

postType

String

Comment type (DISCUSSION_POST, COMMUNITY_DISCUSSION_POST, INTERNAL_DISCUSSION_POST)

parentPostId

Number

Id of the parent comment (null if new thread)

Response fields

Path Type Description

code

String

the result of the API operation

data

Number

Id of the newly created comment

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/workitem/createComment' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "parentPostId" : null,
  "itemId" : 564654,
  "token" : "5GOpVwd1DVi",
  "description" : "This button should not be red, it should be blue",
  "postType" : "INTERNAL_DISCUSSION_POST"
}'

Example request

POST /rest/2.0/workitem/createComment HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 188

{
  "parentPostId" : null,
  "itemId" : 564654,
  "token" : "5GOpVwd1DVi",
  "description" : "This button should not be red, it should be blue",
  "postType" : "INTERNAL_DISCUSSION_POST"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 43

{
  "code" : "SUCCESS",
  "data" : 564362
}

Worklogs API

Create worklog

POST http://onedesk.com/rest/2.0/worklog/createWorklog

Request fields

Path Type Description

authenticationToken

String

Authentication token

itemId

Number

Id of the work item to create a worklog on

percentage

Number

percentage of the work done

comments

String

comment on the worklog

dateStart

Number

start date of the worklog

dateFinish

Number

finish date of the worklog

works

Number

number of hours of work performed for this worklog

lifecycleStatusId

Number

Id of the new lifecycle status for the work item

Response fields

Path Type Description

code

String

the result of the API operation

data

Number

Id of the newly created worklog

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/worklog/createWorklog' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "authenticationToken" : "5GOpVwd1DVi",
  "itemId" : 894365,
  "dateStart" : 1468872696695,
  "dateFinish" : 1468872696695,
  "works" : 5.0,
  "percentage" : 50.4,
  "comments" : "Fix the button color",
  "lifecycleStatusId" : 591954
}'

Example request

POST /rest/2.0/worklog/createWorklog HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 238

{
  "authenticationToken" : "5GOpVwd1DVi",
  "itemId" : 894365,
  "dateStart" : 1468872696695,
  "dateFinish" : 1468872696695,
  "works" : 5.0,
  "percentage" : 50.4,
  "comments" : "Fix the button color",
  "lifecycleStatusId" : 591954
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 43

{
  "code" : "SUCCESS",
  "data" : 564362
}

Customer portal API

Get Organization Details

GET http://onedesk.com/rest/2.0/customerportal/organizationDetails

Request parameters

Parameter Description

uri

URI of the organization

Response fields

Path Type Description

code

String

the result of the API operation

data.id

Number

Organization id

data.uri

String

organization URI

data.name

String

Organization name

data.customerPortalActivated

Boolean

Is the customer portal Activated?

data.canViewAnonymously

Boolean

Can user see item anonymously?

data.canSubmitAnonymously

Boolean

Can user submit item anonymously

data.visibilityPermissions

String

Visibility permission (ALL_PUBLISHED_FEEDBACK, ACCOUNT_LEVEL_FEEDBACK, OWN_FEEDBACK)

data.viewWorkItemsList

Boolean

Can user view the list of work items

data.viewMyWorkItems

Boolean

Can the user see his work items?

data.canSubmitFeedback

Boolean

Can user submit a new work item?

data.registrationPolicy

String

Registration policy (ALLOW_INVITATION, ALLOW_SELF_REGISTER)

data.commentOnPublishedFeedback

Boolean

Can anybody comment on a published item?

data.lifecycleStatusVisibleForLoggedIn

Boolean

Can users see lifecycle status

data.lifecycleStatusVisibleForEveryBody

Boolean

Can anybody see lifecycle status

data.voteEnabled

Boolean

Are vote enabled

data.spaces.[].id

Number

Container id

data.spaces.[].name

String

Container name

data.spaces.[].type.name

String

Container type name

data.spaces.[].type.label

String

Container type label

data.spaces.[].type.iconClassName

String

Container type icon style

data.spaces.[].type.iconColor

Number

Container type icon color

data.fileUrl

String

Url to load files

data.itemTypes.[].name

String

item type name

data.itemTypes.[].label

String

item type label

data.itemTypes.[].iconClassName

String

item type icon style

data.itemTypes.[].iconColor

Number

item type icon color

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/organizationDetails?uri=acme' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/customerportal/organizationDetails?uri=acme HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1403

{
  "code" : "SUCCESS",
  "data" : {
    "id" : 6513554,
    "uri" : "acme",
    "name" : "ACME Organization",
    "customerPortalActivated" : true,
    "canViewAnonymously" : false,
    "canSubmitAnonymously" : false,
    "visibilityPermissions" : "ALL_PUBLISHED_FEEDBACK",
    "viewWorkItemsList" : true,
    "viewMyWorkItems" : true,
    "canSubmitFeedback" : true,
    "registrationPolicy" : "ALLOW_SELF_REGISTER",
    "commentOnPublishedFeedback" : true,
    "lifecycleStatusVisibleForLoggedIn" : true,
    "lifecycleStatusVisibleForEveryBody" : false,
    "voteEnabled" : false,
    "spaces" : [ {
      "id" : 56465,
      "name" : "My project 1",
      "type" : {
        "name" : "SPACE_TYPE_0",
        "label" : "Project",
        "iconClassName" : "project_icon_style",
        "iconColor" : 56513
      }
    }, {
      "id" : 2365847,
      "name" : "My project 2",
      "type" : {
        "name" : "SPACE_TYPE_0",
        "label" : "Project",
        "iconClassName" : "project_icon_style",
        "iconColor" : 56513
      }
    } ],
    "itemTypes" : [ {
      "name" : "TASK_TYPE_1",
      "label" : "Task",
      "iconClassName" : "task_icon_style",
      "iconColor" : 651365
    }, {
      "name" : "TASK_TYPE_2",
      "label" : "Issue",
      "iconClassName" : "issue_icon_style",
      "iconColor" : 12354
    } ],
    "fileUrl" : "http://www.onedesk.com/cware/file/view"
  }
}

Get Work items list

GET http://onedesk.com/rest/2.0/customerportal/workItems

Request parameters

Parameter Description

uri

URI of the organization

offset

offset of the pagination

limit

limit of the pagination

sort

sort (TRENDING, RECENT, POPULAR)

myWorkItems

filter to get only the user work items

search

filter work items with a text search

type

filter work items by type

project

work items by project

token

Authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.totalResults

Number

totla number of result

data.workItems.[].id

Number

item id

data.workItems.[]..organizationalId

Number

work item id in the organization

data.workItems.[].name

String

work item name

data.workItems.[]..priority

String

organization URI

data.workItems.[].description

String

description of the work item

data.workItems.[].creationDate

Number

creation date of the work item

data.workItems.[].numberOfVotes

Number

number of votes of the work item

data.workItems.[].voted

Boolean

true fi the current user have voted in this work item

data.workItems.[].numberOfDiscussions

Number

number of discussions in the work item

data.workItems.[].numberOfAttachments

Number

number of attachments in the work item

data.workItems.[].status.id

String

Id of the lifecycle status of the work item

data.workItems.[].status.label

String

label of the lifecycle status of the work item

data.workItems.[].status.iconClassName

String

icon style of the lifecycle status of the work item

data.workItems.[].status.iconColor

String

icon color of the lifecycle status of the work item

data.workItems.[].isRequester

Boolean

true if the current user is the requester of the work item

data.workItems.[].type.name

String

item type name

data.workItems.[].type.label

String

item type label

data.workItems.[].type.iconClassName

String

item type icon style

data.workItems.[].type.iconColor

Number

item type icon color

data.workItems.[].attachments.[].fileId

Number

id of the attachment

data.workItems.[].attachments.[].name

String

name of the attachment

data.workItems.[].posts.[].id

Number

Id of the comment

data.workItems.[].posts.[].title

String

title of the comment

data.workItems.[].posts.[].content

String

body of the comment

data.workItems.[].posts.[].author.id

Number

author id of the comment

data.workItems.[].posts.[].author.type

String

author type of the comment

data.workItems.[].posts.[].author.name

String

author name of the comment

data.workItems.[].posts.[].author.pictureFileId

Number

profile picture id of the author of the comment

data.workItems.[].posts.[].creationDate

Number

creation date of the comment

data.workItems.[].posts.[].relatedItemId

Number

Id of the item related to this comment

data.workItems.[].posts.[].postType

String

Comment type (DISCUSSION_POST, COMMUNITY_DISCUSSION_POST, INTERNAL_DISCUSSION_POST)

data.workItems.[].posts.[].replies

Array

Replies of this comment (with the same properties)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/workItems?uri=acme&offset=0&limit=10&sort=TRENDING&myWorkItems=false&search=bug&type=TASK_TYPE_1&project=958416&token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/customerportal/workItems?uri=acme&offset=0&limit=10&sort=TRENDING&myWorkItems=false&search=bug&type=TASK_TYPE_1&project=958416&token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 3662

{
  "code" : "SUCCESS",
  "data" : {
    "workItems" : [ {
      "id" : 56142,
      "organizationalId" : 128,
      "name" : "Is this the right color for the button?",
      "priority" : 60,
      "type" : {
        "name" : "TASK_TYPE_1",
        "label" : "Task",
        "iconClassName" : "task_icon_style",
        "iconColor" : 15654
      },
      "description" : "The button on the right is red, shouldn't it be blue?",
      "creationDate" : 1468872696461,
      "numberOfVotes" : 1,
      "numberOfDiscussions" : 2,
      "numberOfAttachments" : 1,
      "status" : {
        "id" : 5641,
        "label" : "Open",
        "iconClassName" : "open_icon_style",
        "iconColor" : 54651
      },
      "attachments" : [ {
        "fileId" : 514954,
        "name" : "Blue bug.jpg"
      } ],
      "posts" : [ {
        "id" : 513258,
        "title" : "I don't see this bug",
        "content" : "I have tried <strong>everything</strong>, but I cannot reproduce this issue",
        "author" : {
          "id" : 12354,
          "name" : "John Smith",
          "pictureFileId" : 894651,
          "type" : "USER_TYPE_1"
        },
        "creationDate" : 1468872696462,
        "relatedItemId" : 56142,
        "postType" : "INTERNAL_DISCUSSION_POST",
        "replies" : [ {
          "id" : 98258,
          "title" : "Ho ok now I see it",
          "content" : "Ho ok now I see it, <strong>this<strong> actually was easy",
          "author" : {
            "id" : 12354,
            "name" : "John Smith",
            "pictureFileId" : 894651,
            "type" : "USER_TYPE_1"
          },
          "creationDate" : 1468872696462,
          "relatedItemId" : 56142,
          "postType" : "INTERNAL_DISCUSSION_POST",
          "replies" : [ ]
        } ]
      } ],
      "isRequester" : true,
      "voted" : true
    }, {
      "id" : 5814926,
      "organizationalId" : 128,
      "name" : "There is a bug in the menu",
      "priority" : 80,
      "type" : {
        "name" : "TASK_TYPE_1",
        "label" : "Task",
        "iconClassName" : "task_icon_style",
        "iconColor" : 15654
      },
      "description" : "There is a bug in the menu, when I click on it, it doesn't open",
      "creationDate" : 1468872696462,
      "numberOfVotes" : 5,
      "numberOfDiscussions" : 2,
      "numberOfAttachments" : 1,
      "status" : {
        "id" : 5641,
        "label" : "Open",
        "iconClassName" : "open_icon_style",
        "iconColor" : 54651
      },
      "attachments" : [ {
        "fileId" : 514954,
        "name" : "Blue bug.jpg"
      } ],
      "posts" : [ {
        "id" : 513258,
        "title" : "I don't see this bug",
        "content" : "I have tried <strong>everything</strong>, but I cannot reproduce this issue",
        "author" : {
          "id" : 12354,
          "name" : "John Smith",
          "pictureFileId" : 894651,
          "type" : "USER_TYPE_1"
        },
        "creationDate" : 1468872696462,
        "relatedItemId" : 56142,
        "postType" : "INTERNAL_DISCUSSION_POST",
        "replies" : [ {
          "id" : 98258,
          "title" : "Ho ok now I see it",
          "content" : "Ho ok now I see it, <strong>this<strong> actually was easy",
          "author" : {
            "id" : 12354,
            "name" : "John Smith",
            "pictureFileId" : 894651,
            "type" : "USER_TYPE_1"
          },
          "creationDate" : 1468872696462,
          "relatedItemId" : 56142,
          "postType" : "INTERNAL_DISCUSSION_POST",
          "replies" : [ ]
        } ]
      } ],
      "isRequester" : false,
      "voted" : false
    } ],
    "totalResults" : 2
  }
}

Get Work item

GET http://onedesk.com/rest/2.0/customerportal/workItems/{workItemId}

Path parameters

Table 1. /rest/2.0/customerportal/workItems/{workItemId}
Parameter Description

workItemId

Id of the work item

Request parameters

Parameter Description

token

Authentication token

Response fields

Path Type Description

code

String

the result of the API operation

data.id

Number

item id

data..organizationalId

Number

work item id in the organization

data.name

String

work item name

data..priority

String

organization URI

data.description

String

description of the work item

data.creationDate

Number

creation date of the work item

data.numberOfVotes

Number

number of votes of the work item

data.voted

Boolean

true fi the current user have voted in this work item

data.numberOfDiscussions

Number

number of discussions in the work item

data.numberOfAttachments

Number

number of attachments in the work item

data.status.id

String

Id of the lifecycle status of the work item

data.status.label

String

label of the lifecycle status of the work item

data.status.iconClassName

String

icon style of the lifecycle status of the work item

data.status.iconColor

String

icon color of the lifecycle status of the work item

data.isRequester

Boolean

true if the current user is the requester of the work item

data.type.name

String

item type name

data.type.label

String

item type label

data.type.iconClassName

String

item type icon style

data.type.iconColor

Number

item type icon color

data.attachments.[].fileId

Number

id of the attachment

data.attachments.[].name

String

name of the attachment

data.posts.[].id

Number

Id of the comment

data.posts.[].title

String

title of the comment

data.posts.[].content

String

body of the comment

data.posts.[].author.id

Number

author id of the comment

data.posts.[].author.type

String

author type of the comment

data.posts.[].author.name

String

author name of the comment

data.posts.[].author.pictureFileId

Number

profile picture id of the author of the comment

data.posts.[].creationDate

Number

creation date of the comment

data.posts.[].relatedItemId

Number

Id of the item related to this comment

data.posts.[].postType

String

Comment type (DISCUSSION_POST, COMMUNITY_DISCUSSION_POST, INTERNAL_DISCUSSION_POST)

data.posts.[].replies

Array

Replies of this comment (with the same properties)

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/workItems/56142?token=5GOpVwd1DVi' -i -H 'Accept: application/json'

Example request

GET /rest/2.0/customerportal/workItems/56142?token=5GOpVwd1DVi HTTP/1.1
Accept: application/json
Host: onedesk.com

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1708

{
  "code" : "SUCCESS",
  "data" : {
    "id" : 56142,
    "organizationalId" : 128,
    "name" : "Is this the right color for the button?",
    "priority" : 60,
    "type" : {
      "name" : "TASK_TYPE_1",
      "label" : "Task",
      "iconClassName" : "task_icon_style",
      "iconColor" : 15654
    },
    "description" : "The button on the right is red, shouldn't it be blue?",
    "creationDate" : 1468872696723,
    "numberOfVotes" : 1,
    "numberOfDiscussions" : 2,
    "numberOfAttachments" : 1,
    "status" : {
      "id" : 5641,
      "label" : "Open",
      "iconClassName" : "open_icon_style",
      "iconColor" : 54651
    },
    "attachments" : [ {
      "fileId" : 514954,
      "name" : "Blue bug.jpg"
    } ],
    "posts" : [ {
      "id" : 513258,
      "title" : "I don't see this bug",
      "content" : "I have tried <strong>everything</strong>, but I cannot reproduce this issue",
      "author" : {
        "id" : 12354,
        "name" : "John Smith",
        "pictureFileId" : 894651,
        "type" : "USER_TYPE_1"
      },
      "creationDate" : 1468872696723,
      "relatedItemId" : 56142,
      "postType" : "INTERNAL_DISCUSSION_POST",
      "replies" : [ {
        "id" : 98258,
        "title" : "Ho ok now I see it",
        "content" : "Ho ok now I see it, <strong>this<strong> actually was easy",
        "author" : {
          "id" : 12354,
          "name" : "John Smith",
          "pictureFileId" : 894651,
          "type" : "USER_TYPE_1"
        },
        "creationDate" : 1468872696723,
        "relatedItemId" : 56142,
        "postType" : "INTERNAL_DISCUSSION_POST",
        "replies" : [ ]
      } ]
    } ],
    "isRequester" : true,
    "voted" : true
  }
}

Login

POST http://onedesk.com/rest/2.0/customerportal/login
You should either send the email, the password and the uri OR the cookie

Request fields

Path Type Description

email

Number

Email of the user

password

Number

password of the user

uri

String

Uri of the organization

rememberMe

Boolean

Remember the login by generating a cookie in the response

cookie

String

Login cookie

Response fields

Path Type Description

code

String

the result of the API operation

data.name

String

user name

data.uri

String

Uri of the organization

data.authenticationToken

String

Authentication token

data.cookie

String

Cookie to be used next time the user want to login

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/login' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "uri" : "acme",
  "cookie" : null,
  "email" : "john.smith@acme.com",
  "password" : "XXXXXXXXX",
  "rememberMe" : true
}'

Example request

POST /rest/2.0/customerportal/login HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 125

{
  "uri" : "acme",
  "cookie" : null,
  "email" : "john.smith@acme.com",
  "password" : "XXXXXXXXX",
  "rememberMe" : true
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 186

{
  "code" : "SUCCESS",
  "data" : {
    "name" : "John Smith",
    "uri" : "acme",
    "authenticationToken" : "5GOpVwd1DVi",
    "cookie" : "4b034b7a-9c3d-4a67-b2d9-a0c4dd2a134a"
  }
}

Logout

POST http://onedesk.com/rest/2.0/customerportal/logout

Request fields

Path Type Description

token

String

Authentication token

Response fields

Path Type Description

code

String

the result of the API operation

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/logout' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "token" : "5GOpVwd1DVi"
}'

Example request

POST /rest/2.0/customerportal/logout HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 29

{
  "token" : "5GOpVwd1DVi"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 41

{
  "code" : "SUCCESS",
  "data" : null
}

Registration

POST http://onedesk.com/rest/2.0/customerportal/register

Request fields

Path Type Description

email

String

user email address

uri

String

Organization uri

Response fields

Path Type Description

code

String

the result of the API operation

data.redirectionUrl

String

the url to redirect to in order ton confirm the registration

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/register' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "uri" : "acme",
  "email" : "john.smith@acme.com"
}'

Example request

POST /rest/2.0/customerportal/register HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 55

{
  "uri" : "acme",
  "email" : "john.smith@acme.com"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 146

{
  "code" : "SUCCESS",
  "data" : {
    "redirectionUrl" : "http://onedesk.com/html/confirmation?uuid=4b034b7a-9c3d-4a67-b2d9-a0c4dd2a134a"
  }
}

Reset password

POST http://onedesk.com/rest/2.0/customerportal/resetPasswordRequest

Request fields

Path Type Description

email

String

user email address

uri

String

Organization uri

Response fields

Path Type Description

code

String

the result of the API operation

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/resetPasswordRequest' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "uri" : "acme",
  "email" : "john.smith@acme.com"
}'

Example request

POST /rest/2.0/customerportal/resetPasswordRequest HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 55

{
  "uri" : "acme",
  "email" : "john.smith@acme.com"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 41

{
  "code" : "SUCCESS",
  "data" : null
}

Vote

POST http://onedesk.com/rest/2.0/customerportal/vote

Request fields

Path Type Description

token

String

Authentication token

workItemId

Number

Id of the work item to vote on

unVote

Boolean

true to unvote, false to vote

Response fields

Path Type Description

code

String

the result of the API operation

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/vote' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "workItemId" : 561554,
  "token" : "5GOpVwd1DVi",
  "unVote" : false
}'

Example request

POST /rest/2.0/customerportal/vote HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 74

{
  "workItemId" : 561554,
  "token" : "5GOpVwd1DVi",
  "unVote" : false
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 41

{
  "code" : "SUCCESS",
  "data" : null
}

Comment

POST http://onedesk.com/rest/2.0/customerportal/comment

Request fields

Path Type Description

token

String

Authentication token

itemId

Number

Id of the work item to comment on

parentPostId

Number

Id of the parent post (optional)

description

String

comment text

postType

String

Comment type (DISCUSSION_POST, COMMUNITY_DISCUSSION_POST, INTERNAL_DISCUSSION_POST)

Response fields

Path Type Description

code

String

the result of the API operation

data

Number

Id of the created comment

Example curl request

$ curl 'https://onedesk.com:80/rest/2.0/customerportal/comment' -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
  "parentPostId" : 65465,
  "itemId" : 514656,
  "token" : "5GOpVwd1DVi",
  "description" : "This is a comment",
  "postType" : "DISCUSSION_POST"
}'

Example request

POST /rest/2.0/customerportal/comment HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: onedesk.com
Content-Length: 149

{
  "parentPostId" : 65465,
  "itemId" : 514656,
  "token" : "5GOpVwd1DVi",
  "description" : "This is a comment",
  "postType" : "DISCUSSION_POST"
}

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 43

{
  "code" : "SUCCESS",
  "data" : 564654
}

Error Handling

HTTP response status

Here are the supported HTTP response status

HTTP response status Description

200

Success

500

Internal server error

401

Authentication error

403

Security error

Response codes

Every request to the API will return a response code. Here is a list of all possible code and their description.

code Description

SUCCESS

The request successfully executed

ERROR_PORTAL_DISABLED

Customer portal is disabled in the organization, you cannot use the customer portal API

ERROR_CANNOT_FIND_ITEM

Cannot find the specified item

ERROR_CANNOT_FIND_USER

cannot find the user

ERROR_CANNOT_FIND_ORGANIZATION

cannot find the organization

ERROR_LOGIN_FAILED

login failed

ERROR_COOKIE_LOGIN_FAILED

login with cookie failed

ERROR_AUTHENTICATION_FROM_TOKEN_FAILED

authentication with token failed

ERROR_AUTHENTICATION_REQUIRED

authentication required to execute the request

ERROR_SECURITY_ACCESS

security access error

ERROR_ITEM_NOT_PUBLISHED

Item not publish, so request cannot be executed

ERROR_INVALID_PAGINATION

invalid pagination

ERROR_PAGINATION_NOT_SUPPORTED

pagination not supported

ERROR_INVALID_EMAIL

invalid email

ERROR_INVALID_FILTER

invalid filter

ERROR_INVALID_FILTERID

invalid filter id

ERROR_REGISTRATION_NOT_ALLOWED

registration not allowed (contact the administrator of your organization)

ERROR_REGISTRATION_CUSTOMER_ALREADY_EXIST

customer with the same email already exist

ERROR_SUBMIT_NAME_IS_REQUIRED

name of the work item required

ERROR_SUBMIT_DESCRIPTION_IS_REQUIRED

description of the work item required

ERROR_SUBMIT_TYPE_IS_REQUIRED

type of the work item required

ERROR_SUBMIT_TYPE_IS_WRONG

Wrong type, this type is not allowed on the customer portal

ERROR_SUBMIT_WRONG_PRIORITY

wrong priority (must be between 0 and 100)

ERROR_SUBMIT_PROJECT_NOT_FOUND

Container not found

ERROR_SUBMIT_PROJECT_NOT_PUBLISHED

Container not published on the customer portal

ERROR_SUBMIT_ANONYMOUS_MUST_PROVIDE_EMAIL

email is required when submitting an anonymous work item

ERROR_ALREADY_VOTED

this user already voted on this item

ERROR_USER_ALREADY_EXIST

user email already exist

ERROR_NOT_VOTED_YET

cannot unvote (haven’t voted yet)

ERROR_VOTE_IS_DISABLED

vote is not allowed (contact your administrator)

ERROR_CANNOT_FIND_PARENT_POST

cannot find the parent post

UNKNOWN_ERROR

unknown error, please contact OneDesk with the details of you request

INTERNAL_ERROR

internal error, please contact OneDesk with the details of you request

ERROR_CANNOT_FIND_CUSTOMER

cannot find this customer