@cmarket/partner-sdk 0.1.0 → 0.3.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 +230 -9
- package/api/oauth-api.ts +1 -1
- package/api/partner-v1-api.ts +1038 -16
- package/api.ts +1 -3
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api/oauth-api.d.ts +1 -1
- package/dist/api/oauth-api.js +1 -1
- package/dist/api/partner-v1-api.d.ts +465 -13
- package/dist/api/partner-v1-api.js +986 -46
- package/dist/api.d.ts +1 -3
- package/dist/api.js +1 -3
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.js +1 -1
- package/dist/configuration.d.ts +1 -1
- package/dist/configuration.js +1 -1
- package/dist/esm/api/oauth-api.d.ts +1 -1
- package/dist/esm/api/oauth-api.js +1 -1
- package/dist/esm/api/partner-v1-api.d.ts +465 -13
- package/dist/esm/api/partner-v1-api.js +986 -46
- package/dist/esm/api.d.ts +1 -3
- package/dist/esm/api.js +1 -3
- package/dist/esm/base.d.ts +1 -1
- package/dist/esm/base.js +1 -1
- package/dist/esm/common.d.ts +1 -1
- package/dist/esm/common.js +1 -1
- package/dist/esm/configuration.d.ts +1 -1
- package/dist/esm/configuration.js +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/models/acceptance-result-response-dto.d.ts +21 -0
- package/dist/esm/models/{legacy-envelope-dto.js → acceptance-result-response-dto.js} +1 -1
- package/dist/esm/models/award-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/award-registered-response-dto.js +1 -1
- package/dist/esm/models/bid-bond-dto.d.ts +1 -1
- package/dist/esm/models/bid-bond-dto.js +1 -1
- package/dist/esm/models/bid-contract-documents-batch-request-dto.d.ts +21 -0
- package/dist/esm/models/bid-contract-documents-batch-request-dto.js +14 -0
- package/dist/esm/models/bid-contract-documents-response-dto.d.ts +26 -0
- package/dist/esm/models/bid-contract-documents-response-dto.js +14 -0
- package/dist/esm/models/bid-created-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-created-response-dto.js +1 -1
- package/dist/esm/models/bid-document-dto.d.ts +1 -1
- package/dist/esm/models/bid-document-dto.js +1 -1
- package/dist/esm/models/bid-failed-response-dto.d.ts +21 -0
- package/dist/esm/models/bid-failed-response-dto.js +14 -0
- package/dist/esm/models/bid-failure-reason.d.ts +25 -0
- package/dist/esm/models/bid-failure-reason.js +26 -0
- package/dist/esm/models/bid-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-item-dto.js +1 -1
- package/dist/esm/models/bid-manager-dto.d.ts +9 -1
- package/dist/esm/models/bid-manager-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-dto.d.ts +65 -0
- package/dist/esm/models/bid-result-participant-dto.js +14 -0
- package/dist/esm/models/bid-result-product-dto.d.ts +25 -0
- package/dist/esm/models/bid-result-product-dto.js +14 -0
- package/dist/esm/models/bid-result-winner-dto.d.ts +25 -0
- package/dist/esm/models/bid-result-winner-dto.js +14 -0
- package/dist/esm/models/bid-results-batch-request-dto.d.ts +21 -0
- package/dist/esm/models/bid-results-batch-request-dto.js +14 -0
- package/dist/esm/models/bid-results-response-dto.d.ts +56 -0
- package/dist/esm/models/bid-results-response-dto.js +14 -0
- package/dist/esm/models/bid-settlement-line-item-dto.d.ts +49 -0
- package/dist/esm/models/bid-settlement-line-item-dto.js +14 -0
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +95 -0
- package/dist/esm/models/bid-settlement-participant-dto.js +17 -0
- package/dist/esm/models/bid-settlement-response-dto.d.ts +22 -0
- package/dist/esm/models/bid-settlement-response-dto.js +14 -0
- package/dist/esm/models/bid-statement-response-dto.d.ts +31 -0
- package/dist/esm/models/bid-statement-response-dto.js +14 -0
- package/dist/esm/models/bid-status.d.ts +2 -2
- package/dist/esm/models/bid-status.js +2 -2
- package/dist/esm/models/bid-summary-response-dto.d.ts +5 -5
- package/dist/esm/models/bid-summary-response-dto.js +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +65 -0
- package/dist/esm/models/complete-acceptance-request-dto.js +14 -0
- package/dist/esm/models/contract-document-item-dto.d.ts +29 -0
- package/dist/esm/models/contract-document-item-dto.js +14 -0
- package/dist/esm/models/create-bid-request-dto.d.ts +20 -3
- package/dist/esm/models/create-bid-request-dto.js +5 -1
- package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/esm/models/file-uploaded-response-dto.js +1 -1
- package/dist/esm/models/health-response-dto.d.ts +1 -1
- package/dist/esm/models/health-response-dto.js +1 -1
- package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/esm/models/hierarchical-region-dto.js +1 -1
- package/dist/esm/models/index.d.ts +24 -1
- package/dist/esm/models/index.js +24 -1
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +30 -0
- package/dist/esm/models/mark-bid-failed-request-dto.js +14 -0
- package/dist/esm/models/negotiation-score-dto.d.ts +25 -0
- package/dist/esm/models/negotiation-score-dto.js +14 -0
- package/dist/esm/models/negotiation-scored-response-dto.d.ts +25 -0
- package/dist/esm/models/negotiation-scored-response-dto.js +14 -0
- package/dist/esm/models/preconditions-dto.d.ts +1 -1
- package/dist/esm/models/preconditions-dto.js +1 -1
- package/dist/esm/models/register-award-request-dto.d.ts +10 -2
- package/dist/esm/models/register-award-request-dto.js +1 -1
- package/dist/esm/models/request-split-invoice-request-dto.d.ts +33 -0
- package/dist/esm/models/request-split-invoice-request-dto.js +14 -0
- package/dist/esm/models/split-invoice-response-dto.d.ts +21 -0
- package/dist/esm/models/split-invoice-response-dto.js +14 -0
- package/dist/esm/models/statement-document-dto.d.ts +25 -0
- package/dist/esm/models/statement-document-dto.js +14 -0
- package/dist/esm/models/statement-product-dto.d.ts +49 -0
- package/dist/esm/models/statement-product-dto.js +14 -0
- package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +30 -0
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +14 -0
- package/dist/esm/models/token-request-dto.d.ts +1 -1
- package/dist/esm/models/token-request-dto.js +1 -1
- package/dist/esm/models/token-response-dto.d.ts +1 -1
- package/dist/esm/models/token-response-dto.js +1 -1
- package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
- package/dist/esm/models/upload-file-request-dto.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/models/acceptance-result-response-dto.d.ts +21 -0
- package/dist/models/{legacy-envelope-dto.js → acceptance-result-response-dto.js} +1 -1
- package/dist/models/award-registered-response-dto.d.ts +1 -1
- package/dist/models/award-registered-response-dto.js +1 -1
- package/dist/models/bid-bond-dto.d.ts +1 -1
- package/dist/models/bid-bond-dto.js +1 -1
- package/dist/models/bid-contract-documents-batch-request-dto.d.ts +21 -0
- package/dist/models/bid-contract-documents-batch-request-dto.js +15 -0
- package/dist/models/bid-contract-documents-response-dto.d.ts +26 -0
- package/dist/models/bid-contract-documents-response-dto.js +15 -0
- package/dist/models/bid-created-response-dto.d.ts +1 -1
- package/dist/models/bid-created-response-dto.js +1 -1
- package/dist/models/bid-document-dto.d.ts +1 -1
- package/dist/models/bid-document-dto.js +1 -1
- package/dist/models/bid-failed-response-dto.d.ts +21 -0
- package/dist/models/bid-failed-response-dto.js +15 -0
- package/dist/models/bid-failure-reason.d.ts +25 -0
- package/dist/models/bid-failure-reason.js +29 -0
- package/dist/models/bid-item-dto.d.ts +1 -1
- package/dist/models/bid-item-dto.js +1 -1
- package/dist/models/bid-manager-dto.d.ts +9 -1
- package/dist/models/bid-manager-dto.js +1 -1
- package/dist/models/bid-result-participant-dto.d.ts +65 -0
- package/dist/models/bid-result-participant-dto.js +15 -0
- package/dist/models/bid-result-product-dto.d.ts +25 -0
- package/dist/models/bid-result-product-dto.js +15 -0
- package/dist/models/bid-result-winner-dto.d.ts +25 -0
- package/dist/models/bid-result-winner-dto.js +15 -0
- package/dist/models/bid-results-batch-request-dto.d.ts +21 -0
- package/dist/models/bid-results-batch-request-dto.js +15 -0
- package/dist/models/bid-results-response-dto.d.ts +56 -0
- package/dist/models/bid-results-response-dto.js +15 -0
- package/dist/models/bid-settlement-line-item-dto.d.ts +49 -0
- package/dist/models/bid-settlement-line-item-dto.js +15 -0
- package/dist/models/bid-settlement-participant-dto.d.ts +95 -0
- package/dist/models/bid-settlement-participant-dto.js +20 -0
- package/dist/models/bid-settlement-response-dto.d.ts +22 -0
- package/dist/models/bid-settlement-response-dto.js +15 -0
- package/dist/models/bid-statement-response-dto.d.ts +31 -0
- package/dist/models/bid-statement-response-dto.js +15 -0
- package/dist/models/bid-status.d.ts +2 -2
- package/dist/models/bid-status.js +2 -2
- package/dist/models/bid-summary-response-dto.d.ts +5 -5
- package/dist/models/bid-summary-response-dto.js +1 -1
- package/dist/models/complete-acceptance-request-dto.d.ts +65 -0
- package/dist/models/complete-acceptance-request-dto.js +15 -0
- package/dist/models/contract-document-item-dto.d.ts +29 -0
- package/dist/models/contract-document-item-dto.js +15 -0
- package/dist/models/create-bid-request-dto.d.ts +20 -3
- package/dist/models/create-bid-request-dto.js +6 -2
- package/dist/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/models/file-uploaded-response-dto.js +1 -1
- package/dist/models/health-response-dto.d.ts +1 -1
- package/dist/models/health-response-dto.js +1 -1
- package/dist/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/models/hierarchical-region-dto.js +1 -1
- package/dist/models/index.d.ts +24 -1
- package/dist/models/index.js +24 -1
- package/dist/models/mark-bid-failed-request-dto.d.ts +30 -0
- package/dist/models/mark-bid-failed-request-dto.js +15 -0
- package/dist/models/negotiation-score-dto.d.ts +25 -0
- package/dist/models/negotiation-score-dto.js +15 -0
- package/dist/models/negotiation-scored-response-dto.d.ts +25 -0
- package/dist/models/negotiation-scored-response-dto.js +15 -0
- package/dist/models/preconditions-dto.d.ts +1 -1
- package/dist/models/preconditions-dto.js +1 -1
- package/dist/models/register-award-request-dto.d.ts +10 -2
- package/dist/models/register-award-request-dto.js +1 -1
- package/dist/models/request-split-invoice-request-dto.d.ts +33 -0
- package/dist/models/request-split-invoice-request-dto.js +15 -0
- package/dist/models/split-invoice-response-dto.d.ts +21 -0
- package/dist/models/split-invoice-response-dto.js +15 -0
- package/dist/models/statement-document-dto.d.ts +25 -0
- package/dist/models/statement-document-dto.js +15 -0
- package/dist/models/statement-product-dto.d.ts +49 -0
- package/dist/models/statement-product-dto.js +15 -0
- package/dist/models/submit-negotiation-scores-request-dto.d.ts +30 -0
- package/dist/models/submit-negotiation-scores-request-dto.js +15 -0
- package/dist/models/token-request-dto.d.ts +1 -1
- package/dist/models/token-request-dto.js +1 -1
- package/dist/models/token-response-dto.d.ts +1 -1
- package/dist/models/token-response-dto.js +1 -1
- package/dist/models/upload-file-request-dto.d.ts +1 -1
- package/dist/models/upload-file-request-dto.js +1 -1
- package/docs/AcceptanceResultResponseDto.md +22 -0
- package/docs/BidContractDocumentsBatchRequestDto.md +22 -0
- package/docs/BidContractDocumentsResponseDto.md +24 -0
- package/docs/BidFailedResponseDto.md +22 -0
- package/docs/BidFailureReason.md +23 -0
- package/docs/BidManagerDto.md +4 -0
- package/docs/BidResultParticipantDto.md +44 -0
- package/docs/BidResultProductDto.md +24 -0
- package/docs/BidResultWinnerDto.md +24 -0
- package/docs/BidResultsBatchRequestDto.md +22 -0
- package/docs/BidResultsResponseDto.md +38 -0
- package/docs/BidSettlementLineItemDto.md +36 -0
- package/docs/BidSettlementParticipantDto.md +56 -0
- package/docs/BidSettlementResponseDto.md +22 -0
- package/docs/BidStatementResponseDto.md +26 -0
- package/docs/BidStatus.md +1 -1
- package/docs/BidSummaryResponseDto.md +4 -4
- package/docs/CompleteAcceptanceRequestDto.md +44 -0
- package/docs/ContractDocumentItemDto.md +26 -0
- package/docs/CreateBidRequestDto.md +8 -2
- package/docs/MarkBidFailedRequestDto.md +26 -0
- package/docs/NegotiationScoreDto.md +24 -0
- package/docs/NegotiationScoredResponseDto.md +24 -0
- package/docs/PartnerV1Api.md +700 -3
- package/docs/RegisterAwardRequestDto.md +5 -1
- package/docs/RequestSplitInvoiceRequestDto.md +28 -0
- package/docs/SplitInvoiceResponseDto.md +22 -0
- package/docs/StatementDocumentDto.md +24 -0
- package/docs/StatementProductDto.md +36 -0
- package/docs/SubmitNegotiationScoresRequestDto.md +26 -0
- package/index.ts +1 -1
- package/models/acceptance-result-response-dto.ts +27 -0
- package/models/award-registered-response-dto.ts +1 -1
- package/models/bid-bond-dto.ts +1 -1
- package/models/bid-contract-documents-batch-request-dto.ts +27 -0
- package/models/bid-contract-documents-response-dto.ts +34 -0
- package/models/bid-created-response-dto.ts +1 -1
- package/models/bid-document-dto.ts +1 -1
- package/models/bid-failed-response-dto.ts +27 -0
- package/models/bid-failure-reason.ts +35 -0
- package/models/bid-item-dto.ts +1 -1
- package/models/bid-manager-dto.ts +9 -1
- package/models/bid-result-participant-dto.ts +71 -0
- package/models/bid-result-product-dto.ts +31 -0
- package/models/bid-result-winner-dto.ts +31 -0
- package/models/bid-results-batch-request-dto.ts +27 -0
- package/models/bid-results-response-dto.ts +68 -0
- package/models/bid-settlement-line-item-dto.ts +55 -0
- package/models/bid-settlement-participant-dto.ts +106 -0
- package/models/bid-settlement-response-dto.ts +30 -0
- package/models/bid-statement-response-dto.ts +41 -0
- package/models/bid-status.ts +2 -2
- package/models/bid-summary-response-dto.ts +5 -5
- package/models/complete-acceptance-request-dto.ts +71 -0
- package/models/contract-document-item-dto.ts +35 -0
- package/models/create-bid-request-dto.ts +21 -3
- package/models/file-uploaded-response-dto.ts +1 -1
- package/models/health-response-dto.ts +1 -1
- package/models/hierarchical-region-dto.ts +1 -1
- package/models/index.ts +24 -1
- package/models/mark-bid-failed-request-dto.ts +40 -0
- package/models/negotiation-score-dto.ts +31 -0
- package/models/{legacy-envelope-dto.ts → negotiation-scored-response-dto.ts} +8 -8
- package/models/preconditions-dto.ts +1 -1
- package/models/register-award-request-dto.ts +10 -2
- package/models/request-split-invoice-request-dto.ts +39 -0
- package/models/split-invoice-response-dto.ts +27 -0
- package/models/statement-document-dto.ts +31 -0
- package/models/statement-product-dto.ts +55 -0
- package/models/submit-negotiation-scores-request-dto.ts +38 -0
- package/models/token-request-dto.ts +1 -1
- package/models/token-response-dto.ts +1 -1
- package/models/upload-file-request-dto.ts +1 -1
- package/package.json +1 -1
- package/.openapi-generator/FILES +0 -57
- package/.openapi-generator/VERSION +0 -1
- package/.openapi-generator-ignore +0 -23
- package/api/partner-v1-legacy-api.ts +0 -178
- package/api/partner-v2-api.ts +0 -285
- package/dist/api/partner-v1-legacy-api.d.ts +0 -91
- package/dist/api/partner-v1-legacy-api.js +0 -181
- package/dist/api/partner-v2-api.d.ts +0 -136
- package/dist/api/partner-v2-api.js +0 -273
- package/dist/esm/api/partner-v1-legacy-api.d.ts +0 -91
- package/dist/esm/api/partner-v1-legacy-api.js +0 -174
- package/dist/esm/api/partner-v2-api.d.ts +0 -136
- package/dist/esm/api/partner-v2-api.js +0 -266
- package/dist/esm/models/legacy-envelope-dto.d.ts +0 -25
- package/dist/models/legacy-envelope-dto.d.ts +0 -25
- package/docs/LegacyEnvelopeDto.md +0 -24
- package/docs/PartnerV1LegacyApi.md +0 -97
- package/docs/PartnerV2Api.md +0 -166
package/README.md
CHANGED
|
@@ -1,4 +1,194 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- cmarket-quickstart-preamble -->
|
|
2
|
+
|
|
3
|
+
# CMARKET V6 Partner SDK
|
|
4
|
+
|
|
5
|
+
CMARKET V6 Partner API 의 공식 클라이언트 SDK — 외부 ERP 가 입찰 등록부터 낙찰·계약서류·검수·정산까지 전 흐름을 연동하기 위한 7개 API 를 타입 안전하게 호출합니다.
|
|
6
|
+
|
|
7
|
+
> 이 상단 섹션(설치·인증·통합 순서·에러·예제)은 CMARKET 가 관리하는 quickstart 입니다. 그 아래 `---` 구분선 이후는 OpenAPI Generator 가 매 릴리스 생성하는 **전체 엔드포인트/모델 레퍼런스**입니다.
|
|
8
|
+
|
|
9
|
+
## 설치 (Installation)
|
|
10
|
+
|
|
11
|
+
TypeScript / Node (npm):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @cmarket/partner-sdk@0.3.0
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Java (Maven):
|
|
18
|
+
|
|
19
|
+
```xml
|
|
20
|
+
<dependency>
|
|
21
|
+
<groupId>net.c-market</groupId>
|
|
22
|
+
<artifactId>partner-sdk</artifactId>
|
|
23
|
+
<version>0.3.0</version>
|
|
24
|
+
</dependency>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Base URL
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
https://partner-api.c-market.net # 예시 — 확정 도메인 아님
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
환경별(staging/production) baseURL 과 client_id / client_secret 은 파트너 온보딩 시 개별 발급·안내됩니다. 아래 예제의 baseURL 은 발급받은 값으로 교체하세요.
|
|
34
|
+
|
|
35
|
+
## 인증 (Authentication) — OAuth 2.0 Client Credentials
|
|
36
|
+
|
|
37
|
+
모든 호출은 OAuth 2.0 client_credentials 그랜트(RFC 6749 §4.4)로 발급한 JWT access token 을 `Authorization: Bearer <token>` 헤더로 실어야 합니다.
|
|
38
|
+
|
|
39
|
+
1. 토큰 발급: `POST {BASE}/v1/oauth/token`
|
|
40
|
+
- body(form 또는 JSON): `grant_type=client_credentials`, `client_id`, `client_secret`, (선택) `scope` (space-separated)
|
|
41
|
+
- 응답(RFC 6749 §5.1, snake_case): `{ access_token, token_type: "Bearer", expires_in, scope }`
|
|
42
|
+
- access_token TTL 은 짧습니다(현재 900초/15분) — 만료 시 재발급하세요.
|
|
43
|
+
2. 이후 모든 비즈니스 호출에 `Authorization: Bearer <access_token>` 부착.
|
|
44
|
+
|
|
45
|
+
### 스코프 (Scopes)
|
|
46
|
+
|
|
47
|
+
토큰은 파트너에 부여된 스코프 범위 내에서 발급되며, 각 엔드포인트는 아래 스코프를 요구합니다(미보유 시 403).
|
|
48
|
+
|
|
49
|
+
| Scope | 용도 |
|
|
50
|
+
| ----------------- | -------------------------------------------------------------------------- |
|
|
51
|
+
| `bids:read` | 입찰 결과/정산 조회 (getBidResults, getBidSettlement) |
|
|
52
|
+
| `bids:write` | 입찰 등록 (registerBid) |
|
|
53
|
+
| `awards:write` | 낙찰·유찰·협상점수 (registerAward, markBidFailed, submitNegotiationScores) |
|
|
54
|
+
| `contracts:read` | 계약서류·거래명세서 조회 (getBidContractDocuments, getBidStatement) |
|
|
55
|
+
| `contracts:write` | 검수완료 (completeAcceptance) |
|
|
56
|
+
| `invoices:write` | 분할 계산서 요청 (requestSplitInvoice) |
|
|
57
|
+
| `files:write` | 첨부파일 업로드 (uploadFile) |
|
|
58
|
+
|
|
59
|
+
## 멱등성 (Idempotency)
|
|
60
|
+
|
|
61
|
+
모든 write(POST) 엔드포인트는 `Idempotency-Key` 헤더가 **필수**입니다.
|
|
62
|
+
|
|
63
|
+
- 키 포맷: 1~255자, `[A-Za-z0-9_-]`. 호출 단위로 클라이언트가 고유 값(예: UUID) 생성.
|
|
64
|
+
- 같은 키 + 같은 body 로 재전송하면 핸들러를 다시 실행하지 않고 **최초 응답을 그대로 replay**(기본 24시간) — 네트워크 재시도가 안전합니다.
|
|
65
|
+
- 대상: registerBid, registerAward, markBidFailed, submitNegotiationScores, completeAcceptance, requestSplitInvoice, uploadFile.
|
|
66
|
+
|
|
67
|
+
## 에러 (Errors) — RFC 9457 problem+json
|
|
68
|
+
|
|
69
|
+
오류 응답은 `application/problem+json` 입니다.
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"type": "https://.../errors/...",
|
|
74
|
+
"title": "사람이 읽는 요약",
|
|
75
|
+
"status": 400,
|
|
76
|
+
"detail": "구체적 원인"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`status` 로 분기하고 `detail` 을 로깅하세요. 401 = 토큰 누락/만료, 403 = 스코프 부족, 409 = idempotency 충돌(동일 키 다른 body) 등.
|
|
81
|
+
|
|
82
|
+
## 통합 순서 (7개 API — V5 → V6 매핑)
|
|
83
|
+
|
|
84
|
+
V5 push/pull 7개 API 의 V6 후속입니다. 표준 흐름:
|
|
85
|
+
|
|
86
|
+
| 단계 | V6 operation | scope | 비고 |
|
|
87
|
+
| ---- | ----------------------------------------- | ------------------------------- | ---------------------------------------------------------------- |
|
|
88
|
+
| 1 | `registerBid` | bids:write | 입찰 정보 등록 (필요 시 `uploadFile` 선행) |
|
|
89
|
+
| 2 | `getBidResults` / `getBidSettlement` | bids:read | 응찰 결과 / 정산(사업자·계좌·공급가) 조회 |
|
|
90
|
+
| 3a | (협상 H/K) `submitNegotiationScores` | awards:write | 낙찰 전 기술/가격 점수 평가 — `complete=true` 로 평가완료 게이트 |
|
|
91
|
+
| 3b | `registerAward` | awards:write | 낙찰 결과 전송 |
|
|
92
|
+
| 3c | (유찰 시) `markBidFailed` | awards:write | 유찰 사유 코드와 함께 처리 (3b 와 택일) |
|
|
93
|
+
| 4 | `getBidContractDocuments` | contracts:read | 계약서류 조회 |
|
|
94
|
+
| 5 | `completeAcceptance` | contracts:write | 검수완료 통지 |
|
|
95
|
+
| 6 | `getBidStatement` / `requestSplitInvoice` | contracts:read / invoices:write | 거래명세서 조회 / 분할 계산서 요청 |
|
|
96
|
+
|
|
97
|
+
> 협상에 의한 계약(H/K)일 때만 3a(submitNegotiationScores)가 3b(registerAward) 보다 선행합니다. 그 외 낙찰방법은 2 → 3b 로 진행합니다.
|
|
98
|
+
|
|
99
|
+
## SDK 호출 예제
|
|
100
|
+
|
|
101
|
+
### TypeScript
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
import {
|
|
105
|
+
Configuration,
|
|
106
|
+
OauthApi,
|
|
107
|
+
PartnerV1Api,
|
|
108
|
+
type CreateBidRequestDto,
|
|
109
|
+
} from '@cmarket/partner-sdk';
|
|
110
|
+
|
|
111
|
+
const BASE = 'https://partner-api.c-market.net'; // 발급받은 baseURL 로 교체
|
|
112
|
+
|
|
113
|
+
async function main() {
|
|
114
|
+
// 1) 토큰 발급 (/v1/oauth/token)
|
|
115
|
+
const oauth = new OauthApi(new Configuration({ basePath: BASE }));
|
|
116
|
+
const { data: token } = await oauth.token({
|
|
117
|
+
grant_type: 'client_credentials',
|
|
118
|
+
client_id: process.env.CMARKET_CLIENT_ID!,
|
|
119
|
+
client_secret: process.env.CMARKET_CLIENT_SECRET!,
|
|
120
|
+
scope: 'bids:write',
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// 2) access_token 으로 인증된 클라이언트 구성
|
|
124
|
+
const v1 = new PartnerV1Api(
|
|
125
|
+
new Configuration({ basePath: BASE, accessToken: token.access_token }),
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
// 3) 입찰 등록 — write 는 Idempotency-Key 헤더 필수
|
|
129
|
+
const body: CreateBidRequestDto = {
|
|
130
|
+
buyerId: 'BUYER-001',
|
|
131
|
+
projectName: '2026 사무용품 구매',
|
|
132
|
+
// ...나머지 필드는 CreateBidRequestDto 타입 참조
|
|
133
|
+
} as CreateBidRequestDto;
|
|
134
|
+
|
|
135
|
+
const { data } = await v1.registerBid(body, {
|
|
136
|
+
headers: { 'Idempotency-Key': crypto.randomUUID() },
|
|
137
|
+
});
|
|
138
|
+
console.log('created bid:', data);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
main().catch(console.error);
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Java
|
|
145
|
+
|
|
146
|
+
```java
|
|
147
|
+
import net.cmarket.partner.client.ApiClient;
|
|
148
|
+
import net.cmarket.partner.client.api.OauthApi;
|
|
149
|
+
import net.cmarket.partner.client.api.PartnerV1Api;
|
|
150
|
+
import net.cmarket.partner.client.model.*;
|
|
151
|
+
import java.util.Map;
|
|
152
|
+
import java.util.UUID;
|
|
153
|
+
|
|
154
|
+
public class Quickstart {
|
|
155
|
+
public static void main(String[] args) throws Exception {
|
|
156
|
+
String base = "https://partner-api.c-market.net"; // 발급받은 baseURL 로 교체
|
|
157
|
+
|
|
158
|
+
// 1) 토큰 발급 (/v1/oauth/token)
|
|
159
|
+
ApiClient authClient = new ApiClient().setBasePath(base);
|
|
160
|
+
OauthApi oauth = new OauthApi(authClient);
|
|
161
|
+
TokenResponseDto token = oauth.token(new TokenRequestDto()
|
|
162
|
+
.grantType(TokenRequestDto.GrantTypeEnum.CLIENT_CREDENTIALS)
|
|
163
|
+
.clientId(System.getenv("CMARKET_CLIENT_ID"))
|
|
164
|
+
.clientSecret(System.getenv("CMARKET_CLIENT_SECRET"))
|
|
165
|
+
.scope("bids:write"));
|
|
166
|
+
|
|
167
|
+
// 2) access_token 을 Authorization 헤더로 부착
|
|
168
|
+
ApiClient apiClient = new ApiClient()
|
|
169
|
+
.setBasePath(base)
|
|
170
|
+
.setRequestInterceptor(req ->
|
|
171
|
+
req.header("Authorization", "Bearer " + token.getAccessToken()));
|
|
172
|
+
PartnerV1Api v1 = new PartnerV1Api(apiClient);
|
|
173
|
+
|
|
174
|
+
// 3) 입찰 등록 — write 는 Idempotency-Key 헤더 필수
|
|
175
|
+
CreateBidRequestDto body = new CreateBidRequestDto()
|
|
176
|
+
.buyerId("BUYER-001")
|
|
177
|
+
.projectName("2026 사무용품 구매");
|
|
178
|
+
// ...나머지 필드는 CreateBidRequestDto 참조
|
|
179
|
+
|
|
180
|
+
BidCreatedResponseDto created = v1.registerBid(
|
|
181
|
+
body, Map.of("Idempotency-Key", UUID.randomUUID().toString()));
|
|
182
|
+
System.out.println("created bid: " + created);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
각 operation 의 정확한 요청/응답 타입과 전체 엔드포인트 목록은 아래 자동 생성 레퍼런스를 참고하세요.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## @cmarket/partner-sdk@0.3.0
|
|
2
192
|
|
|
3
193
|
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:
|
|
4
194
|
|
|
@@ -36,7 +226,7 @@ navigate to the folder of your consuming project and run one of the following co
|
|
|
36
226
|
_published:_
|
|
37
227
|
|
|
38
228
|
```
|
|
39
|
-
npm install @cmarket/partner-sdk@0.
|
|
229
|
+
npm install @cmarket/partner-sdk@0.3.0 --save
|
|
40
230
|
```
|
|
41
231
|
|
|
42
232
|
_unPublished (not recommended):_
|
|
@@ -53,31 +243,62 @@ Class | Method | HTTP request | Description
|
|
|
53
243
|
------------ | ------------- | ------------- | -------------
|
|
54
244
|
*OauthApi* | [**token**](docs/OauthApi.md#token) | **POST** /v1/oauth/token | OAuth 2.0 access token 발급 (client_credentials)
|
|
55
245
|
*PartnerV1Api* | [**bidsControllerFindOne**](docs/PartnerV1Api.md#bidscontrollerfindone) | **GET** /v1/bids/{bidId} | 공고 단건 조회
|
|
56
|
-
*PartnerV1Api* | [**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
246
|
+
*PartnerV1Api* | [**completeAcceptance**](docs/PartnerV1Api.md#completeacceptance) | **POST** /v1/bids/{bidId}/acceptance | 검수완료 전송
|
|
247
|
+
*PartnerV1Api* | [**getBidContractDocuments**](docs/PartnerV1Api.md#getbidcontractdocuments) | **GET** /v1/bids/{bidId}/contract-documents | 계약서류 수신 조회
|
|
248
|
+
*PartnerV1Api* | [**getBidContractDocumentsBatch**](docs/PartnerV1Api.md#getbidcontractdocumentsbatch) | **POST** /v1/bids/contract-documents/batch | 계약서류 수신 배치 조회
|
|
249
|
+
*PartnerV1Api* | [**getBidResults**](docs/PartnerV1Api.md#getbidresults) | **GET** /v1/bids/{bidId}/results | 입찰 결과 조회
|
|
250
|
+
*PartnerV1Api* | [**getBidResultsBatch**](docs/PartnerV1Api.md#getbidresultsbatch) | **POST** /v1/bids/results/batch | 입찰결과 배치 조회
|
|
251
|
+
*PartnerV1Api* | [**getBidSettlement**](docs/PartnerV1Api.md#getbidsettlement) | **GET** /v1/bids/{bidId}/settlement | 입찰결과 정산정보 조회
|
|
252
|
+
*PartnerV1Api* | [**getBidStatement**](docs/PartnerV1Api.md#getbidstatement) | **GET** /v1/bids/{bidId}/statement | 거래명세서 조회
|
|
253
|
+
*PartnerV1Api* | [**healthControllerCheck**](docs/PartnerV1Api.md#healthcontrollercheck) | **GET** /v1/health | Partner API 헬스체크
|
|
254
|
+
*PartnerV1Api* | [**markBidFailed**](docs/PartnerV1Api.md#markbidfailed) | **POST** /v1/awards/fail | 유찰 처리
|
|
255
|
+
*PartnerV1Api* | [**registerAward**](docs/PartnerV1Api.md#registeraward) | **POST** /v1/awards | 낙찰 결과 전송
|
|
256
|
+
*PartnerV1Api* | [**registerBid**](docs/PartnerV1Api.md#registerbid) | **POST** /v1/bids | 입찰 정보 전송(등록)
|
|
257
|
+
*PartnerV1Api* | [**requestSplitInvoice**](docs/PartnerV1Api.md#requestsplitinvoice) | **POST** /v1/invoices/split-requests | 계산서 분할 발급 청구
|
|
258
|
+
*PartnerV1Api* | [**submitNegotiationScores**](docs/PartnerV1Api.md#submitnegotiationscores) | **POST** /v1/awards/nego-eval | 협상(H/K) 점수평가
|
|
259
|
+
*PartnerV1Api* | [**uploadFile**](docs/PartnerV1Api.md#uploadfile) | **POST** /v1/files | 입찰 첨부파일 업로드(base64 또는 url) → fileKey
|
|
62
260
|
|
|
63
261
|
|
|
64
262
|
### Documentation For Models
|
|
65
263
|
|
|
264
|
+
- [AcceptanceResultResponseDto](docs/AcceptanceResultResponseDto.md)
|
|
66
265
|
- [AwardRegisteredResponseDto](docs/AwardRegisteredResponseDto.md)
|
|
67
266
|
- [BidBondDto](docs/BidBondDto.md)
|
|
267
|
+
- [BidContractDocumentsBatchRequestDto](docs/BidContractDocumentsBatchRequestDto.md)
|
|
268
|
+
- [BidContractDocumentsResponseDto](docs/BidContractDocumentsResponseDto.md)
|
|
68
269
|
- [BidCreatedResponseDto](docs/BidCreatedResponseDto.md)
|
|
69
270
|
- [BidDocumentDto](docs/BidDocumentDto.md)
|
|
271
|
+
- [BidFailedResponseDto](docs/BidFailedResponseDto.md)
|
|
272
|
+
- [BidFailureReason](docs/BidFailureReason.md)
|
|
70
273
|
- [BidItemDto](docs/BidItemDto.md)
|
|
71
274
|
- [BidManagerDto](docs/BidManagerDto.md)
|
|
275
|
+
- [BidResultParticipantDto](docs/BidResultParticipantDto.md)
|
|
276
|
+
- [BidResultProductDto](docs/BidResultProductDto.md)
|
|
277
|
+
- [BidResultWinnerDto](docs/BidResultWinnerDto.md)
|
|
278
|
+
- [BidResultsBatchRequestDto](docs/BidResultsBatchRequestDto.md)
|
|
279
|
+
- [BidResultsResponseDto](docs/BidResultsResponseDto.md)
|
|
280
|
+
- [BidSettlementLineItemDto](docs/BidSettlementLineItemDto.md)
|
|
281
|
+
- [BidSettlementParticipantDto](docs/BidSettlementParticipantDto.md)
|
|
282
|
+
- [BidSettlementResponseDto](docs/BidSettlementResponseDto.md)
|
|
283
|
+
- [BidStatementResponseDto](docs/BidStatementResponseDto.md)
|
|
72
284
|
- [BidStatus](docs/BidStatus.md)
|
|
73
285
|
- [BidSummaryResponseDto](docs/BidSummaryResponseDto.md)
|
|
286
|
+
- [CompleteAcceptanceRequestDto](docs/CompleteAcceptanceRequestDto.md)
|
|
287
|
+
- [ContractDocumentItemDto](docs/ContractDocumentItemDto.md)
|
|
74
288
|
- [CreateBidRequestDto](docs/CreateBidRequestDto.md)
|
|
75
289
|
- [FileUploadedResponseDto](docs/FileUploadedResponseDto.md)
|
|
76
290
|
- [HealthResponseDto](docs/HealthResponseDto.md)
|
|
77
291
|
- [HierarchicalRegionDto](docs/HierarchicalRegionDto.md)
|
|
78
|
-
- [
|
|
292
|
+
- [MarkBidFailedRequestDto](docs/MarkBidFailedRequestDto.md)
|
|
293
|
+
- [NegotiationScoreDto](docs/NegotiationScoreDto.md)
|
|
294
|
+
- [NegotiationScoredResponseDto](docs/NegotiationScoredResponseDto.md)
|
|
79
295
|
- [PreconditionsDto](docs/PreconditionsDto.md)
|
|
80
296
|
- [RegisterAwardRequestDto](docs/RegisterAwardRequestDto.md)
|
|
297
|
+
- [RequestSplitInvoiceRequestDto](docs/RequestSplitInvoiceRequestDto.md)
|
|
298
|
+
- [SplitInvoiceResponseDto](docs/SplitInvoiceResponseDto.md)
|
|
299
|
+
- [StatementDocumentDto](docs/StatementDocumentDto.md)
|
|
300
|
+
- [StatementProductDto](docs/StatementProductDto.md)
|
|
301
|
+
- [SubmitNegotiationScoresRequestDto](docs/SubmitNegotiationScoresRequestDto.md)
|
|
81
302
|
- [TokenRequestDto](docs/TokenRequestDto.md)
|
|
82
303
|
- [TokenResponseDto](docs/TokenResponseDto.md)
|
|
83
304
|
- [UploadFileRequestDto](docs/UploadFileRequestDto.md)
|