sayren Docs
Payments

결제 승인

결제창이 돌려준 PG 승인 키(`pgToken`)로 결제를 승인하고 주문을 만든다. `attemptId`(결제창이 돌려준 주문번호)를 생략하면 현재 결제 시도를 승인한다. 같은 `paymentId`+`pgToken` 재호출은 처음 결과를 그대로 돌려준다(멱등). `Idempotency-Key` 헤더도 지원한다. 카드 거절(402) 뒤에는 결제가 닫히지 않아 다른 결제 수단으로 다시 시도할 수 있다. 승인 결과를 아직 모르면 409 `PAYMENT_RESULT_UNKNOWN`이며, 서버가 결제사에 확인해 확정한다(주문 내역으로 확인).

POST
/storefront/v1/payments/{paymentId}/confirm

결제창이 돌려준 PG 승인 키(pgToken)로 결제를 승인하고 주문을 만든다. attemptId(결제창이 돌려준 주문번호)를 생략하면 현재 결제 시도를 승인한다. 같은 paymentId+pgToken 재호출은 처음 결과를 그대로 돌려준다(멱등). Idempotency-Key 헤더도 지원한다. 카드 거절(402) 뒤에는 결제가 닫히지 않아 다른 결제 수단으로 다시 시도할 수 있다. 승인 결과를 아직 모르면 409 PAYMENT_RESULT_UNKNOWN이며, 서버가 결제사에 확인해 확정한다(주문 내역으로 확인).

AuthorizationBearer <token>

회원 accessToken

In: header

Path Parameters

paymentId*string

Header Parameters

idempotency-key*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

pgToken*string

PG 승인 키 (토스 paymentKey, 포트원 txId)

Length1 <= length
attemptId?string

승인할 결제 시도 id (결제창이 돌려준 주문번호). 생략하면 현재 시도

Length1 <= length

Response Body

application/json

curl -X POST "https://example.com/storefront/v1/payments/string/confirm" \  -H "idempotency-key: string" \  -H "Content-Type: application/json" \  -d '{    "pgToken": "string"  }'
{  "meta": {    "status": 0,    "code": "OK",    "message": "string",    "isSuccess": true  },  "data": {    "orderId": "string",    "status": "PAID",    "totalAmount": -9007199254740991,    "paidAt": "string"  },  "error": null}