POST/users/{userId}/undelete

구성원의 삭제를 취소한다. 삭제 취소는 삭제된 지 7일 이내에만 가능하다. 삭제 후 7일이 지나면 구성원 관련 데이터가 모두 지워지고 없기 때문에 삭제를 취소할 수 없다.

Authorization

oauth2

OAuth 2.0 인증.
자세한 인증 방식은 인가·인증를 참고한다.

Scope

user
directory

HTTP Request

POSThttps://www.worksapis.com/v1.0/users/{userId}/undelete

Path Parameters

ParameterTypeDescription
userId string 

구성원 ID
- 메일
- 리소스 ID
- 외부 키 "externalKey:{externalKey}" 형태


required
example : userf7da-f82c-4284-13e7-030f3b4c756x 

Header Parameters

HeadertypeDescription
Authorization string 

Bearer {token}


required 

Response

HTTP 200

OK

PropertyTypeDescription
domainId integer 

도메인 ID


required
format : int32 
userId string 

구성원 ID


readOnly : true 
userExternalKey string 

고객사에서 관리하는 구성원 외부 키

%, \, #, /, ?는 포함할 수 없다.


maxLength : 100
nullable : true 
isAdministrator boolean 

도메인 관리자 여부


readOnly : true 
isPending boolean 

대기 중 여부


readOnly : true 
isSuspended boolean 

일시 정지 여부


readOnly : true 
isDeleted boolean 

삭제 여부


readOnly : true 
isAwaiting boolean 

활성화 여부


readOnly : true 
leaveOfAbsence object (leaveOfAbsence) 

readOnly : true 
suspendedReason string 

일시 정지 사유

  • MASTER: 관리자에 의한 일시 정지
  • LOGIN_FAIL: 로그인 실패

Allowed values : MASTER, LOGIN_FAIL,
readOnly : true
nullable : true 
email string 

계정. 메일 주소와 동일(Lite 상품인 경우 id@group)

  • localpart@domain 형식(Lite 상품인 경우 localpart@group)
  • localpart는 영문 소문자 또는 숫자로 시작해야 한다.
  • 점(.)은 localpart의 시작과 끝에 사용할 수 없으며, 연속된 형태(..)로도 사용할 수 없다.
  • localpart는 2~40자의 영문 소문자, 숫자, 점(.), 하이픈(-), 밑줄(_)을 허용한다.
  • "admin", "administrator"는 localpart로 사용할 수 없다.

required
maxLength : 90 
userName object (userName) 

이름 정보


required 
i18nNames array (Useri18nName) 

다국어 이름 목록


minItems : 0 
nickName string 

닉네임. 특수 문자 중 ! @ & ( ) - _ + [ ] { } , . / # ' ` ^ ~만 허용한다.


maxLength : 100
nullable : true 
privateEmail string 

개인 메일 주소.

  • SSO를 사용하지 않고 passwordConfig.passwordCreationType이 MEMBER이면 필수
  • 최고 관리자인 경우 필수
  • 유효한 메일 주소 지정 localpart@domain 제한
  • localpart는 64자 이하
  • 도메인은 253자 이하

maxLength : 256
nullable : true 
aliasEmails array (string) 

보조 메일 주소 목록.

  • 항목당 최대 90자를 등록할 수 있다.
  • localpart@domain 형식으로 등록한다.
  • localpart는 영문 소문자 또는 숫자로 시작해야 한다.
  • 점(.)은 localpart의 시작과 끝에 사용할 수 없으며, 연속된 형태(..)로도 사용할 수 없다.
  • localpart는 2~40자의 영문 소문자, 숫자, 점(.), 하이픈(-), 밑줄(_)을 허용한다.

minItems : 0
maxItems : 10 
employmentTypeId string 

고용 형태 ID. 고용 형태 사용 활성화 API를 사용하여 설정한다.

  • 고용 형태 ID
  • 고용 형태의 ExternalKey (externalKey:{employmentTypeExternalKey})

nullable : true 
employmentTypeExternalKey string 

고용 형태 외부 키


maxLength : 100
readOnly : true
nullable : true 
employmentTypeName string 

고용 형태 이름


readOnly : true
nullable : true 
userTypeId string 

사용자 유형 ID. '사용자 유형 설정 API'에서 useUserType이 'true'인 경우에만 설정 가능하며 값이 전달되지 않으면 '사용자 유형 없음'으로 설정된다.

  • 사용자 유형 ID
  • 사용자 유형의 ExternalKey (externalKey:{userTypeExternalKey})

