스탬프 도장 제거 API (v2)

스탬프 도장 제거 API는 생성된 스탬프에서 도장을 1개 차감하는 기능을 제공합니다.

정상적인 적립 흐름보다는 오적립 수정, 이벤트 조건 변경, 사용자 클레임 대응 등 예외 상황을 처리하기 위한 보정 도구입니다.
단, 도장 개수는 0 이하로 감소하지 않습니다.

이 API는 퍼스널 요금제 이상에서만 사용할 수 있습니다.

PUT

/api/stamp/v2/remove

{
    "stampIdx": 394,
    "stamps": 1,
    "processStoreIdx": 22
}

Request Parameters

stampIdx integer required
스탬프 IDX.
stamps integer
적립(차감)할 도장 수. 보내지 않으면 1이며 0보다 커야 합니다.
카드 최대치를 넘거나 0 미만이 되는 분량은 서버가 잘라냅니다. 실제 변화량이 0이면 이력도 웹훅도 만들지 않습니다.
processStoreIdx integer
이 요청이 실제로 처리되는 매장 IDX. 보내면 조직 소유·활성 상태·권한을 서버가 확인한 뒤 처리 이력에 기록합니다.
처리 지점은 요청으로 받지 않고 이 매장에서 서버가 확인합니다. 발행 매장(storeIdx)과는 다른 값입니다.
{
    "code": 0,
    "message": "",
    "result": null
}

Response Parameters

code integer
응답 코드: 0 = 성공, 그 외 값 = 오류
message string
응답 메시지입니다. 응답 코드가 0이 아니면, 오류 관련 메시지가 반환됩니다.
result null

숫자 파라미터 검증

숫자로 받는 파라미터에 숫자가 아닌 값이나 서버가 처리할 수 있는 범위를 넘는 숫자를 보내면 요청은 400(오류 코드 653)으로 즉시 거부됩니다.

이 경우 스탬프 정보와 적립 이력은 전혀 바뀌지 않으며, 이벤트 기록과 Webhook 전송도 발생하지 않습니다. 실패 응답을 받았다면 아무것도 저장되지 않은 상태입니다.

처리 매장 지정

파라미터 의미 설명
processStoreIdx 처리 매장 이 요청이 실제로 처리되는 매장입니다. 선택 항목이며, 보내면 조직 소유·활성 상태·권한을 서버가 확인한 뒤 처리 이력에 기록합니다.

처리 지점은 요청으로 받지 않습니다. 지정한 매장이 속한 지점을 서버가 확인해 기록합니다.

사용 가능 범위가 BRANCH인 경우, 확인된 처리 매장의 지점이 사용 가능 지점과 같거나 해당 지점의 현장 비밀번호로 인증해야 처리됩니다. 둘 다 없으면 거부됩니다.

사용할 수 없는 파라미터 — branchIdx(발행 지점), storeIdx(발행 매장), useScope(사용 가능 범위), useBranchIdx(사용 가능 지점)는 이미 저장된 발행 정책이라 이 API로 바꿀 수 없습니다. 함께 보내면 400(오류 코드 1227)으로 거부됩니다.

Idempotency-Key

네트워크 오류로 응답을 받지 못했을 때 안전하게 재시도하려면 Idempotency-Key 헤더에 요청마다 고유한 값을 담아 보냅니다. 본문의 requestId로도 보낼 수 있으며, 둘 다 보내고 값이 다르면 거부됩니다. 허용 형식은 영문·숫자와 . _ : - 를 조합한 8~64자입니다.

같은 key로 같은 요청을 다시 보내면 다시 처리하지 않고 최초 결과를 그대로 돌려줍니다. 중복으로 처리되지 않으며 웹훅도 다시 발송되지 않습니다.

같은 key는 같은 논리 작업의 재시도에만 사용하세요. 서로 다른 작업에는 반드시 새 key를 사용해야 합니다. 같은 key를 다른 요청 내용이나 다른 작업에 사용하면 409로 거부될 수 있습니다.

도장 차감이 필요한 상황

이 API는 자주 호출되는 기능이 아니라 문제 상황을 해결하기 위한 관리 도구입니다.
다음과 같은 경우에 사용됩니다.

  • 동일 이벤트가 중복 처리되어 도장이 두 번 적립된 경우
  • 시스템 오류로 도장이 잘못 증가된 경우
  • 이벤트 조건 변경으로 기존 적립 데이터를 재조정해야 하는 경우
  • 잘못된 적립을 취소해야 하는 경우

잘못된 적립 데이터를 방치하면 리워드 비용이 증가하고 이벤트 신뢰도가 하락합니다.
차감 API는 이를 즉시 바로잡는 수단입니다.

도장 추가 API와의 관계

두 API는 반대 방향으로 동작하지만 역할이 명확히 구분됩니다.

  1. Add Stamp → 정상 이벤트 흐름에서 고객 행동을 기록
  2. Remove Stamp → 예외 상황에서 데이터를 보정·롤백

Add Stamp API를 호출하는 모든 시나리오에서 취소나 실패 케이스를 함께 설계하고,
그 처리 흐름에 Remove Stamp를 연결해 두는 것이 안정적인 스탬프 시스템의 기본 구조입니다.

운영 관점에서의 중요 포인트

스탬프 차감 API는 자주 사용되는 기능이 아니라 문제 상황을 해결하기 위한 핵심 관리 API입니다.

  • 잘못된 데이터 방치 시 이벤트 신뢰도 하락
  • 과적립 상태 유지 시 리워드 비용 증가
  • 사용자 경험 저하 가능성

따라서 반드시 로그 기록 및 관리자 권한 제어와 함께 사용하는 것이 권장됩니다.

사용 시 주의사항

  • 도장은 0 이하로 감소하지 않으므로, 차감 전에 검증 API로 현재 stamps 값을 먼저 확인하는 것이 권장됩니다.
  • 반복 호출 시 의도하지 않은 과도한 차감이 발생할 수 있습니다.
  • 클라이언트에서 직접 호출하는 구조는 위험합니다. 서버에서 조건을 검증한 후 제한적으로 호출하는 방식으로 설계하세요.
  • 차감 이력은 별도로 로그를 기록하고 관리자 권한 제어와 함께 운영하는 것이 권장됩니다.