Introduction
Class101 Business API에 오신 것을 환영합니다! 제공되는 API를 이용하여 Endpoints에 접근하면 Class101 Business에서 지원하는 다양한 업무들을 수행하실 수 있고, 고객의 수강 정보에 접근할 수 있습니다.
현재는 HTTP로만 문서를 제공하지만, 추후 다양한 언어 예제를 추가할 계획에 있습니다. 오른쪽의 어두운 영역에서 HTTP Request와 Response를 보실 수 있습니다.
사용 중 문의사항이 있거나, 문제점을 발견하신 경우 고객 담당자를 통해 문의주시면 빠른 시일 내에 개선된 API를 이용하실 수 있도록 하겠습니다. 아직 Class101 Business를 이용중이지 않으신가요? 여기에서 견적과 상담을 받아보실 수 있습니다.
Request/Response Format
기본 요청/응답 형식은 JSON입니다. 성공적인 요청은 200 OK
HTTP 상태를 반환합니다.
- 환경별 기본 요청 URL:
- 테스트 (Staging) -
http://biz-service-staging.private.class101.net/open-api/v1/
- 프로덕션 (Production) -
https://biz-api.class101.net/open-api/v1/
- 테스트 (Staging) -
GET http://biz-service-staging.private.class101.net/open-api/v1/{path}
GET https://biz-api.class101.net/open-api/v1/{path}
기본 응답 형식은 JSON 포맷으로 다음과 같은 형태입니다:
{
"data": {},
"result": "",
"message": "",
"errorCode": "",
}
기본 타입
Type | Description |
---|---|
DateTime | ISO 8601 포맷으로, yyyy-MM-ddTHH:mm:ssZ 형태로 전달합니다. |
하위호환성
모든 API는 하위 호환성을 지키면서 업데이트 됩니다. 한번 정의된 필드나 Enum 값은 삭제되지 않으며, Optional 타입이 필수 타입으로 변경되지 않습니다. 하지만 새로운 필드와 값은 추가될 수 있으므로 그러한 변경에 영향이 없도록 클라이언트를 작성하세요. 하위 호환 미준수 변경에 대해서는 새롭게 버저닝하거나, 신규 API URI를 통해 제공됩니다.
클래스에 정의되지 않은 타입이 응답으로 오더라도 예외가 발생하지 않도록 ObjectMapper의 설정을 아래처럼 설정합니다:
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Authentication
Class101 Business API는 인증된 요청에만 응답합니다. 계약에 따라 발급된 고객사별 API Key를 함께 담아 요청에 보내주세요. 발급된 API Key는 Business Center에서 보실 수 있습니다.
다음과 같이 모든 서버 HTTP 요청 헤더에 API Key를 포함하세요:
Authorization: Bearer {access_token}
To authorize, use this code:
GET https://biz-api.class101.net/open-api/v1/
Authorization: Bearer {access_token}
Make sure to replace
{access_token}
with your API key.
Single Sign-On
클래스101 비즈니스에서는 SAML 2.0으로 SSO(Single Sign-On) 기능을 제공합니다. SSO를 설정하면 사용자는 회사 계정으로 로그인 하는 것으로 클래스101 비즈니스 서비스를 이용할 수 있습니다.
IdP
ID 공급자 (Identity Provider)
- 사용자의 ID를 관리하는 인증 서비스입니다.
- 고객사의 인증 서비스가 여기에 해당됩니다.
SP
서비스 공급자 (Service Provider)
- IdP의 인증 정보로 로그인하는 대상 서비스입니다.
- 클래스101 비즈니스 서비스가 여기에 해당됩니다.
A Bird-eye’s view
로그인 시도
사용자는 클래스101 서비스를 이용하기 위해 웹 브라우저에서 https://class101.net 으로 이동합니다.
SSO 가능 여부 확인
사용자가 입력한 메일 주소에 SSO 기능이 활성화 되어있는지 확인합니다.
SSO 로그인 페이지로 이동 (redirect)
ID 공급자의 로그인 페이지(= 고객사 로그인 페이지)로 이동합니다.
아이디, 비밀번호 입력
ID 공급자의 로그인 페이지에서 아이디, 비밀번호(= 고객사의 포탈 계정)를 입력해 로그인합니다.
인증 처리 및 SAML 응답 생성
로그인에 성공한 경우 클래스101에 미리 등록한 인증서로 전자 서명한 SAML 응답을 생성합니다.
SAML 응답 전달 (redirect)
SAML 응답을 클래스101에서 받은 ACS URL로 전달합니다.
SAML 응답 검증, 인증 토큰 발급
고객사에서 등록한 인증서로 SAML 응답을 검증하여 인증을 완료하고, 비즈니스 센터에 초대되어 있는 사용자인 경우에만 서비스를 이용할 수 있도록 인증 토큰을 발급합니다.
더 자세한 내용은 SAML 2.0의 IdP-Initiated SSO: Post Binding을 참고하시기 바랍니다.
Step-by-step guide
클래스101 비즈니스를 회사 계정으로 이용하기 위한 단계별 가이드입니다.
1. SSO 활성화
비즈니스 센터의 설정 메뉴에서 SSO 기능을 활성화합니다.
활성화가 완료되면 위와 같이 설정을 입력할 수 있는 화면이 나타납니다.
2. 회사 도메인 입력
회사 메일에 사용하는 도메인을 입력하고 저장합니다.
3. IdP 정보 입력
openssl req -x509 -new -newkey rsa:2048 -nodes \
-subj '/CN={회사명}' \
-keyout idp-private-key.pem \
-out idp-public-cert.pem
로그인 페이지 등록
클래스101에 로그인하기 위한 로그인 페이지를 등록합니다. 이 페이지에서 고객사의 유저 정보를 확인하고 SAML 2.0 응답을 생성하고 전달합니다.
X.509 인증서 등록
다음 명령어로 비밀 키와 인증서를 생성하고, 인증서(idp-public-cert
)의 키를 등록합니다.
4. SAML 2.0 응답 전달
Request
POST /sso/saml/2/acs/{slug} HTTP/1.1
Host: auth.class101.net
Content-Type: application/x-www-form-urlencoded
Content-Length: {length}
SAMLResponse={Base64(response)}
- 클래스101에서 고객사 로그인 페이지로 이동 후 다시 돌아오는 경우 (위 그림)
- 고객사의 페이지에서 바로 클래스101에 접근하는 경우
모두 고객사의 인증 시스템에서 인증 처리를 완료한 뒤, IdP-Initiated SSO로 인증 정보를 전달해 주시면 됩니다. 설정 페이지의 ACS URL로 다음과 같이 보내주세요.
SAMLResponse
<?xml version="1.0"?>
<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Version="2.0"
IssueInstant="{SAML 응답 시작 일시}"
>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
{디지털 서명}
</Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Version="2.0"
IssueInstant="{SAML 응답 시작 일시}">
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">
{사용자의 메일 주소}
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="{SAML 응답 종료 일시}" />
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions
NotBefore="{SAML 응답 시작 일시}"
NotOnOrAfter="{SAML 응답 종료 일시}"
>
<saml:AudienceRestriction>
<saml:Audience>{클래스101 ACS URL}</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="{SAML 응답 시작 일시}">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<saml:Attribute Name="email">
<saml:AttributeValue xsi:type="xs:string">
{사용자의 메일 주소}
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="firstname">
<saml:AttributeValue xsi:type="xs:string">
{사용자의 이름}
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="lastname">
<saml:AttributeValue xsi:type="xs:string">
{사용자의 성}
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="displayName">
<saml:AttributeValue xsi:type="xs:string">
{사용자의 전체 이름}
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="phoneNumber">
<saml:AttributeValue xsi:type="xs:string">
{사용자의 휴대폰 번호}
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
카탈로그
이용 가능한 클래스 목록 가져오기
클래스101 구독으로 이용 가능한 모든 클래스 목록을 받아올 수 있습니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/plan/{planId}/classes
Request
GET https://biz-api.class101.net/open-api/v1/plan/{planId}/classes
Path Parameter | Required | Description |
---|---|---|
planId | true | 고객사에서 이용하는 플랜 ID |
HTTP Response
해당 플랜을 정상적으로 조회할 경우 200 OK
상태를 반환하고, 찾지 못했을 경우 404 Not Found
를 반환합니다.
Response
{
"data": {
"classes": [{
"id": "5c82178d20e0954d604a475e",
"name": "마카와 펜, 드로잉북만 들고 떠나요! 마카로 담는 여행의 특별한 기억",
"coverImage": "https://cdn.class101.net/images/1d0038b4-9558-4478-87f2-9fd472b3a274",
"url": "https://class101.net/",
"category": "드로잉/그림",
"creatorName": "마카왕"
}],
}
}
Parameter | Type | Description |
---|---|---|
classes[].id | String! | 클래스의 ID |
classes[].name | String! | 클래스의 이름 |
classes[].coverImage | String! | 클래스의 커버 이미지 |
classes[].url | String! | 수강 페이지 URL |
classes[].category | String! | 클래스의 카테고리 |
classes[].creatorName | String! | 클래스의 강사 명 |
클래스 상세 정보 확인하기
클래스 아이디로 상세 정보를 확인할 수 있습니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/plan/{planId}/classes/{classId}
Request
GET https://biz-api.class101.net/open-api/v1/plan/{planId}/classes/{classId}
Path Parameter | Required | Description |
---|---|---|
planId | true | 고객사에서 이용하는 플랜 ID |
classId | true | 상세 정보를 조회할 클래스 ID |
HTTP Response
해당 클래스를 정상적으로 조회할 경우 200 OK
상태를 반환하고, 찾지 못했을 경우 404 Not Found
를 반환합니다.
Response
{
"data": {
"id": "5c82178d20e0954d604a475e",
"name": "마카와 펜, 드로잉북만 들고 떠나요! 마카로 담는 여행의 특별한 기억",
"description": "<p><strong>리니의 두 번째 클래스로 마카의 기초부터 드로잉 응용까지 한번에 배워봐요!</strong></p><p>안녕하세요, 또 한 번 ...",
"coverImage": "https://cdn.class101.net/images/1d0038b4-9558-4478-87f2-9fd472b3a274",
"url": "https://class101.net/",
"category": "드로잉/그림",
"creatorName": "마카왕"
}
}
Parameter | Type | Description |
---|---|---|
classes[].id | String! | 클래스의 ID |
classes[].name | String! | 클래스의 이름 |
classes[].description | String! | 클래스 소개 내용 |
classes[].coverImage | String! | 클래스의 커버 이미지 |
classes[].url | String! | 수강 페이지 URL |
classes[].category | String! | 클래스의 카테고리 |
classes[].creatorName | String! | 클래스의 강사 명 |
수강신청
수강신청 하기
특정 회원이 지정된 비즈니스 센터에 수강신청 할 수 있습니다. 수강신청을 처리하고 결과를 응답합니다.
HTTP Request
POST https://biz-api.class101.net/open-api/v1/course-registration/user-apply
Request
POST https://biz-api.class101.net/open-api/v1/course-registration/user-apply
{
"userEmail": "",
"term": "1"
}
Body Parameter | Type | Description |
---|---|---|
userEmail | String! | 사전 협의를 통해 연동되어 암호화된 고객사 측의 Unique 유저 Email ID |
term | String? | 차수 (현재 기능 미지원 이므로 "1" 로 고정하여 전송) |
HTTP Response
수강신청을 정상적으로 요청할 경우 200 OK
상태를 반환합니다.
수강신청 정보를 찾지 못했을 경우, 연동된 유저를 찾지 못할 경우, 사전 협의된 암호화 모듈을 찾지 못했을 경우 404 Not Found
를 반환합니다.
잘못된 수강신청을 요청할 경우(중복 수강신청 등) 422 Unprocessable Entity
를 반환합니다.
성공 Response
{
"result": "SUCCESS",
"message": "SUCCESS",
"errorCode": null,
"data": {
"companyName": "테스트 비즈니스 센터",
"term": "1",
"userName": "김현중",
"registrationStatus": "APPLIED",
"startAt": "2023-06-30T15:00:00+09:00",
"endAt": "2023-07-31T14:59:59+09:00"
}
}
Parameter | Type | Description |
---|---|---|
companyName | String! | 수강신청 대상 비즈니스 센터의 이름 |
term | String! | 차수 (현재 기능 미지원 이므로 "1" 로 고정하여 전송) |
userName | String? | 비즈니스 회원 가입시 입력한 유저 이름 |
registrationStatus | String! | 수강신청 상태. 수강신청 성공 시 APPLIED , 수강신청 취소 시 CANCELD 를 반환합니다. |
startAt | String? | 수강 시작 일 (UTC로 반환 합니다.) |
endAt | String? | 수강 종료 일 (UTC로 반환 합니다.) |
실패 Response
{
"result": "FAIL",
"message": "이미 수강신청한 정보가 존재합니다.",
"errorCode": "biz/registration/user-already-applied",
"data": {
"message": "이미 수강신청한 정보가 존재합니다.",
"detail": {
"userEmail": "raoul@101.inc"
},
"stacktrace": [],
"cause": null
}
}
{
"result": "FAIL",
"message": "API에 접근할 수 없습니다.",
"errorCode": "UNAUTHORIZED",
"data": {}
}
{
"result": "FAIL",
"message": "계정에 연동된 클래스101 유저를 찾을 수 없습니다.",
"errorCode": "biz/user/user-not-found",
"data": {
"message": "계정에 연동된 클래스101 유저를 찾을 수 없습니다.",
"detail": {
"resultMessage": "계정에 연동된 클래스101 유저를 찾을 수 없습니다."
},
"stacktrace": [],
"cause": null
}
}
{
"result": "FAIL",
"message": "비즈니스 센터가 암호화 모듈을 가지고 있지 않습니다.",
"errorCode": "biz/registration/company-does-not-have-crypto-module",
"data": {
"message": "비즈니스 센터가 암호화 모듈을 가지고 있지 않습니다.",
"detail": {
"companyId": "295"
},
"stacktrace": [],
"cause": null
}
}
수강신청 취소하기
특정 회원이 지정된 비즈니스 센터에 수강신청 한 내용을 취소 할 수 있습니다. 수강신청 취소를 처리하고 결과를 응답합니다.
HTTP Request
POST https://biz-api.class101.net/open-api/v1/course-registration/user-cancel
Request
POST https://biz-api.class101.net/open-api/v1/course-registration/user-cancel
{
"userEmail": "",
"term": "1"
}
Body Parameter | Type | Description |
---|---|---|
userEmail | String! | 사전 협의를 통해 연동되어 암호화된 고객사 측의 Unique 유저 Email ID |
term | String? | 차수 (현재 기능 미지원 이므로 "1" 로 고정하여 전송) |
HTTP Response
수강신청 취소를 정상적으로 요청할 경우 200 OK
상태를 반환합니다.
수강신청 정보를 찾지 못했을 경우, 연동된 유저를 찾지 못할 경우, 사전 협의된 암호화 모듈을 찾지 못했을 경우 404 Not Found
를 반환합니다.
잘못된 수강신청 취소를 요청할 경우(이미 취소한 수강신청 등) 422 Unprocessable Entity
를 반환 합니다.
성공 Response
{
"result": "SUCCESS",
"message": "SUCCESS",
"errorCode": null,
"data": {
"companyName": "테스트 비즈니스 센터",
"term": "1",
"userName": "김현중",
"registrationStatus": "CANCELED",
"startAt": "2023-06-30T15:00:00+09:00",
"endAt": "2023-07-31T14:59:59+09:00"
}
}
Parameter | Type | Description |
---|---|---|
companyName | String! | 수강신청 대상 비즈니스 센터의 이름 |
term | String! | 차수 (현재 기능 미지원 이므로 "1" 로 고정하여 전송) |
userName | String? | 비즈니스 회원 가입시 입력한 유저 이름 |
registrationStatus | String! | 수강신청 상태. 수강신청 성공 시 APPLIED , 수강신청 취소 시 CANCELD 를 반환합니다. |
startAt | String? | 수강 시작 일 (UTC로 반환 합니다.) |
endAt | String? | 수강 종료 일 (UTC로 반환 합니다.) |
실패 Response (아래의 중복 취소요청을 제외한 실패 Case는 위의 수강신청 API와 동일)
{
"result": "FAIL",
"message": "이미 수강신청을 취소 하였습니다.",
"errorCode": "biz/registration/user-already-canceled",
"data": {
"message": "이미 수강신청을 취소 하였습니다.",
"detail": {
"userEmail": "raoul@101.inc"
},
"stacktrace": [],
"cause": null
}
}
회원
회원 여부 조회
특정 회원의 가입 상태를 조회합니다. 고객사에 회원 가입을 신청한 상태, 승인된 상태, 거절된 상태를 응답합니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}
Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}
Path Parameter | Required | Description |
---|---|---|
userId | true | 사전 협의를 통해 연동된 고객사 측의 Unique 유저 ID |
HTTP Response
해당 유저를 정상적으로 조회할 경우 200 OK
상태를 반환하고, 찾지 못했을 경우 404 Not Found
를 반환합니다.
Response
{
"data": {
"id": "12390875463",
"name": "배현승",
"state": "APPLIED"
}
}
Parameter | Type | Description |
---|---|---|
id | String! | 사전 협의를 통해 연동된 고객사 측의 Unique 유저 ID |
name | String | 비즈니스 회원 가입시 입력한 유저 이름 |
state | String! | 비즈니스 유저의 가입 상태. 회원 가입 직후엔 APPLIED , 승인 하여 정상적으로 이용 가능한 경우에 APPROVED , 비즈니스 관리자가 가입을 거절한 경우 REJECTED 를 반환합니다. |
회원 수강 상태 조회
특정 회원의 수강 상태를 조회합니다. 이용권 개수, 수강중인 수업의 정보를 조회할 수 있습니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}/tickets
Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}/tickets
Path Parameter | Required | Description |
---|---|---|
userId | true | 사전 협의를 통해 연동된 고객사 측의 Unique 유저 ID |
HTTP Response
해당 유저를 정상적으로 조회할 경우 200 OK
상태를 반환하고, 찾지 못했을 경우 404 Not Found
를 반환합니다.
Response
{
"data": {
"remainTicketCount": 0,
"usedTicketCount": 1,
"enrolledClasses": [
{
"id": "5c82178d20e0954d604a475e",
"name": "마카와 펜, 드로잉북만 들고 떠나요! 마카로 담는 여행의 특별한 기억",
"coverImageURL": "https://cdn.class101.net/images/1d0038b4-9558-4478-87f2-9fd472b3a274",
"expiredAt": "2019-03-08T07:19:41.520+00:00",
"url": "https://class101.net/",
"category": "드로잉/그림",
"creatorName": "마카왕"
}
]
}
}
Parameter | Type | Description |
---|---|---|
remainTicketCount | Int! | 유저에게 발급된 이용권 중 남은 개수 |
usedTicketCount | Int! | 유저에게 발급된 이용권 중 사용한 개수 |
enrolledClasses[].id | String! | 수강중인 클래스의 ID |
enrolledClasses[].name | String! | 수강중인 클래스의 이름 |
enrolledClasses[].coverImageURL | String! | 수강중인 클래스의 커버 이미지 |
enrolledClasses[].expiredAt | DateTime! | 수강중인 클래스의 수강 만료일 |
enrolledClasses[].url | String! | 수강 페이지 URL |
enrolledClasses[].category | String! | 수강중인 클래스의 카테고리 |
enrolledClasses[].creatorName | String! | 수강중인 클래스의 강사 명 |
회원 수강 진도율 조회
특정 회원이 수강 중인 강의들의 진도율을 조회합니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}/lectures
Request
GET https://biz-api.class101.net/open-api/v1/users/{userId}/lectures
Path Parameter | Required | Description |
---|---|---|
userId | true | 사전 협의를 통해 연동된 고객사 측의 Unique 유저 ID |
HTTP Response
해당 유저를 정상적으로 조회할 경우 200 OK
상태를 반환하고, 찾지 못했을 경우 404 Not Found
를 반환합니다.
Response
{
"data": {
"lectures": [{
"id": "5c82178d20e0954d604a475e",
"name": "마카와 펜, 드로잉북만 들고 떠나요! 마카로 담는 여행의 특별한 기억",
"coverImage": "https://cdn.class101.net/images/1d0038b4-9558-4478-87f2-9fd472b3a274",
"progress": 0.7512,
}],
}
}
Parameter | Type | Description |
---|---|---|
lectures[].id | String! | 수강중인 클래스의 ID |
lectures[].name | String! | 수강중인 클래스의 이름 |
lectures[].coverImage | String! | 수강중인 클래스의 커버 이미지 |
lectures[].progress | Int! | 수강중인 클래스의 진도율 |
클래스
클래스 조회
클래스 ID로 기본적인 클래스 정보를 조회하는 API입니다.
HTTP Request
GET https://biz-api.class101.net/open-api/v1/classes/{classId}
Request
GET https://biz-api.class101.net/open-api/v1/classes/{classId}
Path Parameter | Type | Description |
---|---|---|
classId | String! | 조회할 클래스 ID |
HTTP Response
조회에 성공한 경우 200 OK
상태를 반환합니다.
Response
{
"data": {
"id": "5c82178d20e0954d604a475e",
"name": "마카와 펜, 드로잉북만 들고 떠나요! 마카로 담는 여행의 특별한 기억",
"coverImageURL": "https://cdn.class101.net/images/1d0038b4-9558-4478-87f2-9fd472b3a274",
"expiredAt": "2019-03-08T07:19:41.520+00:00",
"url": "https://class101.net/",
"enrollPageUrl": "https://class101.net/",
"category": "드로잉/그림",
"creatorName": "마카왕"
}
}
Parameter | Type | Description |
---|---|---|
id | String! | 클래스의 ID |
name | String! | 클래스의 이름 |
coverImageURL | String! | 클래스의 커버 이미지 |
url | String! | 수강 페이지 URL |
enrollPageUrl | String! | 수강 신청 페이지 URL |
category | String! | 클래스의 카테고리 |
creatorName | String! | 클래스의 강사 명 |
이용권
이용권 발급
특정 회원에게 이용권을 발급하는 API입니다. Company에 정상적으로 승인된 고객인 경우 계약된 이용권을 1개 차감하고, 유저에게 할당합니다. 복지몰 연동 시, 복지 포인트와 같은 고객사 재화 차감 Transaction이 정상적으로 이루어진 이후 이 API를 호출하세요.
HTTP Request
POST https://biz-api.class101.net/open-api/v1/tickets:allocate
Request
POST https://biz-api.class101.net/open-api/v1/tickets:allocate
{
"userId": "",
"ticketCount": 1
}
Body Parameter | Type | Description |
---|---|---|
userId | String! | 사전 협의를 통해 연동된 고객사 측의 Unique 유저 ID |
ticketCount | Int! | 해당 유저에게 발급할 이용권 개수 |
HTTP Response
이용권 할당에 성공한 경우 200 OK
상태를 반환합니다.
Response
{
"message": "사용자에게 성공적으로 이용권을 할당하였습니다."
}
제휴 프로모션
제휴 프로모션 링크 생성
클래스101과 제휴된 고객사께서 고객사 회원을 대상으로 프로모션 쿠폰을 지급할 때 사용하는 API입니다. 아래 API를 호출 한 뒤 발급되는 링크를 고객사 회원에게 전달하면, 회원가입 또는 로그인 후 제휴된 쿠폰이 지급됩니다. 이 API를 통해 발급되는 링크는 최대 5분동안 유효합니다.
HTTP Request
POST https://biz-api.class101.net/open-api/v1/promotions/{promotionId}/urls
Request
POST https://biz-api.class101.net/open-api/v1/promotions/{promotionId}/urls
Path Parameter | Type | Description |
---|---|---|
promotionId | String! | 사전 협의를 통해 진행하기로 한 제휴 프로모션의 ID |
HTTP Response
제휴 프로모션 링크를 성공적으로 생성한 경우 200 OK
상태를 반환합니다.
Response
{
"message": "성공적으로 제휴 프로모션 링크를 생성하였습니다.",
"data": {
"url": "https://class101.net/login?promo=1AAULGIAHsgd23D"
}
}
Parameter | Type | Description |
---|---|---|
promotionURL | String! | 제휴 프로모션 링크 |