nullable : true 
userTypeExternalKey string 

사용자 유형 외부 키


maxLength : 100
readOnly : true
nullable : true 
userTypeName string 

사용자 유형 이름


readOnly : true
nullable : true 
userTypeCode string 

사용자 유형 코드. 영문자(A ~ Z, a ~ z), 숫자(0 ~ 9), 밑줄 기호(_)를 포함해 최대 50자까지 지정할 수 있다. 반드시 영문자로 시작해야 한다.


maxLength : 50
readOnly : true
nullable : true 
searchable boolean 

구성원 자동 완성 및 검색 가능 여부(기본값: true)


default : true 
organizations array (UserOrganization) 

구성원이 소속된 도메인(회사) 목록. 원직과 겸직을 모두 포함한다.


minItems : 0 
telephone string 

전화번호. 문자 중 - * # + P T ( )만 허용한다.


maxLength : 100
pattern : ^(?=.*[0-9])[0-9+\-*#PTpt()\u3000]{0,100}
nullable : true 
cellPhone string 

휴대폰 번호. 문자 중 - * # + P T ( )만 허용한다.


maxLength : 100
pattern : ^(?=.*[0-9])[0-9+\-*#PTpt()\u3000]{0,100}
nullable : true 
location string 

근무처


maxLength : 100
nullable : true 
task string 

업무


maxLength : 100
nullable : true 
messenger object (messenger) 

메신저 정보


nullable : true 
birthdayCalendarType string 

생일 양력/음력 구분.

  • SOLAR: 양력
  • LUNAR: 음력

Allowed values : SOLAR, LUNAR
nullable : true 
birthday string 

생일 년-월-일 형식(YYYY-MM-DD)


maxLength : 10
nullable : true 
locale string 

언어 코드


Allowed values : ko_KR, ja_JP, en_US, zh_CN, zh_TW 
hiredDate string 

입사일 년-월-일 형식(YYYY-MM-DD)


maxLength : 10
nullable : true 
timeZone string 

타임존


example : Europe/Berlin 
customFields array (UserCustomField) 

참고
이 파라미터는 customProperties로 전환하는 것을 권장한다. 이 파라미터를 사용하면 구성원 커스텀 속성 추가 API에서만 제공되는 신규 기능을 조회하거나 수정하지 못할 수 있다.


minItems : 0
maxItems : 50
deprecated : true 
customProperties object (customProperties) 

구성원 커스텀 속성

구성원 커스텀 속성 추가 API를 이용해 먼저 추가해야 한다.

customProperties의 key는 도메인 구성원 커스텀 필드 추가 API에서 설정한 propertyName의 값으로, 변수이다.
customProperties의 value는 해당 필드의 propertyType과 multiValued 설정에 따라 타입이 달라진다(자세한 내용은 CustomProperties의 oneOf에서 타입별 설명 참고). 또한, customProperties는 여러 커스텀 속성의 값을 함께 설정할 수 있다.

 
relations array (UserRelation) 

연결된 연락처 목록


minItems : 0
maxItems : 10 
activationDate string 

계정 활성화 일자 (ISO-8601 형식, YYYY-MM-DDThh:mm:ssTZD)

  • 미래 날짜로만 가능
  • null 일 경우 즉시 활성화

maxLength : 25
nullable : true 
employeeNumber string 

사원 번호


minLength : 1
maxLength : 20
nullable : true 

leaveOfAbsence

PropertyTypeDescription
startTime string 

시작 시간 ISO-8601


nullable : true 
endTime string 

종료 시간 ISO-8601


nullable : true 
isLeaveOfAbsence boolean 

현재 휴직 상태 여부.
현재 휴직 중이면 true, 휴직이 아니거나 휴직이 예약된 상태이면 false

 

userName

PropertyTypeDescription
lastName string 

성. 성, 이름을 합쳐 80자까지 허용한다. 성과 이름 중 하나는 반드시 입력해야 한다. 특수 문자는 ! @ & ( ) - _ + [ ] { } , . / # ' ` ^ ~만 허용한다.


maxLength : 80
nullable : true 
firstName string 

이름. 성, 이름을 합쳐 80자까지 허용한다. 성과 이름 중 하나는 반드시 입력해야 한다. 특수 문자는 ! @ & ( ) - _ + [ ] { } , . / # ' ` ^ ~만 허용한다.


maxLength : 80
nullable : true 
phoneticLastName string 

후리가나 성. 가타가나만 허용한다.


maxLength : 100
nullable : true 
phoneticFirstName string 

후리가나 이름. 가타가나만 허용한다.


maxLength : 100
nullable : true 

Useri18nName

PropertyTypeDescription
language string 

다국어 언어 코드


Allowed values : ko_KR, ja_JP, zh_CN, zh_TW, en_US 
firstName string 

다국어 이름. 조직도 다국어 이름 중 뒤쪽에 노출된다. 특수 문자는 ! @ & ( ) - _ + [ ] { } , . / # ' ` ^ ~만 허용한다.


maxLength : 100
nullable : true 
lastName string 

다국어 성. 조직도 다국어 이름 중 앞쪽에 노출된다. 특수 문자는 ! @ & ( ) - _ + [ ] { } , . / # ' ` ^ ~만 허용한다.


maxLength : 100
nullable : true 

UserOrganization

PropertyTypeDescription
domainId integer 

도메인 ID


required
format : int32 
primary boolean 

대표 도메인 여부

반드시 대표(primary: true)를 하나 설정한다. 대표를 설정하지 않으면 자동으로 첫 번째 값이 대표로 설정된다.


required 
userExternalKey string 

주의

  • organizations[].userExternalKey 대신 최상위 userExternalKey 값을 참조한다.
  • 구성원 추가, 수정, 부분수정 시 값을 전달하더라도 무시하고 반영되지 않는다.

고객사에서 관리하는 구성원 외부 키

%, \, #, /, ?는 포함할 수 없다.


maxLength : 100
nullable : true 
email string 

메일 주소. 원직과 겸직의 메일 주소를 다르게 설정해야 할 때 사용한다.
"admin", "administrator"는 localpart로 사용할 수 없다.


maxLength : 90 
levelId string 

직급 ID. 직급 사용 ON API를 사용하여 설정한다.

  • 직급 ID (직급 ID)
  • 직급의 ExternalKey (externalKey:{levelExternalKey})

nullable : true 
levelExternalKey string 

고객사에서 관리하는 직급 외부 키


maxLength : 100
readOnly : true
nullable : true 
levelName string 

직급 이름


readOnly : true
nullable : true 
executive boolean 

임원 여부


readOnly : true 
organizationName string 

회사 이름


readOnly : true 
orgUnits array (orgUnit) 

조직 목록


minItems : 0
maxItems : 30 

orgUnit

PropertyTypeDescription
orgUnitId string 

조직 ID

  • 조직 ID (orgUnitId)
  • 조직의 ExternalKey (externalKey:{orgUnitExternalKey})

required 
orgUnitExternalKey string 

고객사에서 관리하는 조직 외부 키


maxLength : 100
readOnly : true
nullable : true 
orgUnitName string 

조직 이름


readOnly : true 
orgUnitEmail string 

조직 메일 주소


readOnly : true 
primary boolean 

대표 조직 여부

반드시 대표(primary: true)를 하나 설정하십시오. 대표를 설정하지 않으면 자동으로 첫 번째 값이 대표로 설정됩니다.


required 
positionId string 

직책 ID. '직책 설정 API'에서 usePosition이 'true'인 경우에만 설정된다. 이 값이 전달되지 않으면 '직책 없음'으로 설정된다.

  • 직책 ID (positionId)
  • 직책의 ExternalKey (externalKey:{positionExternalKey})

nullable : true 
positionExternalKey string 

고객사에서 관리하는 직책 외부 키


maxLength : 100
readOnly : true
nullable : true 
positionName string 

직책 이름


readOnly : true
nullable : true 
isManager boolean 

조직장 여부(기본값: false). 이미 조직장이 있으면 조직장을 교체한다(기존 조직장은 직책 해제).


default : false 
visible boolean 

구성원 공개 여부(기본값: true). 조직도에서 조직의 구성원으로 표시할지 여부를 나타낸다.


default : true 
useTeamFeature boolean 

조직 기능 사용 여부(기본값: true). 조직의 구성원이긴 하나 조직 메시지방에서의 메시지 수신, 파일 공유나 조직 메일 수신과 같은 보안상 중요한 조직 기능을 제한하고자 할 때 이 파라미터를 이용한다. 이 값이 true이면 다음과 같이 조직의 메시지방 기능을 사용할 수 있다. 조직 메시지방(Message/Note/Calendar/Folder)의 구성원으로 참여하여 메시지를 주고 받거나, 노트를 조회하고, 일정을 공유받고, 폴더를 조회할 수 있다.

  • 조직으로 보낸 메일 수신 가능
  • 조직을 대상으로 초대한 일정을 공유받음
  • 조직 캘린더 조회 가능
  • 조직으로 공유한 드라이브의 파일 조회 가능
  • 조직으로 권한을 부여한 게시판 조회 가능
  • 조직을 대상으로 한 설문에 응답 가능
  • 조직을 그룹의 구성원으로 설정한 경우 그룹의 구성원에 포함 이 값이 false이면 조직에 제공되는 위와 같은 모든 조직 기능을 사용할 수 없다. 조직의 구성원이긴 하나 위와 같은 조직 기능을 사용하지 않는다면 이 값을 false로 설정한다.

default : true 

messenger

PropertyTypeDescription
protocol string 

메신저 프로토콜.

  • X는 Response Body에서 TWITTER로 반환합니다.
  • 2026년 7월말부터 TWITTER, X 모두 Response Body에서 X로 반환할 예정입니다.
  • 2026년 11월 중순부터 TWITTER는 제거될 예정입니다.
  • LINE: 라인
  • FACEBOOK: 페이스북
  • TWITTER: X(트위터)
  • X: X(트위터)
  • CUSTOM: 사용자 지정 프로토콜

required
Allowed values : LINE, FACEBOOK, TWITTER, X, CUSTOM 
customProtocol string 

메신저 프로토콜이 CUSTOM일 때 사용자 지정값


maxLength : 100 
messengerId string 

메신저 ID


required
minLength : 1
maxLength : 100 

UserCustomField

PropertyTypeDescription
customFieldId string 

사용자 지정 필드를 식별할 수 있는 값

  • 생성 시 만들어지는 resourceId
  • 고객사에서 관리하는 키 externalKey:{customFieldExternalKey}

required 
customFieldExternalKey string 

사용자 지정 필드 외부키


maxLength : 100
readOnly : true
nullable : true 
value string 

사용자 지정 필드의 노출 텍스트 사용자 지정 필드 유형이 STRING일 때 필수이다.


maxLength : 100
nullable : true 
link string 

사용자 지정 필드의 유형이 LINK일 때 URL

  • link는 반드시 입력해야 한다.
  • link는 유효한 URL 형식이어야 한다.
  • value와 link가 모두 존재하여 value가 'Homepage1' 이고, link가 'https://www.unicef.org' 일 때 다음과 같다.
    <a href = "https://www.unicef.org">Homepage1</a>
  • value는 없고 link만 있으면 link가 노출 텍스트가 된다.

maxLength : 300
nullable : true 

customProperties

PropertyTypeDescription
propertyName string 

propertyType이 STRING이고 multiValued가 false일 때


maxLength : 100 
array (string) 

propertyType이 STRING이고 multiValued가 true일 때


maxItems : 10 
string 

propertyType이 STRING이고 multiValued가 false이며 options가 존재하면, 값은 options 중 하나인 optionName으로 설정

 
array (string) 

propertyType이 STRING이고 multiValued가 true이며 options가 존재하면, 값은 options 중 하나인 optionName으로 설정


maxItems : 10 
string 

propertyType이 DATE이고 multiValued가 false일 때, 년-월-일 형식(YYYY-MM-DD)


pattern : YYYY-MM-DD
format : date 
array (string) 

propertyType이 DATE이고 multiValued가 true일 때, 년-월-일 형식(YYYY-MM-DD)


maxItems : 10 
integer 

propertyType이 INTEGER이고 multiValued가 false일 때


minimum : 0 
array (integer) 

propertyType이 INTEGER이고 multiValued가 true일 때


maxItems : 10 
object (CustomPropertyLink) 

propertyType이 LINK이고 multiValued가 false일 때

  • link는 반드시 입력해야 한다.
  • link는 유효한 URL 형식이어야 한다.
  • text와 link가 모두 존재하여 text가 'Homepage1'이고 link가 'https://www.unicef.org'일 때 다음과 같다.
    <a href = "https://www.unicef.org">Homepage1</a>
  • text는 없고 link만 있으면 link가 노출 텍스트가 된다.
 
array (CustomPropertyLink) 

propertyType이 LINK이고 multiValued가 true일 때

  • text와 link 중 하나는 반드시 입력해야 한다.
  • text와 link가 모두 존재하여 text가 'Homepage1'이고 link가 'https://www.unicef.org'일 때 다음과 같다.
    <a href = "https://www.unicef.org">Homepage1</a>
  • text는 있고 link가 없으면 하이퍼링크가 생성되지 않는다.
  • text는 없고 link만 있으면 link가 노출 텍스트가 된다.

maxItems : 10 

CustomPropertyLink

PropertyTypeDescription
text string 

텍스트


maxLength : 100
nullable : true 
link string 

URL


maxLength : 300 

UserRelation

PropertyTypeDescription
relationUserId string 

연결된 연락처 구성원 ID

 
relationName string 

관계명


maxLength : 50 
externalKey string 

externalKey


maxLength : 100
readOnly : true
nullable : true 

Response Example

example

1{2  "domainId": 10000001,3  "userId": "userf7da-f82c-4284-13e7-030f3b4c756x",4  "userExternalKey": "USER_EXT_01",5  "isAdministrator": false,6  "isPending": false,7  "isSuspended": false,8  "isDeleted": false,9  "isAwaiting": true,10  "suspendedReason": null,11  "email": "localpart@example.com",12  "userName": {13    "lastName": "last",14    "firstName": "first",15    "phoneticLastName": null,16    "phoneticFirstName": null17  },18  "i18nNames": [],19  "nickName": "nickname",20  "privateEmail": "private.works@example.com",21  "aliasEmails": [],22  "employmentTypeId": null,23  "employmentTypeName": null,24  "employmentTypeExternalKey": null,25  "userTypeId": null,26  "userTypeName": null,27  "userTypeExternalKey": null,28  "userTypeCode": null,29  "searchable": true,30  "organizations": [31    {32      "domainId": 10000001,33      "primary": true,34      "userExternalKey": null,35      "email": "localpart@example.com",36      "levelId": "levelaa7-b824-4937-66af-042f1f43cefa",37      "levelExternalKey": null,38      "levelName": "level",39      "executive": false,40      "organizationName": "org",41      "orgUnits": [42        {43          "orgUnitId": "orgunitf-f27f-4af8-27e1-03817a911417",44          "orgUnitExternalKey": null,45          "orgUnitEmail": "team01@example.com",46          "orgUnitName": "orgUnit1",47          "primary": true,48          "positionId": "position-7027-4a02-b838-6f52b5e38db7",49          "positionExternalKey": null,50          "positionName": "position",51          "isManager": true,52          "visible": true,53          "useTeamFeature": true54        }55      ]56    }57  ],58  "telephone": "031-1234-5678",59  "cellPhone": "010-1234-5678",60  "location": "green building",61  "task": "mytask",62  "messenger": {63    "protocol": "LINE",64    "messengerId": "lineid"65  },66  "birthdayCalendarType": "SOLAR",67  "birthday": "2000-01-01",68  "locale": "en_US",69  "hiredDate": "2020-01-01",70  "timeZone": "Asia/Seoul",71  "leaveOfAbsence": {72    "startTime": null,73    "endTime": null,74    "isLeaveOfAbsence": false75  },76  "customProperties": {77    "string_single": "hiking",78    "string_multi": [79      "hiking",80      "swimming"81    ],82    "string_single_option": "option_cooking",83    "string_multi_option": [84      "option_cooking",85      "option_piano"86    ],87    "date_single": "2025-03-23",88    "date_multi": [89      "2025-03-23",90      "2025-03-24"91    ],92    "integer_single": 123,93    "integer_multi": [94      123,95      45696    ],97    "link_single": {98      "text": "worksmobile",99      "link": "https://contact.worksmobile.com"100    },101    "link_multi": [102      {103        "text": "worksmobile",104        "link": "https://contact.worksmobile.com"105      },106      {107        "text": "line",108        "link": "https://www.line.me/"109      }110    ]111  },112  "relations": [113    {114      "relationUserId": "userfd-fc09-4a57-ab38-03dc6c425e09",115      "relationName": "Manager",116      "externalKey": "ExternalKeyValue"117    }118  ],119  "activationDate": "2030-11-12T09:30:00+09:00",120  "employeeNumber": "employee1234"121}

HTTP 400

Bad Request

HTTP 404

Not Found