주문상품 플로우에 상점 사건 보내기
현장 단말·연동이 보내는 사건(`custom.<이름>`, 예: 티켓 입장 `custom.CHECKED_IN`)을 플로우에 넣는다. 지금 상태에 그 사건을 받는 연결선이 없으면 409 `FLOW_EVENT_NOT_ACCEPTED`, `custom.`·`app.`으로 시작하지 않으면 400 `FLOW_EVENT_KEY_INVALID`다. 앱 사건 `app.<handle>.<이름>`은 그 앱의 설치 토큰으로만 보내고 매니페스트 `flow.events`에 있는 이름이어야 한다(아니면 403 `FLOW_EVENT_APP_FORBIDDEN`). `Idempotency-Key`로 재시도가 안전하다.
현장 단말·연동이 보내는 사건(custom.<이름>, 예: 티켓 입장 custom.CHECKED_IN)을 플로우에 넣는다. 지금 상태에 그 사건을 받는 연결선이 없으면 409 FLOW_EVENT_NOT_ACCEPTED, custom.·app.으로 시작하지 않으면 400 FLOW_EVENT_KEY_INVALID다. 앱 사건 app.<handle>.<이름>은 그 앱의 설치 토큰으로만 보내고 매니페스트 flow.events에 있는 이름이어야 한다(아니면 403 FLOW_EVENT_APP_FORBIDDEN). Idempotency-Key로 재시도가 안전하다.
accessTokenAuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
orderItemId*stringkey*stringX-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
idempotency-key?string멱등키. 같은 키로 다시 보내면 처음 결과를 돌려주고 한 번만 적용한다. 재시도에는 같은 키를 쓴다
length <= 255application/json- body
input?행동 입력 — 행동의 input 폼 키
성공
application/json- response
meta*data*error*|nullcurl -X POST 'https://api.sayren.io/v1/order-items/string/events/string' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{}'{ "meta": { "status": 200, "code": "OK", "message": "OK", "isSuccess": true }, "data": { "status": "COMPLETED", "flowState": { "key": "string", "label": "string", "coreStatus": "PAYMENT_WAITING", "claimStatus": "REQUESTED", "message": "string", "enteredAt": "string", "deadlineAt": "string", "attachments": [ "string" ], "earlierAttachments": [ "string" ], "inputs": { "by": "string", "values": [ { "key": "string", "label": "string", "type": "string", "value": "string", "display": "string" } ] }, "progress": true, "fields": { "property1": "string", "property2": "string" } }, "actions": [ { "key": "string", "label": "string", "mode": "INSTANT", "enabled": true, "disabled": { "reason": "string", "message": "string" }, "availableUntil": "string", "subflow": "string", "input": [ { "key": "string", "type": "string", "required": true, "label": "string", "placeholder": "string", "maxLength": 0, "maxFiles": 0, "options": [ "string" ], "when": { "key": "string", "in": [ "string" ] } } ], "partialQuantity": true, "attachments": "REQUIRED" } ], "affectedOrderItemIds": [ "string" ] }, "error": null}