결제 설정 변경 (우선순위·결제 도메인)
PG 우선순위(스토어프론트 결제 옵션 목록의 PG 순서)와 결제 도메인을 바꾼다. 보낸 항목만 바꾼다. `priority`에는 연결된 PG를 모두 한 번씩 나열한다. `checkoutOrigins`는 결제를 마친 구매자가 돌아올 스토어프론트 origin 목록이다(https, 경로 없음) — 결제 시작의 `returnUrl`이 이 안이어야 하고, 비어 있으면 실결제를 시작할 수 없다. 상점 플랫폼에 로그인한 **OWNER 전용**이다. ADMIN·STAFF, API 토큰(PAT), M2M 클라이언트, 3rd-party 앱이 위임받은 토큰은 스코프가 있어도 `403 INSUFFICIENT_ROLE`이다.
PG 우선순위(스토어프론트 결제 옵션 목록의 PG 순서)와 결제 도메인을 바꾼다. 보낸 항목만 바꾼다. priority에는 연결된 PG를 모두 한 번씩 나열한다. checkoutOrigins는 결제를 마친 구매자가 돌아올 스토어프론트 origin 목록이다(https, 경로 없음) — 결제 시작의 returnUrl이 이 안이어야 하고, 비어 있으면 실결제를 시작할 수 없다. 상점 플랫폼에 로그인한 OWNER 전용이다. ADMIN·STAFF, API 토큰(PAT), M2M 클라이언트, 3rd-party 앱이 위임받은 토큰은 스코프가 있어도 403 INSUFFICIENT_ROLE이다.
accessTokenAuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
X-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
application/json- body
priority?array<>PG 우선순위(앞이 1순위) — 스토어프론트 결제 옵션 목록의 PG 순서다. 연결된 PG 수만큼 모두 한 번씩 나열한다(길이 상한 50은 안전장치다). 빠지거나 중복되거나 연결되지 않은 PG가 있으면 INVALID_PRIORITY
1 <= items <= 50checkoutOrigins?array<>결제 도메인 — 통째로 바꾼다. 결제를 마친 구매자가 돌아올 스토어프론트 origin(https://shop.example.com, https·경로 없음). 결제 시작의 returnUrl은 이 목록 안이어야 한다. 비어 있으면 실결제를 시작할 수 없다(테스트 결제는 localhost 허용). 같은 도메인을 PG 가맹 정보에도 등록한다. 형식이 틀리면 INVALID_CHECKOUT_ORIGIN
items <= 20성공
application/json- response
meta*data*error*|nullcurl -X PUT 'https://api.sayren.io/v1/store/payment-settings' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{}'{ "meta": { "status": 200, "code": "OK", "message": "OK", "isSuccess": true }, "data": { "checkoutOrigins": [ "string" ], "providers": [ { "provider": "tosspayments", "displayName": "string", "connected": true, "enabled": true, "priority": 0, "environment": "TEST", "publicConfig": { "clientKey": "string" }, "secrets": [ { "field": "string", "configured": true, "masked": "string" } ], "lastVerification": { "result": "SUCCESS", "message": "string", "checkedAt": "string" }, "updatedAt": "string", "sandboxMode": true, "credentialSets": { "TEST": { "environment": "TEST", "publicConfig": { "clientKey": "string" }, "secrets": [ { "field": "string", "configured": true, "masked": "string" } ], "lastVerification": { "result": "SUCCESS", "message": "string", "checkedAt": "string" }, "updatedAt": "string" }, "LIVE": { "environment": "TEST", "publicConfig": { "clientKey": "string" }, "secrets": [ { "field": "string", "configured": true, "masked": "string" } ], "lastVerification": { "result": "SUCCESS", "message": "string", "checkedAt": "string" }, "updatedAt": "string" } }, "liveGate": { "status": "LOCKED", "conditions": [ { "code": "TEST_CONNECTION", "met": true, "message": "string" } ], "openedAt": "string" }, "easyPayProviders": [ "string" ], "retiredCredentialCount": 0, "routingExclusion": null } ], "environment": "TEST", "candidates": [], "warnings": [] }, "error": null}