# 결제 (Purchase)

결제 관련 사용자 행동 수집 API

## 사용자 행동수집 - 결제취소

> 결제취소 수집 API

```json
{"openapi":"3.1.0","info":{"title":"젠서 이벤트 수집 API (기본)","version":"1.0.0"},"tags":[{"name":"결제 (Purchase)","description":"결제 관련 사용자 행동 수집 API"}],"servers":[{"url":"https://statistics.genser.app","description":"Production"},{"url":"http://localhost","description":"Local Development (포트 80)"},{"url":"http://localhost:8080","description":"Local Development (포트 8080)"}],"paths":{"/actions/purchase/cancel":{"post":{"summary":"사용자 행동수집 - 결제취소","description":"결제취소 수집 API","tags":["결제 (Purchase)"],"parameters":[{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"컨텐츠 타입"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"멱등성 키 - 클라이언트가 호출시 전달해야 함 (UUID)"},{"name":"serviceKey","in":"header","required":true,"schema":{"type":"string"},"description":"서비스키"},{"name":"requestId","in":"header","required":true,"schema":{"type":"string"},"description":"리퀘스트 아이디"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsPurchaseCancelEvent"}}}},"responses":{"200":{"description":"수집 성공"},"400":{"description":"잘못된 요청"},"503":{"description":"서비스 일시 불가"}}}}},"components":{"schemas":{"ActionsPurchaseCancelEvent":{"title":"사용자 행동수집 - 결제취소","description":"사용자가 결제를 취소하는 행동을 전송","type":"object","required":["time","source","data"],"properties":{"specversion":{"type":"string","description":"스펙 버전","enum":["1.0.0"]},"id":{"type":"string","description":"이벤트 고유 식별자","enum":["EVT-CANCEL-PURCHASE"]},"type":{"type":"string","description":"이벤트 유형","enum":["cancel_purchase"]},"time":{"type":"string","description":"ISO 8601 UTC 이벤트 생성시간","format":"date-time"},"source":{"type":"string","description":"이벤트 발생 출처"},"datacontenttype":{"type":"string","description":"데이터 컨텐츠 타입","enum":["application/ld+json"]},"dataschema":{"type":"string","description":"데이터 스키마 경로","enum":["https://api.genser.app/schema/actions/purchase_cancel.json"]},"data":{"type":"object","description":"이벤트 데이터 객체","required":["agent","object"],"properties":{"@context":{"type":"string","description":"스키마 context","enum":["https://schema.org/"]},"@type":{"type":"string","description":"액션 유형","enum":["CancelAction"]},"agent":{"type":"object","description":"행위자 (Person)","required":["identifier"],"properties":{"@type":{"type":"string","enum":["Person"]},"identifier":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"행위자 아이디 속성명"},"value":{"type":"string","description":"행위자 아이디 값"}}},"type":"array","description":"행위자 식별자 목록 (userId, memberId, cookieId 는 필수로 추가해야 함, 속성의 추가가 필요할 경우 협의)"},"gender":{"type":"string","enum":["Female","Male","https://schema.org/Female","https://schema.org/Male"]},"additionalProperty":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"추가 속성 필드명"},"value":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"추가 속성 필드 값"}}},"type":"array","description":"행위자 추가 속성 (회원등급, 연령 등)"}}},"object":{"oneOf":[{"$ref":"#/components/schemas/ActionsPurchaseCancelOrderItem"},{"type":"array","items":{"$ref":"#/components/schemas/ActionsPurchaseCancelOrderItem"}}]},"target":{"type":"object","description":"엔드포인트 정보","required":["urlTemplate"],"properties":{"@type":{"type":"string","enum":["EntryPoint"]},"urlTemplate":{"type":"string","description":"검색 URL"}}}}}}},"ActionsPurchaseCancelOrderItem":{"description":"구매정보","type":"object","required":["orderedItem","orderQuantity"],"properties":{"@type":{"type":"string","enum":["OrderItem"]},"orderedItem":{"$ref":"#/components/schemas/ActionsPurchaseCancelProduct"},"orderQuantity":{"type":"number","description":"수량"}}},"ActionsPurchaseCancelProduct":{"description":"상품 객체","type":"object","required":["sku","name","offers"],"properties":{"@type":{"type":"string","enum":["Product"]},"sku":{"type":"string","description":"상품 고유 식별자, 상품코드 (SKU)"},"name":{"description":"상품명","oneOf":[{"description":"단순 문자열","type":"string"},{"description":"다국어 객체","type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}},{"description":"다국어 배열","type":"array","items":{"type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}}}]},"offers":{"$ref":"#/components/schemas/ActionsPurchaseCancelOffer"}}},"ActionsPurchaseCancelOffer":{"description":"수량/가격 객체","type":"object","required":["price","priceCurrency"],"properties":{"@type":{"type":"string","enum":["Offer"]},"price":{"type":"number","description":"판매가격"},"priceCurrency":{"type":"string","description":"ISO 4217 통화코드 (예: KRW, USD, JPY)"}}}}}}
```

## 사용자 행동수집 - 결제시작

> 결제시작 수집 API

