@cmarket/partner-sdk 34.0.0 → 35.1.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 +5 -56
- package/api/oauth-api.ts +2 -2
- package/api/partner-v1-api.ts +2 -2
- package/api/partner-v2-api.ts +68 -1319
- package/api/well-known-api.ts +2 -2
- package/api.ts +2 -2
- package/base.ts +2 -2
- 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 +22 -578
- package/dist/api/partner-v2-api.js +93 -1263
- package/dist/api/well-known-api.d.ts +2 -2
- package/dist/api/well-known-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 +2 -2
- 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 +22 -578
- package/dist/esm/api/partner-v2-api.js +93 -1263
- package/dist/esm/api/well-known-api.d.ts +2 -2
- package/dist/esm/api/well-known-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 +2 -2
- 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/acceptance-result-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/acceptance-result-v1-response-dto.js +2 -2
- package/dist/esm/models/acknowledge-products-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/acknowledge-products-v1-request-dto.js +2 -2
- package/dist/esm/models/api-catalog-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-dto.js +2 -2
- package/dist/esm/models/api-catalog-entry-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-entry-dto.js +2 -2
- package/dist/esm/models/api-catalog-link-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-link-dto.js +2 -2
- package/dist/esm/models/authorization-server-metadata-dto.d.ts +2 -2
- package/dist/esm/models/authorization-server-metadata-dto.js +2 -2
- package/dist/esm/models/award-method-public.d.ts +2 -2
- package/dist/esm/models/award-method-public.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/award-registered-v2-response-dto.d.ts +2 -2
- package/dist/esm/models/award-registered-v2-response-dto.js +2 -2
- package/dist/esm/models/award-reverted-v2-response-dto.d.ts +2 -2
- package/dist/esm/models/award-reverted-v2-response-dto.js +2 -2
- package/dist/esm/models/bid-acceptance-dto.d.ts +2 -2
- package/dist/esm/models/bid-acceptance-dto.js +2 -2
- package/dist/esm/models/bid-attachment-v1-dto.d.ts +2 -2
- package/dist/esm/models/bid-attachment-v1-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-bond-v1-dto.d.ts +2 -2
- package/dist/esm/models/bid-bond-v1-dto.js +2 -2
- package/dist/esm/models/bid-cancelled-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-cancelled-response-dto.js +2 -2
- package/dist/esm/models/bid-contact-dto.d.ts +2 -2
- package/dist/esm/models/bid-contact-dto.js +2 -2
- package/dist/esm/models/bid-contacts-dto.d.ts +2 -2
- package/dist/esm/models/bid-contacts-dto.js +2 -2
- package/dist/esm/models/bid-contract-document-dto.d.ts +2 -2
- package/dist/esm/models/bid-contract-document-dto.js +2 -2
- package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.js +2 -2
- package/dist/esm/models/bid-contract-documents-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-contract-documents-v1-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-delivery-terms-dto.d.ts +2 -2
- package/dist/esm/models/bid-delivery-terms-dto.js +2 -2
- package/dist/esm/models/bid-detail-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-detail-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-document-v1-dto.d.ts +2 -2
- package/dist/esm/models/bid-document-v1-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-failed-v2-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-failed-v2-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-item-v1-dto.d.ts +2 -2
- package/dist/esm/models/bid-item-v1-dto.js +2 -2
- package/dist/esm/models/bid-lifecycle-dto.d.ts +2 -2
- package/dist/esm/models/bid-lifecycle-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-manager-v1-dto.d.ts +2 -2
- package/dist/esm/models/bid-manager-v1-dto.js +2 -2
- package/dist/esm/models/bid-payment-terms-dto.d.ts +2 -2
- package/dist/esm/models/bid-payment-terms-dto.js +2 -2
- package/dist/esm/models/bid-product-dto.d.ts +2 -2
- package/dist/esm/models/bid-product-dto.js +2 -2
- package/dist/esm/models/bid-public-status.d.ts +2 -2
- package/dist/esm/models/bid-public-status.js +2 -2
- package/dist/esm/models/bid-registered-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-registered-response-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-v1-attachment-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-v1-attachment-dto.js +2 -2
- package/dist/esm/models/bid-result-v1-bid-product-info-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-v1-bid-product-info-dto.js +2 -2
- package/dist/esm/models/bid-result-v1-participant-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-v1-participant-dto.js +2 -2
- package/dist/esm/models/bid-result-v1-product-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-v1-product-dto.js +2 -2
- package/dist/esm/models/bid-results-batch-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/bid-results-batch-v1-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-results-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-results-v1-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-statement-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-statement-v1-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/bid-summary-dto.d.ts +2 -2
- package/dist/esm/models/bid-summary-dto.js +2 -2
- package/dist/esm/models/bid-updated-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-updated-response-dto.js +2 -2
- package/dist/esm/models/cancel-bid-request-dto.d.ts +2 -2
- package/dist/esm/models/cancel-bid-request-dto.js +2 -2
- package/dist/esm/models/cancel-bid200-response.d.ts +2 -2
- package/dist/esm/models/cancel-bid200-response.js +2 -2
- package/dist/esm/models/card-payment-request-response-dto.d.ts +2 -2
- package/dist/esm/models/card-payment-request-response-dto.js +2 -2
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +10 -2
- package/dist/esm/models/complete-acceptance-request-dto.js +2 -2
- package/dist/esm/models/complete-acceptance-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/complete-acceptance-v1-request-dto.js +2 -2
- package/dist/esm/models/complete-acceptance200-response.d.ts +2 -2
- package/dist/esm/models/complete-acceptance200-response.js +2 -2
- package/dist/esm/models/complete-invoice200-response.d.ts +2 -2
- package/dist/esm/models/complete-invoice200-response.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/contract-restriction-confirm-input-dto.d.ts +2 -2
- package/dist/esm/models/contract-restriction-confirm-input-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/create-bid-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/create-bid-v1-request-dto.js +2 -2
- package/dist/esm/models/create-card-payment-request-dto.d.ts +2 -2
- package/dist/esm/models/create-card-payment-request-dto.js +2 -2
- package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +2 -2
- package/dist/esm/models/create-external-contract-documents-request-dto.js +2 -2
- package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +2 -2
- package/dist/esm/models/create-external-contract-documents-response-dto.js +2 -2
- package/dist/esm/models/external-contract-document-item-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-document-item-dto.js +2 -2
- package/dist/esm/models/external-contract-documents-response-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-documents-response-dto.js +2 -2
- package/dist/esm/models/external-contract-item-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-item-dto.js +2 -2
- package/dist/esm/models/external-contract-snapshot-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-snapshot-dto.js +2 -2
- package/dist/esm/models/external-document-inputs-dto.d.ts +2 -2
- package/dist/esm/models/external-document-inputs-dto.js +2 -2
- package/dist/esm/models/file-meta-response-dto.d.ts +2 -2
- package/dist/esm/models/file-meta-response-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/file-uploaded-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/file-uploaded-v1-response-dto.js +2 -2
- package/dist/esm/models/generated-external-contract-document-dto.d.ts +2 -2
- package/dist/esm/models/generated-external-contract-document-dto.js +2 -2
- package/dist/esm/models/get-bid-settlement200-response.d.ts +2 -2
- package/dist/esm/models/get-bid-settlement200-response.js +2 -2
- package/dist/esm/models/get-bid-statement200-response.d.ts +2 -2
- package/dist/esm/models/get-bid-statement200-response.js +2 -2
- package/dist/esm/models/get-bid200-response.d.ts +2 -2
- package/dist/esm/models/get-bid200-response.js +2 -2
- package/dist/esm/models/get-file-meta200-response.d.ts +2 -2
- package/dist/esm/models/get-file-meta200-response.js +2 -2
- package/dist/esm/models/health-controller-check200-response.d.ts +2 -2
- package/dist/esm/models/health-controller-check200-response.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/hierarchical-region-v1-dto.d.ts +2 -2
- package/dist/esm/models/hierarchical-region-v1-dto.js +2 -2
- package/dist/esm/models/index.d.ts +0 -36
- package/dist/esm/models/index.js +0 -36
- package/dist/esm/models/introspect-request-dto.d.ts +2 -2
- package/dist/esm/models/introspect-request-dto.js +2 -2
- package/dist/esm/models/introspection-response-dto.d.ts +2 -2
- package/dist/esm/models/introspection-response-dto.js +2 -2
- package/dist/esm/models/invalid-param-dto.d.ts +2 -2
- package/dist/esm/models/invalid-param-dto.js +2 -2
- package/dist/esm/models/invoice-completed-response-dto.d.ts +2 -2
- package/dist/esm/models/invoice-completed-response-dto.js +2 -2
- package/dist/esm/models/list-bid-results200-response.d.ts +2 -2
- package/dist/esm/models/list-bid-results200-response.js +2 -2
- package/dist/esm/models/list-bids-response-dto.d.ts +2 -2
- package/dist/esm/models/list-bids-response-dto.js +2 -2
- package/dist/esm/models/list-bids200-response.d.ts +2 -2
- package/dist/esm/models/list-bids200-response.js +2 -2
- 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/mark-bid-failed-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed-v1-request-dto.js +2 -2
- package/dist/esm/models/mark-bid-failed201-response.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed201-response.js +2 -2
- package/dist/esm/models/negotiation-score-v1-dto.d.ts +2 -2
- package/dist/esm/models/negotiation-score-v1-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 +2 -2
- package/dist/esm/models/oauth-error-response-dto.js +2 -2
- package/dist/esm/models/preconditions-dto.d.ts +2 -2
- package/dist/esm/models/preconditions-dto.js +2 -2
- package/dist/esm/models/preconditions-v1-dto.d.ts +2 -2
- package/dist/esm/models/preconditions-v1-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/product-receipt-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/product-receipt-v1-response-dto.js +2 -2
- package/dist/esm/models/product-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/product-v1-response-dto.js +2 -2
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +2 -2
- package/dist/esm/models/protected-resource-metadata-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/register-award-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/register-award-v1-request-dto.js +2 -2
- package/dist/esm/models/register-award201-response.d.ts +2 -2
- package/dist/esm/models/register-award201-response.js +2 -2
- package/dist/esm/models/register-bid201-response.d.ts +2 -2
- package/dist/esm/models/register-bid201-response.js +2 -2
- package/dist/esm/models/register-semo-contract-request-dto.d.ts +2 -2
- package/dist/esm/models/register-semo-contract-request-dto.js +2 -2
- package/dist/esm/models/request-split-invoice-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/request-split-invoice-v1-request-dto.js +2 -2
- package/dist/esm/models/retiree-roster-input-dto.d.ts +2 -2
- package/dist/esm/models/retiree-roster-input-dto.js +2 -2
- package/dist/esm/models/retiree-roster-row-dto.d.ts +2 -2
- package/dist/esm/models/retiree-roster-row-dto.js +2 -2
- package/dist/esm/models/revert-award-request-dto.d.ts +2 -2
- package/dist/esm/models/revert-award-request-dto.js +2 -2
- package/dist/esm/models/revert-award200-response.d.ts +2 -2
- package/dist/esm/models/revert-award200-response.js +2 -2
- package/dist/esm/models/revoke-request-dto.d.ts +2 -2
- package/dist/esm/models/revoke-request-dto.js +2 -2
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +2 -2
- package/dist/esm/models/semo-contract-registered-response-dto.js +2 -2
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
- package/dist/esm/models/split-invoice-v1-response-dto.d.ts +2 -2
- package/dist/esm/models/split-invoice-v1-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/statement-v1-document-dto.d.ts +2 -2
- package/dist/esm/models/statement-v1-document-dto.js +2 -2
- package/dist/esm/models/statement-v1-product-dto.d.ts +2 -2
- package/dist/esm/models/statement-v1-product-dto.js +2 -2
- package/dist/esm/models/submit-negotiation-scores-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/submit-negotiation-scores-v1-request-dto.js +2 -2
- package/dist/esm/models/supplier-card-payable-response-dto.d.ts +2 -2
- package/dist/esm/models/supplier-card-payable-response-dto.js +2 -2
- package/dist/esm/models/supplier-tax-type.d.ts +2 -2
- package/dist/esm/models/supplier-tax-type.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/update-bid-request-dto.d.ts +2 -2
- package/dist/esm/models/update-bid-request-dto.js +2 -2
- package/dist/esm/models/update-bid200-response.d.ts +2 -2
- package/dist/esm/models/update-bid200-response.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/esm/models/upload-file-v1-request-dto.d.ts +2 -2
- package/dist/esm/models/upload-file-v1-request-dto.js +2 -2
- package/dist/esm/models/upload-file201-response.d.ts +2 -2
- package/dist/esm/models/upload-file201-response.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/acceptance-result-v1-response-dto.d.ts +2 -2
- package/dist/models/acceptance-result-v1-response-dto.js +2 -2
- package/dist/models/acknowledge-products-v1-request-dto.d.ts +2 -2
- package/dist/models/acknowledge-products-v1-request-dto.js +2 -2
- package/dist/models/api-catalog-dto.d.ts +2 -2
- package/dist/models/api-catalog-dto.js +2 -2
- package/dist/models/api-catalog-entry-dto.d.ts +2 -2
- package/dist/models/api-catalog-entry-dto.js +2 -2
- package/dist/models/api-catalog-link-dto.d.ts +2 -2
- package/dist/models/api-catalog-link-dto.js +2 -2
- package/dist/models/authorization-server-metadata-dto.d.ts +2 -2
- package/dist/models/authorization-server-metadata-dto.js +2 -2
- package/dist/models/award-method-public.d.ts +2 -2
- package/dist/models/award-method-public.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/award-registered-v2-response-dto.d.ts +2 -2
- package/dist/models/award-registered-v2-response-dto.js +2 -2
- package/dist/models/award-reverted-v2-response-dto.d.ts +2 -2
- package/dist/models/award-reverted-v2-response-dto.js +2 -2
- package/dist/models/bid-acceptance-dto.d.ts +2 -2
- package/dist/models/bid-acceptance-dto.js +2 -2
- package/dist/models/bid-attachment-v1-dto.d.ts +2 -2
- package/dist/models/bid-attachment-v1-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-bond-v1-dto.d.ts +2 -2
- package/dist/models/bid-bond-v1-dto.js +2 -2
- package/dist/models/bid-cancelled-response-dto.d.ts +2 -2
- package/dist/models/bid-cancelled-response-dto.js +2 -2
- package/dist/models/bid-contact-dto.d.ts +2 -2
- package/dist/models/bid-contact-dto.js +2 -2
- package/dist/models/bid-contacts-dto.d.ts +2 -2
- package/dist/models/bid-contacts-dto.js +2 -2
- package/dist/models/bid-contract-document-dto.d.ts +2 -2
- package/dist/models/bid-contract-document-dto.js +2 -2
- package/dist/models/bid-contract-documents-batch-v1-request-dto.d.ts +2 -2
- package/dist/models/bid-contract-documents-batch-v1-request-dto.js +2 -2
- package/dist/models/bid-contract-documents-v1-response-dto.d.ts +2 -2
- package/dist/models/bid-contract-documents-v1-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-delivery-terms-dto.d.ts +2 -2
- package/dist/models/bid-delivery-terms-dto.js +2 -2
- package/dist/models/bid-detail-response-dto.d.ts +2 -2
- package/dist/models/bid-detail-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-document-v1-dto.d.ts +2 -2
- package/dist/models/bid-document-v1-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-failed-v2-response-dto.d.ts +2 -2
- package/dist/models/bid-failed-v2-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-item-v1-dto.d.ts +2 -2
- package/dist/models/bid-item-v1-dto.js +2 -2
- package/dist/models/bid-lifecycle-dto.d.ts +2 -2
- package/dist/models/bid-lifecycle-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-manager-v1-dto.d.ts +2 -2
- package/dist/models/bid-manager-v1-dto.js +2 -2
- package/dist/models/bid-payment-terms-dto.d.ts +2 -2
- package/dist/models/bid-payment-terms-dto.js +2 -2
- package/dist/models/bid-product-dto.d.ts +2 -2
- package/dist/models/bid-product-dto.js +2 -2
- package/dist/models/bid-public-status.d.ts +2 -2
- package/dist/models/bid-public-status.js +2 -2
- package/dist/models/bid-registered-response-dto.d.ts +2 -2
- package/dist/models/bid-registered-response-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-v1-attachment-dto.d.ts +2 -2
- package/dist/models/bid-result-v1-attachment-dto.js +2 -2
- package/dist/models/bid-result-v1-bid-product-info-dto.d.ts +2 -2
- package/dist/models/bid-result-v1-bid-product-info-dto.js +2 -2
- package/dist/models/bid-result-v1-participant-dto.d.ts +2 -2
- package/dist/models/bid-result-v1-participant-dto.js +2 -2
- package/dist/models/bid-result-v1-product-dto.d.ts +2 -2
- package/dist/models/bid-result-v1-product-dto.js +2 -2
- package/dist/models/bid-results-batch-v1-request-dto.d.ts +2 -2
- package/dist/models/bid-results-batch-v1-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-results-v1-response-dto.d.ts +2 -2
- package/dist/models/bid-results-v1-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-statement-v1-response-dto.d.ts +2 -2
- package/dist/models/bid-statement-v1-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/bid-summary-dto.d.ts +2 -2
- package/dist/models/bid-summary-dto.js +2 -2
- package/dist/models/bid-updated-response-dto.d.ts +2 -2
- package/dist/models/bid-updated-response-dto.js +2 -2
- package/dist/models/cancel-bid-request-dto.d.ts +2 -2
- package/dist/models/cancel-bid-request-dto.js +2 -2
- package/dist/models/cancel-bid200-response.d.ts +2 -2
- package/dist/models/cancel-bid200-response.js +2 -2
- package/dist/models/card-payment-request-response-dto.d.ts +2 -2
- package/dist/models/card-payment-request-response-dto.js +2 -2
- package/dist/models/complete-acceptance-request-dto.d.ts +10 -2
- package/dist/models/complete-acceptance-request-dto.js +2 -2
- package/dist/models/complete-acceptance-v1-request-dto.d.ts +2 -2
- package/dist/models/complete-acceptance-v1-request-dto.js +2 -2
- package/dist/models/complete-acceptance200-response.d.ts +2 -2
- package/dist/models/complete-acceptance200-response.js +2 -2
- package/dist/models/complete-invoice200-response.d.ts +2 -2
- package/dist/models/complete-invoice200-response.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/contract-restriction-confirm-input-dto.d.ts +2 -2
- package/dist/models/contract-restriction-confirm-input-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/create-bid-v1-request-dto.d.ts +2 -2
- package/dist/models/create-bid-v1-request-dto.js +2 -2
- package/dist/models/create-card-payment-request-dto.d.ts +2 -2
- package/dist/models/create-card-payment-request-dto.js +2 -2
- package/dist/models/create-external-contract-documents-request-dto.d.ts +2 -2
- package/dist/models/create-external-contract-documents-request-dto.js +2 -2
- package/dist/models/create-external-contract-documents-response-dto.d.ts +2 -2
- package/dist/models/create-external-contract-documents-response-dto.js +2 -2
- package/dist/models/external-contract-document-item-dto.d.ts +2 -2
- package/dist/models/external-contract-document-item-dto.js +2 -2
- package/dist/models/external-contract-documents-response-dto.d.ts +2 -2
- package/dist/models/external-contract-documents-response-dto.js +2 -2
- package/dist/models/external-contract-item-dto.d.ts +2 -2
- package/dist/models/external-contract-item-dto.js +2 -2
- package/dist/models/external-contract-snapshot-dto.d.ts +2 -2
- package/dist/models/external-contract-snapshot-dto.js +2 -2
- package/dist/models/external-document-inputs-dto.d.ts +2 -2
- package/dist/models/external-document-inputs-dto.js +2 -2
- package/dist/models/file-meta-response-dto.d.ts +2 -2
- package/dist/models/file-meta-response-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/file-uploaded-v1-response-dto.d.ts +2 -2
- package/dist/models/file-uploaded-v1-response-dto.js +2 -2
- package/dist/models/generated-external-contract-document-dto.d.ts +2 -2
- package/dist/models/generated-external-contract-document-dto.js +2 -2
- package/dist/models/get-bid-settlement200-response.d.ts +2 -2
- package/dist/models/get-bid-settlement200-response.js +2 -2
- package/dist/models/get-bid-statement200-response.d.ts +2 -2
- package/dist/models/get-bid-statement200-response.js +2 -2
- package/dist/models/get-bid200-response.d.ts +2 -2
- package/dist/models/get-bid200-response.js +2 -2
- package/dist/models/get-file-meta200-response.d.ts +2 -2
- package/dist/models/get-file-meta200-response.js +2 -2
- package/dist/models/health-controller-check200-response.d.ts +2 -2
- package/dist/models/health-controller-check200-response.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/hierarchical-region-v1-dto.d.ts +2 -2
- package/dist/models/hierarchical-region-v1-dto.js +2 -2
- package/dist/models/index.d.ts +0 -36
- package/dist/models/index.js +0 -36
- package/dist/models/introspect-request-dto.d.ts +2 -2
- package/dist/models/introspect-request-dto.js +2 -2
- package/dist/models/introspection-response-dto.d.ts +2 -2
- package/dist/models/introspection-response-dto.js +2 -2
- package/dist/models/invalid-param-dto.d.ts +2 -2
- package/dist/models/invalid-param-dto.js +2 -2
- package/dist/models/invoice-completed-response-dto.d.ts +2 -2
- package/dist/models/invoice-completed-response-dto.js +2 -2
- package/dist/models/list-bid-results200-response.d.ts +2 -2
- package/dist/models/list-bid-results200-response.js +2 -2
- package/dist/models/list-bids-response-dto.d.ts +2 -2
- package/dist/models/list-bids-response-dto.js +2 -2
- package/dist/models/list-bids200-response.d.ts +2 -2
- package/dist/models/list-bids200-response.js +2 -2
- 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/mark-bid-failed-v1-request-dto.d.ts +2 -2
- package/dist/models/mark-bid-failed-v1-request-dto.js +2 -2
- package/dist/models/mark-bid-failed201-response.d.ts +2 -2
- package/dist/models/mark-bid-failed201-response.js +2 -2
- package/dist/models/negotiation-score-v1-dto.d.ts +2 -2
- package/dist/models/negotiation-score-v1-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 +2 -2
- package/dist/models/oauth-error-response-dto.js +2 -2
- package/dist/models/preconditions-dto.d.ts +2 -2
- package/dist/models/preconditions-dto.js +2 -2
- package/dist/models/preconditions-v1-dto.d.ts +2 -2
- package/dist/models/preconditions-v1-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/product-receipt-v1-response-dto.d.ts +2 -2
- package/dist/models/product-receipt-v1-response-dto.js +2 -2
- package/dist/models/product-v1-response-dto.d.ts +2 -2
- package/dist/models/product-v1-response-dto.js +2 -2
- package/dist/models/protected-resource-metadata-dto.d.ts +2 -2
- package/dist/models/protected-resource-metadata-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/register-award-v1-request-dto.d.ts +2 -2
- package/dist/models/register-award-v1-request-dto.js +2 -2
- package/dist/models/register-award201-response.d.ts +2 -2
- package/dist/models/register-award201-response.js +2 -2
- package/dist/models/register-bid201-response.d.ts +2 -2
- package/dist/models/register-bid201-response.js +2 -2
- package/dist/models/register-semo-contract-request-dto.d.ts +2 -2
- package/dist/models/register-semo-contract-request-dto.js +2 -2
- package/dist/models/request-split-invoice-v1-request-dto.d.ts +2 -2
- package/dist/models/request-split-invoice-v1-request-dto.js +2 -2
- package/dist/models/retiree-roster-input-dto.d.ts +2 -2
- package/dist/models/retiree-roster-input-dto.js +2 -2
- package/dist/models/retiree-roster-row-dto.d.ts +2 -2
- package/dist/models/retiree-roster-row-dto.js +2 -2
- package/dist/models/revert-award-request-dto.d.ts +2 -2
- package/dist/models/revert-award-request-dto.js +2 -2
- package/dist/models/revert-award200-response.d.ts +2 -2
- package/dist/models/revert-award200-response.js +2 -2
- package/dist/models/revoke-request-dto.d.ts +2 -2
- package/dist/models/revoke-request-dto.js +2 -2
- package/dist/models/semo-contract-registered-response-dto.d.ts +2 -2
- package/dist/models/semo-contract-registered-response-dto.js +2 -2
- package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
- package/dist/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
- package/dist/models/split-invoice-v1-response-dto.d.ts +2 -2
- package/dist/models/split-invoice-v1-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/statement-v1-document-dto.d.ts +2 -2
- package/dist/models/statement-v1-document-dto.js +2 -2
- package/dist/models/statement-v1-product-dto.d.ts +2 -2
- package/dist/models/statement-v1-product-dto.js +2 -2
- package/dist/models/submit-negotiation-scores-v1-request-dto.d.ts +2 -2
- package/dist/models/submit-negotiation-scores-v1-request-dto.js +2 -2
- package/dist/models/supplier-card-payable-response-dto.d.ts +2 -2
- package/dist/models/supplier-card-payable-response-dto.js +2 -2
- package/dist/models/supplier-tax-type.d.ts +2 -2
- package/dist/models/supplier-tax-type.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/update-bid-request-dto.d.ts +2 -2
- package/dist/models/update-bid-request-dto.js +2 -2
- package/dist/models/update-bid200-response.d.ts +2 -2
- package/dist/models/update-bid200-response.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/dist/models/upload-file-v1-request-dto.d.ts +2 -2
- package/dist/models/upload-file-v1-request-dto.js +2 -2
- package/dist/models/upload-file201-response.d.ts +2 -2
- package/dist/models/upload-file201-response.js +2 -2
- package/docs/CompleteAcceptanceRequestDto.md +4 -0
- package/docs/PartnerV2Api.md +173 -1121
- package/index.ts +2 -2
- package/models/acceptance-result-response-dto.ts +2 -2
- package/models/acceptance-result-v1-response-dto.ts +2 -2
- package/models/acknowledge-products-v1-request-dto.ts +2 -2
- package/models/api-catalog-dto.ts +2 -2
- package/models/api-catalog-entry-dto.ts +2 -2
- package/models/api-catalog-link-dto.ts +2 -2
- package/models/authorization-server-metadata-dto.ts +2 -2
- package/models/award-method-public.ts +2 -2
- package/models/award-registered-response-dto.ts +2 -2
- package/models/award-registered-v2-response-dto.ts +2 -2
- package/models/award-reverted-v2-response-dto.ts +2 -2
- package/models/bid-acceptance-dto.ts +2 -2
- package/models/bid-attachment-v1-dto.ts +2 -2
- package/models/bid-bond-dto.ts +2 -2
- package/models/bid-bond-v1-dto.ts +2 -2
- package/models/bid-cancelled-response-dto.ts +2 -2
- package/models/bid-contact-dto.ts +2 -2
- package/models/bid-contacts-dto.ts +2 -2
- package/models/bid-contract-document-dto.ts +2 -2
- package/models/bid-contract-documents-batch-v1-request-dto.ts +2 -2
- package/models/bid-contract-documents-v1-response-dto.ts +2 -2
- package/models/bid-created-response-dto.ts +2 -2
- package/models/bid-delivery-terms-dto.ts +2 -2
- package/models/bid-detail-response-dto.ts +2 -2
- package/models/bid-document-dto.ts +2 -2
- package/models/bid-document-v1-dto.ts +2 -2
- package/models/bid-failed-response-dto.ts +2 -2
- package/models/bid-failed-v2-response-dto.ts +2 -2
- package/models/bid-failure-reason.ts +2 -2
- package/models/bid-item-dto.ts +2 -2
- package/models/bid-item-v1-dto.ts +2 -2
- package/models/bid-lifecycle-dto.ts +2 -2
- package/models/bid-manager-dto.ts +2 -2
- package/models/bid-manager-v1-dto.ts +2 -2
- package/models/bid-payment-terms-dto.ts +2 -2
- package/models/bid-product-dto.ts +2 -2
- package/models/bid-public-status.ts +2 -2
- package/models/bid-registered-response-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-v1-attachment-dto.ts +2 -2
- package/models/bid-result-v1-bid-product-info-dto.ts +2 -2
- package/models/bid-result-v1-participant-dto.ts +2 -2
- package/models/bid-result-v1-product-dto.ts +2 -2
- package/models/bid-results-batch-v1-request-dto.ts +2 -2
- package/models/bid-results-response-dto.ts +2 -2
- package/models/bid-results-v1-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-statement-v1-response-dto.ts +2 -2
- package/models/bid-status.ts +2 -2
- package/models/bid-summary-dto.ts +2 -2
- package/models/bid-updated-response-dto.ts +2 -2
- package/models/cancel-bid-request-dto.ts +2 -2
- package/models/cancel-bid200-response.ts +2 -2
- package/models/card-payment-request-response-dto.ts +2 -2
- package/models/complete-acceptance-request-dto.ts +10 -2
- package/models/complete-acceptance-v1-request-dto.ts +2 -2
- package/models/complete-acceptance200-response.ts +2 -2
- package/models/complete-invoice200-response.ts +2 -2
- package/models/contract-document-item-dto.ts +2 -2
- package/models/contract-restriction-confirm-input-dto.ts +2 -2
- package/models/create-bid-request-dto.ts +2 -2
- package/models/create-bid-v1-request-dto.ts +2 -2
- package/models/create-card-payment-request-dto.ts +2 -2
- package/models/create-external-contract-documents-request-dto.ts +2 -2
- package/models/create-external-contract-documents-response-dto.ts +2 -2
- package/models/external-contract-document-item-dto.ts +2 -2
- package/models/external-contract-documents-response-dto.ts +2 -2
- package/models/external-contract-item-dto.ts +2 -2
- package/models/external-contract-snapshot-dto.ts +2 -2
- package/models/external-document-inputs-dto.ts +2 -2
- package/models/file-meta-response-dto.ts +2 -2
- package/models/file-uploaded-response-dto.ts +2 -2
- package/models/file-uploaded-v1-response-dto.ts +2 -2
- package/models/generated-external-contract-document-dto.ts +2 -2
- package/models/get-bid-settlement200-response.ts +2 -2
- package/models/get-bid-statement200-response.ts +2 -2
- package/models/get-bid200-response.ts +2 -2
- package/models/get-file-meta200-response.ts +2 -2
- package/models/health-controller-check200-response.ts +2 -2
- package/models/health-response-dto.ts +2 -2
- package/models/hierarchical-region-dto.ts +2 -2
- package/models/hierarchical-region-v1-dto.ts +2 -2
- package/models/index.ts +0 -36
- package/models/introspect-request-dto.ts +2 -2
- package/models/introspection-response-dto.ts +2 -2
- package/models/invalid-param-dto.ts +2 -2
- package/models/invoice-completed-response-dto.ts +2 -2
- package/models/list-bid-results200-response.ts +2 -2
- package/models/list-bids-response-dto.ts +2 -2
- package/models/list-bids200-response.ts +2 -2
- package/models/mark-bid-failed-request-dto.ts +2 -2
- package/models/mark-bid-failed-v1-request-dto.ts +2 -2
- package/models/mark-bid-failed201-response.ts +2 -2
- package/models/negotiation-score-v1-dto.ts +2 -2
- package/models/negotiation-scored-response-dto.ts +2 -2
- package/models/oauth-error-response-dto.ts +2 -2
- package/models/preconditions-dto.ts +2 -2
- package/models/preconditions-v1-dto.ts +2 -2
- package/models/problem-details-dto.ts +2 -2
- package/models/product-receipt-v1-response-dto.ts +2 -2
- package/models/product-v1-response-dto.ts +2 -2
- package/models/protected-resource-metadata-dto.ts +2 -2
- package/models/register-award-request-dto.ts +2 -2
- package/models/register-award-v1-request-dto.ts +2 -2
- package/models/register-award201-response.ts +2 -2
- package/models/register-bid201-response.ts +2 -2
- package/models/register-semo-contract-request-dto.ts +2 -2
- package/models/request-split-invoice-v1-request-dto.ts +2 -2
- package/models/retiree-roster-input-dto.ts +2 -2
- package/models/retiree-roster-row-dto.ts +2 -2
- package/models/revert-award-request-dto.ts +2 -2
- package/models/revert-award200-response.ts +2 -2
- package/models/revoke-request-dto.ts +2 -2
- package/models/semo-contract-registered-response-dto.ts +2 -2
- package/models/semo-contract-taxinvoice-status-response-dto.ts +2 -2
- package/models/split-invoice-v1-response-dto.ts +2 -2
- package/models/statement-document-dto.ts +2 -2
- package/models/statement-product-dto.ts +2 -2
- package/models/statement-v1-document-dto.ts +2 -2
- package/models/statement-v1-product-dto.ts +2 -2
- package/models/submit-negotiation-scores-v1-request-dto.ts +2 -2
- package/models/supplier-card-payable-response-dto.ts +2 -2
- package/models/supplier-tax-type.ts +2 -2
- package/models/token-request-dto.ts +2 -2
- package/models/token-response-dto.ts +2 -2
- package/models/update-bid-request-dto.ts +2 -2
- package/models/update-bid200-response.ts +2 -2
- package/models/upload-file-request-dto.ts +2 -2
- package/models/upload-file-v1-request-dto.ts +2 -2
- package/models/upload-file201-response.ts +2 -2
- package/package.json +1 -1
- package/api/webhooks-api.ts +0 -636
- package/dist/api/webhooks-api.d.ts +0 -304
- package/dist/api/webhooks-api.js +0 -621
- package/dist/esm/api/webhooks-api.d.ts +0 -304
- package/dist/esm/api/webhooks-api.js +0 -614
- package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +0 -21
- package/dist/esm/models/acknowledge-product-receipt200-response.js +0 -14
- package/dist/esm/models/acknowledge-products-request-dto.d.ts +0 -17
- package/dist/esm/models/acknowledge-products-request-dto.js +0 -14
- package/dist/esm/models/bid-published-response-dto.d.ts +0 -25
- package/dist/esm/models/bid-published-response-dto.js +0 -16
- package/dist/esm/models/contract-documents-regenerated-response-dto.d.ts +0 -21
- package/dist/esm/models/contract-documents-regenerated-response-dto.js +0 -14
- package/dist/esm/models/create-card-payment200-response.d.ts +0 -21
- package/dist/esm/models/create-card-payment200-response.js +0 -14
- package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +0 -22
- package/dist/esm/models/create-webhook-endpoint-request-dto.js +0 -14
- package/dist/esm/models/create-webhook-endpoint201-response.d.ts +0 -21
- package/dist/esm/models/create-webhook-endpoint201-response.js +0 -14
- package/dist/esm/models/get-bid-results200-response.d.ts +0 -21
- package/dist/esm/models/get-bid-results200-response.js +0 -14
- package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +0 -21
- package/dist/esm/models/get-supplier-card-payable-v2200-response.js +0 -14
- package/dist/esm/models/get-webhook-endpoint200-response.d.ts +0 -21
- package/dist/esm/models/get-webhook-endpoint200-response.js +0 -14
- package/dist/esm/models/list-products200-response.d.ts +0 -21
- package/dist/esm/models/list-products200-response.js +0 -14
- package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +0 -22
- package/dist/esm/models/list-webhook-deliveries-response-dto.js +0 -14
- package/dist/esm/models/list-webhook-deliveries200-response.d.ts +0 -21
- package/dist/esm/models/list-webhook-deliveries200-response.js +0 -14
- package/dist/esm/models/list-webhook-endpoints200-response.d.ts +0 -21
- package/dist/esm/models/list-webhook-endpoints200-response.js +0 -14
- package/dist/esm/models/on-bid-award-reverted-request.d.ts +0 -16
- package/dist/esm/models/on-bid-award-reverted-request.js +0 -14
- package/dist/esm/models/on-bid-awarded-request.d.ts +0 -16
- package/dist/esm/models/on-bid-awarded-request.js +0 -14
- package/dist/esm/models/on-bid-canceled-request.d.ts +0 -16
- package/dist/esm/models/on-bid-canceled-request.js +0 -14
- package/dist/esm/models/on-bid-closed-request.d.ts +0 -16
- package/dist/esm/models/on-bid-closed-request.js +0 -14
- package/dist/esm/models/on-bid-failed-request.d.ts +0 -16
- package/dist/esm/models/on-bid-failed-request.js +0 -14
- package/dist/esm/models/on-ping-request.d.ts +0 -16
- package/dist/esm/models/on-ping-request.js +0 -14
- package/dist/esm/models/partner-webhook-delivery-status.d.ts +0 -18
- package/dist/esm/models/partner-webhook-delivery-status.js +0 -19
- package/dist/esm/models/partner-webhook-endpoint-status.d.ts +0 -19
- package/dist/esm/models/partner-webhook-endpoint-status.js +0 -20
- package/dist/esm/models/partner-webhook-event-type.d.ts +0 -22
- package/dist/esm/models/partner-webhook-event-type.js +0 -23
- package/dist/esm/models/product-receipt-response-dto.d.ts +0 -17
- package/dist/esm/models/product-receipt-response-dto.js +0 -14
- package/dist/esm/models/product-response-dto.d.ts +0 -77
- package/dist/esm/models/product-response-dto.js +0 -14
- package/dist/esm/models/publish-bid200-response.d.ts +0 -21
- package/dist/esm/models/publish-bid200-response.js +0 -14
- package/dist/esm/models/regenerate-contract-documents201-response.d.ts +0 -21
- package/dist/esm/models/regenerate-contract-documents201-response.js +0 -14
- package/dist/esm/models/send-webhook-test-event200-response.d.ts +0 -21
- package/dist/esm/models/send-webhook-test-event200-response.js +0 -14
- package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +0 -27
- package/dist/esm/models/update-webhook-endpoint-request-dto.js +0 -14
- package/dist/esm/models/webhook-bid-event-data.d.ts +0 -33
- package/dist/esm/models/webhook-bid-event-data.js +0 -14
- package/dist/esm/models/webhook-delivery-dto.d.ts +0 -73
- package/dist/esm/models/webhook-delivery-dto.js +0 -21
- package/dist/esm/models/webhook-endpoint-dto.d.ts +0 -55
- package/dist/esm/models/webhook-endpoint-dto.js +0 -14
- package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +0 -59
- package/dist/esm/models/webhook-endpoint-with-secret-dto.js +0 -14
- package/dist/esm/models/webhook-event-envelope.d.ts +0 -34
- package/dist/esm/models/webhook-event-envelope.js +0 -14
- package/dist/esm/models/webhook-ping-event-data.d.ts +0 -20
- package/dist/esm/models/webhook-ping-event-data.js +0 -14
- package/dist/esm/models/webhook-test-result-dto.d.ts +0 -25
- package/dist/esm/models/webhook-test-result-dto.js +0 -14
- package/dist/models/acknowledge-product-receipt200-response.d.ts +0 -21
- package/dist/models/acknowledge-product-receipt200-response.js +0 -15
- package/dist/models/acknowledge-products-request-dto.d.ts +0 -17
- package/dist/models/acknowledge-products-request-dto.js +0 -15
- package/dist/models/bid-published-response-dto.d.ts +0 -25
- package/dist/models/bid-published-response-dto.js +0 -19
- package/dist/models/contract-documents-regenerated-response-dto.d.ts +0 -21
- package/dist/models/contract-documents-regenerated-response-dto.js +0 -15
- package/dist/models/create-card-payment200-response.d.ts +0 -21
- package/dist/models/create-card-payment200-response.js +0 -15
- package/dist/models/create-webhook-endpoint-request-dto.d.ts +0 -22
- package/dist/models/create-webhook-endpoint-request-dto.js +0 -15
- package/dist/models/create-webhook-endpoint201-response.d.ts +0 -21
- package/dist/models/create-webhook-endpoint201-response.js +0 -15
- package/dist/models/get-bid-results200-response.d.ts +0 -21
- package/dist/models/get-bid-results200-response.js +0 -15
- package/dist/models/get-supplier-card-payable-v2200-response.d.ts +0 -21
- package/dist/models/get-supplier-card-payable-v2200-response.js +0 -15
- package/dist/models/get-webhook-endpoint200-response.d.ts +0 -21
- package/dist/models/get-webhook-endpoint200-response.js +0 -15
- package/dist/models/list-products200-response.d.ts +0 -21
- package/dist/models/list-products200-response.js +0 -15
- package/dist/models/list-webhook-deliveries-response-dto.d.ts +0 -22
- package/dist/models/list-webhook-deliveries-response-dto.js +0 -15
- package/dist/models/list-webhook-deliveries200-response.d.ts +0 -21
- package/dist/models/list-webhook-deliveries200-response.js +0 -15
- package/dist/models/list-webhook-endpoints200-response.d.ts +0 -21
- package/dist/models/list-webhook-endpoints200-response.js +0 -15
- package/dist/models/on-bid-award-reverted-request.d.ts +0 -16
- package/dist/models/on-bid-award-reverted-request.js +0 -15
- package/dist/models/on-bid-awarded-request.d.ts +0 -16
- package/dist/models/on-bid-awarded-request.js +0 -15
- package/dist/models/on-bid-canceled-request.d.ts +0 -16
- package/dist/models/on-bid-canceled-request.js +0 -15
- package/dist/models/on-bid-closed-request.d.ts +0 -16
- package/dist/models/on-bid-closed-request.js +0 -15
- package/dist/models/on-bid-failed-request.d.ts +0 -16
- package/dist/models/on-bid-failed-request.js +0 -15
- package/dist/models/on-ping-request.d.ts +0 -16
- package/dist/models/on-ping-request.js +0 -15
- package/dist/models/partner-webhook-delivery-status.d.ts +0 -18
- package/dist/models/partner-webhook-delivery-status.js +0 -22
- package/dist/models/partner-webhook-endpoint-status.d.ts +0 -19
- package/dist/models/partner-webhook-endpoint-status.js +0 -23
- package/dist/models/partner-webhook-event-type.d.ts +0 -22
- package/dist/models/partner-webhook-event-type.js +0 -26
- package/dist/models/product-receipt-response-dto.d.ts +0 -17
- package/dist/models/product-receipt-response-dto.js +0 -15
- package/dist/models/product-response-dto.d.ts +0 -77
- package/dist/models/product-response-dto.js +0 -15
- package/dist/models/publish-bid200-response.d.ts +0 -21
- package/dist/models/publish-bid200-response.js +0 -15
- package/dist/models/regenerate-contract-documents201-response.d.ts +0 -21
- package/dist/models/regenerate-contract-documents201-response.js +0 -15
- package/dist/models/send-webhook-test-event200-response.d.ts +0 -21
- package/dist/models/send-webhook-test-event200-response.js +0 -15
- package/dist/models/update-webhook-endpoint-request-dto.d.ts +0 -27
- package/dist/models/update-webhook-endpoint-request-dto.js +0 -15
- package/dist/models/webhook-bid-event-data.d.ts +0 -33
- package/dist/models/webhook-bid-event-data.js +0 -15
- package/dist/models/webhook-delivery-dto.d.ts +0 -73
- package/dist/models/webhook-delivery-dto.js +0 -24
- package/dist/models/webhook-endpoint-dto.d.ts +0 -55
- package/dist/models/webhook-endpoint-dto.js +0 -15
- package/dist/models/webhook-endpoint-with-secret-dto.d.ts +0 -59
- package/dist/models/webhook-endpoint-with-secret-dto.js +0 -15
- package/dist/models/webhook-event-envelope.d.ts +0 -34
- package/dist/models/webhook-event-envelope.js +0 -15
- package/dist/models/webhook-ping-event-data.d.ts +0 -20
- package/dist/models/webhook-ping-event-data.js +0 -15
- package/dist/models/webhook-test-result-dto.d.ts +0 -25
- package/dist/models/webhook-test-result-dto.js +0 -15
- package/docs/AcknowledgeProductReceipt200Response.md +0 -22
- package/docs/AcknowledgeProductsRequestDto.md +0 -20
- package/docs/BidPublishedResponseDto.md +0 -22
- package/docs/ContractDocumentsRegeneratedResponseDto.md +0 -22
- package/docs/CreateCardPayment200Response.md +0 -22
- package/docs/CreateWebhookEndpoint201Response.md +0 -22
- package/docs/CreateWebhookEndpointRequestDto.md +0 -22
- package/docs/GetBidResults200Response.md +0 -22
- package/docs/GetSupplierCardPayableV2200Response.md +0 -22
- package/docs/GetWebhookEndpoint200Response.md +0 -22
- package/docs/ListProducts200Response.md +0 -22
- package/docs/ListWebhookDeliveries200Response.md +0 -22
- package/docs/ListWebhookDeliveriesResponseDto.md +0 -22
- package/docs/ListWebhookEndpoints200Response.md +0 -22
- package/docs/OnBidAwardRevertedRequest.md +0 -26
- package/docs/OnBidAwardedRequest.md +0 -26
- package/docs/OnBidCanceledRequest.md +0 -26
- package/docs/OnBidClosedRequest.md +0 -26
- package/docs/OnBidFailedRequest.md +0 -26
- package/docs/OnPingRequest.md +0 -26
- package/docs/PartnerWebhookDeliveryStatus.md +0 -14
- package/docs/PartnerWebhookEndpointStatus.md +0 -11
- package/docs/PartnerWebhookEventType.md +0 -17
- package/docs/ProductReceiptResponseDto.md +0 -20
- package/docs/ProductResponseDto.md +0 -50
- package/docs/PublishBid200Response.md +0 -22
- package/docs/RegenerateContractDocuments201Response.md +0 -22
- package/docs/SendWebhookTestEvent200Response.md +0 -22
- package/docs/UpdateWebhookEndpointRequestDto.md +0 -24
- package/docs/WebhookBidEventData.md +0 -27
- package/docs/WebhookDeliveryDto.md +0 -42
- package/docs/WebhookEndpointDto.md +0 -38
- package/docs/WebhookEndpointWithSecretDto.md +0 -40
- package/docs/WebhookEventEnvelope.md +0 -27
- package/docs/WebhookPingEventData.md +0 -21
- package/docs/WebhookTestResultDto.md +0 -24
- package/docs/WebhooksApi.md +0 -385
- package/models/acknowledge-product-receipt200-response.ts +0 -27
- package/models/acknowledge-products-request-dto.ts +0 -23
- package/models/bid-published-response-dto.ts +0 -34
- package/models/contract-documents-regenerated-response-dto.ts +0 -27
- package/models/create-card-payment200-response.ts +0 -27
- package/models/create-webhook-endpoint-request-dto.ts +0 -30
- package/models/create-webhook-endpoint201-response.ts +0 -27
- package/models/get-bid-results200-response.ts +0 -27
- package/models/get-supplier-card-payable-v2200-response.ts +0 -27
- package/models/get-webhook-endpoint200-response.ts +0 -27
- package/models/list-products200-response.ts +0 -27
- package/models/list-webhook-deliveries-response-dto.ts +0 -30
- package/models/list-webhook-deliveries200-response.ts +0 -27
- package/models/list-webhook-endpoints200-response.ts +0 -27
- package/models/on-bid-award-reverted-request.ts +0 -28
- package/models/on-bid-awarded-request.ts +0 -28
- package/models/on-bid-canceled-request.ts +0 -28
- package/models/on-bid-closed-request.ts +0 -28
- package/models/on-bid-failed-request.ts +0 -28
- package/models/on-ping-request.ts +0 -28
- package/models/partner-webhook-delivery-status.ts +0 -28
- package/models/partner-webhook-endpoint-status.ts +0 -29
- package/models/partner-webhook-event-type.ts +0 -32
- package/models/product-receipt-response-dto.ts +0 -23
- package/models/product-response-dto.ts +0 -83
- package/models/publish-bid200-response.ts +0 -27
- package/models/regenerate-contract-documents201-response.ts +0 -27
- package/models/send-webhook-test-event200-response.ts +0 -27
- package/models/update-webhook-endpoint-request-dto.ts +0 -39
- package/models/webhook-bid-event-data.ts +0 -43
- package/models/webhook-delivery-dto.ts +0 -82
- package/models/webhook-endpoint-dto.ts +0 -67
- package/models/webhook-endpoint-with-secret-dto.ts +0 -71
- package/models/webhook-event-envelope.ts +0 -38
- package/models/webhook-ping-event-data.ts +0 -26
- package/models/webhook-test-result-dto.ts +0 -31
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
/**
|
|
5
5
|
* CMARKET V6 Partner API
|
|
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) 헤더로 전송. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분할 것. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않는다. 범위 밖이면 스코프와 무관하게 403 이다. 대행 범위는 키마다 둘 중 하나로 설정된다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청할 것. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 셋입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, `/v1/_*` 은 동결된 레거시 표면이며, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다.
|
|
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) 헤더로 전송. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분할 것. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않는다. 범위 밖이면 스코프와 무관하게 403 이다. 대행 범위는 키마다 둘 중 하나로 설정된다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청할 것. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 셋입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, `/v1/_*` 은 동결된 레거시 표면이며, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`. 소비자는 **HTTP status + `type` URI** 로 분기한다. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도, `false`면 요청을 고쳐야 한다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않는다** — 브라우저로 열지 말고 문자열 비교로만 쓸 것. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 명시돼 있다. 새 slug 은 추가될 수 있으므로, 모르는 slug 을 만나면 `type` 이 아니라 **HTTP status 로 폴백**하도록 구현할 것. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**이다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받는다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈다. 재시도해도 영원히 같은 실패다. 새 키를 쓰거나 body 를 되돌릴 것. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분**. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나간다 — 신규 연동은 표준 필드를 쓸 것. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지한다. `429` 에서는 `Retry-After`(초)가 우선한다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도할 것. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급한다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실린다. ## 버전 수명(deprecation/sunset) - **_/v1** 은 레거시 V5 cutover 완료 시점까지 유지되는 충실 프록시입니다. 폐지 일정이 정해지면 /v1 응답에 헤더 세 개가 실립니다 — `Deprecation`(RFC 9745, `@<epoch초>`) · `Sunset`(RFC 8594, HTTP-date) · `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` — 이전 안내 문서를 가리킵니다). 일정이 정해지기 전에는 셋 다 나가지 않습니다. 종료일이 지난 뒤의 호출은 `404` 가 아니라 **`410 Gone`** 과 `type: …/endpoint-sunset` 으로 거절됩니다. 둘의 뜻이 다릅니다 — `404` 는 \"그런 것이 있었는지 모르겠다\", `410` 은 \"있었고 의도적으로 없앴다\" 입니다. `410` 을 받으면 경로 오타를 의심하지 말고 /v2 로 이전하세요. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지한다. 소비자는 이 헤더를 모니터링할 것.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document:
|
|
8
|
+
* The version of the OpenAPI document: 35.1.0
|
|
9
9
|
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -34,46 +34,6 @@ const base_1 = require("../base");
|
|
|
34
34
|
*/
|
|
35
35
|
const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
36
36
|
return {
|
|
37
|
-
/**
|
|
38
|
-
* 저장을 마친 물품을 전송완료로 표시해 다음 조회에서 제외합니다. **되돌릴 수 없습니다.** 표시한 물품은 `GET /v2/products` 로 다시 내려오지 않으므로, 자기 시스템에 저장이 끝난 뒤에 호출하세요. **표시 범위는 기관 그룹으로 잠깁니다.** 다른 기관의 물품 코드를 섞어 보내면 그 건은 표시되지 않고 `acknowledged` 가 요청 수보다 작게 돌아옵니다. **필수 스코프:** `products:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
39
|
-
* @summary 물품 수신확인
|
|
40
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
41
|
-
* @param {AcknowledgeProductsRequestDto} acknowledgeProductsRequestDto
|
|
42
|
-
* @param {*} [options] Override http request option.
|
|
43
|
-
* @throws {RequiredError}
|
|
44
|
-
*/
|
|
45
|
-
acknowledgeProductReceipt: (idempotencyKey_1, acknowledgeProductsRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, acknowledgeProductsRequestDto_1, ...args_1], void 0, function* (idempotencyKey, acknowledgeProductsRequestDto, options = {}) {
|
|
46
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
47
|
-
(0, common_1.assertParamExists)('acknowledgeProductReceipt', 'idempotencyKey', idempotencyKey);
|
|
48
|
-
// verify required parameter 'acknowledgeProductsRequestDto' is not null or undefined
|
|
49
|
-
(0, common_1.assertParamExists)('acknowledgeProductReceipt', 'acknowledgeProductsRequestDto', acknowledgeProductsRequestDto);
|
|
50
|
-
const localVarPath = `/v2/products/receipts`;
|
|
51
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
52
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
53
|
-
let baseOptions;
|
|
54
|
-
if (configuration) {
|
|
55
|
-
baseOptions = configuration.baseOptions;
|
|
56
|
-
}
|
|
57
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
58
|
-
const localVarHeaderParameter = {};
|
|
59
|
-
const localVarQueryParameter = {};
|
|
60
|
-
// authentication partner-oauth2 required
|
|
61
|
-
// oauth required
|
|
62
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["products:write"], configuration);
|
|
63
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
64
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
65
|
-
if (idempotencyKey != null) {
|
|
66
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
67
|
-
}
|
|
68
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
69
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
70
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
71
|
-
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(acknowledgeProductsRequestDto, localVarRequestOptions, configuration);
|
|
72
|
-
return {
|
|
73
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
74
|
-
options: localVarRequestOptions,
|
|
75
|
-
};
|
|
76
|
-
}),
|
|
77
37
|
/**
|
|
78
38
|
* 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
|
|
79
39
|
* @summary 공고 취소
|
|
@@ -119,7 +79,7 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
119
79
|
};
|
|
120
80
|
}),
|
|
121
81
|
/**
|
|
122
|
-
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
82
|
+
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
123
83
|
* @summary 검수완료 전송
|
|
124
84
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
125
85
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
@@ -201,46 +161,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
201
161
|
options: localVarRequestOptions,
|
|
202
162
|
};
|
|
203
163
|
}),
|
|
204
|
-
/**
|
|
205
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
206
|
-
* @summary 결제창 발행
|
|
207
|
-
* @param {string} idempotencyKey 재시도 안전을 위한 멱등 키.
|
|
208
|
-
* @param {CreateCardPaymentRequestDto} createCardPaymentRequestDto
|
|
209
|
-
* @param {*} [options] Override http request option.
|
|
210
|
-
* @throws {RequiredError}
|
|
211
|
-
*/
|
|
212
|
-
createCardPayment: (idempotencyKey_1, createCardPaymentRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, createCardPaymentRequestDto_1, ...args_1], void 0, function* (idempotencyKey, createCardPaymentRequestDto, options = {}) {
|
|
213
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
214
|
-
(0, common_1.assertParamExists)('createCardPayment', 'idempotencyKey', idempotencyKey);
|
|
215
|
-
// verify required parameter 'createCardPaymentRequestDto' is not null or undefined
|
|
216
|
-
(0, common_1.assertParamExists)('createCardPayment', 'createCardPaymentRequestDto', createCardPaymentRequestDto);
|
|
217
|
-
const localVarPath = `/v2/card-payments`;
|
|
218
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
219
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
220
|
-
let baseOptions;
|
|
221
|
-
if (configuration) {
|
|
222
|
-
baseOptions = configuration.baseOptions;
|
|
223
|
-
}
|
|
224
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
225
|
-
const localVarHeaderParameter = {};
|
|
226
|
-
const localVarQueryParameter = {};
|
|
227
|
-
// authentication partner-oauth2 required
|
|
228
|
-
// oauth required
|
|
229
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["payments:write"], configuration);
|
|
230
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
231
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
232
|
-
if (idempotencyKey != null) {
|
|
233
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
234
|
-
}
|
|
235
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
236
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
237
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
238
|
-
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createCardPaymentRequestDto, localVarRequestOptions, configuration);
|
|
239
|
-
return {
|
|
240
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
241
|
-
options: localVarRequestOptions,
|
|
242
|
-
};
|
|
243
|
-
}),
|
|
244
164
|
/**
|
|
245
165
|
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인(APPROVED)되어 바로 결제 가능합니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. 거기서 카드를 골라 결제합니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/card-payment-requests/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — 같은 기능을 v2 응답 규약으로 제공하는 `POST /v2/card-payments` 와 `GET /v2/suppliers/{memberId}/card-payable` 를 신규 연동에 권합니다. 이 경로도 계속 동작하며 중단 일정은 없습니다.
|
|
246
166
|
* @summary 결제창 발행 (구 경로)
|
|
@@ -322,97 +242,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
322
242
|
options: localVarRequestOptions,
|
|
323
243
|
};
|
|
324
244
|
}),
|
|
325
|
-
/**
|
|
326
|
-
* 수신 주소와 구독할 이벤트를 등록합니다. **호출 시점:** 연동 초기 1회. 수신 주소가 바뀌면 새로 만들지 말고 `PATCH` 로 고치세요 — 그래야 시크릿과 전송 이력이 유지됩니다. **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 응답의 `secret` 을 즉시 안전한 곳에 보관하세요. 잃어버렸다면 복구가 아니라 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` 으로 **재발급**해야 합니다. **거절되는 경우와 고치는 법:** - `400` — `url` 이 HTTPS 가 아니거나 형식이 잘못됨, `eventTypes` 가 비었거나 목록 밖 값 (`ping` 은 구독 불가). 값을 고쳐 재시도하세요. - `400` — `Idempotency-Key` 헤더 누락/형식 오류. UUID v4 를 실어 보내세요. - `403` — 토큰에 `webhooks:write` 스코프가 없음. 키 발급 설정을 넓혀야 합니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
327
|
-
* @summary 웹훅 구독 등록
|
|
328
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
329
|
-
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
330
|
-
* @param {*} [options] Override http request option.
|
|
331
|
-
* @throws {RequiredError}
|
|
332
|
-
*/
|
|
333
|
-
createWebhookEndpoint: (idempotencyKey_1, createWebhookEndpointRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, createWebhookEndpointRequestDto_1, ...args_1], void 0, function* (idempotencyKey, createWebhookEndpointRequestDto, options = {}) {
|
|
334
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
335
|
-
(0, common_1.assertParamExists)('createWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
336
|
-
// verify required parameter 'createWebhookEndpointRequestDto' is not null or undefined
|
|
337
|
-
(0, common_1.assertParamExists)('createWebhookEndpoint', 'createWebhookEndpointRequestDto', createWebhookEndpointRequestDto);
|
|
338
|
-
const localVarPath = `/v2/webhook-endpoints`;
|
|
339
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
340
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
341
|
-
let baseOptions;
|
|
342
|
-
if (configuration) {
|
|
343
|
-
baseOptions = configuration.baseOptions;
|
|
344
|
-
}
|
|
345
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
346
|
-
const localVarHeaderParameter = {};
|
|
347
|
-
const localVarQueryParameter = {};
|
|
348
|
-
// authentication partner-oauth2 required
|
|
349
|
-
// oauth required
|
|
350
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
351
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
352
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
353
|
-
if (idempotencyKey != null) {
|
|
354
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
355
|
-
}
|
|
356
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
357
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
358
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
359
|
-
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWebhookEndpointRequestDto, localVarRequestOptions, configuration);
|
|
360
|
-
return {
|
|
361
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
362
|
-
options: localVarRequestOptions,
|
|
363
|
-
};
|
|
364
|
-
}),
|
|
365
|
-
/**
|
|
366
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. **호출 시점:** 연동을 종료할 때. 잠시만 멈추려면 삭제하지 말고 `PATCH … {\"status\":\"DISABLED\"}` 를 쓰세요 — 시크릿과 이벤트 구성이 남아 그대로 되살릴 수 있습니다. **되돌릴 수 없습니다.** 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. **`If-Match` 가 필수입니다.** `GET` 으로 받은 `ETag` 를 실어 보내세요. - `428` — 헤더 누락. 조회 후 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다(누군가 수정했거나 발송기가 상태를 내렸습니다). 다시 조회해 정말 지울 대상이 맞는지 확인하고 최신 `ETag` 로 재시도하세요. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
367
|
-
* @summary 웹훅 구독 삭제
|
|
368
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
369
|
-
* @param {string} ifMatch
|
|
370
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
371
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
372
|
-
* @param {*} [options] Override http request option.
|
|
373
|
-
* @throws {RequiredError}
|
|
374
|
-
*/
|
|
375
|
-
deleteWebhookEndpoint: (endpointId_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, ifMatch, ifMatch2, idempotencyKey, options = {}) {
|
|
376
|
-
// verify required parameter 'endpointId' is not null or undefined
|
|
377
|
-
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'endpointId', endpointId);
|
|
378
|
-
// verify required parameter 'ifMatch' is not null or undefined
|
|
379
|
-
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'ifMatch', ifMatch);
|
|
380
|
-
// verify required parameter 'ifMatch2' is not null or undefined
|
|
381
|
-
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'ifMatch2', ifMatch2);
|
|
382
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
383
|
-
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
384
|
-
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
385
|
-
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
386
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
387
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
388
|
-
let baseOptions;
|
|
389
|
-
if (configuration) {
|
|
390
|
-
baseOptions = configuration.baseOptions;
|
|
391
|
-
}
|
|
392
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
|
|
393
|
-
const localVarHeaderParameter = {};
|
|
394
|
-
const localVarQueryParameter = {};
|
|
395
|
-
// authentication partner-oauth2 required
|
|
396
|
-
// oauth required
|
|
397
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
398
|
-
localVarHeaderParameter['Accept'] = 'application/problem+json';
|
|
399
|
-
if (ifMatch != null) {
|
|
400
|
-
localVarHeaderParameter['if-match'] = String(ifMatch);
|
|
401
|
-
}
|
|
402
|
-
if (ifMatch2 != null) {
|
|
403
|
-
localVarHeaderParameter['If-Match'] = String(ifMatch2);
|
|
404
|
-
}
|
|
405
|
-
if (idempotencyKey != null) {
|
|
406
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
407
|
-
}
|
|
408
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
409
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
410
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
411
|
-
return {
|
|
412
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
413
|
-
options: localVarRequestOptions,
|
|
414
|
-
};
|
|
415
|
-
}),
|
|
416
245
|
/**
|
|
417
246
|
* 무인증 — `fileKey` 자체가 capability 다(V5 `/download/{fileKey}` 와 같은 보안 모델). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
418
247
|
* @summary 파일 다운로드 — 안정 URL(302)
|
|
@@ -443,8 +272,8 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
443
272
|
};
|
|
444
273
|
}),
|
|
445
274
|
/**
|
|
446
|
-
* 공고의
|
|
447
|
-
* @summary 공고
|
|
275
|
+
* 공고의 모든 정보를 한 번에 조회합니다 — 기본 정보·납품/대금 조건·담당자·품목, 응찰 참여자(투찰가·순위·낙찰 여부), 계약서류, 검수 진행 상태, 라이프사이클 하위 상태. 스코프 `bids:read`. ERP 는 이 엔드포인트를 폴링해 async 처리(정산 마감 등)의 성사를 관측합니다. **낙찰 여부:** 이 응답의 `status` 가 아니라 `participants[].isWinner` 로 관측합니다. AWARDED 라는 공고 상태는 존재하지 않으며(낙찰 직후 공고는 CONTRACT_IN_PROGRESS 로 전이) `status === \'AWARDED\'` 를 기다리면 영원히 도달하지 않습니다. **여러 건을 한 번에:** 공고마다 이 조회를 반복하지 말고 `GET /v2/bid-results` 배치 조회를 쓰세요. **계약서류:** `contractDocuments[].generationState` 는 **관측 전용**입니다. `DEAD_LETTER` 가 보이면 자동 재시도가 소진된 상태이며 API 로 되살릴 수 없습니다 — 운영에 문의하세요. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
276
|
+
* @summary 공고 상세 조회
|
|
448
277
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
449
278
|
* @param {*} [options] Override http request option.
|
|
450
279
|
* @throws {RequiredError}
|
|
@@ -475,39 +304,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
475
304
|
options: localVarRequestOptions,
|
|
476
305
|
};
|
|
477
306
|
}),
|
|
478
|
-
/**
|
|
479
|
-
* 공고의 응찰 참여 업체·순위·낙찰 여부를 조회한다. scope bids:read.
|
|
480
|
-
* @summary 공고 결과 조회
|
|
481
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
482
|
-
* @param {*} [options] Override http request option.
|
|
483
|
-
* @throws {RequiredError}
|
|
484
|
-
*/
|
|
485
|
-
getBidResults: (bidRef_1, ...args_1) => __awaiter(this, [bidRef_1, ...args_1], void 0, function* (bidRef, options = {}) {
|
|
486
|
-
// verify required parameter 'bidRef' is not null or undefined
|
|
487
|
-
(0, common_1.assertParamExists)('getBidResults', 'bidRef', bidRef);
|
|
488
|
-
const localVarPath = `/v2/bids/{bidRef}/result`
|
|
489
|
-
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
490
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
491
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
492
|
-
let baseOptions;
|
|
493
|
-
if (configuration) {
|
|
494
|
-
baseOptions = configuration.baseOptions;
|
|
495
|
-
}
|
|
496
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
497
|
-
const localVarHeaderParameter = {};
|
|
498
|
-
const localVarQueryParameter = {};
|
|
499
|
-
// authentication partner-oauth2 required
|
|
500
|
-
// oauth required
|
|
501
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["bids:read"], configuration);
|
|
502
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
503
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
504
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
505
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
506
|
-
return {
|
|
507
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
508
|
-
options: localVarRequestOptions,
|
|
509
|
-
};
|
|
510
|
-
}),
|
|
511
307
|
/**
|
|
512
308
|
* 낙찰 공급사의 사업자·계좌·공급가액/부가세·응찰 품목내역을 조회합니다. 대금 지급에 필요한 정보입니다. 가시성 마스킹과는 직교한 정산 데이터이며 읽기 전용입니다. **필수 스코프:** `invoices:read` — 종전에는 `bids:read` 를 요구했습니다. 대금·계좌가 실리는 응답이라 공고 조회 권한과 분리했습니다. 이 엔드포인트를 쓰시던 키에는 `invoices:read` 를 추가로 부여받으셔야 합니다.
|
|
513
309
|
* @summary 정산 정보 조회
|
|
@@ -678,72 +474,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
678
474
|
options: localVarRequestOptions,
|
|
679
475
|
};
|
|
680
476
|
}),
|
|
681
|
-
/**
|
|
682
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write` 를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
683
|
-
* @summary 공급사 카드결제 가능 여부
|
|
684
|
-
* @param {string} memberId 계약업체 회원 ID
|
|
685
|
-
* @param {*} [options] Override http request option.
|
|
686
|
-
* @throws {RequiredError}
|
|
687
|
-
*/
|
|
688
|
-
getSupplierCardPayableV2: (memberId_1, ...args_1) => __awaiter(this, [memberId_1, ...args_1], void 0, function* (memberId, options = {}) {
|
|
689
|
-
// verify required parameter 'memberId' is not null or undefined
|
|
690
|
-
(0, common_1.assertParamExists)('getSupplierCardPayableV2', 'memberId', memberId);
|
|
691
|
-
const localVarPath = `/v2/suppliers/{memberId}/card-payable`
|
|
692
|
-
.replace('{memberId}', encodeURIComponent(String(memberId)));
|
|
693
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
694
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
695
|
-
let baseOptions;
|
|
696
|
-
if (configuration) {
|
|
697
|
-
baseOptions = configuration.baseOptions;
|
|
698
|
-
}
|
|
699
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
700
|
-
const localVarHeaderParameter = {};
|
|
701
|
-
const localVarQueryParameter = {};
|
|
702
|
-
// authentication partner-oauth2 required
|
|
703
|
-
// oauth required
|
|
704
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["payments:read"], configuration);
|
|
705
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
706
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
707
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
708
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
709
|
-
return {
|
|
710
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
711
|
-
options: localVarRequestOptions,
|
|
712
|
-
};
|
|
713
|
-
}),
|
|
714
|
-
/**
|
|
715
|
-
* 구독 1건의 현재 상태를 조회합니다. 서명 시크릿은 실리지 않습니다. **수정·삭제 전에 먼저 호출하세요.** 응답 헤더 `ETag` 를 `If-Match` 에 그대로 실어야 `PATCH`/`DELETE` 가 통과합니다. **`404`:** 없는 구독이거나 다른 파트너 키의 구독입니다 — `endpointId` 를 확인하세요. **필수 스코프:** `webhooks:read`
|
|
716
|
-
* @summary 웹훅 구독 단건 조회
|
|
717
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
718
|
-
* @param {*} [options] Override http request option.
|
|
719
|
-
* @throws {RequiredError}
|
|
720
|
-
*/
|
|
721
|
-
getWebhookEndpoint: (endpointId_1, ...args_1) => __awaiter(this, [endpointId_1, ...args_1], void 0, function* (endpointId, options = {}) {
|
|
722
|
-
// verify required parameter 'endpointId' is not null or undefined
|
|
723
|
-
(0, common_1.assertParamExists)('getWebhookEndpoint', 'endpointId', endpointId);
|
|
724
|
-
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
725
|
-
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
726
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
727
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
728
|
-
let baseOptions;
|
|
729
|
-
if (configuration) {
|
|
730
|
-
baseOptions = configuration.baseOptions;
|
|
731
|
-
}
|
|
732
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
733
|
-
const localVarHeaderParameter = {};
|
|
734
|
-
const localVarQueryParameter = {};
|
|
735
|
-
// authentication partner-oauth2 required
|
|
736
|
-
// oauth required
|
|
737
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration);
|
|
738
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
739
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
740
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
741
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
742
|
-
return {
|
|
743
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
744
|
-
options: localVarRequestOptions,
|
|
745
|
-
};
|
|
746
|
-
}),
|
|
747
477
|
/**
|
|
748
478
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
749
479
|
* @summary Partner API 헬스체크
|
|
@@ -771,7 +501,7 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
771
501
|
};
|
|
772
502
|
}),
|
|
773
503
|
/**
|
|
774
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요.
|
|
504
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요. **단건 조회:** 공고 하나만 볼 때도 `bidIds` 에 하나만 넣거나 `GET /v2/bids/{bidRef}` 상세 조회를 쓰세요. 종전의 `GET /v2/bids/{bidRef}/result` 는 상세 응답의 부분집합이라 폐지됐습니다.
|
|
775
505
|
* @summary 공고 결과 배치 조회
|
|
776
506
|
* @param {string} bidIds 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidIds` 를 반복해 전달합니다. 최대 100건.
|
|
777
507
|
* @param {*} [options] Override http request option.
|
|
@@ -896,264 +626,83 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
896
626
|
};
|
|
897
627
|
}),
|
|
898
628
|
/**
|
|
899
|
-
*
|
|
900
|
-
* @summary
|
|
629
|
+
* 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
630
|
+
* @summary 유찰 처리
|
|
631
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
632
|
+
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
633
|
+
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
901
634
|
* @param {*} [options] Override http request option.
|
|
902
635
|
* @throws {RequiredError}
|
|
903
636
|
*/
|
|
904
|
-
|
|
905
|
-
|
|
637
|
+
markBidFailed: (bidRef_1, idempotencyKey_1, markBidFailedRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, markBidFailedRequestDto_1, ...args_1], void 0, function* (bidRef, idempotencyKey, markBidFailedRequestDto, options = {}) {
|
|
638
|
+
// verify required parameter 'bidRef' is not null or undefined
|
|
639
|
+
(0, common_1.assertParamExists)('markBidFailed', 'bidRef', bidRef);
|
|
640
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
641
|
+
(0, common_1.assertParamExists)('markBidFailed', 'idempotencyKey', idempotencyKey);
|
|
642
|
+
// verify required parameter 'markBidFailedRequestDto' is not null or undefined
|
|
643
|
+
(0, common_1.assertParamExists)('markBidFailed', 'markBidFailedRequestDto', markBidFailedRequestDto);
|
|
644
|
+
const localVarPath = `/v2/bids/{bidRef}/fail`
|
|
645
|
+
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
906
646
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
907
647
|
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
908
648
|
let baseOptions;
|
|
909
649
|
if (configuration) {
|
|
910
650
|
baseOptions = configuration.baseOptions;
|
|
911
651
|
}
|
|
912
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: '
|
|
652
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
913
653
|
const localVarHeaderParameter = {};
|
|
914
654
|
const localVarQueryParameter = {};
|
|
915
655
|
// authentication partner-oauth2 required
|
|
916
656
|
// oauth required
|
|
917
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["
|
|
657
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["awards:write"], configuration);
|
|
658
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
918
659
|
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
660
|
+
if (idempotencyKey != null) {
|
|
661
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
662
|
+
}
|
|
919
663
|
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
920
664
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
921
665
|
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
666
|
+
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(markBidFailedRequestDto, localVarRequestOptions, configuration);
|
|
922
667
|
return {
|
|
923
668
|
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
924
669
|
options: localVarRequestOptions,
|
|
925
670
|
};
|
|
926
671
|
}),
|
|
927
672
|
/**
|
|
928
|
-
* 이
|
|
929
|
-
* @summary
|
|
930
|
-
* @param {string}
|
|
931
|
-
* @param {
|
|
932
|
-
* @param {
|
|
933
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
673
|
+
* 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
|
|
674
|
+
* @summary 낙찰 결과 전송
|
|
675
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
676
|
+
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
677
|
+
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
934
678
|
* @param {*} [options] Override http request option.
|
|
935
679
|
* @throws {RequiredError}
|
|
936
680
|
*/
|
|
937
|
-
|
|
938
|
-
|
|
681
|
+
registerAward: (bidRef_1, idempotencyKey_1, registerAwardRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, registerAwardRequestDto_1, ...args_1], void 0, function* (bidRef, idempotencyKey, registerAwardRequestDto, options = {}) {
|
|
682
|
+
// verify required parameter 'bidRef' is not null or undefined
|
|
683
|
+
(0, common_1.assertParamExists)('registerAward', 'bidRef', bidRef);
|
|
684
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
685
|
+
(0, common_1.assertParamExists)('registerAward', 'idempotencyKey', idempotencyKey);
|
|
686
|
+
// verify required parameter 'registerAwardRequestDto' is not null or undefined
|
|
687
|
+
(0, common_1.assertParamExists)('registerAward', 'registerAwardRequestDto', registerAwardRequestDto);
|
|
688
|
+
const localVarPath = `/v2/bids/{bidRef}/award`
|
|
689
|
+
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
939
690
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
940
691
|
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
941
692
|
let baseOptions;
|
|
942
693
|
if (configuration) {
|
|
943
694
|
baseOptions = configuration.baseOptions;
|
|
944
695
|
}
|
|
945
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: '
|
|
696
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
946
697
|
const localVarHeaderParameter = {};
|
|
947
698
|
const localVarQueryParameter = {};
|
|
948
699
|
// authentication partner-oauth2 required
|
|
949
700
|
// oauth required
|
|
950
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
localVarQueryParameter['status'] = status;
|
|
956
|
-
}
|
|
957
|
-
if (limit !== undefined) {
|
|
958
|
-
localVarQueryParameter['limit'] = limit;
|
|
959
|
-
}
|
|
960
|
-
if (cursor !== undefined) {
|
|
961
|
-
localVarQueryParameter['cursor'] = cursor;
|
|
962
|
-
}
|
|
963
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
964
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
965
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
966
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
967
|
-
return {
|
|
968
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
969
|
-
options: localVarRequestOptions,
|
|
970
|
-
};
|
|
971
|
-
}),
|
|
972
|
-
/**
|
|
973
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. **호출 시점:** 연동 상태를 점검할 때, 또는 발송이 멈춘 이유(`status`·`consecutiveFailures`)를 확인할 때. 서명 시크릿은 여기에 실리지 않습니다. **필수 스코프:** `webhooks:read` ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
974
|
-
* @summary 웹훅 구독 목록 조회
|
|
975
|
-
* @param {*} [options] Override http request option.
|
|
976
|
-
* @throws {RequiredError}
|
|
977
|
-
*/
|
|
978
|
-
listWebhookEndpoints: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
|
|
979
|
-
const localVarPath = `/v2/webhook-endpoints`;
|
|
980
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
981
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
982
|
-
let baseOptions;
|
|
983
|
-
if (configuration) {
|
|
984
|
-
baseOptions = configuration.baseOptions;
|
|
985
|
-
}
|
|
986
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
987
|
-
const localVarHeaderParameter = {};
|
|
988
|
-
const localVarQueryParameter = {};
|
|
989
|
-
// authentication partner-oauth2 required
|
|
990
|
-
// oauth required
|
|
991
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration);
|
|
992
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
993
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
994
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
995
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
996
|
-
return {
|
|
997
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
998
|
-
options: localVarRequestOptions,
|
|
999
|
-
};
|
|
1000
|
-
}),
|
|
1001
|
-
/**
|
|
1002
|
-
* 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1003
|
-
* @summary 유찰 처리
|
|
1004
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1005
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1006
|
-
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
1007
|
-
* @param {*} [options] Override http request option.
|
|
1008
|
-
* @throws {RequiredError}
|
|
1009
|
-
*/
|
|
1010
|
-
markBidFailed: (bidRef_1, idempotencyKey_1, markBidFailedRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, markBidFailedRequestDto_1, ...args_1], void 0, function* (bidRef, idempotencyKey, markBidFailedRequestDto, options = {}) {
|
|
1011
|
-
// verify required parameter 'bidRef' is not null or undefined
|
|
1012
|
-
(0, common_1.assertParamExists)('markBidFailed', 'bidRef', bidRef);
|
|
1013
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1014
|
-
(0, common_1.assertParamExists)('markBidFailed', 'idempotencyKey', idempotencyKey);
|
|
1015
|
-
// verify required parameter 'markBidFailedRequestDto' is not null or undefined
|
|
1016
|
-
(0, common_1.assertParamExists)('markBidFailed', 'markBidFailedRequestDto', markBidFailedRequestDto);
|
|
1017
|
-
const localVarPath = `/v2/bids/{bidRef}/fail`
|
|
1018
|
-
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
1019
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1020
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1021
|
-
let baseOptions;
|
|
1022
|
-
if (configuration) {
|
|
1023
|
-
baseOptions = configuration.baseOptions;
|
|
1024
|
-
}
|
|
1025
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1026
|
-
const localVarHeaderParameter = {};
|
|
1027
|
-
const localVarQueryParameter = {};
|
|
1028
|
-
// authentication partner-oauth2 required
|
|
1029
|
-
// oauth required
|
|
1030
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["awards:write"], configuration);
|
|
1031
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
1032
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1033
|
-
if (idempotencyKey != null) {
|
|
1034
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1035
|
-
}
|
|
1036
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1037
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1038
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1039
|
-
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(markBidFailedRequestDto, localVarRequestOptions, configuration);
|
|
1040
|
-
return {
|
|
1041
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1042
|
-
options: localVarRequestOptions,
|
|
1043
|
-
};
|
|
1044
|
-
}),
|
|
1045
|
-
/**
|
|
1046
|
-
* 초안(DRAFT) 상태로 등록된 공고를 진행중(ONGOING)으로 게시합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 연간/지명계약 등으로 초안 상태로 등록된 공고를 명시적으로 게시할 때. 등록 응답의 `status` 로 게시 필요 여부를 판별합니다. **전제조건:** 초안(DRAFT) 상태이고 마감(bidEndAt)이 미래여야 합니다. **거부:** 초안이 아니거나 마감이 지난 공고 → 409. 마감이 지났으면 먼저 마감일을 연장해야 합니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403). **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1047
|
-
* @summary 공고 게시(초안 → 진행중)
|
|
1048
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1049
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 재전송 시 캐시 응답 반환(24시간).
|
|
1050
|
-
* @param {*} [options] Override http request option.
|
|
1051
|
-
* @throws {RequiredError}
|
|
1052
|
-
*/
|
|
1053
|
-
publishBid: (bidRef_1, idempotencyKey_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, ...args_1], void 0, function* (bidRef, idempotencyKey, options = {}) {
|
|
1054
|
-
// verify required parameter 'bidRef' is not null or undefined
|
|
1055
|
-
(0, common_1.assertParamExists)('publishBid', 'bidRef', bidRef);
|
|
1056
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1057
|
-
(0, common_1.assertParamExists)('publishBid', 'idempotencyKey', idempotencyKey);
|
|
1058
|
-
const localVarPath = `/v2/bids/{bidRef}/publish`
|
|
1059
|
-
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
1060
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1061
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1062
|
-
let baseOptions;
|
|
1063
|
-
if (configuration) {
|
|
1064
|
-
baseOptions = configuration.baseOptions;
|
|
1065
|
-
}
|
|
1066
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1067
|
-
const localVarHeaderParameter = {};
|
|
1068
|
-
const localVarQueryParameter = {};
|
|
1069
|
-
// authentication partner-oauth2 required
|
|
1070
|
-
// oauth required
|
|
1071
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["bids:write"], configuration);
|
|
1072
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1073
|
-
if (idempotencyKey != null) {
|
|
1074
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1075
|
-
}
|
|
1076
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1077
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1078
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1079
|
-
return {
|
|
1080
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1081
|
-
options: localVarRequestOptions,
|
|
1082
|
-
};
|
|
1083
|
-
}),
|
|
1084
|
-
/**
|
|
1085
|
-
* 공고의 자동생성 계약서류(발주서·공고결과·표준계약서 등)를 생성/재생성합니다. **V6 대응:** `RegenerateAllContractPdfsCommand` — 웹 어드민의 \"계약 서류 일괄 재생성\"과 동일 경로. **호출 시점:** 낙찰(계약 시작) 후 계약서류가 필요하거나, 생성에 실패한 서류를 다시 만들 때. **부수효과:** - 생성 실패(DEAD_LETTER) 상태의 자동생성 PDF 가 재생성 큐에 등록됩니다(비동기). - 승낙사항(ACCEPTANCE) 계열은 운영자 승인 워크플로가 필요해 이 경로에서 제외됩니다. **응답:** 즉시 파일이 아니라 큐 등록 결과(`enqueuedCount`/`skippedCount`)를 반환합니다. 잠시 후 자동 생성됩니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1086
|
-
* @summary 계약서류 생성(재생성)
|
|
1087
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1088
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1089
|
-
* @param {*} [options] Override http request option.
|
|
1090
|
-
* @throws {RequiredError}
|
|
1091
|
-
*/
|
|
1092
|
-
regenerateContractDocuments: (bidRef_1, idempotencyKey_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, ...args_1], void 0, function* (bidRef, idempotencyKey, options = {}) {
|
|
1093
|
-
// verify required parameter 'bidRef' is not null or undefined
|
|
1094
|
-
(0, common_1.assertParamExists)('regenerateContractDocuments', 'bidRef', bidRef);
|
|
1095
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1096
|
-
(0, common_1.assertParamExists)('regenerateContractDocuments', 'idempotencyKey', idempotencyKey);
|
|
1097
|
-
const localVarPath = `/v2/bids/{bidRef}/contract-documents`
|
|
1098
|
-
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
1099
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1100
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1101
|
-
let baseOptions;
|
|
1102
|
-
if (configuration) {
|
|
1103
|
-
baseOptions = configuration.baseOptions;
|
|
1104
|
-
}
|
|
1105
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1106
|
-
const localVarHeaderParameter = {};
|
|
1107
|
-
const localVarQueryParameter = {};
|
|
1108
|
-
// authentication partner-oauth2 required
|
|
1109
|
-
// oauth required
|
|
1110
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["contracts:write"], configuration);
|
|
1111
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1112
|
-
if (idempotencyKey != null) {
|
|
1113
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1114
|
-
}
|
|
1115
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1116
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1117
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1118
|
-
return {
|
|
1119
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1120
|
-
options: localVarRequestOptions,
|
|
1121
|
-
};
|
|
1122
|
-
}),
|
|
1123
|
-
/**
|
|
1124
|
-
* 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
|
|
1125
|
-
* @summary 낙찰 결과 전송
|
|
1126
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1127
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1128
|
-
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
1129
|
-
* @param {*} [options] Override http request option.
|
|
1130
|
-
* @throws {RequiredError}
|
|
1131
|
-
*/
|
|
1132
|
-
registerAward: (bidRef_1, idempotencyKey_1, registerAwardRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, idempotencyKey_1, registerAwardRequestDto_1, ...args_1], void 0, function* (bidRef, idempotencyKey, registerAwardRequestDto, options = {}) {
|
|
1133
|
-
// verify required parameter 'bidRef' is not null or undefined
|
|
1134
|
-
(0, common_1.assertParamExists)('registerAward', 'bidRef', bidRef);
|
|
1135
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1136
|
-
(0, common_1.assertParamExists)('registerAward', 'idempotencyKey', idempotencyKey);
|
|
1137
|
-
// verify required parameter 'registerAwardRequestDto' is not null or undefined
|
|
1138
|
-
(0, common_1.assertParamExists)('registerAward', 'registerAwardRequestDto', registerAwardRequestDto);
|
|
1139
|
-
const localVarPath = `/v2/bids/{bidRef}/award`
|
|
1140
|
-
.replace('{bidRef}', encodeURIComponent(String(bidRef)));
|
|
1141
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1142
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1143
|
-
let baseOptions;
|
|
1144
|
-
if (configuration) {
|
|
1145
|
-
baseOptions = configuration.baseOptions;
|
|
1146
|
-
}
|
|
1147
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1148
|
-
const localVarHeaderParameter = {};
|
|
1149
|
-
const localVarQueryParameter = {};
|
|
1150
|
-
// authentication partner-oauth2 required
|
|
1151
|
-
// oauth required
|
|
1152
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["awards:write"], configuration);
|
|
1153
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
1154
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1155
|
-
if (idempotencyKey != null) {
|
|
1156
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
701
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["awards:write"], configuration);
|
|
702
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
703
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
704
|
+
if (idempotencyKey != null) {
|
|
705
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1157
706
|
}
|
|
1158
707
|
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1159
708
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
@@ -1165,7 +714,7 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
1165
714
|
};
|
|
1166
715
|
}),
|
|
1167
716
|
/**
|
|
1168
|
-
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수.
|
|
717
|
+
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
|
|
1169
718
|
* @summary 공고 등록
|
|
1170
719
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환.
|
|
1171
720
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
@@ -1288,84 +837,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
1288
837
|
options: localVarRequestOptions,
|
|
1289
838
|
};
|
|
1290
839
|
}),
|
|
1291
|
-
/**
|
|
1292
|
-
* 서명 시크릿을 새로 발급합니다. 응답의 `secretVersion` 이 1 올라갑니다. **호출 시점:** 시크릿을 분실했거나 유출이 의심될 때, 또는 주기적 교체 정책이 있을 때. **새 시크릿은 이 응답에서 한 번만 나갑니다.** 조회로 다시 받을 수 없습니다. **옛 시크릿은 즉시 무효입니다.** 유예 기간이 없으므로, 수신측이 새 값을 반영하기 전에 도착한 이벤트는 서명 검증에 실패합니다. 배포 순서를 이렇게 잡으세요 — ① 수신측이 옛 값과 새 값을 **둘 다** 받아들이도록 배포 → ② 이 엔드포인트 호출 → ③ 응답의 새 값을 반영 → ④ 옛 값 제거. 검증 실패로 non-2xx 를 돌려주면 실패로 집계되어 20회 연속 시 구독이 중지됩니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 같은 키로 재전송하면 **새로 발급하지 않고** 처음 발급한 값을 그대로 돌려줍니다(24시간) — 네트워크 오류로 응답을 놓쳤을 때 같은 키로 다시 부르세요.
|
|
1293
|
-
* @summary 웹훅 서명 시크릿 재발급
|
|
1294
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1295
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1296
|
-
* @param {*} [options] Override http request option.
|
|
1297
|
-
* @throws {RequiredError}
|
|
1298
|
-
*/
|
|
1299
|
-
rotateWebhookSecret: (endpointId_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, idempotencyKey, options = {}) {
|
|
1300
|
-
// verify required parameter 'endpointId' is not null or undefined
|
|
1301
|
-
(0, common_1.assertParamExists)('rotateWebhookSecret', 'endpointId', endpointId);
|
|
1302
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1303
|
-
(0, common_1.assertParamExists)('rotateWebhookSecret', 'idempotencyKey', idempotencyKey);
|
|
1304
|
-
const localVarPath = `/v2/webhook-endpoints/{endpointId}/rotate-secret`
|
|
1305
|
-
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1306
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1307
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1308
|
-
let baseOptions;
|
|
1309
|
-
if (configuration) {
|
|
1310
|
-
baseOptions = configuration.baseOptions;
|
|
1311
|
-
}
|
|
1312
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1313
|
-
const localVarHeaderParameter = {};
|
|
1314
|
-
const localVarQueryParameter = {};
|
|
1315
|
-
// authentication partner-oauth2 required
|
|
1316
|
-
// oauth required
|
|
1317
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1318
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1319
|
-
if (idempotencyKey != null) {
|
|
1320
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1321
|
-
}
|
|
1322
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1323
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1324
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1325
|
-
return {
|
|
1326
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1327
|
-
options: localVarRequestOptions,
|
|
1328
|
-
};
|
|
1329
|
-
}),
|
|
1330
|
-
/**
|
|
1331
|
-
* 등록된 주소로 `ping` 이벤트를 즉시 1회 보내고 그 결과를 돌려줍니다. **호출 시점:** 구독을 등록한 직후, 수신 주소를 바꾼 직후, 방화벽·인증서를 손본 뒤. **응답은 발송 결과이지 요청 실패가 아닙니다.** 수신측이 받지 못해도 HTTP `200` 에 `delivered: false` 로 옵니다 — `responseStatus`(수신측 상태)와 `error`(연결 거부·타임아웃· TLS 오류)를 보고 원인을 좁히세요. 이 발송에도 실제 이벤트와 **똑같은 서명 헤더**가 실리므로 검증 코드를 그대로 시험할 수 있습니다. `ping` 은 구독 목록에 넣을 수 없는 타입이니, 수신측이 모르는 `eventType` 을 만나면 버리도록 짜여 있다면 이 확인만 실패할 수 있습니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 다시 보내려면 **새 키**를 쓰세요 — 같은 키는 24시간 동안 직전 결과를 그대로 돌려줍니다(재발송하지 않습니다).
|
|
1332
|
-
* @summary 웹훅 연결 확인 발송
|
|
1333
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1334
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1335
|
-
* @param {*} [options] Override http request option.
|
|
1336
|
-
* @throws {RequiredError}
|
|
1337
|
-
*/
|
|
1338
|
-
sendWebhookTestEvent: (endpointId_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, idempotencyKey, options = {}) {
|
|
1339
|
-
// verify required parameter 'endpointId' is not null or undefined
|
|
1340
|
-
(0, common_1.assertParamExists)('sendWebhookTestEvent', 'endpointId', endpointId);
|
|
1341
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1342
|
-
(0, common_1.assertParamExists)('sendWebhookTestEvent', 'idempotencyKey', idempotencyKey);
|
|
1343
|
-
const localVarPath = `/v2/webhook-endpoints/{endpointId}/test`
|
|
1344
|
-
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1345
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1346
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1347
|
-
let baseOptions;
|
|
1348
|
-
if (configuration) {
|
|
1349
|
-
baseOptions = configuration.baseOptions;
|
|
1350
|
-
}
|
|
1351
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1352
|
-
const localVarHeaderParameter = {};
|
|
1353
|
-
const localVarQueryParameter = {};
|
|
1354
|
-
// authentication partner-oauth2 required
|
|
1355
|
-
// oauth required
|
|
1356
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1357
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1358
|
-
if (idempotencyKey != null) {
|
|
1359
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1360
|
-
}
|
|
1361
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1362
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1363
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1364
|
-
return {
|
|
1365
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1366
|
-
options: localVarRequestOptions,
|
|
1367
|
-
};
|
|
1368
|
-
}),
|
|
1369
840
|
/**
|
|
1370
841
|
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEdit=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
|
|
1371
842
|
* @summary 공고 수정
|
|
@@ -1422,62 +893,6 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
|
|
|
1422
893
|
options: localVarRequestOptions,
|
|
1423
894
|
};
|
|
1424
895
|
}),
|
|
1425
|
-
/**
|
|
1426
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. **호출 시점:** 수신 주소가 바뀌었을 때, 구독 이벤트를 늘리거나 줄일 때, 연속 실패로 자동 중지된 구독을 고친 뒤 되살릴 때(`{\"status\":\"ACTIVE\"}`). **`eventTypes` 는 치환입니다** — 보낸 목록이 곧 새 구독 목록입니다. 하나를 더하려면 기존 목록에 더한 **전체**를 보내세요. **`If-Match` 가 필수입니다.** 먼저 `GET /v2/webhook-endpoints/{endpointId}` 로 현재 `ETag` 를 받아 그대로 실어 보내세요. 이 헤더가 없으면 두 요청이 앞서거니 뒤서거니 하며 먼저 한 수정을 조용히 덮어씁니다. - `428` — 헤더를 빼먹었습니다. 조회 후 `ETag` 를 실어 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다. 다시 조회해 최신 `ETag` 로 재시도하세요. 아무것도 수정되지 않았습니다. **시크릿은 이 경로로 바뀌지 않습니다** — 재발급은 `rotate-secret` 입니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1427
|
-
* @summary 웹훅 구독 수정
|
|
1428
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1429
|
-
* @param {string} ifMatch
|
|
1430
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
1431
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1432
|
-
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
1433
|
-
* @param {*} [options] Override http request option.
|
|
1434
|
-
* @throws {RequiredError}
|
|
1435
|
-
*/
|
|
1436
|
-
updateWebhookEndpoint: (endpointId_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, updateWebhookEndpointRequestDto_1, ...args_1) => __awaiter(this, [endpointId_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, updateWebhookEndpointRequestDto_1, ...args_1], void 0, function* (endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options = {}) {
|
|
1437
|
-
// verify required parameter 'endpointId' is not null or undefined
|
|
1438
|
-
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'endpointId', endpointId);
|
|
1439
|
-
// verify required parameter 'ifMatch' is not null or undefined
|
|
1440
|
-
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'ifMatch', ifMatch);
|
|
1441
|
-
// verify required parameter 'ifMatch2' is not null or undefined
|
|
1442
|
-
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'ifMatch2', ifMatch2);
|
|
1443
|
-
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1444
|
-
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
1445
|
-
// verify required parameter 'updateWebhookEndpointRequestDto' is not null or undefined
|
|
1446
|
-
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'updateWebhookEndpointRequestDto', updateWebhookEndpointRequestDto);
|
|
1447
|
-
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
1448
|
-
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1449
|
-
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1450
|
-
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1451
|
-
let baseOptions;
|
|
1452
|
-
if (configuration) {
|
|
1453
|
-
baseOptions = configuration.baseOptions;
|
|
1454
|
-
}
|
|
1455
|
-
const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
|
|
1456
|
-
const localVarHeaderParameter = {};
|
|
1457
|
-
const localVarQueryParameter = {};
|
|
1458
|
-
// authentication partner-oauth2 required
|
|
1459
|
-
// oauth required
|
|
1460
|
-
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1461
|
-
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
1462
|
-
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1463
|
-
if (ifMatch != null) {
|
|
1464
|
-
localVarHeaderParameter['if-match'] = String(ifMatch);
|
|
1465
|
-
}
|
|
1466
|
-
if (ifMatch2 != null) {
|
|
1467
|
-
localVarHeaderParameter['If-Match'] = String(ifMatch2);
|
|
1468
|
-
}
|
|
1469
|
-
if (idempotencyKey != null) {
|
|
1470
|
-
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1471
|
-
}
|
|
1472
|
-
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1473
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1474
|
-
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1475
|
-
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateWebhookEndpointRequestDto, localVarRequestOptions, configuration);
|
|
1476
|
-
return {
|
|
1477
|
-
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1478
|
-
options: localVarRequestOptions,
|
|
1479
|
-
};
|
|
1480
|
-
}),
|
|
1481
896
|
/**
|
|
1482
897
|
* 스코프 `files:write` + `Idempotency-Key` 헤더 필수. base64 또는 url 중 정확히 하나를 제출한다.
|
|
1483
898
|
* @summary 공고 첨부파일 업로드(base64 또는 url) → fileKey
|
|
@@ -1521,23 +936,6 @@ exports.PartnerV2ApiAxiosParamCreator = PartnerV2ApiAxiosParamCreator;
|
|
|
1521
936
|
const PartnerV2ApiFp = function (configuration) {
|
|
1522
937
|
const localVarAxiosParamCreator = (0, exports.PartnerV2ApiAxiosParamCreator)(configuration);
|
|
1523
938
|
return {
|
|
1524
|
-
/**
|
|
1525
|
-
* 저장을 마친 물품을 전송완료로 표시해 다음 조회에서 제외합니다. **되돌릴 수 없습니다.** 표시한 물품은 `GET /v2/products` 로 다시 내려오지 않으므로, 자기 시스템에 저장이 끝난 뒤에 호출하세요. **표시 범위는 기관 그룹으로 잠깁니다.** 다른 기관의 물품 코드를 섞어 보내면 그 건은 표시되지 않고 `acknowledged` 가 요청 수보다 작게 돌아옵니다. **필수 스코프:** `products:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1526
|
-
* @summary 물품 수신확인
|
|
1527
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1528
|
-
* @param {AcknowledgeProductsRequestDto} acknowledgeProductsRequestDto
|
|
1529
|
-
* @param {*} [options] Override http request option.
|
|
1530
|
-
* @throws {RequiredError}
|
|
1531
|
-
*/
|
|
1532
|
-
acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options) {
|
|
1533
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1534
|
-
var _a, _b, _c;
|
|
1535
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options);
|
|
1536
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1537
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.acknowledgeProductReceipt']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1538
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1539
|
-
});
|
|
1540
|
-
},
|
|
1541
939
|
/**
|
|
1542
940
|
* 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
|
|
1543
941
|
* @summary 공고 취소
|
|
@@ -1557,7 +955,7 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1557
955
|
});
|
|
1558
956
|
},
|
|
1559
957
|
/**
|
|
1560
|
-
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
958
|
+
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1561
959
|
* @summary 검수완료 전송
|
|
1562
960
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1563
961
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
@@ -1591,23 +989,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1591
989
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1592
990
|
});
|
|
1593
991
|
},
|
|
1594
|
-
/**
|
|
1595
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
1596
|
-
* @summary 결제창 발행
|
|
1597
|
-
* @param {string} idempotencyKey 재시도 안전을 위한 멱등 키.
|
|
1598
|
-
* @param {CreateCardPaymentRequestDto} createCardPaymentRequestDto
|
|
1599
|
-
* @param {*} [options] Override http request option.
|
|
1600
|
-
* @throws {RequiredError}
|
|
1601
|
-
*/
|
|
1602
|
-
createCardPayment(idempotencyKey, createCardPaymentRequestDto, options) {
|
|
1603
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1604
|
-
var _a, _b, _c;
|
|
1605
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.createCardPayment(idempotencyKey, createCardPaymentRequestDto, options);
|
|
1606
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1607
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.createCardPayment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1608
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1609
|
-
});
|
|
1610
|
-
},
|
|
1611
992
|
/**
|
|
1612
993
|
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인(APPROVED)되어 바로 결제 가능합니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. 거기서 카드를 골라 결제합니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/card-payment-requests/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — 같은 기능을 v2 응답 규약으로 제공하는 `POST /v2/card-payments` 와 `GET /v2/suppliers/{memberId}/card-payable` 를 신규 연동에 권합니다. 이 경로도 계속 동작하며 중단 일정은 없습니다.
|
|
1613
994
|
* @summary 결제창 발행 (구 경로)
|
|
@@ -1643,42 +1024,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1643
1024
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1644
1025
|
});
|
|
1645
1026
|
},
|
|
1646
|
-
/**
|
|
1647
|
-
* 수신 주소와 구독할 이벤트를 등록합니다. **호출 시점:** 연동 초기 1회. 수신 주소가 바뀌면 새로 만들지 말고 `PATCH` 로 고치세요 — 그래야 시크릿과 전송 이력이 유지됩니다. **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 응답의 `secret` 을 즉시 안전한 곳에 보관하세요. 잃어버렸다면 복구가 아니라 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` 으로 **재발급**해야 합니다. **거절되는 경우와 고치는 법:** - `400` — `url` 이 HTTPS 가 아니거나 형식이 잘못됨, `eventTypes` 가 비었거나 목록 밖 값 (`ping` 은 구독 불가). 값을 고쳐 재시도하세요. - `400` — `Idempotency-Key` 헤더 누락/형식 오류. UUID v4 를 실어 보내세요. - `403` — 토큰에 `webhooks:write` 스코프가 없음. 키 발급 설정을 넓혀야 합니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
1648
|
-
* @summary 웹훅 구독 등록
|
|
1649
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1650
|
-
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
1651
|
-
* @param {*} [options] Override http request option.
|
|
1652
|
-
* @throws {RequiredError}
|
|
1653
|
-
*/
|
|
1654
|
-
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
1655
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1656
|
-
var _a, _b, _c;
|
|
1657
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options);
|
|
1658
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1659
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.createWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1660
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1661
|
-
});
|
|
1662
|
-
},
|
|
1663
|
-
/**
|
|
1664
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. **호출 시점:** 연동을 종료할 때. 잠시만 멈추려면 삭제하지 말고 `PATCH … {\"status\":\"DISABLED\"}` 를 쓰세요 — 시크릿과 이벤트 구성이 남아 그대로 되살릴 수 있습니다. **되돌릴 수 없습니다.** 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. **`If-Match` 가 필수입니다.** `GET` 으로 받은 `ETag` 를 실어 보내세요. - `428` — 헤더 누락. 조회 후 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다(누군가 수정했거나 발송기가 상태를 내렸습니다). 다시 조회해 정말 지울 대상이 맞는지 확인하고 최신 `ETag` 로 재시도하세요. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1665
|
-
* @summary 웹훅 구독 삭제
|
|
1666
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1667
|
-
* @param {string} ifMatch
|
|
1668
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
1669
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1670
|
-
* @param {*} [options] Override http request option.
|
|
1671
|
-
* @throws {RequiredError}
|
|
1672
|
-
*/
|
|
1673
|
-
deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options) {
|
|
1674
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1675
|
-
var _a, _b, _c;
|
|
1676
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options);
|
|
1677
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1678
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.deleteWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1679
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1680
|
-
});
|
|
1681
|
-
},
|
|
1682
1027
|
/**
|
|
1683
1028
|
* 무인증 — `fileKey` 자체가 capability 다(V5 `/download/{fileKey}` 와 같은 보안 모델). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
1684
1029
|
* @summary 파일 다운로드 — 안정 URL(302)
|
|
@@ -1696,8 +1041,8 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1696
1041
|
});
|
|
1697
1042
|
},
|
|
1698
1043
|
/**
|
|
1699
|
-
* 공고의
|
|
1700
|
-
* @summary 공고
|
|
1044
|
+
* 공고의 모든 정보를 한 번에 조회합니다 — 기본 정보·납품/대금 조건·담당자·품목, 응찰 참여자(투찰가·순위·낙찰 여부), 계약서류, 검수 진행 상태, 라이프사이클 하위 상태. 스코프 `bids:read`. ERP 는 이 엔드포인트를 폴링해 async 처리(정산 마감 등)의 성사를 관측합니다. **낙찰 여부:** 이 응답의 `status` 가 아니라 `participants[].isWinner` 로 관측합니다. AWARDED 라는 공고 상태는 존재하지 않으며(낙찰 직후 공고는 CONTRACT_IN_PROGRESS 로 전이) `status === \'AWARDED\'` 를 기다리면 영원히 도달하지 않습니다. **여러 건을 한 번에:** 공고마다 이 조회를 반복하지 말고 `GET /v2/bid-results` 배치 조회를 쓰세요. **계약서류:** `contractDocuments[].generationState` 는 **관측 전용**입니다. `DEAD_LETTER` 가 보이면 자동 재시도가 소진된 상태이며 API 로 되살릴 수 없습니다 — 운영에 문의하세요. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
1045
|
+
* @summary 공고 상세 조회
|
|
1701
1046
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1702
1047
|
* @param {*} [options] Override http request option.
|
|
1703
1048
|
* @throws {RequiredError}
|
|
@@ -1711,22 +1056,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1711
1056
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1712
1057
|
});
|
|
1713
1058
|
},
|
|
1714
|
-
/**
|
|
1715
|
-
* 공고의 응찰 참여 업체·순위·낙찰 여부를 조회한다. scope bids:read.
|
|
1716
|
-
* @summary 공고 결과 조회
|
|
1717
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1718
|
-
* @param {*} [options] Override http request option.
|
|
1719
|
-
* @throws {RequiredError}
|
|
1720
|
-
*/
|
|
1721
|
-
getBidResults(bidRef, options) {
|
|
1722
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1723
|
-
var _a, _b, _c;
|
|
1724
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.getBidResults(bidRef, options);
|
|
1725
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1726
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.getBidResults']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1727
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1728
|
-
});
|
|
1729
|
-
},
|
|
1730
1059
|
/**
|
|
1731
1060
|
* 낙찰 공급사의 사업자·계좌·공급가액/부가세·응찰 품목내역을 조회합니다. 대금 지급에 필요한 정보입니다. 가시성 마스킹과는 직교한 정산 데이터이며 읽기 전용입니다. **필수 스코프:** `invoices:read` — 종전에는 `bids:read` 를 요구했습니다. 대금·계좌가 실리는 응답이라 공고 조회 권한과 분리했습니다. 이 엔드포인트를 쓰시던 키에는 `invoices:read` 를 추가로 부여받으셔야 합니다.
|
|
1732
1061
|
* @summary 정산 정보 조회
|
|
@@ -1809,38 +1138,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1809
1138
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1810
1139
|
});
|
|
1811
1140
|
},
|
|
1812
|
-
/**
|
|
1813
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write` 를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
1814
|
-
* @summary 공급사 카드결제 가능 여부
|
|
1815
|
-
* @param {string} memberId 계약업체 회원 ID
|
|
1816
|
-
* @param {*} [options] Override http request option.
|
|
1817
|
-
* @throws {RequiredError}
|
|
1818
|
-
*/
|
|
1819
|
-
getSupplierCardPayableV2(memberId, options) {
|
|
1820
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1821
|
-
var _a, _b, _c;
|
|
1822
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.getSupplierCardPayableV2(memberId, options);
|
|
1823
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1824
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.getSupplierCardPayableV2']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1825
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1826
|
-
});
|
|
1827
|
-
},
|
|
1828
|
-
/**
|
|
1829
|
-
* 구독 1건의 현재 상태를 조회합니다. 서명 시크릿은 실리지 않습니다. **수정·삭제 전에 먼저 호출하세요.** 응답 헤더 `ETag` 를 `If-Match` 에 그대로 실어야 `PATCH`/`DELETE` 가 통과합니다. **`404`:** 없는 구독이거나 다른 파트너 키의 구독입니다 — `endpointId` 를 확인하세요. **필수 스코프:** `webhooks:read`
|
|
1830
|
-
* @summary 웹훅 구독 단건 조회
|
|
1831
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1832
|
-
* @param {*} [options] Override http request option.
|
|
1833
|
-
* @throws {RequiredError}
|
|
1834
|
-
*/
|
|
1835
|
-
getWebhookEndpoint(endpointId, options) {
|
|
1836
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1837
|
-
var _a, _b, _c;
|
|
1838
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.getWebhookEndpoint(endpointId, options);
|
|
1839
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1840
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.getWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1841
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1842
|
-
});
|
|
1843
|
-
},
|
|
1844
1141
|
/**
|
|
1845
1142
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
1846
1143
|
* @summary Partner API 헬스체크
|
|
@@ -1850,163 +1147,80 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
1850
1147
|
healthControllerCheck(options) {
|
|
1851
1148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1852
1149
|
var _a, _b, _c;
|
|
1853
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.healthControllerCheck(options);
|
|
1854
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1855
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.healthControllerCheck']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1856
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1857
|
-
});
|
|
1858
|
-
},
|
|
1859
|
-
/**
|
|
1860
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요. **목록이 길어 URL 이 부담되면** `POST /v2/bid-results/query` 를 쓰세요. 응답은 같습니다.
|
|
1861
|
-
* @summary 공고 결과 배치 조회
|
|
1862
|
-
* @param {string} bidIds 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidIds` 를 반복해 전달합니다. 최대 100건.
|
|
1863
|
-
* @param {*} [options] Override http request option.
|
|
1864
|
-
* @throws {RequiredError}
|
|
1865
|
-
*/
|
|
1866
|
-
listBidResults(bidIds, options) {
|
|
1867
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1868
|
-
var _a, _b, _c;
|
|
1869
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.listBidResults(bidIds, options);
|
|
1870
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1871
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listBidResults']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1872
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1873
|
-
});
|
|
1874
|
-
},
|
|
1875
|
-
/**
|
|
1876
|
-
* 발주처(API 키 바인딩)의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(쿼리에 buyerId 를 넣지 않습니다). **페이지네이션(cursor):** `limit`(1~100, 기본 100) + `cursor`(불투명 토큰). 응답의 `nextCursor` 를 다음 요청 `cursor` 로 전달하면 다음 페이지를 받습니다. `nextCursor=null` 이면 마지막 페이지입니다. **상태·낙찰방법:** 공개값(의미 문자열)으로 반환됩니다. 낙찰 여부는 상태가 아니라 낙찰 결과 조회의 `participants[].isWinner` 로 관측합니다(AWARDED 상태는 없습니다).
|
|
1877
|
-
* @summary 공고 목록 조회
|
|
1878
|
-
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
1879
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달한다. 미지정 시 첫 페이지. `nextCursor=null` 이면 마지막 페이지다.
|
|
1880
|
-
* @param {Array<string>} [bidIds] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV 로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
1881
|
-
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회한다.
|
|
1882
|
-
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
1883
|
-
* @param {*} [options] Override http request option.
|
|
1884
|
-
* @throws {RequiredError}
|
|
1885
|
-
*/
|
|
1886
|
-
listBids(limit, cursor, bidIds, status, include, options) {
|
|
1887
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1888
|
-
var _a, _b, _c;
|
|
1889
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.listBids(limit, cursor, bidIds, status, include, options);
|
|
1890
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1891
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listBids']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1892
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1893
|
-
});
|
|
1894
|
-
},
|
|
1895
|
-
/**
|
|
1896
|
-
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market 이 데이터를 채워 PDF 로 만들어 주는 서류입니다. 생성 API 의 `paperCodes` 에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents` 가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
1897
|
-
* @summary 거래에 필요한 계약서류 목록 조회
|
|
1898
|
-
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
1899
|
-
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
1900
|
-
* @param {*} [options] Override http request option.
|
|
1901
|
-
* @throws {RequiredError}
|
|
1902
|
-
*/
|
|
1903
|
-
listExternalContractDocuments(buyerId, bidType, options) {
|
|
1904
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1905
|
-
var _a, _b, _c;
|
|
1906
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.listExternalContractDocuments(buyerId, bidType, options);
|
|
1907
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1908
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listExternalContractDocuments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1909
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1910
|
-
});
|
|
1911
|
-
},
|
|
1912
|
-
/**
|
|
1913
|
-
* 기관에 공유된 물품 중 **아직 전송되지 않은 것**을 조회합니다. **증분 피드입니다.** 가져간 물품을 `POST /v2/products/receipts` 로 수신확인하면 다음 조회 결과에서 빠집니다. 수신확인을 하지 않으면 같은 물품이 계속 내려옵니다. **권장 흐름:** 조회 → 자기 시스템에 저장 → 저장에 성공한 물품 코드만 수신확인. 저장 전에 수신확인하면 그 물품은 다시 받을 수 없습니다. **조회 범위:** 요청 키가 대행하는 기관 그룹입니다. 기관 그룹이 설정되지 않은 키는 403 입니다. **필수 스코프:** `products:read`
|
|
1914
|
-
* @summary 물품 카탈로그 조회
|
|
1915
|
-
* @param {*} [options] Override http request option.
|
|
1916
|
-
* @throws {RequiredError}
|
|
1917
|
-
*/
|
|
1918
|
-
listProducts(options) {
|
|
1919
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1920
|
-
var _a, _b, _c;
|
|
1921
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.listProducts(options);
|
|
1922
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1923
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listProducts']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1924
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1925
|
-
});
|
|
1926
|
-
},
|
|
1927
|
-
/**
|
|
1928
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문·수신측 응답 상태· 다음 재시도 예정 시각이 함께 실립니다. **호출 시점:** - 수신측 장애로 놓친 이벤트를 메울 때. 이 엔드포인트가 웹훅의 **폴링 대체 경로**입니다 — `status=EXHAUSTED` 로 걸러 다시 처리하면 됩니다. - \"이벤트가 안 온다\" 를 진단할 때. 발송 시도 자체가 없는지(구독·이벤트 타입 문제), 시도했지만 실패했는지(`responseStatus`·`responseBodyExcerpt`)를 여기서 가릅니다. **같은 이벤트가 여러 행으로 보입니다.** 재시도마다 한 행이며 `eventId` 가 같고 `attempt` 만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단하세요. **페이지네이션:** `nextCursor` 를 다음 요청의 `cursor` 로 전달합니다. null 이면 마지막 페이지입니다. **`400`:** `status` 가 허용 값 밖이거나 `limit` 이 범위를 벗어났습니다 — 값을 고쳐 재시도하세요. **필수 스코프:** `webhooks:read`
|
|
1929
|
-
* @summary 웹훅 전송 이력 조회
|
|
1930
|
-
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
1931
|
-
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
1932
|
-
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
1933
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
1934
|
-
* @param {*} [options] Override http request option.
|
|
1935
|
-
* @throws {RequiredError}
|
|
1936
|
-
*/
|
|
1937
|
-
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
1938
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1939
|
-
var _a, _b, _c;
|
|
1940
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.listWebhookDeliveries(endpointId, status, limit, cursor, options);
|
|
1150
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.healthControllerCheck(options);
|
|
1941
1151
|
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1942
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.
|
|
1152
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.healthControllerCheck']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1943
1153
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1944
1154
|
});
|
|
1945
1155
|
},
|
|
1946
1156
|
/**
|
|
1947
|
-
*
|
|
1948
|
-
* @summary
|
|
1157
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요. **단건 조회:** 공고 하나만 볼 때도 `bidIds` 에 하나만 넣거나 `GET /v2/bids/{bidRef}` 상세 조회를 쓰세요. 종전의 `GET /v2/bids/{bidRef}/result` 는 상세 응답의 부분집합이라 폐지됐습니다.
|
|
1158
|
+
* @summary 공고 결과 배치 조회
|
|
1159
|
+
* @param {string} bidIds 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidIds` 를 반복해 전달합니다. 최대 100건.
|
|
1949
1160
|
* @param {*} [options] Override http request option.
|
|
1950
1161
|
* @throws {RequiredError}
|
|
1951
1162
|
*/
|
|
1952
|
-
|
|
1163
|
+
listBidResults(bidIds, options) {
|
|
1953
1164
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1954
1165
|
var _a, _b, _c;
|
|
1955
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.
|
|
1166
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.listBidResults(bidIds, options);
|
|
1956
1167
|
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1957
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.
|
|
1168
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listBidResults']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1958
1169
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1959
1170
|
});
|
|
1960
1171
|
},
|
|
1961
1172
|
/**
|
|
1962
|
-
*
|
|
1963
|
-
* @summary
|
|
1964
|
-
* @param {
|
|
1965
|
-
* @param {string}
|
|
1966
|
-
* @param {
|
|
1173
|
+
* 발주처(API 키 바인딩)의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(쿼리에 buyerId 를 넣지 않습니다). **페이지네이션(cursor):** `limit`(1~100, 기본 100) + `cursor`(불투명 토큰). 응답의 `nextCursor` 를 다음 요청 `cursor` 로 전달하면 다음 페이지를 받습니다. `nextCursor=null` 이면 마지막 페이지입니다. **상태·낙찰방법:** 공개값(의미 문자열)으로 반환됩니다. 낙찰 여부는 상태가 아니라 낙찰 결과 조회의 `participants[].isWinner` 로 관측합니다(AWARDED 상태는 없습니다).
|
|
1174
|
+
* @summary 공고 목록 조회
|
|
1175
|
+
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
1176
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달한다. 미지정 시 첫 페이지. `nextCursor=null` 이면 마지막 페이지다.
|
|
1177
|
+
* @param {Array<string>} [bidIds] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV 로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
1178
|
+
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회한다.
|
|
1179
|
+
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
1967
1180
|
* @param {*} [options] Override http request option.
|
|
1968
1181
|
* @throws {RequiredError}
|
|
1969
1182
|
*/
|
|
1970
|
-
|
|
1183
|
+
listBids(limit, cursor, bidIds, status, include, options) {
|
|
1971
1184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1972
1185
|
var _a, _b, _c;
|
|
1973
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.
|
|
1186
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.listBids(limit, cursor, bidIds, status, include, options);
|
|
1974
1187
|
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1975
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.
|
|
1188
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listBids']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1976
1189
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1977
1190
|
});
|
|
1978
1191
|
},
|
|
1979
1192
|
/**
|
|
1980
|
-
*
|
|
1981
|
-
* @summary
|
|
1982
|
-
* @param {string}
|
|
1983
|
-
* @param {
|
|
1193
|
+
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market 이 데이터를 채워 PDF 로 만들어 주는 서류입니다. 생성 API 의 `paperCodes` 에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents` 가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
1194
|
+
* @summary 거래에 필요한 계약서류 목록 조회
|
|
1195
|
+
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
1196
|
+
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
1984
1197
|
* @param {*} [options] Override http request option.
|
|
1985
1198
|
* @throws {RequiredError}
|
|
1986
1199
|
*/
|
|
1987
|
-
|
|
1200
|
+
listExternalContractDocuments(buyerId, bidType, options) {
|
|
1988
1201
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1989
1202
|
var _a, _b, _c;
|
|
1990
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.
|
|
1203
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.listExternalContractDocuments(buyerId, bidType, options);
|
|
1991
1204
|
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1992
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.
|
|
1205
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.listExternalContractDocuments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1993
1206
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1994
1207
|
});
|
|
1995
1208
|
},
|
|
1996
1209
|
/**
|
|
1997
|
-
*
|
|
1998
|
-
* @summary
|
|
1210
|
+
* 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1211
|
+
* @summary 유찰 처리
|
|
1999
1212
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2000
1213
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
1214
|
+
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
2001
1215
|
* @param {*} [options] Override http request option.
|
|
2002
1216
|
* @throws {RequiredError}
|
|
2003
1217
|
*/
|
|
2004
|
-
|
|
1218
|
+
markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options) {
|
|
2005
1219
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2006
1220
|
var _a, _b, _c;
|
|
2007
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.
|
|
1221
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options);
|
|
2008
1222
|
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
2009
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.
|
|
1223
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.markBidFailed']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
2010
1224
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2011
1225
|
});
|
|
2012
1226
|
},
|
|
@@ -2029,7 +1243,7 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
2029
1243
|
});
|
|
2030
1244
|
},
|
|
2031
1245
|
/**
|
|
2032
|
-
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수.
|
|
1246
|
+
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
|
|
2033
1247
|
* @summary 공고 등록
|
|
2034
1248
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환.
|
|
2035
1249
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
@@ -2080,40 +1294,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
2080
1294
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2081
1295
|
});
|
|
2082
1296
|
},
|
|
2083
|
-
/**
|
|
2084
|
-
* 서명 시크릿을 새로 발급합니다. 응답의 `secretVersion` 이 1 올라갑니다. **호출 시점:** 시크릿을 분실했거나 유출이 의심될 때, 또는 주기적 교체 정책이 있을 때. **새 시크릿은 이 응답에서 한 번만 나갑니다.** 조회로 다시 받을 수 없습니다. **옛 시크릿은 즉시 무효입니다.** 유예 기간이 없으므로, 수신측이 새 값을 반영하기 전에 도착한 이벤트는 서명 검증에 실패합니다. 배포 순서를 이렇게 잡으세요 — ① 수신측이 옛 값과 새 값을 **둘 다** 받아들이도록 배포 → ② 이 엔드포인트 호출 → ③ 응답의 새 값을 반영 → ④ 옛 값 제거. 검증 실패로 non-2xx 를 돌려주면 실패로 집계되어 20회 연속 시 구독이 중지됩니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 같은 키로 재전송하면 **새로 발급하지 않고** 처음 발급한 값을 그대로 돌려줍니다(24시간) — 네트워크 오류로 응답을 놓쳤을 때 같은 키로 다시 부르세요.
|
|
2085
|
-
* @summary 웹훅 서명 시크릿 재발급
|
|
2086
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2087
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2088
|
-
* @param {*} [options] Override http request option.
|
|
2089
|
-
* @throws {RequiredError}
|
|
2090
|
-
*/
|
|
2091
|
-
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
2092
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
2093
|
-
var _a, _b, _c;
|
|
2094
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.rotateWebhookSecret(endpointId, idempotencyKey, options);
|
|
2095
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
2096
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.rotateWebhookSecret']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
2097
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2098
|
-
});
|
|
2099
|
-
},
|
|
2100
|
-
/**
|
|
2101
|
-
* 등록된 주소로 `ping` 이벤트를 즉시 1회 보내고 그 결과를 돌려줍니다. **호출 시점:** 구독을 등록한 직후, 수신 주소를 바꾼 직후, 방화벽·인증서를 손본 뒤. **응답은 발송 결과이지 요청 실패가 아닙니다.** 수신측이 받지 못해도 HTTP `200` 에 `delivered: false` 로 옵니다 — `responseStatus`(수신측 상태)와 `error`(연결 거부·타임아웃· TLS 오류)를 보고 원인을 좁히세요. 이 발송에도 실제 이벤트와 **똑같은 서명 헤더**가 실리므로 검증 코드를 그대로 시험할 수 있습니다. `ping` 은 구독 목록에 넣을 수 없는 타입이니, 수신측이 모르는 `eventType` 을 만나면 버리도록 짜여 있다면 이 확인만 실패할 수 있습니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 다시 보내려면 **새 키**를 쓰세요 — 같은 키는 24시간 동안 직전 결과를 그대로 돌려줍니다(재발송하지 않습니다).
|
|
2102
|
-
* @summary 웹훅 연결 확인 발송
|
|
2103
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2104
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2105
|
-
* @param {*} [options] Override http request option.
|
|
2106
|
-
* @throws {RequiredError}
|
|
2107
|
-
*/
|
|
2108
|
-
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
2109
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
2110
|
-
var _a, _b, _c;
|
|
2111
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.sendWebhookTestEvent(endpointId, idempotencyKey, options);
|
|
2112
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
2113
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.sendWebhookTestEvent']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
2114
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2115
|
-
});
|
|
2116
|
-
},
|
|
2117
1297
|
/**
|
|
2118
1298
|
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEdit=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
|
|
2119
1299
|
* @summary 공고 수정
|
|
@@ -2134,26 +1314,6 @@ const PartnerV2ApiFp = function (configuration) {
|
|
|
2134
1314
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2135
1315
|
});
|
|
2136
1316
|
},
|
|
2137
|
-
/**
|
|
2138
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. **호출 시점:** 수신 주소가 바뀌었을 때, 구독 이벤트를 늘리거나 줄일 때, 연속 실패로 자동 중지된 구독을 고친 뒤 되살릴 때(`{\"status\":\"ACTIVE\"}`). **`eventTypes` 는 치환입니다** — 보낸 목록이 곧 새 구독 목록입니다. 하나를 더하려면 기존 목록에 더한 **전체**를 보내세요. **`If-Match` 가 필수입니다.** 먼저 `GET /v2/webhook-endpoints/{endpointId}` 로 현재 `ETag` 를 받아 그대로 실어 보내세요. 이 헤더가 없으면 두 요청이 앞서거니 뒤서거니 하며 먼저 한 수정을 조용히 덮어씁니다. - `428` — 헤더를 빼먹었습니다. 조회 후 `ETag` 를 실어 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다. 다시 조회해 최신 `ETag` 로 재시도하세요. 아무것도 수정되지 않았습니다. **시크릿은 이 경로로 바뀌지 않습니다** — 재발급은 `rotate-secret` 입니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2139
|
-
* @summary 웹훅 구독 수정
|
|
2140
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2141
|
-
* @param {string} ifMatch
|
|
2142
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
2143
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2144
|
-
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2145
|
-
* @param {*} [options] Override http request option.
|
|
2146
|
-
* @throws {RequiredError}
|
|
2147
|
-
*/
|
|
2148
|
-
updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
2149
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
2150
|
-
var _a, _b, _c;
|
|
2151
|
-
const localVarAxiosArgs = yield localVarAxiosParamCreator.updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options);
|
|
2152
|
-
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
2153
|
-
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerV2Api.updateWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
2154
|
-
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2155
|
-
});
|
|
2156
|
-
},
|
|
2157
1317
|
/**
|
|
2158
1318
|
* 스코프 `files:write` + `Idempotency-Key` 헤더 필수. base64 또는 url 중 정확히 하나를 제출한다.
|
|
2159
1319
|
* @summary 공고 첨부파일 업로드(base64 또는 url) → fileKey
|
|
@@ -2179,17 +1339,6 @@ exports.PartnerV2ApiFp = PartnerV2ApiFp;
|
|
|
2179
1339
|
const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
2180
1340
|
const localVarFp = (0, exports.PartnerV2ApiFp)(configuration);
|
|
2181
1341
|
return {
|
|
2182
|
-
/**
|
|
2183
|
-
* 저장을 마친 물품을 전송완료로 표시해 다음 조회에서 제외합니다. **되돌릴 수 없습니다.** 표시한 물품은 `GET /v2/products` 로 다시 내려오지 않으므로, 자기 시스템에 저장이 끝난 뒤에 호출하세요. **표시 범위는 기관 그룹으로 잠깁니다.** 다른 기관의 물품 코드를 섞어 보내면 그 건은 표시되지 않고 `acknowledged` 가 요청 수보다 작게 돌아옵니다. **필수 스코프:** `products:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2184
|
-
* @summary 물품 수신확인
|
|
2185
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2186
|
-
* @param {AcknowledgeProductsRequestDto} acknowledgeProductsRequestDto
|
|
2187
|
-
* @param {*} [options] Override http request option.
|
|
2188
|
-
* @throws {RequiredError}
|
|
2189
|
-
*/
|
|
2190
|
-
acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options) {
|
|
2191
|
-
return localVarFp.acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options).then((request) => request(axios, basePath));
|
|
2192
|
-
},
|
|
2193
1342
|
/**
|
|
2194
1343
|
* 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
|
|
2195
1344
|
* @summary 공고 취소
|
|
@@ -2203,7 +1352,7 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2203
1352
|
return localVarFp.cancelBid(bidRef, idempotencyKey, cancelBidRequestDto, options).then((request) => request(axios, basePath));
|
|
2204
1353
|
},
|
|
2205
1354
|
/**
|
|
2206
|
-
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1355
|
+
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2207
1356
|
* @summary 검수완료 전송
|
|
2208
1357
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2209
1358
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
@@ -2225,17 +1374,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2225
1374
|
completeInvoice(bidRef, idempotencyKey, options) {
|
|
2226
1375
|
return localVarFp.completeInvoice(bidRef, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2227
1376
|
},
|
|
2228
|
-
/**
|
|
2229
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2230
|
-
* @summary 결제창 발행
|
|
2231
|
-
* @param {string} idempotencyKey 재시도 안전을 위한 멱등 키.
|
|
2232
|
-
* @param {CreateCardPaymentRequestDto} createCardPaymentRequestDto
|
|
2233
|
-
* @param {*} [options] Override http request option.
|
|
2234
|
-
* @throws {RequiredError}
|
|
2235
|
-
*/
|
|
2236
|
-
createCardPayment(idempotencyKey, createCardPaymentRequestDto, options) {
|
|
2237
|
-
return localVarFp.createCardPayment(idempotencyKey, createCardPaymentRequestDto, options).then((request) => request(axios, basePath));
|
|
2238
|
-
},
|
|
2239
1377
|
/**
|
|
2240
1378
|
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인(APPROVED)되어 바로 결제 가능합니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. 거기서 카드를 골라 결제합니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/card-payment-requests/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — 같은 기능을 v2 응답 규약으로 제공하는 `POST /v2/card-payments` 와 `GET /v2/suppliers/{memberId}/card-payable` 를 신규 연동에 권합니다. 이 경로도 계속 동작하며 중단 일정은 없습니다.
|
|
2241
1379
|
* @summary 결제창 발행 (구 경로)
|
|
@@ -2259,30 +1397,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2259
1397
|
createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
|
|
2260
1398
|
return localVarFp.createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(axios, basePath));
|
|
2261
1399
|
},
|
|
2262
|
-
/**
|
|
2263
|
-
* 수신 주소와 구독할 이벤트를 등록합니다. **호출 시점:** 연동 초기 1회. 수신 주소가 바뀌면 새로 만들지 말고 `PATCH` 로 고치세요 — 그래야 시크릿과 전송 이력이 유지됩니다. **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 응답의 `secret` 을 즉시 안전한 곳에 보관하세요. 잃어버렸다면 복구가 아니라 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` 으로 **재발급**해야 합니다. **거절되는 경우와 고치는 법:** - `400` — `url` 이 HTTPS 가 아니거나 형식이 잘못됨, `eventTypes` 가 비었거나 목록 밖 값 (`ping` 은 구독 불가). 값을 고쳐 재시도하세요. - `400` — `Idempotency-Key` 헤더 누락/형식 오류. UUID v4 를 실어 보내세요. - `403` — 토큰에 `webhooks:write` 스코프가 없음. 키 발급 설정을 넓혀야 합니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
2264
|
-
* @summary 웹훅 구독 등록
|
|
2265
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2266
|
-
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2267
|
-
* @param {*} [options] Override http request option.
|
|
2268
|
-
* @throws {RequiredError}
|
|
2269
|
-
*/
|
|
2270
|
-
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
2271
|
-
return localVarFp.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2272
|
-
},
|
|
2273
|
-
/**
|
|
2274
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. **호출 시점:** 연동을 종료할 때. 잠시만 멈추려면 삭제하지 말고 `PATCH … {\"status\":\"DISABLED\"}` 를 쓰세요 — 시크릿과 이벤트 구성이 남아 그대로 되살릴 수 있습니다. **되돌릴 수 없습니다.** 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. **`If-Match` 가 필수입니다.** `GET` 으로 받은 `ETag` 를 실어 보내세요. - `428` — 헤더 누락. 조회 후 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다(누군가 수정했거나 발송기가 상태를 내렸습니다). 다시 조회해 정말 지울 대상이 맞는지 확인하고 최신 `ETag` 로 재시도하세요. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2275
|
-
* @summary 웹훅 구독 삭제
|
|
2276
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2277
|
-
* @param {string} ifMatch
|
|
2278
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
2279
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2280
|
-
* @param {*} [options] Override http request option.
|
|
2281
|
-
* @throws {RequiredError}
|
|
2282
|
-
*/
|
|
2283
|
-
deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options) {
|
|
2284
|
-
return localVarFp.deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2285
|
-
},
|
|
2286
1400
|
/**
|
|
2287
1401
|
* 무인증 — `fileKey` 자체가 capability 다(V5 `/download/{fileKey}` 와 같은 보안 모델). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
2288
1402
|
* @summary 파일 다운로드 — 안정 URL(302)
|
|
@@ -2294,8 +1408,8 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2294
1408
|
return localVarFp.downloadFile(fileKey, options).then((request) => request(axios, basePath));
|
|
2295
1409
|
},
|
|
2296
1410
|
/**
|
|
2297
|
-
* 공고의
|
|
2298
|
-
* @summary 공고
|
|
1411
|
+
* 공고의 모든 정보를 한 번에 조회합니다 — 기본 정보·납품/대금 조건·담당자·품목, 응찰 참여자(투찰가·순위·낙찰 여부), 계약서류, 검수 진행 상태, 라이프사이클 하위 상태. 스코프 `bids:read`. ERP 는 이 엔드포인트를 폴링해 async 처리(정산 마감 등)의 성사를 관측합니다. **낙찰 여부:** 이 응답의 `status` 가 아니라 `participants[].isWinner` 로 관측합니다. AWARDED 라는 공고 상태는 존재하지 않으며(낙찰 직후 공고는 CONTRACT_IN_PROGRESS 로 전이) `status === \'AWARDED\'` 를 기다리면 영원히 도달하지 않습니다. **여러 건을 한 번에:** 공고마다 이 조회를 반복하지 말고 `GET /v2/bid-results` 배치 조회를 쓰세요. **계약서류:** `contractDocuments[].generationState` 는 **관측 전용**입니다. `DEAD_LETTER` 가 보이면 자동 재시도가 소진된 상태이며 API 로 되살릴 수 없습니다 — 운영에 문의하세요. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
1412
|
+
* @summary 공고 상세 조회
|
|
2299
1413
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2300
1414
|
* @param {*} [options] Override http request option.
|
|
2301
1415
|
* @throws {RequiredError}
|
|
@@ -2303,16 +1417,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2303
1417
|
getBid(bidRef, options) {
|
|
2304
1418
|
return localVarFp.getBid(bidRef, options).then((request) => request(axios, basePath));
|
|
2305
1419
|
},
|
|
2306
|
-
/**
|
|
2307
|
-
* 공고의 응찰 참여 업체·순위·낙찰 여부를 조회한다. scope bids:read.
|
|
2308
|
-
* @summary 공고 결과 조회
|
|
2309
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2310
|
-
* @param {*} [options] Override http request option.
|
|
2311
|
-
* @throws {RequiredError}
|
|
2312
|
-
*/
|
|
2313
|
-
getBidResults(bidRef, options) {
|
|
2314
|
-
return localVarFp.getBidResults(bidRef, options).then((request) => request(axios, basePath));
|
|
2315
|
-
},
|
|
2316
1420
|
/**
|
|
2317
1421
|
* 낙찰 공급사의 사업자·계좌·공급가액/부가세·응찰 품목내역을 조회합니다. 대금 지급에 필요한 정보입니다. 가시성 마스킹과는 직교한 정산 데이터이며 읽기 전용입니다. **필수 스코프:** `invoices:read` — 종전에는 `bids:read` 를 요구했습니다. 대금·계좌가 실리는 응답이라 공고 조회 권한과 분리했습니다. 이 엔드포인트를 쓰시던 키에는 `invoices:read` 를 추가로 부여받으셔야 합니다.
|
|
2318
1422
|
* @summary 정산 정보 조회
|
|
@@ -2365,26 +1469,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2365
1469
|
getSupplierCardPayable(memberId, options) {
|
|
2366
1470
|
return localVarFp.getSupplierCardPayable(memberId, options).then((request) => request(axios, basePath));
|
|
2367
1471
|
},
|
|
2368
|
-
/**
|
|
2369
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write` 를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
2370
|
-
* @summary 공급사 카드결제 가능 여부
|
|
2371
|
-
* @param {string} memberId 계약업체 회원 ID
|
|
2372
|
-
* @param {*} [options] Override http request option.
|
|
2373
|
-
* @throws {RequiredError}
|
|
2374
|
-
*/
|
|
2375
|
-
getSupplierCardPayableV2(memberId, options) {
|
|
2376
|
-
return localVarFp.getSupplierCardPayableV2(memberId, options).then((request) => request(axios, basePath));
|
|
2377
|
-
},
|
|
2378
|
-
/**
|
|
2379
|
-
* 구독 1건의 현재 상태를 조회합니다. 서명 시크릿은 실리지 않습니다. **수정·삭제 전에 먼저 호출하세요.** 응답 헤더 `ETag` 를 `If-Match` 에 그대로 실어야 `PATCH`/`DELETE` 가 통과합니다. **`404`:** 없는 구독이거나 다른 파트너 키의 구독입니다 — `endpointId` 를 확인하세요. **필수 스코프:** `webhooks:read`
|
|
2380
|
-
* @summary 웹훅 구독 단건 조회
|
|
2381
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2382
|
-
* @param {*} [options] Override http request option.
|
|
2383
|
-
* @throws {RequiredError}
|
|
2384
|
-
*/
|
|
2385
|
-
getWebhookEndpoint(endpointId, options) {
|
|
2386
|
-
return localVarFp.getWebhookEndpoint(endpointId, options).then((request) => request(axios, basePath));
|
|
2387
|
-
},
|
|
2388
1472
|
/**
|
|
2389
1473
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
2390
1474
|
* @summary Partner API 헬스체크
|
|
@@ -2395,7 +1479,7 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2395
1479
|
return localVarFp.healthControllerCheck(options).then((request) => request(axios, basePath));
|
|
2396
1480
|
},
|
|
2397
1481
|
/**
|
|
2398
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요.
|
|
1482
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요. **단건 조회:** 공고 하나만 볼 때도 `bidIds` 에 하나만 넣거나 `GET /v2/bids/{bidRef}` 상세 조회를 쓰세요. 종전의 `GET /v2/bids/{bidRef}/result` 는 상세 응답의 부분집합이라 폐지됐습니다.
|
|
2399
1483
|
* @summary 공고 결과 배치 조회
|
|
2400
1484
|
* @param {string} bidIds 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidIds` 를 반복해 전달합니다. 최대 100건.
|
|
2401
1485
|
* @param {*} [options] Override http request option.
|
|
@@ -2429,37 +1513,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2429
1513
|
listExternalContractDocuments(buyerId, bidType, options) {
|
|
2430
1514
|
return localVarFp.listExternalContractDocuments(buyerId, bidType, options).then((request) => request(axios, basePath));
|
|
2431
1515
|
},
|
|
2432
|
-
/**
|
|
2433
|
-
* 기관에 공유된 물품 중 **아직 전송되지 않은 것**을 조회합니다. **증분 피드입니다.** 가져간 물품을 `POST /v2/products/receipts` 로 수신확인하면 다음 조회 결과에서 빠집니다. 수신확인을 하지 않으면 같은 물품이 계속 내려옵니다. **권장 흐름:** 조회 → 자기 시스템에 저장 → 저장에 성공한 물품 코드만 수신확인. 저장 전에 수신확인하면 그 물품은 다시 받을 수 없습니다. **조회 범위:** 요청 키가 대행하는 기관 그룹입니다. 기관 그룹이 설정되지 않은 키는 403 입니다. **필수 스코프:** `products:read`
|
|
2434
|
-
* @summary 물품 카탈로그 조회
|
|
2435
|
-
* @param {*} [options] Override http request option.
|
|
2436
|
-
* @throws {RequiredError}
|
|
2437
|
-
*/
|
|
2438
|
-
listProducts(options) {
|
|
2439
|
-
return localVarFp.listProducts(options).then((request) => request(axios, basePath));
|
|
2440
|
-
},
|
|
2441
|
-
/**
|
|
2442
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문·수신측 응답 상태· 다음 재시도 예정 시각이 함께 실립니다. **호출 시점:** - 수신측 장애로 놓친 이벤트를 메울 때. 이 엔드포인트가 웹훅의 **폴링 대체 경로**입니다 — `status=EXHAUSTED` 로 걸러 다시 처리하면 됩니다. - \"이벤트가 안 온다\" 를 진단할 때. 발송 시도 자체가 없는지(구독·이벤트 타입 문제), 시도했지만 실패했는지(`responseStatus`·`responseBodyExcerpt`)를 여기서 가릅니다. **같은 이벤트가 여러 행으로 보입니다.** 재시도마다 한 행이며 `eventId` 가 같고 `attempt` 만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단하세요. **페이지네이션:** `nextCursor` 를 다음 요청의 `cursor` 로 전달합니다. null 이면 마지막 페이지입니다. **`400`:** `status` 가 허용 값 밖이거나 `limit` 이 범위를 벗어났습니다 — 값을 고쳐 재시도하세요. **필수 스코프:** `webhooks:read`
|
|
2443
|
-
* @summary 웹훅 전송 이력 조회
|
|
2444
|
-
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
2445
|
-
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
2446
|
-
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
2447
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
2448
|
-
* @param {*} [options] Override http request option.
|
|
2449
|
-
* @throws {RequiredError}
|
|
2450
|
-
*/
|
|
2451
|
-
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
2452
|
-
return localVarFp.listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(axios, basePath));
|
|
2453
|
-
},
|
|
2454
|
-
/**
|
|
2455
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. **호출 시점:** 연동 상태를 점검할 때, 또는 발송이 멈춘 이유(`status`·`consecutiveFailures`)를 확인할 때. 서명 시크릿은 여기에 실리지 않습니다. **필수 스코프:** `webhooks:read` ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
2456
|
-
* @summary 웹훅 구독 목록 조회
|
|
2457
|
-
* @param {*} [options] Override http request option.
|
|
2458
|
-
* @throws {RequiredError}
|
|
2459
|
-
*/
|
|
2460
|
-
listWebhookEndpoints(options) {
|
|
2461
|
-
return localVarFp.listWebhookEndpoints(options).then((request) => request(axios, basePath));
|
|
2462
|
-
},
|
|
2463
1516
|
/**
|
|
2464
1517
|
* 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2465
1518
|
* @summary 유찰 처리
|
|
@@ -2472,28 +1525,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2472
1525
|
markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options) {
|
|
2473
1526
|
return localVarFp.markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options).then((request) => request(axios, basePath));
|
|
2474
1527
|
},
|
|
2475
|
-
/**
|
|
2476
|
-
* 초안(DRAFT) 상태로 등록된 공고를 진행중(ONGOING)으로 게시합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 연간/지명계약 등으로 초안 상태로 등록된 공고를 명시적으로 게시할 때. 등록 응답의 `status` 로 게시 필요 여부를 판별합니다. **전제조건:** 초안(DRAFT) 상태이고 마감(bidEndAt)이 미래여야 합니다. **거부:** 초안이 아니거나 마감이 지난 공고 → 409. 마감이 지났으면 먼저 마감일을 연장해야 합니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403). **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2477
|
-
* @summary 공고 게시(초안 → 진행중)
|
|
2478
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2479
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 재전송 시 캐시 응답 반환(24시간).
|
|
2480
|
-
* @param {*} [options] Override http request option.
|
|
2481
|
-
* @throws {RequiredError}
|
|
2482
|
-
*/
|
|
2483
|
-
publishBid(bidRef, idempotencyKey, options) {
|
|
2484
|
-
return localVarFp.publishBid(bidRef, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2485
|
-
},
|
|
2486
|
-
/**
|
|
2487
|
-
* 공고의 자동생성 계약서류(발주서·공고결과·표준계약서 등)를 생성/재생성합니다. **V6 대응:** `RegenerateAllContractPdfsCommand` — 웹 어드민의 \"계약 서류 일괄 재생성\"과 동일 경로. **호출 시점:** 낙찰(계약 시작) 후 계약서류가 필요하거나, 생성에 실패한 서류를 다시 만들 때. **부수효과:** - 생성 실패(DEAD_LETTER) 상태의 자동생성 PDF 가 재생성 큐에 등록됩니다(비동기). - 승낙사항(ACCEPTANCE) 계열은 운영자 승인 워크플로가 필요해 이 경로에서 제외됩니다. **응답:** 즉시 파일이 아니라 큐 등록 결과(`enqueuedCount`/`skippedCount`)를 반환합니다. 잠시 후 자동 생성됩니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2488
|
-
* @summary 계약서류 생성(재생성)
|
|
2489
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2490
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2491
|
-
* @param {*} [options] Override http request option.
|
|
2492
|
-
* @throws {RequiredError}
|
|
2493
|
-
*/
|
|
2494
|
-
regenerateContractDocuments(bidRef, idempotencyKey, options) {
|
|
2495
|
-
return localVarFp.regenerateContractDocuments(bidRef, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2496
|
-
},
|
|
2497
1528
|
/**
|
|
2498
1529
|
* 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
|
|
2499
1530
|
* @summary 낙찰 결과 전송
|
|
@@ -2507,7 +1538,7 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2507
1538
|
return localVarFp.registerAward(bidRef, idempotencyKey, registerAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
2508
1539
|
},
|
|
2509
1540
|
/**
|
|
2510
|
-
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수.
|
|
1541
|
+
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
|
|
2511
1542
|
* @summary 공고 등록
|
|
2512
1543
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환.
|
|
2513
1544
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
@@ -2540,28 +1571,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2540
1571
|
revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options) {
|
|
2541
1572
|
return localVarFp.revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
2542
1573
|
},
|
|
2543
|
-
/**
|
|
2544
|
-
* 서명 시크릿을 새로 발급합니다. 응답의 `secretVersion` 이 1 올라갑니다. **호출 시점:** 시크릿을 분실했거나 유출이 의심될 때, 또는 주기적 교체 정책이 있을 때. **새 시크릿은 이 응답에서 한 번만 나갑니다.** 조회로 다시 받을 수 없습니다. **옛 시크릿은 즉시 무효입니다.** 유예 기간이 없으므로, 수신측이 새 값을 반영하기 전에 도착한 이벤트는 서명 검증에 실패합니다. 배포 순서를 이렇게 잡으세요 — ① 수신측이 옛 값과 새 값을 **둘 다** 받아들이도록 배포 → ② 이 엔드포인트 호출 → ③ 응답의 새 값을 반영 → ④ 옛 값 제거. 검증 실패로 non-2xx 를 돌려주면 실패로 집계되어 20회 연속 시 구독이 중지됩니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 같은 키로 재전송하면 **새로 발급하지 않고** 처음 발급한 값을 그대로 돌려줍니다(24시간) — 네트워크 오류로 응답을 놓쳤을 때 같은 키로 다시 부르세요.
|
|
2545
|
-
* @summary 웹훅 서명 시크릿 재발급
|
|
2546
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2547
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2548
|
-
* @param {*} [options] Override http request option.
|
|
2549
|
-
* @throws {RequiredError}
|
|
2550
|
-
*/
|
|
2551
|
-
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
2552
|
-
return localVarFp.rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2553
|
-
},
|
|
2554
|
-
/**
|
|
2555
|
-
* 등록된 주소로 `ping` 이벤트를 즉시 1회 보내고 그 결과를 돌려줍니다. **호출 시점:** 구독을 등록한 직후, 수신 주소를 바꾼 직후, 방화벽·인증서를 손본 뒤. **응답은 발송 결과이지 요청 실패가 아닙니다.** 수신측이 받지 못해도 HTTP `200` 에 `delivered: false` 로 옵니다 — `responseStatus`(수신측 상태)와 `error`(연결 거부·타임아웃· TLS 오류)를 보고 원인을 좁히세요. 이 발송에도 실제 이벤트와 **똑같은 서명 헤더**가 실리므로 검증 코드를 그대로 시험할 수 있습니다. `ping` 은 구독 목록에 넣을 수 없는 타입이니, 수신측이 모르는 `eventType` 을 만나면 버리도록 짜여 있다면 이 확인만 실패할 수 있습니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 다시 보내려면 **새 키**를 쓰세요 — 같은 키는 24시간 동안 직전 결과를 그대로 돌려줍니다(재발송하지 않습니다).
|
|
2556
|
-
* @summary 웹훅 연결 확인 발송
|
|
2557
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2558
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2559
|
-
* @param {*} [options] Override http request option.
|
|
2560
|
-
* @throws {RequiredError}
|
|
2561
|
-
*/
|
|
2562
|
-
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
2563
|
-
return localVarFp.sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2564
|
-
},
|
|
2565
1574
|
/**
|
|
2566
1575
|
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEdit=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
|
|
2567
1576
|
* @summary 공고 수정
|
|
@@ -2576,20 +1585,6 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
|
|
|
2576
1585
|
updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
|
|
2577
1586
|
return localVarFp.updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
|
|
2578
1587
|
},
|
|
2579
|
-
/**
|
|
2580
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. **호출 시점:** 수신 주소가 바뀌었을 때, 구독 이벤트를 늘리거나 줄일 때, 연속 실패로 자동 중지된 구독을 고친 뒤 되살릴 때(`{\"status\":\"ACTIVE\"}`). **`eventTypes` 는 치환입니다** — 보낸 목록이 곧 새 구독 목록입니다. 하나를 더하려면 기존 목록에 더한 **전체**를 보내세요. **`If-Match` 가 필수입니다.** 먼저 `GET /v2/webhook-endpoints/{endpointId}` 로 현재 `ETag` 를 받아 그대로 실어 보내세요. 이 헤더가 없으면 두 요청이 앞서거니 뒤서거니 하며 먼저 한 수정을 조용히 덮어씁니다. - `428` — 헤더를 빼먹었습니다. 조회 후 `ETag` 를 실어 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다. 다시 조회해 최신 `ETag` 로 재시도하세요. 아무것도 수정되지 않았습니다. **시크릿은 이 경로로 바뀌지 않습니다** — 재발급은 `rotate-secret` 입니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2581
|
-
* @summary 웹훅 구독 수정
|
|
2582
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2583
|
-
* @param {string} ifMatch
|
|
2584
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
2585
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2586
|
-
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2587
|
-
* @param {*} [options] Override http request option.
|
|
2588
|
-
* @throws {RequiredError}
|
|
2589
|
-
*/
|
|
2590
|
-
updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
2591
|
-
return localVarFp.updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2592
|
-
},
|
|
2593
1588
|
/**
|
|
2594
1589
|
* 스코프 `files:write` + `Idempotency-Key` 헤더 필수. base64 또는 url 중 정확히 하나를 제출한다.
|
|
2595
1590
|
* @summary 공고 첨부파일 업로드(base64 또는 url) → fileKey
|
|
@@ -2607,17 +1602,6 @@ exports.PartnerV2ApiFactory = PartnerV2ApiFactory;
|
|
|
2607
1602
|
* PartnerV2Api - object-oriented interface
|
|
2608
1603
|
*/
|
|
2609
1604
|
class PartnerV2Api extends base_1.BaseAPI {
|
|
2610
|
-
/**
|
|
2611
|
-
* 저장을 마친 물품을 전송완료로 표시해 다음 조회에서 제외합니다. **되돌릴 수 없습니다.** 표시한 물품은 `GET /v2/products` 로 다시 내려오지 않으므로, 자기 시스템에 저장이 끝난 뒤에 호출하세요. **표시 범위는 기관 그룹으로 잠깁니다.** 다른 기관의 물품 코드를 섞어 보내면 그 건은 표시되지 않고 `acknowledged` 가 요청 수보다 작게 돌아옵니다. **필수 스코프:** `products:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2612
|
-
* @summary 물품 수신확인
|
|
2613
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2614
|
-
* @param {AcknowledgeProductsRequestDto} acknowledgeProductsRequestDto
|
|
2615
|
-
* @param {*} [options] Override http request option.
|
|
2616
|
-
* @throws {RequiredError}
|
|
2617
|
-
*/
|
|
2618
|
-
acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options) {
|
|
2619
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).acknowledgeProductReceipt(idempotencyKey, acknowledgeProductsRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2620
|
-
}
|
|
2621
1605
|
/**
|
|
2622
1606
|
* 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
|
|
2623
1607
|
* @summary 공고 취소
|
|
@@ -2631,7 +1615,7 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2631
1615
|
return (0, exports.PartnerV2ApiFp)(this.configuration).cancelBid(bidRef, idempotencyKey, cancelBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2632
1616
|
}
|
|
2633
1617
|
/**
|
|
2634
|
-
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
1618
|
+
* 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **V5 대응:** `acceptanceCompleteSend` — BidApi.xml `acceptanceComplete` 액션의 V6 후속. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답은 204가 아닌 200입니다 — 멱등성 인터셉터가 구체 바디를 캐시하고 SDK 가 타입드 응답을 필요로 하기 때문. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **V5-compat 안내:** 거래명세서·검수보고서에 찍힐 구매사 사업자정보·담당자·작성일자 override(11종)는 modern v2 표면에서 제거됐습니다. 필요 시 V5 충실 카운터파트 `POST /v1/bids/{bidRef}/acceptance`(`CompleteAcceptanceV1RequestDto`)를 사용하세요. **낙찰자 식별:** `winnerMemberId`(공급사 memberId). 내부 joinSeq 해소는 backend 가 처리합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2635
1619
|
* @summary 검수완료 전송
|
|
2636
1620
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2637
1621
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
@@ -2653,17 +1637,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2653
1637
|
completeInvoice(bidRef, idempotencyKey, options) {
|
|
2654
1638
|
return (0, exports.PartnerV2ApiFp)(this.configuration).completeInvoice(bidRef, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2655
1639
|
}
|
|
2656
|
-
/**
|
|
2657
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2658
|
-
* @summary 결제창 발행
|
|
2659
|
-
* @param {string} idempotencyKey 재시도 안전을 위한 멱등 키.
|
|
2660
|
-
* @param {CreateCardPaymentRequestDto} createCardPaymentRequestDto
|
|
2661
|
-
* @param {*} [options] Override http request option.
|
|
2662
|
-
* @throws {RequiredError}
|
|
2663
|
-
*/
|
|
2664
|
-
createCardPayment(idempotencyKey, createCardPaymentRequestDto, options) {
|
|
2665
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).createCardPayment(idempotencyKey, createCardPaymentRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2666
|
-
}
|
|
2667
1640
|
/**
|
|
2668
1641
|
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인(APPROVED)되어 바로 결제 가능합니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. 거기서 카드를 골라 결제합니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/card-payment-requests/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — 같은 기능을 v2 응답 규약으로 제공하는 `POST /v2/card-payments` 와 `GET /v2/suppliers/{memberId}/card-payable` 를 신규 연동에 권합니다. 이 경로도 계속 동작하며 중단 일정은 없습니다.
|
|
2669
1642
|
* @summary 결제창 발행 (구 경로)
|
|
@@ -2687,30 +1660,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2687
1660
|
createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
|
|
2688
1661
|
return (0, exports.PartnerV2ApiFp)(this.configuration).createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2689
1662
|
}
|
|
2690
|
-
/**
|
|
2691
|
-
* 수신 주소와 구독할 이벤트를 등록합니다. **호출 시점:** 연동 초기 1회. 수신 주소가 바뀌면 새로 만들지 말고 `PATCH` 로 고치세요 — 그래야 시크릿과 전송 이력이 유지됩니다. **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 응답의 `secret` 을 즉시 안전한 곳에 보관하세요. 잃어버렸다면 복구가 아니라 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` 으로 **재발급**해야 합니다. **거절되는 경우와 고치는 법:** - `400` — `url` 이 HTTPS 가 아니거나 형식이 잘못됨, `eventTypes` 가 비었거나 목록 밖 값 (`ping` 은 구독 불가). 값을 고쳐 재시도하세요. - `400` — `Idempotency-Key` 헤더 누락/형식 오류. UUID v4 를 실어 보내세요. - `403` — 토큰에 `webhooks:write` 스코프가 없음. 키 발급 설정을 넓혀야 합니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
2692
|
-
* @summary 웹훅 구독 등록
|
|
2693
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2694
|
-
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2695
|
-
* @param {*} [options] Override http request option.
|
|
2696
|
-
* @throws {RequiredError}
|
|
2697
|
-
*/
|
|
2698
|
-
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
2699
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2700
|
-
}
|
|
2701
|
-
/**
|
|
2702
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. **호출 시점:** 연동을 종료할 때. 잠시만 멈추려면 삭제하지 말고 `PATCH … {\"status\":\"DISABLED\"}` 를 쓰세요 — 시크릿과 이벤트 구성이 남아 그대로 되살릴 수 있습니다. **되돌릴 수 없습니다.** 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. **`If-Match` 가 필수입니다.** `GET` 으로 받은 `ETag` 를 실어 보내세요. - `428` — 헤더 누락. 조회 후 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다(누군가 수정했거나 발송기가 상태를 내렸습니다). 다시 조회해 정말 지울 대상이 맞는지 확인하고 최신 `ETag` 로 재시도하세요. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2703
|
-
* @summary 웹훅 구독 삭제
|
|
2704
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2705
|
-
* @param {string} ifMatch
|
|
2706
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
2707
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2708
|
-
* @param {*} [options] Override http request option.
|
|
2709
|
-
* @throws {RequiredError}
|
|
2710
|
-
*/
|
|
2711
|
-
deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options) {
|
|
2712
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).deleteWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2713
|
-
}
|
|
2714
1663
|
/**
|
|
2715
1664
|
* 무인증 — `fileKey` 자체가 capability 다(V5 `/download/{fileKey}` 와 같은 보안 모델). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
2716
1665
|
* @summary 파일 다운로드 — 안정 URL(302)
|
|
@@ -2722,8 +1671,8 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2722
1671
|
return (0, exports.PartnerV2ApiFp)(this.configuration).downloadFile(fileKey, options).then((request) => request(this.axios, this.basePath));
|
|
2723
1672
|
}
|
|
2724
1673
|
/**
|
|
2725
|
-
* 공고의
|
|
2726
|
-
* @summary 공고
|
|
1674
|
+
* 공고의 모든 정보를 한 번에 조회합니다 — 기본 정보·납품/대금 조건·담당자·품목, 응찰 참여자(투찰가·순위·낙찰 여부), 계약서류, 검수 진행 상태, 라이프사이클 하위 상태. 스코프 `bids:read`. ERP 는 이 엔드포인트를 폴링해 async 처리(정산 마감 등)의 성사를 관측합니다. **낙찰 여부:** 이 응답의 `status` 가 아니라 `participants[].isWinner` 로 관측합니다. AWARDED 라는 공고 상태는 존재하지 않으며(낙찰 직후 공고는 CONTRACT_IN_PROGRESS 로 전이) `status === \'AWARDED\'` 를 기다리면 영원히 도달하지 않습니다. **여러 건을 한 번에:** 공고마다 이 조회를 반복하지 말고 `GET /v2/bid-results` 배치 조회를 쓰세요. **계약서류:** `contractDocuments[].generationState` 는 **관측 전용**입니다. `DEAD_LETTER` 가 보이면 자동 재시도가 소진된 상태이며 API 로 되살릴 수 없습니다 — 운영에 문의하세요. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
1675
|
+
* @summary 공고 상세 조회
|
|
2727
1676
|
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2728
1677
|
* @param {*} [options] Override http request option.
|
|
2729
1678
|
* @throws {RequiredError}
|
|
@@ -2731,16 +1680,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2731
1680
|
getBid(bidRef, options) {
|
|
2732
1681
|
return (0, exports.PartnerV2ApiFp)(this.configuration).getBid(bidRef, options).then((request) => request(this.axios, this.basePath));
|
|
2733
1682
|
}
|
|
2734
|
-
/**
|
|
2735
|
-
* 공고의 응찰 참여 업체·순위·낙찰 여부를 조회한다. scope bids:read.
|
|
2736
|
-
* @summary 공고 결과 조회
|
|
2737
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2738
|
-
* @param {*} [options] Override http request option.
|
|
2739
|
-
* @throws {RequiredError}
|
|
2740
|
-
*/
|
|
2741
|
-
getBidResults(bidRef, options) {
|
|
2742
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).getBidResults(bidRef, options).then((request) => request(this.axios, this.basePath));
|
|
2743
|
-
}
|
|
2744
1683
|
/**
|
|
2745
1684
|
* 낙찰 공급사의 사업자·계좌·공급가액/부가세·응찰 품목내역을 조회합니다. 대금 지급에 필요한 정보입니다. 가시성 마스킹과는 직교한 정산 데이터이며 읽기 전용입니다. **필수 스코프:** `invoices:read` — 종전에는 `bids:read` 를 요구했습니다. 대금·계좌가 실리는 응답이라 공고 조회 권한과 분리했습니다. 이 엔드포인트를 쓰시던 키에는 `invoices:read` 를 추가로 부여받으셔야 합니다.
|
|
2746
1685
|
* @summary 정산 정보 조회
|
|
@@ -2793,26 +1732,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2793
1732
|
getSupplierCardPayable(memberId, options) {
|
|
2794
1733
|
return (0, exports.PartnerV2ApiFp)(this.configuration).getSupplierCardPayable(memberId, options).then((request) => request(this.axios, this.basePath));
|
|
2795
1734
|
}
|
|
2796
|
-
/**
|
|
2797
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write` 를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
2798
|
-
* @summary 공급사 카드결제 가능 여부
|
|
2799
|
-
* @param {string} memberId 계약업체 회원 ID
|
|
2800
|
-
* @param {*} [options] Override http request option.
|
|
2801
|
-
* @throws {RequiredError}
|
|
2802
|
-
*/
|
|
2803
|
-
getSupplierCardPayableV2(memberId, options) {
|
|
2804
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).getSupplierCardPayableV2(memberId, options).then((request) => request(this.axios, this.basePath));
|
|
2805
|
-
}
|
|
2806
|
-
/**
|
|
2807
|
-
* 구독 1건의 현재 상태를 조회합니다. 서명 시크릿은 실리지 않습니다. **수정·삭제 전에 먼저 호출하세요.** 응답 헤더 `ETag` 를 `If-Match` 에 그대로 실어야 `PATCH`/`DELETE` 가 통과합니다. **`404`:** 없는 구독이거나 다른 파트너 키의 구독입니다 — `endpointId` 를 확인하세요. **필수 스코프:** `webhooks:read`
|
|
2808
|
-
* @summary 웹훅 구독 단건 조회
|
|
2809
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2810
|
-
* @param {*} [options] Override http request option.
|
|
2811
|
-
* @throws {RequiredError}
|
|
2812
|
-
*/
|
|
2813
|
-
getWebhookEndpoint(endpointId, options) {
|
|
2814
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).getWebhookEndpoint(endpointId, options).then((request) => request(this.axios, this.basePath));
|
|
2815
|
-
}
|
|
2816
1735
|
/**
|
|
2817
1736
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
2818
1737
|
* @summary Partner API 헬스체크
|
|
@@ -2823,7 +1742,7 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2823
1742
|
return (0, exports.PartnerV2ApiFp)(this.configuration).healthControllerCheck(options).then((request) => request(this.axios, this.basePath));
|
|
2824
1743
|
}
|
|
2825
1744
|
/**
|
|
2826
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요.
|
|
1745
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. **이 엔드포인트를 폴링에 쓰세요.** 공고 하나씩 조회하는 대신 최대 100건을 한 왕복으로 받습니다. 응답에는 `ETag` 가 실리므로, 다음 요청에 `If-None-Match` 로 되보내면 결과가 그대로일 때 `304` 를 본문 없이 받습니다 — 마감을 기다리는 동안의 전송량이 사라집니다. **식별자 전달:** `?bidIds=A,B,C`(쉼표) 또는 `?bidIds=A&bidIds=B`(반복) 둘 다 됩니다. **없는 공고는 응답에서 빠집니다.** 존재하지 않거나 대행 범위 밖인 식별자는 오류가 아니라 누락으로 처리됩니다 — 요청한 건수와 받은 건수가 다를 수 있으니 `bidId` 로 대조하세요. **단건 조회:** 공고 하나만 볼 때도 `bidIds` 에 하나만 넣거나 `GET /v2/bids/{bidRef}` 상세 조회를 쓰세요. 종전의 `GET /v2/bids/{bidRef}/result` 는 상세 응답의 부분집합이라 폐지됐습니다.
|
|
2827
1746
|
* @summary 공고 결과 배치 조회
|
|
2828
1747
|
* @param {string} bidIds 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidIds` 를 반복해 전달합니다. 최대 100건.
|
|
2829
1748
|
* @param {*} [options] Override http request option.
|
|
@@ -2857,37 +1776,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2857
1776
|
listExternalContractDocuments(buyerId, bidType, options) {
|
|
2858
1777
|
return (0, exports.PartnerV2ApiFp)(this.configuration).listExternalContractDocuments(buyerId, bidType, options).then((request) => request(this.axios, this.basePath));
|
|
2859
1778
|
}
|
|
2860
|
-
/**
|
|
2861
|
-
* 기관에 공유된 물품 중 **아직 전송되지 않은 것**을 조회합니다. **증분 피드입니다.** 가져간 물품을 `POST /v2/products/receipts` 로 수신확인하면 다음 조회 결과에서 빠집니다. 수신확인을 하지 않으면 같은 물품이 계속 내려옵니다. **권장 흐름:** 조회 → 자기 시스템에 저장 → 저장에 성공한 물품 코드만 수신확인. 저장 전에 수신확인하면 그 물품은 다시 받을 수 없습니다. **조회 범위:** 요청 키가 대행하는 기관 그룹입니다. 기관 그룹이 설정되지 않은 키는 403 입니다. **필수 스코프:** `products:read`
|
|
2862
|
-
* @summary 물품 카탈로그 조회
|
|
2863
|
-
* @param {*} [options] Override http request option.
|
|
2864
|
-
* @throws {RequiredError}
|
|
2865
|
-
*/
|
|
2866
|
-
listProducts(options) {
|
|
2867
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).listProducts(options).then((request) => request(this.axios, this.basePath));
|
|
2868
|
-
}
|
|
2869
|
-
/**
|
|
2870
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문·수신측 응답 상태· 다음 재시도 예정 시각이 함께 실립니다. **호출 시점:** - 수신측 장애로 놓친 이벤트를 메울 때. 이 엔드포인트가 웹훅의 **폴링 대체 경로**입니다 — `status=EXHAUSTED` 로 걸러 다시 처리하면 됩니다. - \"이벤트가 안 온다\" 를 진단할 때. 발송 시도 자체가 없는지(구독·이벤트 타입 문제), 시도했지만 실패했는지(`responseStatus`·`responseBodyExcerpt`)를 여기서 가릅니다. **같은 이벤트가 여러 행으로 보입니다.** 재시도마다 한 행이며 `eventId` 가 같고 `attempt` 만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단하세요. **페이지네이션:** `nextCursor` 를 다음 요청의 `cursor` 로 전달합니다. null 이면 마지막 페이지입니다. **`400`:** `status` 가 허용 값 밖이거나 `limit` 이 범위를 벗어났습니다 — 값을 고쳐 재시도하세요. **필수 스코프:** `webhooks:read`
|
|
2871
|
-
* @summary 웹훅 전송 이력 조회
|
|
2872
|
-
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
2873
|
-
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
2874
|
-
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
2875
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor` 를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
2876
|
-
* @param {*} [options] Override http request option.
|
|
2877
|
-
* @throws {RequiredError}
|
|
2878
|
-
*/
|
|
2879
|
-
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
2880
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(this.axios, this.basePath));
|
|
2881
|
-
}
|
|
2882
|
-
/**
|
|
2883
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. **호출 시점:** 연동 상태를 점검할 때, 또는 발송이 멈춘 이유(`status`·`consecutiveFailures`)를 확인할 때. 서명 시크릿은 여기에 실리지 않습니다. **필수 스코프:** `webhooks:read` ### 서명 검증 (필수) 발송 요청마다 헤더 `X-CMarket-Signature` 가 실립니다. ``` X-CMarket-Signature: t=<unix초>,v1=<hex> ``` `v1` 은 `HMAC-SHA256(secret, \"${t}.${요청 본문 원문}\")` 의 소문자 hex 입니다. 1. 헤더를 `t` 와 `v1` 로 나눕니다. 2. `\"${t}.${본문}\"` 을 만듭니다. **본문은 파싱 전 원문 바이트**여야 합니다 — JSON 을 다시 직렬화하면 공백·키 순서가 달라져 서명이 맞지 않습니다. 3. 등록 시 받은 시크릿으로 HMAC-SHA256 을 계산해 `v1` 과 비교합니다. 비교는 **상수 시간** 비교 함수를 쓰세요(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `t` 가 현재 시각으로부터 **5분** 이상 지났으면 거절하세요(재전송 공격 방어). ### 중복 제거 `X-CMarket-Event-Id` 헤더가 이벤트 식별자입니다. **재시도에도 같은 값이 옵니다** — 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상 동작이며, 중복 제거는 수신측 책임입니다. ### 응답과 재시도 2xx 를 돌려주면 성공입니다. 그 외(또는 무응답)는 실패로 보고 최대 7회 재시도합니다 — 간격은 10초 → 1분 → 5분 → 30분 → 2시간 → 6시간 → 24시간 입니다. 처리 시간이 길면 먼저 2xx 를 돌려주고 비동기로 처리하세요. 연속 실패가 20회에 닿으면 구독이 자동으로 `DISABLED` 로 내려가고 발송이 멈춥니다. 수신측을 고친 뒤 `PATCH /v2/webhook-endpoints/{endpointId}` 에 `{\"status\":\"ACTIVE\"}` 로 되살리세요. ### 구독 가능한 이벤트 `bid.closed` · `bid.awarded` · `bid.failed` · `bid.canceled` · `bid.award_reverted` `ping` 은 연결 확인 전용이라 구독할 수 없습니다 — 테스트 발송 경로에서만 나갑니다. ### 놓친 이벤트 확인 `GET /v2/webhook-deliveries` 가 발송 시도 이력(본문·응답 상태·다음 재시도 시각)을 돌려줍니다. 수신측 장애 구간을 메울 때 이 엔드포인트를 폴링 대체 경로로 쓰세요.
|
|
2884
|
-
* @summary 웹훅 구독 목록 조회
|
|
2885
|
-
* @param {*} [options] Override http request option.
|
|
2886
|
-
* @throws {RequiredError}
|
|
2887
|
-
*/
|
|
2888
|
-
listWebhookEndpoints(options) {
|
|
2889
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).listWebhookEndpoints(options).then((request) => request(this.axios, this.basePath));
|
|
2890
|
-
}
|
|
2891
1779
|
/**
|
|
2892
1780
|
* 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2893
1781
|
* @summary 유찰 처리
|
|
@@ -2900,28 +1788,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2900
1788
|
markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options) {
|
|
2901
1789
|
return (0, exports.PartnerV2ApiFp)(this.configuration).markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2902
1790
|
}
|
|
2903
|
-
/**
|
|
2904
|
-
* 초안(DRAFT) 상태로 등록된 공고를 진행중(ONGOING)으로 게시합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 연간/지명계약 등으로 초안 상태로 등록된 공고를 명시적으로 게시할 때. 등록 응답의 `status` 로 게시 필요 여부를 판별합니다. **전제조건:** 초안(DRAFT) 상태이고 마감(bidEndAt)이 미래여야 합니다. **거부:** 초안이 아니거나 마감이 지난 공고 → 409. 마감이 지났으면 먼저 마감일을 연장해야 합니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403). **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2905
|
-
* @summary 공고 게시(초안 → 진행중)
|
|
2906
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2907
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 재전송 시 캐시 응답 반환(24시간).
|
|
2908
|
-
* @param {*} [options] Override http request option.
|
|
2909
|
-
* @throws {RequiredError}
|
|
2910
|
-
*/
|
|
2911
|
-
publishBid(bidRef, idempotencyKey, options) {
|
|
2912
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).publishBid(bidRef, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2913
|
-
}
|
|
2914
|
-
/**
|
|
2915
|
-
* 공고의 자동생성 계약서류(발주서·공고결과·표준계약서 등)를 생성/재생성합니다. **V6 대응:** `RegenerateAllContractPdfsCommand` — 웹 어드민의 \"계약 서류 일괄 재생성\"과 동일 경로. **호출 시점:** 낙찰(계약 시작) 후 계약서류가 필요하거나, 생성에 실패한 서류를 다시 만들 때. **부수효과:** - 생성 실패(DEAD_LETTER) 상태의 자동생성 PDF 가 재생성 큐에 등록됩니다(비동기). - 승낙사항(ACCEPTANCE) 계열은 운영자 승인 워크플로가 필요해 이 경로에서 제외됩니다. **응답:** 즉시 파일이 아니라 큐 등록 결과(`enqueuedCount`/`skippedCount`)를 반환합니다. 잠시 후 자동 생성됩니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
2916
|
-
* @summary 계약서류 생성(재생성)
|
|
2917
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2918
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2919
|
-
* @param {*} [options] Override http request option.
|
|
2920
|
-
* @throws {RequiredError}
|
|
2921
|
-
*/
|
|
2922
|
-
regenerateContractDocuments(bidRef, idempotencyKey, options) {
|
|
2923
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).regenerateContractDocuments(bidRef, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2924
|
-
}
|
|
2925
1791
|
/**
|
|
2926
1792
|
* 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
|
|
2927
1793
|
* @summary 낙찰 결과 전송
|
|
@@ -2935,7 +1801,7 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2935
1801
|
return (0, exports.PartnerV2ApiFp)(this.configuration).registerAward(bidRef, idempotencyKey, registerAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2936
1802
|
}
|
|
2937
1803
|
/**
|
|
2938
|
-
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수.
|
|
1804
|
+
* 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
|
|
2939
1805
|
* @summary 공고 등록
|
|
2940
1806
|
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환.
|
|
2941
1807
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
@@ -2968,28 +1834,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
2968
1834
|
revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options) {
|
|
2969
1835
|
return (0, exports.PartnerV2ApiFp)(this.configuration).revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2970
1836
|
}
|
|
2971
|
-
/**
|
|
2972
|
-
* 서명 시크릿을 새로 발급합니다. 응답의 `secretVersion` 이 1 올라갑니다. **호출 시점:** 시크릿을 분실했거나 유출이 의심될 때, 또는 주기적 교체 정책이 있을 때. **새 시크릿은 이 응답에서 한 번만 나갑니다.** 조회로 다시 받을 수 없습니다. **옛 시크릿은 즉시 무효입니다.** 유예 기간이 없으므로, 수신측이 새 값을 반영하기 전에 도착한 이벤트는 서명 검증에 실패합니다. 배포 순서를 이렇게 잡으세요 — ① 수신측이 옛 값과 새 값을 **둘 다** 받아들이도록 배포 → ② 이 엔드포인트 호출 → ③ 응답의 새 값을 반영 → ④ 옛 값 제거. 검증 실패로 non-2xx 를 돌려주면 실패로 집계되어 20회 연속 시 구독이 중지됩니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 같은 키로 재전송하면 **새로 발급하지 않고** 처음 발급한 값을 그대로 돌려줍니다(24시간) — 네트워크 오류로 응답을 놓쳤을 때 같은 키로 다시 부르세요.
|
|
2973
|
-
* @summary 웹훅 서명 시크릿 재발급
|
|
2974
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2975
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2976
|
-
* @param {*} [options] Override http request option.
|
|
2977
|
-
* @throws {RequiredError}
|
|
2978
|
-
*/
|
|
2979
|
-
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
2980
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2981
|
-
}
|
|
2982
|
-
/**
|
|
2983
|
-
* 등록된 주소로 `ping` 이벤트를 즉시 1회 보내고 그 결과를 돌려줍니다. **호출 시점:** 구독을 등록한 직후, 수신 주소를 바꾼 직후, 방화벽·인증서를 손본 뒤. **응답은 발송 결과이지 요청 실패가 아닙니다.** 수신측이 받지 못해도 HTTP `200` 에 `delivered: false` 로 옵니다 — `responseStatus`(수신측 상태)와 `error`(연결 거부·타임아웃· TLS 오류)를 보고 원인을 좁히세요. 이 발송에도 실제 이벤트와 **똑같은 서명 헤더**가 실리므로 검증 코드를 그대로 시험할 수 있습니다. `ping` 은 구독 목록에 넣을 수 없는 타입이니, 수신측이 모르는 `eventType` 을 만나면 버리도록 짜여 있다면 이 확인만 실패할 수 있습니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수. 다시 보내려면 **새 키**를 쓰세요 — 같은 키는 24시간 동안 직전 결과를 그대로 돌려줍니다(재발송하지 않습니다).
|
|
2984
|
-
* @summary 웹훅 연결 확인 발송
|
|
2985
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2986
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
2987
|
-
* @param {*} [options] Override http request option.
|
|
2988
|
-
* @throws {RequiredError}
|
|
2989
|
-
*/
|
|
2990
|
-
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
2991
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2992
|
-
}
|
|
2993
1837
|
/**
|
|
2994
1838
|
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEdit=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
|
|
2995
1839
|
* @summary 공고 수정
|
|
@@ -3004,20 +1848,6 @@ class PartnerV2Api extends base_1.BaseAPI {
|
|
|
3004
1848
|
updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
|
|
3005
1849
|
return (0, exports.PartnerV2ApiFp)(this.configuration).updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
3006
1850
|
}
|
|
3007
|
-
/**
|
|
3008
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. **호출 시점:** 수신 주소가 바뀌었을 때, 구독 이벤트를 늘리거나 줄일 때, 연속 실패로 자동 중지된 구독을 고친 뒤 되살릴 때(`{\"status\":\"ACTIVE\"}`). **`eventTypes` 는 치환입니다** — 보낸 목록이 곧 새 구독 목록입니다. 하나를 더하려면 기존 목록에 더한 **전체**를 보내세요. **`If-Match` 가 필수입니다.** 먼저 `GET /v2/webhook-endpoints/{endpointId}` 로 현재 `ETag` 를 받아 그대로 실어 보내세요. 이 헤더가 없으면 두 요청이 앞서거니 뒤서거니 하며 먼저 한 수정을 조용히 덮어씁니다. - `428` — 헤더를 빼먹었습니다. 조회 후 `ETag` 를 실어 재시도하세요. - `412` — 그 사이 구독이 바뀌었습니다. 다시 조회해 최신 `ETag` 로 재시도하세요. 아무것도 수정되지 않았습니다. **시크릿은 이 경로로 바뀌지 않습니다** — 재발급은 `rotate-secret` 입니다. **필수 스코프:** `webhooks:write` **멱등성:** `Idempotency-Key` 헤더 필수.
|
|
3009
|
-
* @summary 웹훅 구독 수정
|
|
3010
|
-
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
3011
|
-
* @param {string} ifMatch
|
|
3012
|
-
* @param {string} ifMatch2 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412 로 거절되며 아무것도 변경되지 않습니다.
|
|
3013
|
-
* @param {string} idempotencyKey 멱등성 키(1~255자, [A-Za-z0-9_-]). 동일 키 + 동일 body 재전송 시 캐시 응답 반환(24시간). UUID v4 권장.
|
|
3014
|
-
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
3015
|
-
* @param {*} [options] Override http request option.
|
|
3016
|
-
* @throws {RequiredError}
|
|
3017
|
-
*/
|
|
3018
|
-
updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
3019
|
-
return (0, exports.PartnerV2ApiFp)(this.configuration).updateWebhookEndpoint(endpointId, ifMatch, ifMatch2, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
3020
|
-
}
|
|
3021
1851
|
/**
|
|
3022
1852
|
* 스코프 `files:write` + `Idempotency-Key` 헤더 필수. base64 또는 url 중 정확히 하나를 제출한다.
|
|
3023
1853
|
* @summary 공고 첨부파일 업로드(base64 또는 url) → fileKey
|