Licenses
구매자 앱·서버에서 라이선스 키의 유효성을 검증하고, 디바이스를 활성화·비활성화할 수 있어요.
모든 호출은 키가 묶인 스토어의 라이선스만 다뤄요.
키 검증
POSThttps://api.payri.kr/v1/licenses/verifyscope
licenses:read키의 현재 상태를 확인해요.
activationId를 함께 보내면 해당 활성화의 마지막 검증 시각을 갱신해요.
curl -X POST https://api.payri.kr/v1/licenses/verify \
-H "X-Api-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "key": "pyr_live_xxxxxxxxxxxxxxxxxxxxxxxx", "activationId": "act_91b" }'응답의 result로 분기하세요.
result | 의미 |
|---|---|
valid | 사용 가능 |
expired | 만료 |
revoked | 폐기됨 |
not_found | 해당 스토어에 없는 키 |
{
"result": "valid",
"license": {
"id": "lic_4a2",
"key": "pyr_live_xxxxxxxxxxxxxxxxxxxxxxxx",
"productId": "prod_88x",
"productName": "MeetNote Solo",
"status": "active",
"maxActivations": 3,
"activations": [
{ "id": "act_91b", "activatedAt": "2026-06-10T00:00:00.000Z", "label": "MacBook Pro" }
],
"issuedAt": "2026-06-01T00:00:00.000Z",
"verificationLog": [
{ "at": "2026-06-16T03:20:00.000Z", "result": "valid", "activationId": "act_91b" }
]
}
}result: "not_found"면 license 필드는 없어요.
존재하지 않는 키는 에러가 아니라 not_found 결과로 응답해요.
활성화
POSThttps://api.payri.kr/v1/licenses/activatescope
licenses:write키를 디바이스·서버에 켜요.
activationId를 직접 주면 그 ID로 등록하고, 생략하면 서버가 발급해요.
같은 activationId로 다시 호출하면 새로 만들지 않고 그대로 둬요(멱등).
curl -X POST https://api.payri.kr/v1/licenses/activate \
-H "X-Api-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "key": "pyr_live_xxxxxxxxxxxxxxxxxxxxxxxx", "activationId": "act_91b", "label": "MacBook Pro" }'| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
key | string | ✅ | 라이선스 키 |
activationId | string | — | 활성화 식별자(보통 디바이스 UUID) |
label | string | — | 사람이 읽는 라벨 (예: production server) |
성공하면 검증 응답의 license와 같은 형태의 라이선스 객체가 와요.
활성화 수가 maxActivations를 넘으면 409 MAX_ACTIVATIONS_REACHED로 막혀요.
폐기·만료된 키는 활성화할 수 없어요.
maxActivations가 0이면 활성화 수 제한이 없어요.
비활성화
POSThttps://api.payri.kr/v1/licenses/deactivatescope
licenses:write활성화 한 건을 해제해요.
해제하면 활성화 수가 줄어 다른 디바이스를 켤 수 있어요.
activationId는 필수이고, 성공하면 갱신된 라이선스 객체가 와요.
curl -X POST https://api.payri.kr/v1/licenses/deactivate \
-H "X-Api-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "key": "pyr_live_xxxxxxxxxxxxxxxxxxxxxxxx", "activationId": "act_91b" }'라이선스 관련 에러
| 코드 | HTTP | 상황 |
|---|---|---|
LICENSE_NOT_FOUND | 404 | 해당 스토어에 없는 키 |
LICENSE_REVOKED | 409 | 폐기된 키를 활성화 시도 |
LICENSE_EXPIRED | 409 | 만료된 키를 활성화 시도 |
MAX_ACTIVATIONS_REACHED | 409 | 활성화 가능 수 초과 |
ACTIVATION_NOT_FOUND | 404 | 없거나 이미 해제된 활성화를 비활성화 시도 |
발급 방식 자체(자동 발급·webhook·pool·shared)는 라이선스 연동에서 다뤄요.
Last updated on