- 단계 1
요청에 서명
타임스탬프, 메서드, 경로, 본문 해시의 HMAC-SHA256. 키는 귀사 서버에만 둡니다.
X-Shop-Id: shop_… X-Timestamp: 1793400000 X-Signature: hex(HMAC-SHA256(secret_key, timestamp ⏎ METHOD ⏎ path ⏎ sha256(body))) - 단계 2
결제 생성
금액은 최소 단위. 같은 Idempotency-Key로 다시 보내면 같은 결제가 반환됩니다.
POST /v1/payments Idempotency-Key: 4f1c… { "orderId": "A-1001", "amount": 24990, "currency": "EUR", "returnUrl": "https://shop.example/thanks" } - 단계 3
고객을 결제로 안내
결제 페이지가 국가와 통화에 맞는 수단을 보여 주고, 결제를 받은 뒤 고객을 귀사로 돌려보냅니다.
→ 201 { "id": "pay_…", "status": "created", "checkoutUrl": "https://pay…/c/…" } - 단계 4
웹훅 수신
서명을 확인하고 주문을 결제 완료로 표시하세요. 2xx 응답이 없으면 이틀간 재시도합니다.
POST https://shop.example/payos/webhook X-Payos-Signature: v1=… { "type": "payment.succeeded", "data": { "orderId": "A-1001", … } }