```json
{"openapi":"3.1.0","info":{"title":"젠서 이벤트 수집 API (기본)","version":"1.0.0"},"tags":[{"name":"결제 (Purchase)","description":"결제 관련 사용자 행동 수집 API"}],"servers":[{"url":"https://statistics.genser.app","description":"Production"},{"url":"http://localhost","description":"Local Development (포트 80)"},{"url":"http://localhost:8080","description":"Local Development (포트 8080)"}],"paths":{"/actions/purchase/checkout":{"post":{"summary":"사용자 행동수집 - 결제시작","description":"결제시작 수집 API","tags":["결제 (Purchase)"],"parameters":[{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"컨텐츠 타입"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"멱등성 키 - 클라이언트가 호출시 전달해야 함 (UUID)"},{"name":"serviceKey","in":"header","required":true,"schema":{"type":"string"},"description":"서비스키"},{"name":"requestId","in":"header","required":true,"schema":{"type":"string"},"description":"리퀘스트 아이디"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsPurchaseCheckoutEvent"}}}},"responses":{"200":{"description":"수집 성공"},"400":{"description":"잘못된 요청"},"503":{"description":"서비스 일시 불가"}}}}},"components":{"schemas":{"ActionsPurchaseCheckoutEvent":{"title":"사용자 행동수집 - 결제시작","description":"사용자가 결제를 시작하는 행동을 전송","type":"object","required":["time","source","data"],"properties":{"specversion":{"type":"string","description":"스펙 버전","enum":["1.0.0"]},"id":{"type":"string","description":"이벤트 고유 식별자","enum":["EVT-START-CHECKOUT"]},"type":{"type":"string","description":"이벤트 유형","enum":["start_checkout"]},"time":{"type":"string","description":"ISO 8601 UTC 이벤트 생성시간","format":"date-time"},"source":{"type":"string","description":"이벤트 발생 출처"},"datacontenttype":{"type":"string","description":"데이터 컨텐츠 타입","enum":["application/ld+json"]},"dataschema":{"type":"string","description":"데이터 스키마 경로","enum":["https://api.genser.app/schema/actions/purchase_checkout.json"]},"data":{"type":"object","description":"이벤트 데이터 객체","required":["agent","object"],"properties":{"@context":{"type":"string","description":"스키마 context","enum":["https://schema.org/"]},"@type":{"type":"string","description":"액션 유형","enum":["CheckoutAction"]},"agent":{"type":"object","description":"행위자 (Person)","required":["identifier"],"properties":{"@type":{"type":"string","enum":["Person"]},"identifier":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"행위자 아이디 속성명"},"value":{"type":"string","description":"행위자 아이디 값"}}},"type":"array","description":"행위자 식별자 목록 (userId, memberId, cookieId 는 필수로 추가해야 함, 속성의 추가가 필요할 경우 협의)"},"gender":{"type":"string","enum":["Female","Male","https://schema.org/Female","https://schema.org/Male"]},"additionalProperty":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"추가 속성 필드명"},"value":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"추가 속성 필드 값"}}},"type":"array","description":"행위자 추가 속성 (회원등급, 연령 등)"}}},"object":{"oneOf":[{"$ref":"#/components/schemas/ActionsPurchaseCheckoutOrderItem"},{"type":"array","items":{"$ref":"#/components/schemas/ActionsPurchaseCheckoutOrderItem"}}]},"target":{"type":"object","description":"엔드포인트 정보","required":["urlTemplate"],"properties":{"@type":{"type":"string","enum":["EntryPoint"]},"urlTemplate":{"type":"string","description":"검색 URL"}}}}}}},"ActionsPurchaseCheckoutOrderItem":{"description":"구매정보","type":"object","required":["orderedItem","orderQuantity"],"properties":{"@type":{"type":"string","enum":["OrderItem"]},"orderedItem":{"$ref":"#/components/schemas/ActionsPurchaseCheckoutProduct"},"orderQuantity":{"type":"number","description":"수량"}}},"ActionsPurchaseCheckoutProduct":{"description":"상품 객체","type":"object","required":["sku","name","offers"],"properties":{"@type":{"type":"string","enum":["Product"]},"sku":{"type":"string","description":"상품 고유 식별자, 상품코드 (SKU)"},"name":{"description":"상품명","oneOf":[{"description":"단순 문자열","type":"string"},{"description":"다국어 객체","type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}},{"description":"다국어 배열","type":"array","items":{"type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}}}]},"offers":{"$ref":"#/components/schemas/ActionsPurchaseCheckoutOffer"}}},"ActionsPurchaseCheckoutOffer":{"description":"수량/가격 객체","type":"object","required":["price","priceCurrency"],"properties":{"@type":{"type":"string","enum":["Offer"]},"price":{"type":"number","description":"판매가격"},"priceCurrency":{"type":"string","description":"ISO 4217 통화코드 (예: KRW, USD, JPY)"}}}}}}
```

## 사용자 행동수집 - 결제완료

> 결제완료 수집 API

