이 페이지에서는 Card Minting API와 App2App API의 사용자 인증, 페이지네이션, 리턴 코드, 약어 등을 설명합니다.
Card Minting API
Authentication
Card Minting API를 사용하기 위해서는 JWT 기반 액세스 토큰 발급이 필요합니다. Klip Partners 회원 가입 시 등록한 로그인 ID와 비밀번호를 통해서 토큰을 발급 받을 수 있습니다. 발급된 토큰은 24시간 동안 유효하며 보통 만료 전에 재발급이 필요합니다. 발급된 토큰은 API 요청 헤더의 Authorization 필드에 토큰을 포함하는 방식으로 사용합니다.
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
Pagination
보유 카드 내역을 조회할 때 카드의 양의 많은 경우 한 번에 받으면 양이 많기 때문에 여러번 요청해야할 수 있습니다. 이를 위해서 조회 API에서는 결과값에 next_cursor를 함께 제공합니다. 일반적으로 카드 개수가 100개를 초과한다면 1번 호출 시 100개의 결과와 next_cursor 값을 받습니다. 나머지 카드를 조회하려면 next_cursor 값을 query 파라미터 cursor에 전달하여 API를 다시 호출해야합니다.
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
Success Codes/Error Codes
요청이 성공하면 HTTP code 200을 받습니다. 만약 요청이 정상 처리되지 않으면 400, 401, 500의 HTTP code가 전달됩니다. 400은 요청이 잘못된 경우, 401은 유효하지 않은 액세스 토큰을 사용했을 때 리턴됩니다. 500은 서버에 알 수 없는 장애가 발생했을 때 리턴됩니다. 400 또는 401 에러는 구체적인 에러 코드와 메시지가 함께 전달됩니다.
에러 메시지는 JSON 포맷으로 전달되며 필드는 아래와 같습니다.
1
{
2
"code": number,
3
"err": string
4
}
Copied!
에러 메시지 종류는 아래와 같습니다.
Status Code
Error Code
Error Message
400
400
bad request
400
410
invalid birth for account creation
400
411
teenagers under the age of 19 are not allowed to sign up
400
412
already existing account (wallet)
400
413
already existing email
400
414
already existing account without wallet
400
4111
receiver is already an user of klip
400
4112
sender daily limit exceeded
400
4113
sender already sent invite message to receiver
400
4114
receiver daily limit exceeded
400
4115
receiver monthly limit exceeded
400
4070
send token count daily limit exceeded
400
4071
send token amount onetime limit exceeded
400
4072
send token amount decimal places exceeded
400
4080
mint count monthly limit exceeded
401
420
inactive accounts require new pin code settings
401
421
suspended accounts cannot login
401
422
the account requesting the suspension
401
423
the account has been unsubscribed
401
424
undefined status
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
App2App API
Authentication
App2App API는 기본적으로 인증을 필요로 하지 않습니다. 하지만 BApp 별로 요청을 구분하기 위해서 request key를 발급하여 API 요청 시 사용합니다. 해당 key를 통해서 Klip 서버에서 요청 내용을 구분하여 컨텍스트를 유지하여 처리합니다. 일반적으로 request key를 발급받고 사용하는 절차는 아래와 같습니다.
prepare API를 통해 인증 또는 서명할 내용을 전달하고 응답으로 request key를 전달 받습니다.
전달받은 request key를 이용하여 Deep Link(지정된 앱을 자동으로 실행하고 홈페이지가 아닌 특정 페이지로 가기 위한 URI)를 호출하고, 모바일 카카오톡 더보기탭에 있는 Klip을 실행합니다.
처리 결과는 result API를 통해서 polling하고 이 때 Query 파라미터 request_key에 어떤 요청에 대한 처리 결과를 얻고자 하는지를 전달합니다.
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
Pagination
보유 카드 내역을 조회할 때 카드의 양의 많은 경우 한 번에 받으면 양이 많기 때문에 여러번 요청해야할 수 있습니다. 이를 위해서 조회 API에서는 결과값에 next_cursor를 함께 제공합니다. 일반적으로 카드 개수가 100개를 초과한다면 1번 호출 시 100개의 결과와 next_cursor 값을 받습니다. 나머지 카드를 조회하려면 next_cursor 값을 query 파라미터 cursor에 전달하여 API를 다시 호출해야합니다.
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
SDK
App2App API 기본적으로 REST API를 제공하지만, 각 BApp 개발환경에 맞게 사용할 수 있는 SDK를 제공합니다. 현재 지원하는 SDK 종류는 Android, iOS, 모바일 웹용 JavaScript입니다. 구체적인 내용은 SDK 페이지를 참조하십시오.
Success Codes/Error Codes
요청이 성공하면 HTTP code 200을 받습니다. 만약 요청이 정상 처리되지 않으면 400, 500의 HTTP code가 전달됩니다. 400은 요청 데이터가 잘못됐거나 유효하지 않은 request_key를 사용했을 때 리턴됩니다. 500은 서버에 알 수 없는 장애가 발생했을 때 리턴됩니다. 400 에러는 구체적인 에러 코드와 메시지가 함께 전달됩니다. 자세한 내용은 각 API를 참조하십시오.
에러 메시지는 JSON 포맷으로 전달되며 필드는 아래와 같습니다.
1
{
2
"request_key":"random key",
3
"expiration_time": unix timestamp,
4
"status":"error",
5
"error":{
6
"code": int,
7
"err":"error message"
8
}
9
}
Copied!
이와 별개로 카드 조회 API (/v2/a2a/cards)는 request key과 관련이 없기 때문에 아래와 같은 형태로 에러가 전달됩니다.
1
{
2
"code": number,
3
"err": string
4
}
Copied!
에러 메시지 종류는 아래와 같습니다.
Status Code
Error Code
Error Message
400
400
bad request
400
6000
request key does not exist
400
6001
request key is expired
400
6010
invalid request type
400
6011
invalid request status
400
6200
execute contract count daily limit exceeded
400
6401
bapp name is required
400
6402
invalid transaction
400
6403
invalid to address
400
6404
invalid amount
400
6405
invalid contract
400
6406
invalid card id
400
6407
invalid abi
400
6408
invalid params
400
6409
invalid value
400
6410
unknown request type
400
6411
invalid from address
400
6412
insufficient funds
400
6500
address is on the blacklist
400
6501
invalid user status
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.
Glossary
Term
Description
Deep link
웹이나 앱에서 홈페이지가 아닌 특정 페이지로 가기위한 URI (Query 파라미터를 통해 요청할 작업을 구분하기 위한 용도로 사용)
Request key
App2App API 요청을 구분하기 위한 랜덤하게 생성된 a0fee72d-3b1b-43a3-ae0d-e277a1001bef 형태의 문자열
이 문서 혹은 Klip에 관한 문의는 [개발자 포럼](https://klipforum.zendesk.com)을 방문해 도움을 받으십시오.