@cmarket/partner-sdk 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -84
- package/api/oauth-api.ts +6 -2
- package/api/partner-v1-api.ts +4 -2
- package/api/partner-v2-api.ts +2 -2
- package/api.ts +2 -2
- package/base.ts +3 -3
- package/common.ts +2 -2
- package/configuration.ts +2 -2
- package/dist/api/oauth-api.d.ts +2 -2
- package/dist/api/oauth-api.js +2 -2
- package/dist/api/partner-v1-api.d.ts +2 -2
- package/dist/api/partner-v1-api.js +2 -2
- package/dist/api/partner-v2-api.d.ts +2 -2
- package/dist/api/partner-v2-api.js +2 -2
- package/dist/api.d.ts +2 -2
- package/dist/api.js +2 -2
- package/dist/base.d.ts +2 -2
- package/dist/base.js +3 -3
- package/dist/common.d.ts +2 -2
- package/dist/common.js +2 -2
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +2 -2
- package/dist/esm/api/oauth-api.d.ts +2 -2
- package/dist/esm/api/oauth-api.js +2 -2
- package/dist/esm/api/partner-v1-api.d.ts +2 -2
- package/dist/esm/api/partner-v1-api.js +2 -2
- package/dist/esm/api/partner-v2-api.d.ts +2 -2
- package/dist/esm/api/partner-v2-api.js +2 -2
- package/dist/esm/api.d.ts +2 -2
- package/dist/esm/api.js +2 -2
- package/dist/esm/base.d.ts +2 -2
- package/dist/esm/base.js +3 -3
- package/dist/esm/common.d.ts +2 -2
- package/dist/esm/common.js +2 -2
- package/dist/esm/configuration.d.ts +2 -2
- package/dist/esm/configuration.js +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/models/acceptance-result-response-dto.d.ts +2 -2
- package/dist/esm/models/acceptance-result-response-dto.js +2 -2
- package/dist/esm/models/award-registered-response-dto.d.ts +2 -2
- package/dist/esm/models/award-registered-response-dto.js +2 -2
- package/dist/esm/models/bid-bond-dto.d.ts +2 -2
- package/dist/esm/models/bid-bond-dto.js +2 -2
- package/dist/esm/models/bid-contract-documents-batch-request-dto.d.ts +2 -2
- package/dist/esm/models/bid-contract-documents-batch-request-dto.js +2 -2
- package/dist/esm/models/bid-contract-documents-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-contract-documents-response-dto.js +2 -2
- package/dist/esm/models/bid-created-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-created-response-dto.js +2 -2
- package/dist/esm/models/bid-document-dto.d.ts +2 -2
- package/dist/esm/models/bid-document-dto.js +2 -2
- package/dist/esm/models/bid-failed-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-failed-response-dto.js +2 -2
- package/dist/esm/models/bid-failure-reason.d.ts +2 -2
- package/dist/esm/models/bid-failure-reason.js +2 -2
- package/dist/esm/models/bid-item-dto.d.ts +2 -2
- package/dist/esm/models/bid-item-dto.js +2 -2
- package/dist/esm/models/bid-manager-dto.d.ts +2 -2
- package/dist/esm/models/bid-manager-dto.js +2 -2
- package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/esm/models/bid-result-participant-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-participant-dto.js +2 -2
- package/dist/esm/models/bid-result-product-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-product-dto.js +2 -2
- package/dist/esm/models/bid-result-winner-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-winner-dto.js +2 -2
- package/dist/esm/models/bid-results-batch-request-dto.d.ts +2 -2
- package/dist/esm/models/bid-results-batch-request-dto.js +2 -2
- package/dist/esm/models/bid-results-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-results-response-dto.js +2 -2
- package/dist/esm/models/bid-settlement-line-item-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-line-item-dto.js +2 -2
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-participant-dto.js +2 -2
- package/dist/esm/models/bid-settlement-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-response-dto.js +2 -2
- package/dist/esm/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-statement-response-dto.js +2 -2
- package/dist/esm/models/bid-status.d.ts +2 -2
- package/dist/esm/models/bid-status.js +2 -2
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +2 -2
- package/dist/esm/models/complete-acceptance-request-dto.js +2 -2
- package/dist/esm/models/contract-document-item-dto.d.ts +2 -2
- package/dist/esm/models/contract-document-item-dto.js +2 -2
- package/dist/esm/models/create-bid-request-dto.d.ts +2 -2
- package/dist/esm/models/create-bid-request-dto.js +2 -2
- package/dist/esm/models/file-uploaded-response-dto.d.ts +2 -2
- package/dist/esm/models/file-uploaded-response-dto.js +2 -2
- package/dist/esm/models/health-response-dto.d.ts +2 -2
- package/dist/esm/models/health-response-dto.js +2 -2
- package/dist/esm/models/hierarchical-region-dto.d.ts +2 -2
- package/dist/esm/models/hierarchical-region-dto.js +2 -2
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed-request-dto.js +2 -2
- package/dist/esm/models/negotiation-score-dto.d.ts +2 -2
- package/dist/esm/models/negotiation-score-dto.js +2 -2
- package/dist/esm/models/negotiation-scored-response-dto.d.ts +2 -2
- package/dist/esm/models/negotiation-scored-response-dto.js +2 -2
- package/dist/esm/models/oauth-error-response-dto.d.ts +28 -0
- package/dist/esm/models/oauth-error-response-dto.js +19 -0
- package/dist/esm/models/preconditions-dto.d.ts +2 -2
- package/dist/esm/models/preconditions-dto.js +2 -2
- package/dist/esm/models/problem-details-dto.d.ts +2 -2
- package/dist/esm/models/problem-details-dto.js +2 -2
- package/dist/esm/models/register-award-request-dto.d.ts +2 -2
- package/dist/esm/models/register-award-request-dto.js +2 -2
- package/dist/esm/models/request-split-invoice-request-dto.d.ts +2 -2
- package/dist/esm/models/request-split-invoice-request-dto.js +2 -2
- package/dist/esm/models/split-invoice-response-dto.d.ts +2 -2
- package/dist/esm/models/split-invoice-response-dto.js +2 -2
- package/dist/esm/models/statement-document-dto.d.ts +2 -2
- package/dist/esm/models/statement-document-dto.js +2 -2
- package/dist/esm/models/statement-product-dto.d.ts +2 -2
- package/dist/esm/models/statement-product-dto.js +2 -2
- package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +2 -2
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +2 -2
- package/dist/esm/models/token-request-dto.d.ts +2 -2
- package/dist/esm/models/token-request-dto.js +2 -2
- package/dist/esm/models/token-response-dto.d.ts +2 -2
- package/dist/esm/models/token-response-dto.js +2 -2
- package/dist/esm/models/upload-file-request-dto.d.ts +2 -2
- package/dist/esm/models/upload-file-request-dto.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/models/acceptance-result-response-dto.d.ts +2 -2
- package/dist/models/acceptance-result-response-dto.js +2 -2
- package/dist/models/award-registered-response-dto.d.ts +2 -2
- package/dist/models/award-registered-response-dto.js +2 -2
- package/dist/models/bid-bond-dto.d.ts +2 -2
- package/dist/models/bid-bond-dto.js +2 -2
- package/dist/models/bid-contract-documents-batch-request-dto.d.ts +2 -2
- package/dist/models/bid-contract-documents-batch-request-dto.js +2 -2
- package/dist/models/bid-contract-documents-response-dto.d.ts +2 -2
- package/dist/models/bid-contract-documents-response-dto.js +2 -2
- package/dist/models/bid-created-response-dto.d.ts +2 -2
- package/dist/models/bid-created-response-dto.js +2 -2
- package/dist/models/bid-document-dto.d.ts +2 -2
- package/dist/models/bid-document-dto.js +2 -2
- package/dist/models/bid-failed-response-dto.d.ts +2 -2
- package/dist/models/bid-failed-response-dto.js +2 -2
- package/dist/models/bid-failure-reason.d.ts +2 -2
- package/dist/models/bid-failure-reason.js +2 -2
- package/dist/models/bid-item-dto.d.ts +2 -2
- package/dist/models/bid-item-dto.js +2 -2
- package/dist/models/bid-manager-dto.d.ts +2 -2
- package/dist/models/bid-manager-dto.js +2 -2
- package/dist/models/bid-result-participant-attachment-dto.d.ts +2 -2
- package/dist/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/models/bid-result-participant-dto.d.ts +2 -2
- package/dist/models/bid-result-participant-dto.js +2 -2
- package/dist/models/bid-result-product-dto.d.ts +2 -2
- package/dist/models/bid-result-product-dto.js +2 -2
- package/dist/models/bid-result-winner-dto.d.ts +2 -2
- package/dist/models/bid-result-winner-dto.js +2 -2
- package/dist/models/bid-results-batch-request-dto.d.ts +2 -2
- package/dist/models/bid-results-batch-request-dto.js +2 -2
- package/dist/models/bid-results-response-dto.d.ts +2 -2
- package/dist/models/bid-results-response-dto.js +2 -2
- package/dist/models/bid-settlement-line-item-dto.d.ts +2 -2
- package/dist/models/bid-settlement-line-item-dto.js +2 -2
- package/dist/models/bid-settlement-participant-dto.d.ts +2 -2
- package/dist/models/bid-settlement-participant-dto.js +2 -2
- package/dist/models/bid-settlement-response-dto.d.ts +2 -2
- package/dist/models/bid-settlement-response-dto.js +2 -2
- package/dist/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/models/bid-statement-response-dto.js +2 -2
- package/dist/models/bid-status.d.ts +2 -2
- package/dist/models/bid-status.js +2 -2
- package/dist/models/complete-acceptance-request-dto.d.ts +2 -2
- package/dist/models/complete-acceptance-request-dto.js +2 -2
- package/dist/models/contract-document-item-dto.d.ts +2 -2
- package/dist/models/contract-document-item-dto.js +2 -2
- package/dist/models/create-bid-request-dto.d.ts +2 -2
- package/dist/models/create-bid-request-dto.js +2 -2
- package/dist/models/file-uploaded-response-dto.d.ts +2 -2
- package/dist/models/file-uploaded-response-dto.js +2 -2
- package/dist/models/health-response-dto.d.ts +2 -2
- package/dist/models/health-response-dto.js +2 -2
- package/dist/models/hierarchical-region-dto.d.ts +2 -2
- package/dist/models/hierarchical-region-dto.js +2 -2
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +1 -0
- package/dist/models/mark-bid-failed-request-dto.d.ts +2 -2
- package/dist/models/mark-bid-failed-request-dto.js +2 -2
- package/dist/models/negotiation-score-dto.d.ts +2 -2
- package/dist/models/negotiation-score-dto.js +2 -2
- package/dist/models/negotiation-scored-response-dto.d.ts +2 -2
- package/dist/models/negotiation-scored-response-dto.js +2 -2
- package/dist/models/oauth-error-response-dto.d.ts +28 -0
- package/dist/models/oauth-error-response-dto.js +22 -0
- package/dist/models/preconditions-dto.d.ts +2 -2
- package/dist/models/preconditions-dto.js +2 -2
- package/dist/models/problem-details-dto.d.ts +2 -2
- package/dist/models/problem-details-dto.js +2 -2
- package/dist/models/register-award-request-dto.d.ts +2 -2
- package/dist/models/register-award-request-dto.js +2 -2
- package/dist/models/request-split-invoice-request-dto.d.ts +2 -2
- package/dist/models/request-split-invoice-request-dto.js +2 -2
- package/dist/models/split-invoice-response-dto.d.ts +2 -2
- package/dist/models/split-invoice-response-dto.js +2 -2
- package/dist/models/statement-document-dto.d.ts +2 -2
- package/dist/models/statement-document-dto.js +2 -2
- package/dist/models/statement-product-dto.d.ts +2 -2
- package/dist/models/statement-product-dto.js +2 -2
- package/dist/models/submit-negotiation-scores-request-dto.d.ts +2 -2
- package/dist/models/submit-negotiation-scores-request-dto.js +2 -2
- package/dist/models/token-request-dto.d.ts +2 -2
- package/dist/models/token-request-dto.js +2 -2
- package/dist/models/token-response-dto.d.ts +2 -2
- package/dist/models/token-response-dto.js +2 -2
- package/dist/models/upload-file-request-dto.d.ts +2 -2
- package/dist/models/upload-file-request-dto.js +2 -2
- package/docs/OAuthErrorResponseDto.md +22 -0
- package/docs/OauthApi.md +4 -2
- package/docs/PartnerV1Api.md +53 -1
- package/docs/PartnerV2Api.md +62 -13
- package/index.ts +2 -2
- package/models/acceptance-result-response-dto.ts +2 -2
- package/models/award-registered-response-dto.ts +2 -2
- package/models/bid-bond-dto.ts +2 -2
- package/models/bid-contract-documents-batch-request-dto.ts +2 -2
- package/models/bid-contract-documents-response-dto.ts +2 -2
- package/models/bid-created-response-dto.ts +2 -2
- package/models/bid-document-dto.ts +2 -2
- package/models/bid-failed-response-dto.ts +2 -2
- package/models/bid-failure-reason.ts +2 -2
- package/models/bid-item-dto.ts +2 -2
- package/models/bid-manager-dto.ts +2 -2
- package/models/bid-result-participant-attachment-dto.ts +2 -2
- package/models/bid-result-participant-dto.ts +2 -2
- package/models/bid-result-product-dto.ts +2 -2
- package/models/bid-result-winner-dto.ts +2 -2
- package/models/bid-results-batch-request-dto.ts +2 -2
- package/models/bid-results-response-dto.ts +2 -2
- package/models/bid-settlement-line-item-dto.ts +2 -2
- package/models/bid-settlement-participant-dto.ts +2 -2
- package/models/bid-settlement-response-dto.ts +2 -2
- package/models/bid-statement-response-dto.ts +2 -2
- package/models/bid-status.ts +2 -2
- package/models/complete-acceptance-request-dto.ts +2 -2
- package/models/contract-document-item-dto.ts +2 -2
- package/models/create-bid-request-dto.ts +2 -2
- package/models/file-uploaded-response-dto.ts +2 -2
- package/models/health-response-dto.ts +2 -2
- package/models/hierarchical-region-dto.ts +2 -2
- package/models/index.ts +1 -0
- package/models/mark-bid-failed-request-dto.ts +2 -2
- package/models/negotiation-score-dto.ts +2 -2
- package/models/negotiation-scored-response-dto.ts +2 -2
- package/models/oauth-error-response-dto.ts +37 -0
- package/models/preconditions-dto.ts +2 -2
- package/models/problem-details-dto.ts +2 -2
- package/models/register-award-request-dto.ts +2 -2
- package/models/request-split-invoice-request-dto.ts +2 -2
- package/models/split-invoice-response-dto.ts +2 -2
- package/models/statement-document-dto.ts +2 -2
- package/models/statement-product-dto.ts +2 -2
- package/models/submit-negotiation-scores-request-dto.ts +2 -2
- package/models/token-request-dto.ts +2 -2
- package/models/token-response-dto.ts +2 -2
- package/models/upload-file-request-dto.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
# CMARKET V6 Partner SDK
|
|
4
4
|
|
|
5
|
-
CMARKET V6 Partner API 의 공식 클라이언트 SDK — 외부 ERP 가 입찰 등록부터
|
|
5
|
+
CMARKET V6 Partner API 의 공식 클라이언트 SDK — 외부 ERP 가 입찰 등록부터 낙찰·검수·정산까지 전 흐름을 타입 안전하게 연동합니다.
|
|
6
6
|
|
|
7
7
|
> 이 상단 섹션(설치·인증·통합 순서·에러·예제)은 CMARKET 가 관리하는 quickstart 입니다. 그 아래 `---` 구분선 이후는 OpenAPI Generator 가 매 릴리스 생성하는 **전체 엔드포인트/모델 레퍼런스**입니다.
|
|
8
8
|
|
|
9
|
+
신규 파트너는 **`/v2` (OAuth2)** 경로를 기본으로 사용하세요. **`/v1` (platform-auth)** 은 V5 호환 대체 경로입니다. `/v2` 는 8개 핵심 operation 으로 축소된 표면이며, 협상점수평가·분할계산서·계약서류조회·입찰결과 배치조회는 **`/v1` 에서만** 제공됩니다(아래 "통합 순서" 표 참조).
|
|
10
|
+
|
|
9
11
|
## 설치 (Installation)
|
|
10
12
|
|
|
11
13
|
TypeScript / Node (npm):
|
|
12
14
|
|
|
13
15
|
```bash
|
|
14
|
-
npm install @cmarket/partner-sdk@
|
|
16
|
+
npm install @cmarket/partner-sdk@4.0.0
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
Java (Maven):
|
|
@@ -20,175 +22,273 @@ Java (Maven):
|
|
|
20
22
|
<dependency>
|
|
21
23
|
<groupId>net.c-market</groupId>
|
|
22
24
|
<artifactId>partner-sdk</artifactId>
|
|
23
|
-
<version>
|
|
25
|
+
<version>4.0.0</version>
|
|
24
26
|
</dependency>
|
|
25
27
|
```
|
|
26
28
|
|
|
27
29
|
## Base URL
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
https://partner-api.c-market.net # 예시 — 확정 도메인 아님
|
|
31
|
-
```
|
|
31
|
+
단일 base URL 만 사용합니다 — operation 경로에 이미 `/v2` 또는 `/v1` 이 포함되므로 **base 에 버전을 붙이지 마세요**.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
| 환경 | Base URL |
|
|
34
|
+
| ---------- | ------------------------------------------ |
|
|
35
|
+
| production | `https://partner-api.c-market.net` |
|
|
36
|
+
| staging | `https://partner-api.staging.c-market.net` |
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
`client_id` / `client_secret`(또는 `/v1` 의 platform id/secret)은 온보딩 시 CMARKET 운영팀이 파트너별로 발급·안내합니다.
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
## 인증 (Authentication)
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
### `/v2` — OAuth2 Client Credentials (권장)
|
|
43
|
+
|
|
44
|
+
`/v2` 호출은 OAuth2 client_credentials 그랜트(RFC 6749 §4.4)로 발급한 JWT access token 을 `Authorization: Bearer <token>` 헤더에 실어야 합니다.
|
|
45
|
+
|
|
46
|
+
1. 토큰 발급: `POST {BASE}/oauth/token` (버전 prefix 없음)
|
|
40
47
|
- body(form 또는 JSON): `grant_type=client_credentials`, `client_id`, `client_secret`, (선택) `scope` (space-separated)
|
|
41
48
|
- 응답(RFC 6749 §5.1, snake_case): `{ access_token, token_type: "Bearer", expires_in, scope }`
|
|
42
|
-
- access_token
|
|
43
|
-
2. 이후 모든
|
|
49
|
+
- access_token 은 JWT 이며 TTL 900초(15분) — `iss=cmarket-partner-api`, `aud=cmarket-v6-partners`. 만료 시 재발급하세요.
|
|
50
|
+
2. 이후 모든 `/v2` 호출에 `Authorization: Bearer <access_token>` 부착.
|
|
51
|
+
|
|
52
|
+
### `/v1` — platform-auth (V5 호환 대체)
|
|
44
53
|
|
|
45
|
-
|
|
54
|
+
`/v1` 은 V5 와 동일한 platform-auth 방식입니다. OAuth·스코프 없이 두 헤더로 인증하며, 권한은 group_code 로 결정됩니다.
|
|
46
55
|
|
|
47
|
-
|
|
56
|
+
- `X-Platform-Id`: `cate_set.api_id`
|
|
57
|
+
- `X-Platform-Secret`: `cate_set.api_secret` (MD5-hex)
|
|
58
|
+
- 자격증명이 유효하지 않으면 **503** 으로 응답합니다(V5 충실 동작).
|
|
48
59
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
60
|
+
## 스코프 (Scopes) — `/v2` 8개 operation
|
|
61
|
+
|
|
62
|
+
토큰은 파트너에 부여된 스코프 범위 내에서만 발급됩니다. 각 `/v2` operation 이 요구하는 스코프는 다음과 같습니다(미보유 시 403 `insufficient-scope`, `WWW-Authenticate` 헤더에 필요한 scope 명시).
|
|
63
|
+
|
|
64
|
+
| operation | 메서드 / 경로 | scope | 용도 |
|
|
65
|
+
| -------------------- | ---------------- | ----------------- | ----------------------------- |
|
|
66
|
+
| `registerBid` | POST `/v2/bids` | `bids:write` | 입찰 등록 |
|
|
67
|
+
| `getBidResults` | GET `/v2/...` | `bids:read` | 응찰 결과 조회 |
|
|
68
|
+
| `getBidSettlement` | GET `/v2/...` | `bids:read` | 정산(사업자·계좌·공급가) 조회 |
|
|
69
|
+
| `getBidStatement` | GET `/v2/...` | `contracts:read` | 거래명세서 조회 |
|
|
70
|
+
| `completeAcceptance` | POST `/v2/...` | `contracts:write` | 검수완료 통지 |
|
|
71
|
+
| `registerAward` | POST `/v2/...` | `awards:write` | 낙찰 결과 전송 |
|
|
72
|
+
| `markBidFailed` | POST `/v2/...` | `awards:write` | 유찰 처리 |
|
|
73
|
+
| `uploadFile` | POST `/v2/files` | `files:write` | 첨부파일 업로드 |
|
|
74
|
+
|
|
75
|
+
> 정확한 경로·요청/응답 스키마는 `---` 아래 자동 생성 레퍼런스를 정본(canonical)으로 삼으세요.
|
|
58
76
|
|
|
59
77
|
## 멱등성 (Idempotency)
|
|
60
78
|
|
|
61
79
|
모든 write(POST) 엔드포인트는 `Idempotency-Key` 헤더가 **필수**입니다.
|
|
62
80
|
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
81
|
+
- 대상(`/v2`): `registerBid`, `completeAcceptance`, `registerAward`, `markBidFailed`, `uploadFile`.
|
|
82
|
+
- 키 포맷: 1~255자, `[A-Za-z0-9_-]` (예: UUID). 호출 단위로 클라이언트가 고유 값을 생성.
|
|
83
|
+
- 같은 키 + 같은 body 로 재전송하면 핸들러를 재실행하지 않고 **최초 응답을 그대로 replay**(24시간) — 네트워크 재시도가 안전합니다.
|
|
84
|
+
- 같은 키에 다른 body 를 보내면 409 `idempotency-key-conflict`.
|
|
66
85
|
|
|
67
|
-
## 에러 (Errors)
|
|
86
|
+
## 에러 (Errors)
|
|
68
87
|
|
|
69
|
-
|
|
88
|
+
비즈니스 엔드포인트는 RFC 9457 `application/problem+json` 을 반환합니다.
|
|
70
89
|
|
|
71
90
|
```json
|
|
72
91
|
{
|
|
73
|
-
"type": "https
|
|
92
|
+
"type": "https://problems.cmarket.io/partner/validation-failed",
|
|
74
93
|
"title": "사람이 읽는 요약",
|
|
75
94
|
"status": 400,
|
|
76
|
-
"detail": "구체적 원인"
|
|
95
|
+
"detail": "구체적 원인",
|
|
96
|
+
"instance": "/v2/bids"
|
|
77
97
|
}
|
|
78
98
|
```
|
|
79
99
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
OAuth 토큰 엔드포인트(`/oauth/token`)만 예외로, RFC 6749 §5.2 형식 `{ error, error_description }` 을 반환합니다.
|
|
101
|
+
|
|
102
|
+
> **분기 기준은 HTTP `status`** (4xx 는 추가로 `type`)로 하세요. `type` 단독 분기는 위험합니다 — 예를 들어 `upstream-rejected` 는 400/403/404/409/502 에 모두 걸칩니다.
|
|
103
|
+
|
|
104
|
+
### 에러 카탈로그 (비즈니스 엔드포인트, problem+json)
|
|
105
|
+
|
|
106
|
+
| `type` slug | status | 의미 / 대처 |
|
|
107
|
+
| -------------------------- | ------------------- | ----------------------------------------------------------------------------------------------- |
|
|
108
|
+
| `validation-failed` | 400 | 입력 검증 실패 |
|
|
109
|
+
| `idempotency-key-required` | 400 | write 인데 `Idempotency-Key` 누락 |
|
|
110
|
+
| `idempotency-key-invalid` | 400 | 키 포맷 위반 |
|
|
111
|
+
| `idempotency-key-conflict` | 409 | 같은 키에 다른 body |
|
|
112
|
+
| `buyer-id-required` | 400 | `/v1` 입찰 등록에 buyerId 누락 |
|
|
113
|
+
| `missing-bearer-token` | 401 | (`/v2`) Bearer 토큰 누락 |
|
|
114
|
+
| `invalid-token` | 401 | (`/v2`) 토큰 만료/무효 — 재발급 |
|
|
115
|
+
| `unbound-partner-key` | 403 | 키 설정 오류(미바인딩) — 운영팀 문의 |
|
|
116
|
+
| `ip-not-allowed` | 403 | 호출 IP 가 allowlist 에 없음 |
|
|
117
|
+
| `insufficient-scope` | 403 | 토큰 스코프 부족 (`WWW-Authenticate` 헤더 참조) |
|
|
118
|
+
| `buyer-scope-mismatch` | 403 | 키에 바인딩되지 않은 buyer 사용 |
|
|
119
|
+
| `upstream-rejected` | 400/403/404/409/502 | 백엔드 도메인 거절 — `status` 로 분기, `detail` 은 불투명하므로 correlation id 를 지원팀에 전달 |
|
|
120
|
+
| `payload-too-large` | 413 | 본문 50MB 초과 |
|
|
121
|
+
| `too-many-requests` | 429 | rate limit — `Retry-After` 준수 |
|
|
122
|
+
| `service-unavailable` | 503 | 백엔드 다운 또는 `/v1` platform-auth 실패 — `Retry-After` 준수 |
|
|
123
|
+
| `internal-server-error` | 500 | 서버 오류 — 재시도 + correlation id 보고 |
|
|
124
|
+
|
|
125
|
+
### OAuth 토큰 엔드포인트 (RFC 6749)
|
|
126
|
+
|
|
127
|
+
| `error` | status | 의미 |
|
|
128
|
+
| ------------------------ | ------ | ----------------------------- |
|
|
129
|
+
| `invalid_request` | 400 | 필수 파라미터 누락/형식 오류 |
|
|
130
|
+
| `unsupported_grant_type` | 400 | `client_credentials` 외 grant |
|
|
131
|
+
| `invalid_client` | 401 | client_id/secret 불일치 |
|
|
132
|
+
| `invalid_scope` | 400 | 허용되지 않은 scope 요청 |
|
|
133
|
+
|
|
134
|
+
## Rate limit
|
|
135
|
+
|
|
136
|
+
| 대상 | 한도 |
|
|
137
|
+
| --------------------- | ------------- |
|
|
138
|
+
| `POST /oauth/token` | 5 req/min/IP |
|
|
139
|
+
| 그 외 모든 엔드포인트 | 60 req/min/IP |
|
|
140
|
+
|
|
141
|
+
- 초과 시 HTTP **429** `too-many-requests` (problem+json) + `Retry-After` 헤더(초). throttle 될 때는 **`Retry-After` 를 신뢰**해 backoff 하세요.
|
|
142
|
+
- `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset` 헤더는 **성공 응답에만** 포함되며, 429 응답 자체에는 없습니다.
|
|
143
|
+
|
|
144
|
+
## 통합 순서 (표준 흐름 — `/v2`)
|
|
145
|
+
|
|
146
|
+
V5 push/pull 흐름의 V6 후속입니다. `/v2` 기준 표준 단계:
|
|
147
|
+
|
|
148
|
+
| 단계 | operation | scope | 비고 |
|
|
149
|
+
| ---- | -------------------- | ----------------- | -------------------------------------------- |
|
|
150
|
+
| 1 | `uploadFile` | `files:write` | (선택) 첨부파일 선행 업로드 |
|
|
151
|
+
| 2 | `registerBid` | `bids:write` | 입찰 정보 등록 |
|
|
152
|
+
| 3 | `getBidResults` | `bids:read` | 응찰 결과 조회 |
|
|
153
|
+
| 4 | `getBidSettlement` | `bids:read` | 정산(사업자·계좌·공급가) 조회 |
|
|
154
|
+
| 5 | `registerAward` | `awards:write` | 낙찰 전송 (유찰이면 `markBidFailed` 로 택일) |
|
|
155
|
+
| 6 | `getBidStatement` | `contracts:read` | 거래명세서 조회 |
|
|
156
|
+
| 7 | `completeAcceptance` | `contracts:write` | 검수완료 통지 |
|
|
157
|
+
|
|
158
|
+
### `/v1` 전용 operation (`/v2` 미제공)
|
|
159
|
+
|
|
160
|
+
다음 작업은 `/v2` 에 없습니다. 필요한 파트너는 `/v1` (platform-auth) 을 사용하세요. 거래명세서(`getBidStatement` / `v1GetBidStatement`)는 양쪽 모두 제공됩니다.
|
|
161
|
+
|
|
162
|
+
| 작업 | `/v1` SDK 메서드 | 비고 |
|
|
163
|
+
| ----------------- | -------------------------------- | --------------------------- |
|
|
164
|
+
| 협상점수평가 | `v1SubmitNegotiationScores` | 협상 계약(H/K) 낙찰 전 평가 |
|
|
165
|
+
| 분할계산서 요청 | `v1RequestSplitInvoice` | — |
|
|
166
|
+
| 계약서류 조회 | `v1GetBidContractDocumentsBatch` | — |
|
|
167
|
+
| 입찰결과 배치조회 | `v1GetBidResultsBatch` | 다건 결과 일괄 조회 |
|
|
98
168
|
|
|
99
169
|
## SDK 호출 예제
|
|
100
170
|
|
|
101
|
-
### TypeScript
|
|
171
|
+
### TypeScript (`/v2`)
|
|
102
172
|
|
|
103
173
|
```ts
|
|
104
|
-
import {
|
|
105
|
-
Configuration,
|
|
106
|
-
OauthApi,
|
|
107
|
-
PartnerV1Api,
|
|
108
|
-
type CreateBidRequestDto,
|
|
109
|
-
} from '@cmarket/partner-sdk';
|
|
174
|
+
import { Configuration, OauthApi, PartnerV2Api } from '@cmarket/partner-sdk';
|
|
110
175
|
|
|
111
|
-
const BASE = 'https://partner-api.c-market.net'; //
|
|
176
|
+
const BASE = 'https://partner-api.c-market.net'; // staging: https://partner-api.staging.c-market.net
|
|
112
177
|
|
|
113
178
|
async function main() {
|
|
114
|
-
// 1) 토큰 발급 (/
|
|
179
|
+
// 1) 토큰 발급 (/oauth/token — 버전 prefix 없음)
|
|
115
180
|
const oauth = new OauthApi(new Configuration({ basePath: BASE }));
|
|
116
181
|
const { data: token } = await oauth.token({
|
|
117
182
|
grant_type: 'client_credentials',
|
|
118
183
|
client_id: process.env.CMARKET_CLIENT_ID!,
|
|
119
184
|
client_secret: process.env.CMARKET_CLIENT_SECRET!,
|
|
120
|
-
scope: 'bids:write',
|
|
185
|
+
scope: 'bids:write bids:read',
|
|
121
186
|
});
|
|
122
187
|
|
|
123
|
-
// 2) access_token 으로 인증된 클라이언트 구성
|
|
124
|
-
const
|
|
188
|
+
// 2) access_token 으로 인증된 /v2 클라이언트 구성
|
|
189
|
+
const v2 = new PartnerV2Api(
|
|
125
190
|
new Configuration({ basePath: BASE, accessToken: token.access_token }),
|
|
126
191
|
);
|
|
127
192
|
|
|
128
193
|
// 3) 입찰 등록 — write 는 Idempotency-Key 헤더 필수
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
});
|
|
194
|
+
const { data } = await v2.registerBid(
|
|
195
|
+
{
|
|
196
|
+
buyerId: 'BUYER-001',
|
|
197
|
+
projectName: '2026 사무용품 구매',
|
|
198
|
+
// ...나머지 필드는 아래 레퍼런스의 registerBid 요청 스키마 참조
|
|
199
|
+
},
|
|
200
|
+
{ headers: { 'Idempotency-Key': crypto.randomUUID() } },
|
|
201
|
+
);
|
|
138
202
|
console.log('created bid:', data);
|
|
139
203
|
}
|
|
140
204
|
|
|
141
205
|
main().catch(console.error);
|
|
142
206
|
```
|
|
143
207
|
|
|
144
|
-
### Java
|
|
208
|
+
### Java (`/v2`)
|
|
145
209
|
|
|
146
210
|
```java
|
|
147
211
|
import net.cmarket.partner.client.ApiClient;
|
|
148
212
|
import net.cmarket.partner.client.api.OauthApi;
|
|
149
|
-
import net.cmarket.partner.client.api.
|
|
213
|
+
import net.cmarket.partner.client.api.PartnerV2Api;
|
|
150
214
|
import net.cmarket.partner.client.model.*;
|
|
151
215
|
import java.util.Map;
|
|
152
216
|
import java.util.UUID;
|
|
153
217
|
|
|
154
218
|
public class Quickstart {
|
|
155
219
|
public static void main(String[] args) throws Exception {
|
|
156
|
-
String base = "https://partner-api.c-market.net"; //
|
|
220
|
+
String base = "https://partner-api.c-market.net"; // staging: https://partner-api.staging.c-market.net
|
|
157
221
|
|
|
158
|
-
// 1) 토큰 발급 (/
|
|
159
|
-
|
|
160
|
-
OauthApi oauth = new OauthApi(authClient);
|
|
222
|
+
// 1) 토큰 발급 (/oauth/token)
|
|
223
|
+
OauthApi oauth = new OauthApi(new ApiClient().setBasePath(base));
|
|
161
224
|
TokenResponseDto token = oauth.token(new TokenRequestDto()
|
|
162
225
|
.grantType(TokenRequestDto.GrantTypeEnum.CLIENT_CREDENTIALS)
|
|
163
226
|
.clientId(System.getenv("CMARKET_CLIENT_ID"))
|
|
164
227
|
.clientSecret(System.getenv("CMARKET_CLIENT_SECRET"))
|
|
165
|
-
.scope("bids:write"));
|
|
228
|
+
.scope("bids:write bids:read"));
|
|
166
229
|
|
|
167
|
-
// 2) access_token 을 Authorization 헤더로
|
|
230
|
+
// 2) access_token 을 Authorization 헤더로 부착한 /v2 클라이언트
|
|
168
231
|
ApiClient apiClient = new ApiClient()
|
|
169
232
|
.setBasePath(base)
|
|
170
233
|
.setRequestInterceptor(req ->
|
|
171
234
|
req.header("Authorization", "Bearer " + token.getAccessToken()));
|
|
172
|
-
|
|
235
|
+
PartnerV2Api v2 = new PartnerV2Api(apiClient);
|
|
173
236
|
|
|
174
237
|
// 3) 입찰 등록 — write 는 Idempotency-Key 헤더 필수
|
|
175
238
|
CreateBidRequestDto body = new CreateBidRequestDto()
|
|
176
239
|
.buyerId("BUYER-001")
|
|
177
240
|
.projectName("2026 사무용품 구매");
|
|
178
|
-
// ...나머지 필드는
|
|
241
|
+
// ...나머지 필드는 레퍼런스의 registerBid 요청 스키마 참조
|
|
179
242
|
|
|
180
|
-
BidCreatedResponseDto created =
|
|
243
|
+
BidCreatedResponseDto created = v2.registerBid(
|
|
181
244
|
body, Map.of("Idempotency-Key", UUID.randomUUID().toString()));
|
|
182
245
|
System.out.println("created bid: " + created);
|
|
183
246
|
}
|
|
184
247
|
}
|
|
185
248
|
```
|
|
186
249
|
|
|
187
|
-
|
|
250
|
+
### Raw HTTP (계약 정본 baseline)
|
|
251
|
+
|
|
252
|
+
SDK 없이 직접 호출할 때의 contract-truthful 형태입니다.
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# 1) 토큰 발급 — RFC 6749 (성공 시 snake_case 응답)
|
|
256
|
+
curl -X POST "$BASE/oauth/token" \
|
|
257
|
+
-H "Content-Type: application/json" \
|
|
258
|
+
-d '{
|
|
259
|
+
"grant_type": "client_credentials",
|
|
260
|
+
"client_id": "'"$CMARKET_CLIENT_ID"'",
|
|
261
|
+
"client_secret": "'"$CMARKET_CLIENT_SECRET"'",
|
|
262
|
+
"scope": "bids:write bids:read"
|
|
263
|
+
}'
|
|
264
|
+
# => { "access_token": "...", "token_type": "Bearer", "expires_in": 900, "scope": "bids:write bids:read" }
|
|
265
|
+
|
|
266
|
+
# 2) 입찰 등록 — Bearer + Idempotency-Key 필수
|
|
267
|
+
curl -X POST "$BASE/v2/bids" \
|
|
268
|
+
-H "Authorization: Bearer $ACCESS_TOKEN" \
|
|
269
|
+
-H "Idempotency-Key: $(uuidgen)" \
|
|
270
|
+
-H "Content-Type: application/json" \
|
|
271
|
+
-d '{ "buyerId": "BUYER-001", "projectName": "2026 사무용품 구매" }'
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## 첫 성공 확인 (First success)
|
|
275
|
+
|
|
276
|
+
1. `/oauth/token` 호출이 200 + `access_token` 을 반환하면 자격증명·스코프가 유효합니다(401 `invalid_client` 면 client_id/secret 확인).
|
|
277
|
+
2. 발급한 토큰으로 `getBidResults`(읽기, `bids:read`) 를 1회 호출해 2xx 가 오면 토큰·네트워크·스코프가 정상입니다 — write 보다 안전한 첫 검증입니다.
|
|
278
|
+
3. `registerBid` 가 2xx 를 반환하면 입찰이 등록된 것입니다. 같은 `Idempotency-Key` + 같은 body 로 재호출하면 동일 응답이 replay 됩니다.
|
|
279
|
+
4. 403 `insufficient-scope` 면 토큰 발급 시 `scope` 에 해당 권한을 포함했는지(그리고 키에 그 스코프가 부여됐는지) 확인하세요.
|
|
280
|
+
|
|
281
|
+
## 버전 정책
|
|
282
|
+
|
|
283
|
+
- URI versioning. `/v1`, `/v2` 모두 운영 중이며 어느 쪽도 deprecated 아닙니다.
|
|
284
|
+
- SDK 버전은 API 계약을 따릅니다(SemVer; breaking 변경 = major).
|
|
285
|
+
- 변경 이력은 [CHANGELOG.md](./CHANGELOG.md) 참조.
|
|
286
|
+
|
|
287
|
+
각 operation 의 정확한 경로·요청/응답 타입과 전체 엔드포인트 목록은 아래 자동 생성 레퍼런스를 정본으로 참고하세요.
|
|
188
288
|
|
|
189
289
|
---
|
|
190
290
|
|
|
191
|
-
## @cmarket/partner-sdk@
|
|
291
|
+
## @cmarket/partner-sdk@4.0.0
|
|
192
292
|
|
|
193
293
|
This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
|
|
194
294
|
|
|
@@ -226,7 +326,7 @@ navigate to the folder of your consuming project and run one of the following co
|
|
|
226
326
|
_published:_
|
|
227
327
|
|
|
228
328
|
```
|
|
229
|
-
npm install @cmarket/partner-sdk@
|
|
329
|
+
npm install @cmarket/partner-sdk@4.0.0 --save
|
|
230
330
|
```
|
|
231
331
|
|
|
232
332
|
_unPublished (not recommended):_
|
|
@@ -237,7 +337,7 @@ npm install PATH_TO_GENERATED_PACKAGE --save
|
|
|
237
337
|
|
|
238
338
|
### Documentation for API Endpoints
|
|
239
339
|
|
|
240
|
-
All URIs are relative to *
|
|
340
|
+
All URIs are relative to *https://partner-api.c-market.net*
|
|
241
341
|
|
|
242
342
|
Class | Method | HTTP request | Description
|
|
243
343
|
------------ | ------------- | ------------- | -------------
|
|
@@ -295,6 +395,7 @@ Class | Method | HTTP request | Description
|
|
|
295
395
|
- [MarkBidFailedRequestDto](docs/MarkBidFailedRequestDto.md)
|
|
296
396
|
- [NegotiationScoreDto](docs/NegotiationScoreDto.md)
|
|
297
397
|
- [NegotiationScoredResponseDto](docs/NegotiationScoredResponseDto.md)
|
|
398
|
+
- [OAuthErrorResponseDto](docs/OAuthErrorResponseDto.md)
|
|
298
399
|
- [PreconditionsDto](docs/PreconditionsDto.md)
|
|
299
400
|
- [ProblemDetailsDto](docs/ProblemDetailsDto.md)
|
|
300
401
|
- [RegisterAwardRequestDto](docs/RegisterAwardRequestDto.md)
|
package/api/oauth-api.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
|
@@ -22,6 +22,10 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj
|
|
|
22
22
|
// @ts-ignore
|
|
23
23
|
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
|
|
24
24
|
// @ts-ignore
|
|
25
|
+
import type { OAuthErrorResponseDto } from '../models';
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
import type { ProblemDetailsDto } from '../models';
|
|
28
|
+
// @ts-ignore
|
|
25
29
|
import type { TokenRequestDto } from '../models';
|
|
26
30
|
// @ts-ignore
|
|
27
31
|
import type { TokenResponseDto } from '../models';
|
package/api/partner-v1-api.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
|
@@ -48,6 +48,8 @@ import type { MarkBidFailedRequestDto } from '../models';
|
|
|
48
48
|
// @ts-ignore
|
|
49
49
|
import type { NegotiationScoredResponseDto } from '../models';
|
|
50
50
|
// @ts-ignore
|
|
51
|
+
import type { ProblemDetailsDto } from '../models';
|
|
52
|
+
// @ts-ignore
|
|
51
53
|
import type { RegisterAwardRequestDto } from '../models';
|
|
52
54
|
// @ts-ignore
|
|
53
55
|
import type { RequestSplitInvoiceRequestDto } from '../models';
|
package/api/partner-v2-api.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
package/api.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
package/base.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
|
@@ -19,7 +19,7 @@ import type { Configuration } from './configuration';
|
|
|
19
19
|
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
|
|
20
20
|
import globalAxios from 'axios';
|
|
21
21
|
|
|
22
|
-
export const BASE_PATH = "
|
|
22
|
+
export const BASE_PATH = "https://partner-api.c-market.net".replace(/\/+$/, "");
|
|
23
23
|
|
|
24
24
|
export const COLLECTION_FORMATS = {
|
|
25
25
|
csv: ",",
|
package/common.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
8
|
-
*
|
|
7
|
+
* The version of the OpenAPI document: 4.0.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
package/configuration.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* CMARKET V6 Partner API
|
|
4
4
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
5
5
|
*
|
|
6
|
-
* The version of the OpenAPI document:
|
|
7
|
-
*
|
|
6
|
+
* The version of the OpenAPI document: 4.0.0
|
|
7
|
+
* Contact: semo.io.kr@gmail.com
|
|
8
8
|
*
|
|
9
9
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
10
10
|
* https://openapi-generator.tech
|
package/dist/api/oauth-api.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CMARKET V6 Partner API
|
|
3
3
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
4
4
|
*
|
|
5
|
-
* The version of the OpenAPI document:
|
|
6
|
-
*
|
|
5
|
+
* The version of the OpenAPI document: 4.0.0
|
|
6
|
+
* Contact: semo.io.kr@gmail.com
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
9
|
* https://openapi-generator.tech
|
package/dist/api/oauth-api.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* CMARKET V6 Partner API
|
|
6
6
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document:
|
|
9
|
-
*
|
|
8
|
+
* The version of the OpenAPI document: 4.0.0
|
|
9
|
+
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
12
|
* https://openapi-generator.tech
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CMARKET V6 Partner API
|
|
3
3
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
4
4
|
*
|
|
5
|
-
* The version of the OpenAPI document:
|
|
6
|
-
*
|
|
5
|
+
* The version of the OpenAPI document: 4.0.0
|
|
6
|
+
* Contact: semo.io.kr@gmail.com
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
9
|
* https://openapi-generator.tech
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* CMARKET V6 Partner API
|
|
6
6
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document:
|
|
9
|
-
*
|
|
8
|
+
* The version of the OpenAPI document: 4.0.0
|
|
9
|
+
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
12
|
* https://openapi-generator.tech
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CMARKET V6 Partner API
|
|
3
3
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
4
4
|
*
|
|
5
|
-
* The version of the OpenAPI document:
|
|
6
|
-
*
|
|
5
|
+
* The version of the OpenAPI document: 4.0.0
|
|
6
|
+
* Contact: semo.io.kr@gmail.com
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
9
|
* https://openapi-generator.tech
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* CMARKET V6 Partner API
|
|
6
6
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document:
|
|
9
|
-
*
|
|
8
|
+
* The version of the OpenAPI document: 4.0.0
|
|
9
|
+
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
12
|
* https://openapi-generator.tech
|
package/dist/api.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CMARKET V6 Partner API
|
|
3
3
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
4
4
|
*
|
|
5
|
-
* The version of the OpenAPI document:
|
|
6
|
-
*
|
|
5
|
+
* The version of the OpenAPI document: 4.0.0
|
|
6
|
+
* Contact: semo.io.kr@gmail.com
|
|
7
7
|
*
|
|
8
8
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
9
|
* https://openapi-generator.tech
|
package/dist/api.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* CMARKET V6 Partner API
|
|
6
6
|
* 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document:
|
|
9
|
-
*
|
|
8
|
+
* The version of the OpenAPI document: 4.0.0
|
|
9
|
+
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
12
|
* https://openapi-generator.tech
|