```json
{"openapi":"3.1.0","info":{"title":"젠서 이벤트 수집 API (기본)","version":"1.0.0"},"tags":[{"name":"결제 (Purchase)","description":"결제 관련 사용자 행동 수집 API"}],"servers":[{"url":"https://statistics.genser.app","description":"Production"},{"url":"http://localhost","description":"Local Development (포트 80)"},{"url":"http://localhost:8080","description":"Local Development (포트 8080)"}],"paths":{"/actions/purchase/complete":{"post":{"summary":"사용자 행동수집 - 결제완료","description":"결제완료 수집 API","tags":["결제 (Purchase)"],"parameters":[{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"컨텐츠 타입"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"멱등성 키 - 클라이언트가 호출시 전달해야 함 (UUID)"},{"name":"serviceKey","in":"header","required":true,"schema":{"type":"string"},"description":"서비스키"},{"name":"requestId","in":"header","required":true,"schema":{"type":"string"},"description":"리퀘스트 아이디"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsPurchaseCompleteEvent"}}}},"responses":{"200":{"description":"수집 성공"},"400":{"description":"잘못된 요청"},"503":{"description":"서비스 일시 불가"}}}}},"components":{"schemas":{"ActionsPurchaseCompleteEvent":{"title":"사용자 행동수집 - 결제완료","description":"사용자가 결제를 완료하는 행동을 전송","type":"object","required":["time","source","data"],"properties":{"specversion":{"type":"string","description":"스펙 버전","enum":["1.0.0"]},"id":{"type":"string","description":"이벤트 고유 식별자","enum":["EVT-COMPLETE-PURCHASE"]},"type":{"type":"string","description":"이벤트 유형","enum":["complete_purchase"]},"time":{"type":"string","description":"ISO 8601 UTC 이벤트 생성시간","format":"date-time"},"source":{"type":"string","description":"이벤트 발생 출처"},"datacontenttype":{"type":"string","description":"데이터 컨텐츠 타입","enum":["application/ld+json"]},"dataschema":{"type":"string","description":"데이터 스키마 경로","enum":["https://api.genser.app/schema/actions/purchase_complete.json"]},"data":{"type":"object","description":"이벤트 데이터 객체","required":["agent","object"],"properties":{"@context":{"type":"string","description":"스키마 context","enum":["https://schema.org/"]},"@type":{"type":"string","description":"액션 유형","enum":["OrderAction"]},"agent":{"type":"object","description":"행위자 (Person)","required":["identifier"],"properties":{"@type":{"type":"string","enum":["Person"]},"identifier":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"행위자 아이디 속성명"},"value":{"type":"string","description":"행위자 아이디 값"}}},"type":"array","description":"행위자 식별자 목록 (userId, memberId, cookieId 는 필수로 추가해야 함, 속성의 추가가 필요할 경우 협의)"},"gender":{"type":"string","enum":["Female","Male","https://schema.org/Female","https://schema.org/Male"]},"additionalProperty":{"items":{"type":"object","required":["propertyID","value"],"properties":{"@type":{"type":"string","enum":["PropertyValue"]},"propertyID":{"type":"string","description":"추가 속성 필드명"},"value":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"추가 속성 필드 값"}}},"type":"array","description":"행위자 추가 속성 (회원등급, 연령 등)"}}},"object":{"oneOf":[{"$ref":"#/components/schemas/ActionsPurchaseCompleteOrderItem"},{"type":"array","items":{"$ref":"#/components/schemas/ActionsPurchaseCompleteOrderItem"}}]},"target":{"type":"object","description":"엔드포인트 정보","required":["urlTemplate"],"properties":{"@type":{"type":"string","enum":["EntryPoint"]},"urlTemplate":{"type":"string","description":"검색 URL"}}}}}}},"ActionsPurchaseCompleteOrderItem":{"description":"구매정보","type":"object","required":["orderedItem","orderQuantity"],"properties":{"@type":{"type":"string","enum":["OrderItem"]},"orderedItem":{"$ref":"#/components/schemas/ActionsPurchaseCompleteProduct"},"orderQuantity":{"type":"number","description":"수량"}}},"ActionsPurchaseCompleteProduct":{"description":"상품 객체","type":"object","required":["sku","name","offers"],"properties":{"@type":{"type":"string","enum":["Product"]},"sku":{"type":"string","description":"상품 고유 식별자, 상품코드 (SKU)"},"name":{"description":"상품명","oneOf":[{"description":"단순 문자열","type":"string"},{"description":"다국어 객체","type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}},{"description":"다국어 배열","type":"array","items":{"type":"object","required":["@value","@language"],"properties":{"@value":{"type":"string","description":"상품명 값"},"@language":{"type":"string","description":"ISO 639-1 언어코드","enum":["ko","en","ja"]}}}}]},"offers":{"$ref":"#/components/schemas/ActionsPurchaseCompleteOffer"}}},"ActionsPurchaseCompleteOffer":{"description":"수량/가격 객체","type":"object","required":["price","priceCurrency"],"properties":{"@type":{"type":"string","enum":["Offer"]},"price":{"type":"number","description":"판매가격"},"priceCurrency":{"type":"string","description":"ISO 4217 통화코드 (예: KRW, USD, JPY)"}}}}}}
```
