SaaS API전자계약 API
POST /ai/contract/{contractId}/otp/verify
SMS로 발송된 OTP 인증번호를 검증합니다.
OTP 검증
SMS로 발송된 6자리 OTP 인증번호를 검증합니다. 인증 성공 시 상태가 OTP_VERIFIED로 변경됩니다.
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /ai/contract/{contractId}/otp/verify |
| 인증 | Bearer Token (크리에이터) |
요청
POST /ai/contract/1/otp/verify HTTP/1.1
Host: api.glowb.com
Authorization: Bearer {access_token}
Content-Type: application/json
{
"otpCode": "123456"
}curl -X POST "https://api.glowb.com/ai/contract/1/otp/verify" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{"otpCode": "123456"}'const response = await fetch('/ai/contract/1/otp/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
otpCode: '123456',
}),
});
const result = await response.json();Path Parameters
Prop
Type
Request Body
Prop
Type
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "본인 인증이 완료되었습니다.",
"data": {
"contractId": 1,
"applicationId": 101,
"status": "OTP_VERIFIED",
"campaignTitle": "여름 선크림 캠페인",
"collabNo": 123,
"stageName": "뷰티크리에이터A",
"realName": "홍길동",
"signatureImageUrl": null,
"signedPdfUrl": null,
"signedAt": null
}
}응답은 ContractDetailResponseDto와 동일한 구조입니다.
에러 응답
인증번호 불일치 또는 만료 (400)
{
"status": 400,
"code": "CONTRACT_OTP_INVALID",
"message": "인증번호가 일치하지 않거나 만료되었습니다.",
"data": null
}유효성 검증 실패 (400)
{
"status": 400,
"code": "VALIDATION_ERROR",
"message": "인증번호는 6자리입니다",
"data": null
}