@cmarket/partner-sdk 39.0.0 → 40.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/api/embed-api.ts +10 -10
- package/api/oauth-api.ts +18 -18
- package/api/partner-api-api.ts +334 -334
- package/api/products-api.ts +22 -22
- package/api/webhooks-api.ts +78 -78
- package/api/well-known-api.ts +10 -10
- package/api.ts +2 -2
- package/base.ts +2 -2
- package/common.ts +2 -2
- package/configuration.ts +2 -2
- package/dist/api/embed-api.d.ts +10 -10
- package/dist/api/embed-api.js +10 -10
- package/dist/api/oauth-api.d.ts +18 -18
- package/dist/api/oauth-api.js +18 -18
- package/dist/api/partner-api-api.d.ts +334 -334
- package/dist/api/partner-api-api.js +334 -334
- package/dist/api/products-api.d.ts +22 -22
- package/dist/api/products-api.js +22 -22
- package/dist/api/webhooks-api.d.ts +78 -78
- package/dist/api/webhooks-api.js +78 -78
- package/dist/api/well-known-api.d.ts +10 -10
- package/dist/api/well-known-api.js +10 -10
- 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/embed-api.d.ts +10 -10
- package/dist/esm/api/embed-api.js +10 -10
- package/dist/esm/api/oauth-api.d.ts +18 -18
- package/dist/esm/api/oauth-api.js +18 -18
- package/dist/esm/api/partner-api-api.d.ts +334 -334
- package/dist/esm/api/partner-api-api.js +334 -334
- package/dist/esm/api/products-api.d.ts +22 -22
- package/dist/esm/api/products-api.js +22 -22
- package/dist/esm/api/webhooks-api.d.ts +78 -78
- package/dist/esm/api/webhooks-api.js +78 -78
- package/dist/esm/api/well-known-api.d.ts +10 -10
- package/dist/esm/api/well-known-api.js +10 -10
- 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/acknowledge-product-receipt200-response.d.ts +2 -2
- package/dist/esm/models/acknowledge-product-receipt200-response.js +2 -2
- package/dist/esm/models/acknowledge-products-request-dto.d.ts +3 -3
- package/dist/esm/models/acknowledge-products-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 +4 -4
- 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 +6 -6
- 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-v2-response-dto.d.ts +3 -3
- package/dist/esm/models/award-registered-v2-response-dto.js +2 -2
- package/dist/esm/models/award-reverted-v2-response-dto.d.ts +3 -3
- 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-input-dto.d.ts +6 -6
- package/dist/esm/models/bid-attachment-input-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-cancelled-response-dto.d.ts +3 -3
- 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 +9 -9
- package/dist/esm/models/bid-contract-document-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 +5 -5
- 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-failed-v2-response-dto.d.ts +3 -3
- package/dist/esm/models/bid-failed-v2-response-dto.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-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-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 +3 -3
- package/dist/esm/models/bid-registered-response-dto.js +2 -2
- package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +3 -3
- package/dist/esm/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/esm/models/bid-result-participant-dto.d.ts +3 -3
- package/dist/esm/models/bid-result-participant-dto.js +2 -2
- package/dist/esm/models/bid-results-response-dto.d.ts +5 -5
- package/dist/esm/models/bid-results-response-dto.js +2 -2
- package/dist/esm/models/bid-settlement-line-item-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-line-item-dto.js +2 -2
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-participant-dto.js +2 -2
- package/dist/esm/models/bid-settlement-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-settlement-response-dto.js +2 -2
- package/dist/esm/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-statement-response-dto.js +2 -2
- package/dist/esm/models/bid-summary-dto.d.ts +3 -3
- package/dist/esm/models/bid-summary-dto.js +2 -2
- package/dist/esm/models/bid-type-public.d.ts +2 -2
- package/dist/esm/models/bid-type-public.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 +4 -4
- package/dist/esm/models/complete-acceptance-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/complete-upload-request-dto.d.ts +2 -2
- package/dist/esm/models/complete-upload-request-dto.js +2 -2
- package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +3 -3
- package/dist/esm/models/contract-restriction-confirm-input-dto.js +2 -2
- package/dist/esm/models/create-bid-request-dto.d.ts +5 -5
- package/dist/esm/models/create-bid-request-dto.js +2 -2
- package/dist/esm/models/create-card-payment-dto.d.ts +2 -2
- package/dist/esm/models/create-card-payment-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-card-payment200-response.d.ts +2 -2
- package/dist/esm/models/create-card-payment200-response.js +2 -2
- package/dist/esm/models/create-embed-launch201-response.d.ts +2 -2
- package/dist/esm/models/create-embed-launch201-response.js +2 -2
- package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +4 -4
- 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/create-file-upload-url201-response.d.ts +2 -2
- package/dist/esm/models/create-file-upload-url201-response.js +2 -2
- package/dist/esm/models/create-upload-url-request-dto.d.ts +2 -2
- package/dist/esm/models/create-upload-url-request-dto.js +2 -2
- package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +4 -4
- package/dist/esm/models/create-webhook-endpoint-request-dto.js +2 -2
- package/dist/esm/models/create-webhook-endpoint201-response.d.ts +2 -2
- package/dist/esm/models/create-webhook-endpoint201-response.js +2 -2
- package/dist/esm/models/delivery-date-type-public.d.ts +2 -2
- package/dist/esm/models/delivery-date-type-public.js +2 -2
- package/dist/esm/models/delivery-method-public.d.ts +2 -2
- package/dist/esm/models/delivery-method-public.js +2 -2
- package/dist/esm/models/embed-bid-prefill-dto.d.ts +83 -0
- package/dist/esm/models/embed-bid-prefill-dto.js +23 -0
- package/dist/esm/models/embed-bid-prefill-item-dto.d.ts +33 -0
- package/dist/esm/models/embed-bid-prefill-item-dto.js +14 -0
- package/dist/esm/models/embed-bid-prefill-manager-dto.d.ts +25 -0
- package/dist/esm/models/embed-bid-prefill-manager-dto.js +14 -0
- package/dist/esm/models/embed-launch-request-dto.d.ts +10 -9
- package/dist/esm/models/embed-launch-request-dto.js +2 -2
- package/dist/esm/models/embed-launch-response-dto.d.ts +4 -4
- package/dist/esm/models/embed-launch-response-dto.js +2 -2
- package/dist/esm/models/excellent-procurement-public.d.ts +2 -2
- package/dist/esm/models/excellent-procurement-public.js +2 -2
- package/dist/esm/models/external-contract-document-item-dto.d.ts +3 -3
- 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 +5 -5
- 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/generated-external-contract-document-dto.d.ts +4 -4
- 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/get-supplier-card-payable-v2200-response.d.ts +2 -2
- package/dist/esm/models/get-supplier-card-payable-v2200-response.js +2 -2
- package/dist/esm/models/get-webhook-endpoint200-response.d.ts +2 -2
- package/dist/esm/models/get-webhook-endpoint200-response.js +2 -2
- package/dist/esm/models/green-product-public.d.ts +2 -2
- package/dist/esm/models/green-product-public.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/index.d.ts +3 -0
- package/dist/esm/models/index.js +3 -0
- package/dist/esm/models/introspect-request-dto.d.ts +5 -5
- package/dist/esm/models/introspect-request-dto.js +2 -2
- package/dist/esm/models/introspection-response-dto.d.ts +4 -4
- 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/invoice-split-response-dto.d.ts +2 -2
- package/dist/esm/models/invoice-split-response-dto.js +2 -2
- package/dist/esm/models/legal-mandatory-public.d.ts +2 -2
- package/dist/esm/models/legal-mandatory-public.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-bids200-response-meta.d.ts +3 -3
- package/dist/esm/models/list-bids200-response-meta.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/list-products200-response.d.ts +2 -2
- package/dist/esm/models/list-products200-response.js +2 -2
- package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +3 -3
- package/dist/esm/models/list-webhook-deliveries-response-dto.js +2 -2
- package/dist/esm/models/list-webhook-deliveries200-response.d.ts +2 -2
- package/dist/esm/models/list-webhook-deliveries200-response.js +2 -2
- package/dist/esm/models/list-webhook-endpoints200-response.d.ts +2 -2
- package/dist/esm/models/list-webhook-endpoints200-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-failed201-response.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed201-response.js +2 -2
- package/dist/esm/models/negotiation-score-dto.d.ts +2 -2
- package/dist/esm/models/negotiation-score-dto.js +2 -2
- package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +3 -3
- package/dist/esm/models/negotiation-scored-v2-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/on-bid-award-reverted-request.d.ts +2 -2
- package/dist/esm/models/on-bid-award-reverted-request.js +2 -2
- package/dist/esm/models/on-bid-awarded-request.d.ts +2 -2
- package/dist/esm/models/on-bid-awarded-request.js +2 -2
- package/dist/esm/models/on-bid-canceled-request.d.ts +2 -2
- package/dist/esm/models/on-bid-canceled-request.js +2 -2
- package/dist/esm/models/on-bid-closed-request.d.ts +2 -2
- package/dist/esm/models/on-bid-closed-request.js +2 -2
- package/dist/esm/models/on-bid-failed-request.d.ts +2 -2
- package/dist/esm/models/on-bid-failed-request.js +2 -2
- package/dist/esm/models/on-ping-request.d.ts +2 -2
- package/dist/esm/models/on-ping-request.js +2 -2
- package/dist/esm/models/partner-webhook-delivery-status.d.ts +2 -2
- package/dist/esm/models/partner-webhook-delivery-status.js +2 -2
- package/dist/esm/models/partner-webhook-endpoint-status.d.ts +3 -3
- package/dist/esm/models/partner-webhook-endpoint-status.js +3 -3
- package/dist/esm/models/partner-webhook-event-type.d.ts +2 -2
- package/dist/esm/models/partner-webhook-event-type.js +2 -2
- package/dist/esm/models/payment-method-public.d.ts +2 -2
- package/dist/esm/models/payment-method-public.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/problem-details-dto.d.ts +3 -3
- package/dist/esm/models/problem-details-dto.js +2 -2
- package/dist/esm/models/product-receipt-response-dto.d.ts +2 -2
- package/dist/esm/models/product-receipt-response-dto.js +2 -2
- package/dist/esm/models/product-response-dto.d.ts +3 -3
- package/dist/esm/models/product-response-dto.js +2 -2
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +6 -6
- package/dist/esm/models/protected-resource-metadata-dto.js +2 -2
- package/dist/esm/models/register-award-request-dto.d.ts +5 -5
- package/dist/esm/models/register-award-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 +5 -5
- package/dist/esm/models/register-semo-contract-request-dto.js +2 -2
- package/dist/esm/models/request-invoice-split-request-dto.d.ts +4 -4
- package/dist/esm/models/request-invoice-split-request-dto.js +2 -2
- package/dist/esm/models/request-invoice-split200-response.d.ts +2 -2
- package/dist/esm/models/request-invoice-split200-response.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 +5 -5
- package/dist/esm/models/revoke-request-dto.js +2 -2
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +3 -3
- 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/send-webhook-test-event200-response.d.ts +2 -2
- package/dist/esm/models/send-webhook-test-event200-response.js +2 -2
- package/dist/esm/models/statement-document-dto.d.ts +3 -3
- package/dist/esm/models/statement-document-dto.js +2 -2
- package/dist/esm/models/statement-product-dto.d.ts +2 -2
- package/dist/esm/models/statement-product-dto.js +2 -2
- package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +2 -2
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +2 -2
- package/dist/esm/models/submit-negotiation-scores201-response.d.ts +2 -2
- package/dist/esm/models/submit-negotiation-scores201-response.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 +5 -5
- package/dist/esm/models/token-request-dto.js +2 -2
- package/dist/esm/models/token-response-dto.d.ts +3 -3
- package/dist/esm/models/token-response-dto.js +2 -2
- package/dist/esm/models/update-bid-request-dto.d.ts +5 -5
- 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/update-webhook-endpoint-request-dto.d.ts +3 -3
- package/dist/esm/models/update-webhook-endpoint-request-dto.js +2 -2
- package/dist/esm/models/upload-file-request-dto.d.ts +4 -4
- package/dist/esm/models/upload-file-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/esm/models/upload-url-created-response-dto.d.ts +5 -5
- package/dist/esm/models/upload-url-created-response-dto.js +2 -2
- package/dist/esm/models/webhook-bid-event-data.d.ts +3 -3
- package/dist/esm/models/webhook-bid-event-data.js +2 -2
- package/dist/esm/models/webhook-delivery-dto.d.ts +4 -4
- package/dist/esm/models/webhook-delivery-dto.js +2 -2
- package/dist/esm/models/webhook-endpoint-dto.d.ts +6 -6
- package/dist/esm/models/webhook-endpoint-dto.js +2 -2
- package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +6 -6
- package/dist/esm/models/webhook-endpoint-with-secret-dto.js +2 -2
- package/dist/esm/models/webhook-event-envelope.d.ts +3 -3
- package/dist/esm/models/webhook-event-envelope.js +2 -2
- package/dist/esm/models/webhook-ping-event-data.d.ts +2 -2
- package/dist/esm/models/webhook-ping-event-data.js +2 -2
- package/dist/esm/models/webhook-test-result-dto.d.ts +3 -3
- package/dist/esm/models/webhook-test-result-dto.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/models/acceptance-result-response-dto.d.ts +2 -2
- package/dist/models/acceptance-result-response-dto.js +2 -2
- package/dist/models/acknowledge-product-receipt200-response.d.ts +2 -2
- package/dist/models/acknowledge-product-receipt200-response.js +2 -2
- package/dist/models/acknowledge-products-request-dto.d.ts +3 -3
- package/dist/models/acknowledge-products-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 +4 -4
- 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 +6 -6
- 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-v2-response-dto.d.ts +3 -3
- package/dist/models/award-registered-v2-response-dto.js +2 -2
- package/dist/models/award-reverted-v2-response-dto.d.ts +3 -3
- 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-input-dto.d.ts +6 -6
- package/dist/models/bid-attachment-input-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-cancelled-response-dto.d.ts +3 -3
- 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 +9 -9
- package/dist/models/bid-contract-document-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 +5 -5
- 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-failed-v2-response-dto.d.ts +3 -3
- package/dist/models/bid-failed-v2-response-dto.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-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-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 +3 -3
- package/dist/models/bid-registered-response-dto.js +2 -2
- package/dist/models/bid-result-participant-attachment-dto.d.ts +3 -3
- package/dist/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/models/bid-result-participant-dto.d.ts +3 -3
- package/dist/models/bid-result-participant-dto.js +2 -2
- package/dist/models/bid-results-response-dto.d.ts +5 -5
- package/dist/models/bid-results-response-dto.js +2 -2
- package/dist/models/bid-settlement-line-item-dto.d.ts +2 -2
- package/dist/models/bid-settlement-line-item-dto.js +2 -2
- package/dist/models/bid-settlement-participant-dto.d.ts +2 -2
- package/dist/models/bid-settlement-participant-dto.js +2 -2
- package/dist/models/bid-settlement-response-dto.d.ts +2 -2
- package/dist/models/bid-settlement-response-dto.js +2 -2
- package/dist/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/models/bid-statement-response-dto.js +2 -2
- package/dist/models/bid-summary-dto.d.ts +3 -3
- package/dist/models/bid-summary-dto.js +2 -2
- package/dist/models/bid-type-public.d.ts +2 -2
- package/dist/models/bid-type-public.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 +4 -4
- package/dist/models/complete-acceptance-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/complete-upload-request-dto.d.ts +2 -2
- package/dist/models/complete-upload-request-dto.js +2 -2
- package/dist/models/contract-restriction-confirm-input-dto.d.ts +3 -3
- package/dist/models/contract-restriction-confirm-input-dto.js +2 -2
- package/dist/models/create-bid-request-dto.d.ts +5 -5
- package/dist/models/create-bid-request-dto.js +2 -2
- package/dist/models/create-card-payment-dto.d.ts +2 -2
- package/dist/models/create-card-payment-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-card-payment200-response.d.ts +2 -2
- package/dist/models/create-card-payment200-response.js +2 -2
- package/dist/models/create-embed-launch201-response.d.ts +2 -2
- package/dist/models/create-embed-launch201-response.js +2 -2
- package/dist/models/create-external-contract-documents-request-dto.d.ts +4 -4
- 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/create-file-upload-url201-response.d.ts +2 -2
- package/dist/models/create-file-upload-url201-response.js +2 -2
- package/dist/models/create-upload-url-request-dto.d.ts +2 -2
- package/dist/models/create-upload-url-request-dto.js +2 -2
- package/dist/models/create-webhook-endpoint-request-dto.d.ts +4 -4
- package/dist/models/create-webhook-endpoint-request-dto.js +2 -2
- package/dist/models/create-webhook-endpoint201-response.d.ts +2 -2
- package/dist/models/create-webhook-endpoint201-response.js +2 -2
- package/dist/models/delivery-date-type-public.d.ts +2 -2
- package/dist/models/delivery-date-type-public.js +2 -2
- package/dist/models/delivery-method-public.d.ts +2 -2
- package/dist/models/delivery-method-public.js +2 -2
- package/dist/models/embed-bid-prefill-dto.d.ts +83 -0
- package/dist/models/embed-bid-prefill-dto.js +26 -0
- package/dist/models/embed-bid-prefill-item-dto.d.ts +33 -0
- package/dist/models/embed-bid-prefill-item-dto.js +15 -0
- package/dist/models/embed-bid-prefill-manager-dto.d.ts +25 -0
- package/dist/models/embed-bid-prefill-manager-dto.js +15 -0
- package/dist/models/embed-launch-request-dto.d.ts +10 -9
- package/dist/models/embed-launch-request-dto.js +2 -2
- package/dist/models/embed-launch-response-dto.d.ts +4 -4
- package/dist/models/embed-launch-response-dto.js +2 -2
- package/dist/models/excellent-procurement-public.d.ts +2 -2
- package/dist/models/excellent-procurement-public.js +2 -2
- package/dist/models/external-contract-document-item-dto.d.ts +3 -3
- 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 +5 -5
- 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/generated-external-contract-document-dto.d.ts +4 -4
- 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/get-supplier-card-payable-v2200-response.d.ts +2 -2
- package/dist/models/get-supplier-card-payable-v2200-response.js +2 -2
- package/dist/models/get-webhook-endpoint200-response.d.ts +2 -2
- package/dist/models/get-webhook-endpoint200-response.js +2 -2
- package/dist/models/green-product-public.d.ts +2 -2
- package/dist/models/green-product-public.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/index.d.ts +3 -0
- package/dist/models/index.js +3 -0
- package/dist/models/introspect-request-dto.d.ts +5 -5
- package/dist/models/introspect-request-dto.js +2 -2
- package/dist/models/introspection-response-dto.d.ts +4 -4
- 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/invoice-split-response-dto.d.ts +2 -2
- package/dist/models/invoice-split-response-dto.js +2 -2
- package/dist/models/legal-mandatory-public.d.ts +2 -2
- package/dist/models/legal-mandatory-public.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-bids200-response-meta.d.ts +3 -3
- package/dist/models/list-bids200-response-meta.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/list-products200-response.d.ts +2 -2
- package/dist/models/list-products200-response.js +2 -2
- package/dist/models/list-webhook-deliveries-response-dto.d.ts +3 -3
- package/dist/models/list-webhook-deliveries-response-dto.js +2 -2
- package/dist/models/list-webhook-deliveries200-response.d.ts +2 -2
- package/dist/models/list-webhook-deliveries200-response.js +2 -2
- package/dist/models/list-webhook-endpoints200-response.d.ts +2 -2
- package/dist/models/list-webhook-endpoints200-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-failed201-response.d.ts +2 -2
- package/dist/models/mark-bid-failed201-response.js +2 -2
- package/dist/models/negotiation-score-dto.d.ts +2 -2
- package/dist/models/negotiation-score-dto.js +2 -2
- package/dist/models/negotiation-scored-v2-response-dto.d.ts +3 -3
- package/dist/models/negotiation-scored-v2-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/on-bid-award-reverted-request.d.ts +2 -2
- package/dist/models/on-bid-award-reverted-request.js +2 -2
- package/dist/models/on-bid-awarded-request.d.ts +2 -2
- package/dist/models/on-bid-awarded-request.js +2 -2
- package/dist/models/on-bid-canceled-request.d.ts +2 -2
- package/dist/models/on-bid-canceled-request.js +2 -2
- package/dist/models/on-bid-closed-request.d.ts +2 -2
- package/dist/models/on-bid-closed-request.js +2 -2
- package/dist/models/on-bid-failed-request.d.ts +2 -2
- package/dist/models/on-bid-failed-request.js +2 -2
- package/dist/models/on-ping-request.d.ts +2 -2
- package/dist/models/on-ping-request.js +2 -2
- package/dist/models/partner-webhook-delivery-status.d.ts +2 -2
- package/dist/models/partner-webhook-delivery-status.js +2 -2
- package/dist/models/partner-webhook-endpoint-status.d.ts +3 -3
- package/dist/models/partner-webhook-endpoint-status.js +3 -3
- package/dist/models/partner-webhook-event-type.d.ts +2 -2
- package/dist/models/partner-webhook-event-type.js +2 -2
- package/dist/models/payment-method-public.d.ts +2 -2
- package/dist/models/payment-method-public.js +2 -2
- package/dist/models/preconditions-dto.d.ts +2 -2
- package/dist/models/preconditions-dto.js +2 -2
- package/dist/models/problem-details-dto.d.ts +3 -3
- package/dist/models/problem-details-dto.js +2 -2
- package/dist/models/product-receipt-response-dto.d.ts +2 -2
- package/dist/models/product-receipt-response-dto.js +2 -2
- package/dist/models/product-response-dto.d.ts +3 -3
- package/dist/models/product-response-dto.js +2 -2
- package/dist/models/protected-resource-metadata-dto.d.ts +6 -6
- package/dist/models/protected-resource-metadata-dto.js +2 -2
- package/dist/models/register-award-request-dto.d.ts +5 -5
- package/dist/models/register-award-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 +5 -5
- package/dist/models/register-semo-contract-request-dto.js +2 -2
- package/dist/models/request-invoice-split-request-dto.d.ts +4 -4
- package/dist/models/request-invoice-split-request-dto.js +2 -2
- package/dist/models/request-invoice-split200-response.d.ts +2 -2
- package/dist/models/request-invoice-split200-response.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 +5 -5
- package/dist/models/revoke-request-dto.js +2 -2
- package/dist/models/semo-contract-registered-response-dto.d.ts +3 -3
- 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/send-webhook-test-event200-response.d.ts +2 -2
- package/dist/models/send-webhook-test-event200-response.js +2 -2
- package/dist/models/statement-document-dto.d.ts +3 -3
- package/dist/models/statement-document-dto.js +2 -2
- package/dist/models/statement-product-dto.d.ts +2 -2
- package/dist/models/statement-product-dto.js +2 -2
- package/dist/models/submit-negotiation-scores-request-dto.d.ts +2 -2
- package/dist/models/submit-negotiation-scores-request-dto.js +2 -2
- package/dist/models/submit-negotiation-scores201-response.d.ts +2 -2
- package/dist/models/submit-negotiation-scores201-response.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 +5 -5
- package/dist/models/token-request-dto.js +2 -2
- package/dist/models/token-response-dto.d.ts +3 -3
- package/dist/models/token-response-dto.js +2 -2
- package/dist/models/update-bid-request-dto.d.ts +5 -5
- 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/update-webhook-endpoint-request-dto.d.ts +3 -3
- package/dist/models/update-webhook-endpoint-request-dto.js +2 -2
- package/dist/models/upload-file-request-dto.d.ts +4 -4
- package/dist/models/upload-file-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/dist/models/upload-url-created-response-dto.d.ts +5 -5
- package/dist/models/upload-url-created-response-dto.js +2 -2
- package/dist/models/webhook-bid-event-data.d.ts +3 -3
- package/dist/models/webhook-bid-event-data.js +2 -2
- package/dist/models/webhook-delivery-dto.d.ts +4 -4
- package/dist/models/webhook-delivery-dto.js +2 -2
- package/dist/models/webhook-endpoint-dto.d.ts +6 -6
- package/dist/models/webhook-endpoint-dto.js +2 -2
- package/dist/models/webhook-endpoint-with-secret-dto.d.ts +6 -6
- package/dist/models/webhook-endpoint-with-secret-dto.js +2 -2
- package/dist/models/webhook-event-envelope.d.ts +3 -3
- package/dist/models/webhook-event-envelope.js +2 -2
- package/dist/models/webhook-ping-event-data.d.ts +2 -2
- package/dist/models/webhook-ping-event-data.js +2 -2
- package/dist/models/webhook-test-result-dto.d.ts +3 -3
- package/dist/models/webhook-test-result-dto.js +2 -2
- package/docs/AcknowledgeProductsRequestDto.md +1 -1
- package/docs/ApiCatalogEntryDto.md +2 -2
- package/docs/AuthorizationServerMetadataDto.md +4 -4
- package/docs/AwardRegisteredV2ResponseDto.md +1 -1
- package/docs/AwardRevertedV2ResponseDto.md +1 -1
- package/docs/BidAttachmentInputDto.md +4 -4
- package/docs/BidCancelledResponseDto.md +1 -1
- package/docs/BidContractDocumentDto.md +7 -7
- package/docs/BidDetailResponseDto.md +3 -3
- package/docs/BidFailedV2ResponseDto.md +1 -1
- package/docs/BidRegisteredResponseDto.md +1 -1
- package/docs/BidResultParticipantAttachmentDto.md +1 -1
- package/docs/BidResultParticipantDto.md +1 -1
- package/docs/BidResultsResponseDto.md +3 -3
- package/docs/BidSummaryDto.md +1 -1
- package/docs/CompleteAcceptanceRequestDto.md +2 -2
- package/docs/ContractRestrictionConfirmInputDto.md +1 -1
- package/docs/CreateBidRequestDto.md +3 -3
- package/docs/CreateExternalContractDocumentsRequestDto.md +2 -2
- package/docs/CreateWebhookEndpointRequestDto.md +2 -2
- package/docs/EmbedApi.md +11 -11
- package/docs/EmbedBidPrefillDto.md +46 -0
- package/docs/EmbedBidPrefillItemDto.md +28 -0
- package/docs/EmbedBidPrefillManagerDto.md +24 -0
- package/docs/EmbedLaunchRequestDto.md +6 -6
- package/docs/EmbedLaunchResponseDto.md +2 -2
- package/docs/ExternalContractDocumentItemDto.md +1 -1
- package/docs/ExternalContractSnapshotDto.md +3 -3
- package/docs/GeneratedExternalContractDocumentDto.md +2 -2
- package/docs/IntrospectRequestDto.md +3 -3
- package/docs/IntrospectionResponseDto.md +2 -2
- package/docs/ListBids200ResponseMeta.md +1 -1
- package/docs/ListWebhookDeliveriesResponseDto.md +1 -1
- package/docs/NegotiationScoredV2ResponseDto.md +1 -1
- package/docs/OauthApi.md +7 -7
- package/docs/PartnerApiApi.md +467 -467
- package/docs/PartnerWebhookEndpointStatus.md +1 -1
- package/docs/ProblemDetailsDto.md +1 -1
- package/docs/ProductResponseDto.md +1 -1
- package/docs/ProductsApi.md +28 -28
- package/docs/ProtectedResourceMetadataDto.md +4 -4
- package/docs/RegisterAwardRequestDto.md +3 -3
- package/docs/RegisterSemoContractRequestDto.md +3 -3
- package/docs/RequestInvoiceSplitRequestDto.md +2 -2
- package/docs/RevokeRequestDto.md +3 -3
- package/docs/SemoContractRegisteredResponseDto.md +1 -1
- package/docs/StatementDocumentDto.md +1 -1
- package/docs/TokenRequestDto.md +3 -3
- package/docs/TokenResponseDto.md +1 -1
- package/docs/UpdateBidRequestDto.md +3 -3
- package/docs/UpdateWebhookEndpointRequestDto.md +1 -1
- package/docs/UploadFileRequestDto.md +2 -2
- package/docs/UploadUrlCreatedResponseDto.md +3 -3
- package/docs/WebhookBidEventData.md +1 -1
- package/docs/WebhookDeliveryDto.md +2 -2
- package/docs/WebhookEndpointDto.md +4 -4
- package/docs/WebhookEndpointWithSecretDto.md +4 -4
- package/docs/WebhookEventEnvelope.md +1 -1
- package/docs/WebhookTestResultDto.md +1 -1
- package/docs/WebhooksApi.md +43 -43
- package/docs/WellKnownApi.md +5 -5
- package/index.ts +2 -2
- package/models/acceptance-result-response-dto.ts +2 -2
- package/models/acknowledge-product-receipt200-response.ts +2 -2
- package/models/acknowledge-products-request-dto.ts +3 -3
- package/models/api-catalog-dto.ts +2 -2
- package/models/api-catalog-entry-dto.ts +4 -4
- package/models/api-catalog-link-dto.ts +2 -2
- package/models/authorization-server-metadata-dto.ts +6 -6
- package/models/award-method-public.ts +2 -2
- package/models/award-registered-v2-response-dto.ts +3 -3
- package/models/award-reverted-v2-response-dto.ts +3 -3
- package/models/bid-acceptance-dto.ts +2 -2
- package/models/bid-attachment-input-dto.ts +6 -6
- package/models/bid-bond-dto.ts +2 -2
- package/models/bid-cancelled-response-dto.ts +3 -3
- package/models/bid-contact-dto.ts +2 -2
- package/models/bid-contacts-dto.ts +2 -2
- package/models/bid-contract-document-dto.ts +9 -9
- package/models/bid-delivery-terms-dto.ts +2 -2
- package/models/bid-detail-response-dto.ts +5 -5
- package/models/bid-document-dto.ts +2 -2
- package/models/bid-failed-v2-response-dto.ts +3 -3
- package/models/bid-item-dto.ts +2 -2
- package/models/bid-lifecycle-dto.ts +2 -2
- package/models/bid-manager-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 +3 -3
- package/models/bid-result-participant-attachment-dto.ts +3 -3
- package/models/bid-result-participant-dto.ts +3 -3
- package/models/bid-results-response-dto.ts +5 -5
- 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-summary-dto.ts +3 -3
- package/models/bid-type-public.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 +4 -4
- package/models/complete-acceptance200-response.ts +2 -2
- package/models/complete-invoice200-response.ts +2 -2
- package/models/complete-upload-request-dto.ts +2 -2
- package/models/contract-restriction-confirm-input-dto.ts +3 -3
- package/models/create-bid-request-dto.ts +5 -5
- package/models/create-card-payment-dto.ts +2 -2
- package/models/create-card-payment-request-dto.ts +2 -2
- package/models/create-card-payment200-response.ts +2 -2
- package/models/create-embed-launch201-response.ts +2 -2
- package/models/create-external-contract-documents-request-dto.ts +4 -4
- package/models/create-external-contract-documents-response-dto.ts +2 -2
- package/models/create-file-upload-url201-response.ts +2 -2
- package/models/create-upload-url-request-dto.ts +2 -2
- package/models/create-webhook-endpoint-request-dto.ts +4 -4
- package/models/create-webhook-endpoint201-response.ts +2 -2
- package/models/delivery-date-type-public.ts +2 -2
- package/models/delivery-method-public.ts +2 -2
- package/models/embed-bid-prefill-dto.ts +97 -0
- package/models/embed-bid-prefill-item-dto.ts +39 -0
- package/models/embed-bid-prefill-manager-dto.ts +31 -0
- package/models/embed-launch-request-dto.ts +12 -9
- package/models/embed-launch-response-dto.ts +4 -4
- package/models/excellent-procurement-public.ts +2 -2
- package/models/external-contract-document-item-dto.ts +3 -3
- 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 +5 -5
- 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/generated-external-contract-document-dto.ts +4 -4
- 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/get-supplier-card-payable-v2200-response.ts +2 -2
- package/models/get-webhook-endpoint200-response.ts +2 -2
- package/models/green-product-public.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/index.ts +3 -0
- package/models/introspect-request-dto.ts +5 -5
- package/models/introspection-response-dto.ts +4 -4
- package/models/invalid-param-dto.ts +2 -2
- package/models/invoice-completed-response-dto.ts +2 -2
- package/models/invoice-split-response-dto.ts +2 -2
- package/models/legal-mandatory-public.ts +2 -2
- package/models/list-bid-results200-response.ts +2 -2
- package/models/list-bids200-response-meta.ts +3 -3
- package/models/list-bids200-response.ts +2 -2
- package/models/list-products200-response.ts +2 -2
- package/models/list-webhook-deliveries-response-dto.ts +3 -3
- package/models/list-webhook-deliveries200-response.ts +2 -2
- package/models/list-webhook-endpoints200-response.ts +2 -2
- package/models/mark-bid-failed-request-dto.ts +2 -2
- package/models/mark-bid-failed201-response.ts +2 -2
- package/models/negotiation-score-dto.ts +2 -2
- package/models/negotiation-scored-v2-response-dto.ts +3 -3
- package/models/oauth-error-response-dto.ts +2 -2
- package/models/on-bid-award-reverted-request.ts +2 -2
- package/models/on-bid-awarded-request.ts +2 -2
- package/models/on-bid-canceled-request.ts +2 -2
- package/models/on-bid-closed-request.ts +2 -2
- package/models/on-bid-failed-request.ts +2 -2
- package/models/on-ping-request.ts +2 -2
- package/models/partner-webhook-delivery-status.ts +2 -2
- package/models/partner-webhook-endpoint-status.ts +3 -3
- package/models/partner-webhook-event-type.ts +2 -2
- package/models/payment-method-public.ts +2 -2
- package/models/preconditions-dto.ts +2 -2
- package/models/problem-details-dto.ts +3 -3
- package/models/product-receipt-response-dto.ts +2 -2
- package/models/product-response-dto.ts +3 -3
- package/models/protected-resource-metadata-dto.ts +6 -6
- package/models/register-award-request-dto.ts +5 -5
- package/models/register-award201-response.ts +2 -2
- package/models/register-bid201-response.ts +2 -2
- package/models/register-semo-contract-request-dto.ts +5 -5
- package/models/request-invoice-split-request-dto.ts +4 -4
- package/models/request-invoice-split200-response.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 +5 -5
- package/models/semo-contract-registered-response-dto.ts +3 -3
- package/models/semo-contract-taxinvoice-status-response-dto.ts +2 -2
- package/models/send-webhook-test-event200-response.ts +2 -2
- package/models/statement-document-dto.ts +3 -3
- package/models/statement-product-dto.ts +2 -2
- package/models/submit-negotiation-scores-request-dto.ts +2 -2
- package/models/submit-negotiation-scores201-response.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 +5 -5
- package/models/token-response-dto.ts +3 -3
- package/models/update-bid-request-dto.ts +5 -5
- package/models/update-bid200-response.ts +2 -2
- package/models/update-webhook-endpoint-request-dto.ts +3 -3
- package/models/upload-file-request-dto.ts +4 -4
- package/models/upload-file201-response.ts +2 -2
- package/models/upload-url-created-response-dto.ts +5 -5
- package/models/webhook-bid-event-data.ts +3 -3
- package/models/webhook-delivery-dto.ts +4 -4
- package/models/webhook-endpoint-dto.ts +6 -6
- package/models/webhook-endpoint-with-secret-dto.ts +6 -6
- package/models/webhook-event-envelope.ts +3 -3
- package/models/webhook-ping-event-data.ts +2 -2
- package/models/webhook-test-result-dto.ts +3 -3
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
|
-
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token
|
|
5
|
+
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 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 별로 적혀 있습니다. ### 멱등성 위반: 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`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document:
|
|
7
|
+
* The version of the OpenAPI document: 40.0.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -32,10 +32,10 @@ import { BASE_PATH, BaseAPI, operationServerMap } from '../base';
|
|
|
32
32
|
export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
33
33
|
return {
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* 진행중(`ONGOING`) 공고를 취소합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 취소 사유는 필수이고 공고 이력에 남습니다. - 진행중이 아니거나 이미 취소된 공고는 409, 다른 발주기관의 공고는 403입니다. - 응찰은 받았으나 낙찰자를 정하지 못한 종료는 취소가 아니라 유찰(`POST /v2/bids/{bidRef}/fail`)입니다.
|
|
36
36
|
* @summary 공고 취소
|
|
37
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
38
|
-
* @param {string} idempotencyKey
|
|
37
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
38
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
39
39
|
* @param {CancelBidRequestDto} cancelBidRequestDto
|
|
40
40
|
* @param {*} [options] Override http request option.
|
|
41
41
|
* @throws {RequiredError}
|
|
@@ -76,10 +76,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
76
76
|
};
|
|
77
77
|
}),
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* 납품 검수 완료를 기록합니다. 낙찰 처리된 공고에서 호출합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 현금 결제 공고는 세금계산서 발행요청이 등록되고 낙찰자에게 알림·문자가 나갑니다. 카드 결제 공고는 발행요청이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 협의로 계약금액이 줄었으면 `supplyAmount`와 `vat`를 함께 보냅니다. 현금 결제·낙찰자 1인·감액일 때만 허용하며 어긋나면 409입니다. 생략하면 낙찰금액에서 파생합니다. - 문서에 찍히는 구매사 사업자정보·담당자·작성일자와 낙찰자는 등록된 값에서 채워지며 요청으로 바꿀 수 없습니다.
|
|
80
80
|
* @summary 검수완료 전송
|
|
81
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
82
|
-
* @param {string} idempotencyKey
|
|
81
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
82
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
83
83
|
* @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
|
|
84
84
|
* @param {*} [options] Override http request option.
|
|
85
85
|
* @throws {RequiredError}
|
|
@@ -120,10 +120,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
120
120
|
};
|
|
121
121
|
}),
|
|
122
122
|
/**
|
|
123
|
-
* `uploadUrl
|
|
123
|
+
* `uploadUrl`로 올린 파일을 확정합니다. 이 시점부터 `fileKey`를 공고 첨부로 쓸 수 있습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. - 확정 전 `fileKey`를 첨부로 쓰면 공고 등록이 400입니다. - 신고한 `fileSize`가 아니라 실제 파일을 측정해 기록하며, 정책 상한을 넘으면 여기서 거절됩니다. - 같은 `fileKey`로 여러 번 호출해도 안전합니다.
|
|
124
124
|
* @summary 대용량 업로드 2/2 — 업로드 확정
|
|
125
125
|
* @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
126
|
-
* @param {string} idempotencyKey
|
|
126
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
127
127
|
* @param {CompleteUploadRequestDto} completeUploadRequestDto
|
|
128
128
|
* @param {*} [options] Override http request option.
|
|
129
129
|
* @throws {RequiredError}
|
|
@@ -164,10 +164,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
164
164
|
};
|
|
165
165
|
}),
|
|
166
166
|
/**
|
|
167
|
-
*
|
|
167
|
+
* 공급사에게 계산서를 수령한 뒤 계약을 완료처리합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 결제완료·계산서 발급 상태가 기록되고 발급일자는 현재 시각이 됩니다. - 이미 완료된 공고는 409, 다른 발주기관의 공고는 403입니다.
|
|
168
168
|
* @summary 정산 마감
|
|
169
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
170
|
-
* @param {string} idempotencyKey
|
|
169
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
170
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
171
171
|
* @param {*} [options] Override http request option.
|
|
172
172
|
* @throws {RequiredError}
|
|
173
173
|
*/
|
|
@@ -203,9 +203,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
203
203
|
};
|
|
204
204
|
}),
|
|
205
205
|
/**
|
|
206
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable
|
|
206
|
+
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
207
207
|
* @summary 결제창 발행
|
|
208
|
-
* @param {string} idempotencyKey
|
|
208
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
209
209
|
* @param {CreateCardPaymentDto} createCardPaymentDto
|
|
210
210
|
* @param {*} [options] Override http request option.
|
|
211
211
|
* @throws {RequiredError}
|
|
@@ -243,9 +243,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
243
243
|
};
|
|
244
244
|
}),
|
|
245
245
|
/**
|
|
246
|
-
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents
|
|
246
|
+
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
247
247
|
* @summary 계약서류 생성
|
|
248
|
-
* @param {string} idempotencyKey
|
|
248
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
249
249
|
* @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
|
|
250
250
|
* @param {*} [options] Override http request option.
|
|
251
251
|
* @throws {RequiredError}
|
|
@@ -283,9 +283,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
283
283
|
};
|
|
284
284
|
}),
|
|
285
285
|
/**
|
|
286
|
-
*
|
|
286
|
+
* 파일을 스토리지로 직접 올리기 위한 1회용 서명 URL을 발급합니다(100MB까지). 스코프 `files:write` · `Idempotency-Key` 헤더 필수. 1. 이 호출로 `fileKey`와 `uploadUrl`을 받습니다. 2. `uploadUrl`에 파일 바이트를 그대로 `PUT` 합니다. 응답의 `contentType`을 `Content-Type` 헤더에 싣고, `Authorization` 헤더는 붙이지 않습니다(주소 자체가 자격증명입니다). 3. `POST /v2/files/{fileKey}/complete`로 확정합니다. ```bash curl -X PUT \"$uploadUrl\" -H \"Content-Type: $contentType\" --upload-file 시방서.pdf ``` - 2단계는 요청이 스토리지로 가므로 이 명세에 오퍼레이션이 없고, 실패 본문도 problem+json이 아닙니다. 만료(400)·중복 업로드(409)면 1단계부터 다시 합니다. - `uploadUrl`은 1회용이며 `expiresIn`초 뒤 만료됩니다. 주소가 곧 자격증명이므로 로그에 남기지 않습니다. - 30MB 이하는 `POST /v2/files` 한 번으로 끝납니다.
|
|
287
287
|
* @summary 대용량 업로드 1/2 — 업로드 주소 발급
|
|
288
|
-
* @param {string} idempotencyKey
|
|
288
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
289
289
|
* @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
|
|
290
290
|
* @param {*} [options] Override http request option.
|
|
291
291
|
* @throws {RequiredError}
|
|
@@ -323,9 +323,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
323
323
|
};
|
|
324
324
|
}),
|
|
325
325
|
/**
|
|
326
|
-
* 수신 주소와 구독할 이벤트를 등록합니다.
|
|
326
|
+
* 수신 주소와 구독할 이벤트를 등록합니다. 연동 초기 1회 호출합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 잃어버렸다면 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret`으로 재발급합니다. - 수신 주소가 바뀌면 새로 만들지 말고 `PATCH`로 고치세요. 시크릿과 전송 이력이 유지됩니다. - `url`은 HTTPS만 허용하고 `eventTypes`는 아래 목록 안의 값이어야 합니다. 어기면 400입니다. ### 서명 검증 **[Standard Webhooks](https://www.standardwebhooks.com)** 규약입니다. 직접 짜지 말고 각 언어의 `standardwebhooks` 라이브러리에 등록 시 받은 시크릿(`whsec_…`)을 그대로 넘기세요. ```ts import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); // 실패하면 예외 ``` 라이브러리를 쓸 수 없다면 헤더 셋으로 직접 검증합니다. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. 시크릿에서 `whsec_` 접두어를 떼고 base64 디코드한 바이트가 HMAC 키입니다. 2. `{webhook-id}.{webhook-timestamp}.{본문}`을 연결합니다. 본문은 **파싱 전 원문 바이트**여야 합니다. JSON을 다시 직렬화하면 키 순서·공백이 달라져 서명이 어긋납니다. 3. HMAC-SHA256을 base64로 인코딩해 `webhook-signature`의 `v1,` 뒤 값과 상수 시간 함수로 비교합니다. 4. `webhook-timestamp`가 5분 이상 지났으면 거절합니다. `webhook-signature`에는 서명이 여러 개 실릴 수 있으므로(키 회전용) 하나라도 맞으면 통과로 처리하세요. ### 중복 제거 `webhook-id`가 이벤트 식별자입니다. 재시도에도 같은 값이 오므로 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상이며 중복 제거는 수신측 책임입니다. `webhook-event-type` 헤더에 본문 `type`과 같은 값이 실려, 본문을 파싱하기 전에 거를 수 있습니다. ### 재시도와 자동 중지 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
327
|
* @summary 웹훅 구독 등록
|
|
328
|
-
* @param {string} idempotencyKey
|
|
328
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
329
329
|
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
330
330
|
* @param {*} [options] Override http request option.
|
|
331
331
|
* @throws {RequiredError}
|
|
@@ -363,11 +363,11 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
363
363
|
};
|
|
364
364
|
}),
|
|
365
365
|
/**
|
|
366
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다.
|
|
366
|
+
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. 잠시만 멈추려면 `PATCH`로 `{\"status\":\"DISABLED\"}`를 보내세요. - `If-Match`가 필수입니다. 누락은 428, 그 사이 구독이 바뀌었으면 412입니다.
|
|
367
367
|
* @summary 웹훅 구독 삭제
|
|
368
368
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
369
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
370
|
-
* @param {string} idempotencyKey
|
|
369
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
370
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
371
371
|
* @param {*} [options] Override http request option.
|
|
372
372
|
* @throws {RequiredError}
|
|
373
373
|
*/
|
|
@@ -408,9 +408,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
408
408
|
};
|
|
409
409
|
}),
|
|
410
410
|
/**
|
|
411
|
-
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl
|
|
411
|
+
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl`이 이 URL을 가리킨다. 요청 시점에 서명하므로 URL을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}`가 파일 메타와 `downloadUrl`을 v2 응답 규약으로 돌려줍니다. 이 안정 URL은 파트너 응답의 `fileUrl`/`fullUrl`이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
412
412
|
* @summary 파일 다운로드
|
|
413
|
-
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex
|
|
413
|
+
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다.
|
|
414
414
|
* @param {*} [options] Override http request option.
|
|
415
415
|
* @throws {RequiredError}
|
|
416
416
|
*/
|
|
@@ -437,10 +437,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
437
437
|
};
|
|
438
438
|
}),
|
|
439
439
|
/**
|
|
440
|
-
*
|
|
440
|
+
* 공고 한 건의 전체 정보를 조회합니다 — 기본 정보, 납품·대금 조건, 담당자, 품목, 응찰 참여자, 계약서류, 검수 상태. 스코프 `bids:read`. - 낙찰 여부는 `status`가 아니라 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없어(낙찰 직후 `CONTRACT_IN_PROGRESS`) `status === \'AWARDED\'` 폴링은 끝나지 않습니다. - 계약서류는 `contractDocuments[]`에 실립니다. 따로 받는 엔드포인트는 없습니다. - 여러 건은 `GET /v2/bid-results`로 한 번에 받습니다. - 다른 발주기관의 공고는 403입니다.
|
|
441
441
|
* @summary 공고 상세 조회
|
|
442
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
443
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
442
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
443
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
444
444
|
* @param {*} [options] Override http request option.
|
|
445
445
|
* @throws {RequiredError}
|
|
446
446
|
*/
|
|
@@ -474,10 +474,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
474
474
|
};
|
|
475
475
|
}),
|
|
476
476
|
/**
|
|
477
|
-
* 낙찰 공급사의
|
|
477
|
+
* 낙찰 공급사의 사업자·계좌 정보와 공급가액·부가세, 응찰 품목내역을 조회합니다. 대금 지급에 필요한 값입니다. 스코프 `invoices:read`(종전 `bids:read`에서 변경). 다른 조회에서 참가자 정보가 가려지는 경우와 무관하게 이 응답은 항상 그대로 나갑니다.
|
|
478
478
|
* @summary 정산 정보 조회
|
|
479
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
480
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
479
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
480
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
481
481
|
* @param {*} [options] Override http request option.
|
|
482
482
|
* @throws {RequiredError}
|
|
483
483
|
*/
|
|
@@ -511,11 +511,11 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
511
511
|
};
|
|
512
512
|
}),
|
|
513
513
|
/**
|
|
514
|
-
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다.
|
|
514
|
+
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다. 스코프 `invoices:read`(종전 `contracts:read`에서 변경).
|
|
515
515
|
* @summary 거래명세서 조회
|
|
516
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
516
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
517
517
|
* @param {number} [paperCode] 거래명세서 서식 코드. 생략하면 해당 공고에 적용된 기본 서식으로 조회합니다. 기관에 서식이 여러 벌인 경우에만 지정하세요.
|
|
518
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
518
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
519
519
|
* @param {*} [options] Override http request option.
|
|
520
520
|
* @throws {RequiredError}
|
|
521
521
|
*/
|
|
@@ -552,10 +552,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
552
552
|
};
|
|
553
553
|
}),
|
|
554
554
|
/**
|
|
555
|
-
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey
|
|
555
|
+
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
|
|
556
556
|
* @summary 파일 정보 조회
|
|
557
557
|
* @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
558
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
558
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
559
559
|
* @param {*} [options] Override http request option.
|
|
560
560
|
* @throws {RequiredError}
|
|
561
561
|
*/
|
|
@@ -622,10 +622,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
622
622
|
};
|
|
623
623
|
}),
|
|
624
624
|
/**
|
|
625
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write
|
|
625
|
+
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write`를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
626
626
|
* @summary 공급사 카드결제 가능 여부
|
|
627
627
|
* @param {string} memberId 계약업체 회원 ID
|
|
628
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
628
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
629
629
|
* @param {*} [options] Override http request option.
|
|
630
630
|
* @throws {RequiredError}
|
|
631
631
|
*/
|
|
@@ -659,10 +659,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
659
659
|
};
|
|
660
660
|
}),
|
|
661
661
|
/**
|
|
662
|
-
* 구독 1건의 현재 상태를 조회합니다.
|
|
662
|
+
* 구독 1건의 현재 상태를 조회합니다. 스코프 `webhooks:read`. 수정·삭제 전에 먼저 호출해 응답 헤더의 `ETag`를 `If-Match`에 실어야 합니다. 없는 구독이거나 다른 파트너 키의 구독이면 404입니다. 서명 시크릿은 실리지 않습니다.
|
|
663
663
|
* @summary 웹훅 구독 단건 조회
|
|
664
664
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
665
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
665
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
666
666
|
* @param {*} [options] Override http request option.
|
|
667
667
|
* @throws {RequiredError}
|
|
668
668
|
*/
|
|
@@ -698,7 +698,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
698
698
|
/**
|
|
699
699
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
700
700
|
* @summary Partner API 헬스체크
|
|
701
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
701
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
702
702
|
* @param {*} [options] Override http request option.
|
|
703
703
|
* @throws {RequiredError}
|
|
704
704
|
*/
|
|
@@ -726,10 +726,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
726
726
|
};
|
|
727
727
|
}),
|
|
728
728
|
/**
|
|
729
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`.
|
|
729
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. - 결과 확인은 공고를 하나씩 조회하지 말고 이 엔드포인트로 최대 100건씩 받습니다. 응답의 `ETag`를 다음 요청의 `If-None-Match`로 보내면 변화가 없을 때 본문 없이 `304`로 끝납니다. - 식별자는 `?bidRefs=A,B,C`와 `?bidRefs=A&bidRefs=B` 둘 다 됩니다. - 없거나 대행 범위 밖인 식별자는 오류가 아니라 응답에서 빠집니다. 보낸 값이 공고번호면 `bidId`, 구매번호면 `purchaseNo`로 대조합니다.
|
|
730
730
|
* @summary 공고 결과 조회
|
|
731
|
-
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
732
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
731
|
+
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidRefs`를 반복해 전달합니다. 최대 100건입니다.
|
|
732
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
733
733
|
* @param {*} [options] Override http request option.
|
|
734
734
|
* @throws {RequiredError}
|
|
735
735
|
*/
|
|
@@ -765,14 +765,14 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
765
765
|
};
|
|
766
766
|
}),
|
|
767
767
|
/**
|
|
768
|
-
*
|
|
768
|
+
* API 키에 연결된 발주기관의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. - 발주기관은 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 페이지네이션: `limit`(1~100, 기본 100)과 `cursor`. 응답 `meta.nextCursor`를 다음 요청의 `cursor`로 보내고, `meta.hasMore`가 `false`면 마지막 페이지입니다. - 낙찰 여부는 공고 상태가 아니라 `GET /v2/bid-results`의 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없습니다.
|
|
769
769
|
* @summary 공고 목록 조회
|
|
770
770
|
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
771
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
772
|
-
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
771
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 보냅니다. 생략하면 첫 페이지이고, `nextCursor`가 `null`이면 마지막 페이지입니다.
|
|
772
|
+
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
773
773
|
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회합니다.
|
|
774
774
|
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
775
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
775
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
776
776
|
* @param {*} [options] Override http request option.
|
|
777
777
|
* @throws {RequiredError}
|
|
778
778
|
*/
|
|
@@ -818,7 +818,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
818
818
|
};
|
|
819
819
|
}),
|
|
820
820
|
/**
|
|
821
|
-
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market
|
|
821
|
+
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
822
822
|
* @summary 거래에 필요한 계약서류 목록 조회
|
|
823
823
|
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
824
824
|
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
@@ -859,13 +859,13 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
859
859
|
};
|
|
860
860
|
}),
|
|
861
861
|
/**
|
|
862
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸
|
|
862
|
+
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문, 수신측 응답 상태, 다음 재시도 시각이 함께 실립니다. 스코프 `webhooks:read`. - 수신측 장애로 놓친 이벤트는 `status=EXHAUSTED`로 걸러 다시 처리합니다. 웹훅의 폴링 대체 경로입니다. - 재시도마다 한 행이며 `eventId`가 같고 `attempt`만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단합니다. - 페이지네이션: 응답 `nextCursor`를 다음 요청의 `cursor`로 보냅니다. `null`이면 마지막 페이지입니다.
|
|
863
863
|
* @summary 웹훅 전송 이력 조회
|
|
864
864
|
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
865
865
|
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
866
866
|
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
867
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
868
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
867
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
868
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
869
869
|
* @param {*} [options] Override http request option.
|
|
870
870
|
* @throws {RequiredError}
|
|
871
871
|
*/
|
|
@@ -908,9 +908,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
908
908
|
};
|
|
909
909
|
}),
|
|
910
910
|
/**
|
|
911
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다.
|
|
911
|
+
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. 스코프 `webhooks:read`. 발송이 멈춘 이유는 `status`와 `consecutiveFailures`로 확인합니다. 서명 시크릿은 실리지 않습니다. 수신측 구현 방법은 `POST /v2/webhook-endpoints` 설명에 있습니다.
|
|
912
912
|
* @summary 웹훅 구독 목록 조회
|
|
913
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
913
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
914
914
|
* @param {*} [options] Override http request option.
|
|
915
915
|
* @throws {RequiredError}
|
|
916
916
|
*/
|
|
@@ -941,10 +941,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
941
941
|
};
|
|
942
942
|
}),
|
|
943
943
|
/**
|
|
944
|
-
* 공고를 유찰
|
|
944
|
+
* 공고를 유찰 처리합니다. 입찰 마감 상태에서 호출합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. 공고 상태가 유찰(`FAILED`)로 바뀌고 유찰사유가 기록됩니다. 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). | `failureReasonCode` | 의미 | | --- | --- | | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | | `OTHER` | 기타(`failureReasonDetail` 필수) |
|
|
945
945
|
* @summary 유찰 처리
|
|
946
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
947
|
-
* @param {string} idempotencyKey
|
|
946
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
947
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
948
948
|
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
949
949
|
* @param {*} [options] Override http request option.
|
|
950
950
|
* @throws {RequiredError}
|
|
@@ -985,10 +985,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
985
985
|
};
|
|
986
986
|
}),
|
|
987
987
|
/**
|
|
988
|
-
* 낙찰 결과를 등록합니다.
|
|
988
|
+
* 낙찰 결과를 등록합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감(입찰완료) 상태에서 호출합니다. - 낙찰 후 공고 상태는 계약진행(`CONTRACT_IN_PROGRESS`)입니다. `AWARDED` 공고 상태는 없으므로 낙찰 여부는 `participants[].isWinner`로 판단합니다. - 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고는 `POST /v2/bids/{bidRef}/negotiation-scores`로 평가를 마쳐야 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 같은 키와 같은 body로 재전송하면 24시간 동안 캐시된 응답을 돌려줍니다.
|
|
989
989
|
* @summary 낙찰 결과 전송
|
|
990
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
991
|
-
* @param {string} idempotencyKey
|
|
990
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
991
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
992
992
|
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
993
993
|
* @param {*} [options] Override http request option.
|
|
994
994
|
* @throws {RequiredError}
|
|
@@ -1029,9 +1029,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1029
1029
|
};
|
|
1030
1030
|
}),
|
|
1031
1031
|
/**
|
|
1032
|
-
*
|
|
1032
|
+
* 공고를 등록합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. 첨부는 두 방법 중 하나입니다. - `attachments` 원소에 `{ fileName, url }` 또는 `{ fileName, base64 }`를 그대로 넣습니다. - 여러 공고에서 재사용할 파일은 `POST /v2/files`로 먼저 올려 받은 `fileKey`를 넣습니다.
|
|
1033
1033
|
* @summary 공고 등록
|
|
1034
|
-
* @param {string} idempotencyKey
|
|
1034
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1035
1035
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
1036
1036
|
* @param {*} [options] Override http request option.
|
|
1037
1037
|
* @throws {RequiredError}
|
|
@@ -1071,7 +1071,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1071
1071
|
/**
|
|
1072
1072
|
* 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
1073
1073
|
* @summary 계약 발행대상 등록
|
|
1074
|
-
* @param {string} idempotencyKey
|
|
1074
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1075
1075
|
* @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
|
|
1076
1076
|
* @param {*} [options] Override http request option.
|
|
1077
1077
|
* @throws {RequiredError}
|
|
@@ -1109,10 +1109,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1109
1109
|
};
|
|
1110
1110
|
}),
|
|
1111
1111
|
/**
|
|
1112
|
-
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write
|
|
1112
|
+
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write` · `Idempotency-Key` 헤더 필수. - 청구만 접수합니다. 발행은 정산 파이프라인이 처리하며 진행 여부는 `GET /v2/bids/{bidRef}`의 `taxInvoiceRequested`로 확인합니다. - `supplyAmount`와 `vat`는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 **새 `Idempotency-Key`**로 한 번 더 청구합니다. 같은 키는 앞선 청구의 응답을 그대로 돌려줍니다. - `issueDate`는 선택이며 미래 일자는 400입니다.
|
|
1113
1113
|
* @summary 계산서 분할 발급 청구
|
|
1114
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1115
|
-
* @param {string} idempotencyKey
|
|
1114
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1115
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1116
1116
|
* @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
|
|
1117
1117
|
* @param {*} [options] Override http request option.
|
|
1118
1118
|
* @throws {RequiredError}
|
|
@@ -1155,8 +1155,8 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1155
1155
|
/**
|
|
1156
1156
|
* 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
1157
1157
|
* @summary 낙찰 되돌리기
|
|
1158
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1159
|
-
* @param {string} idempotencyKey
|
|
1158
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1159
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1160
1160
|
* @param {RevertAwardRequestDto} revertAwardRequestDto
|
|
1161
1161
|
* @param {*} [options] Override http request option.
|
|
1162
1162
|
* @throws {RequiredError}
|
|
@@ -1197,10 +1197,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1197
1197
|
};
|
|
1198
1198
|
}),
|
|
1199
1199
|
/**
|
|
1200
|
-
* 서명 시크릿을 새로 발급합니다.
|
|
1200
|
+
* 서명 시크릿을 새로 발급합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 새 시크릿은 이 응답에서 한 번만 나가고 `secretVersion`이 1 올라갑니다. - **옛 시크릿은 즉시 무효입니다.** 유예가 없으므로 순서를 지키세요 — ① 수신측이 옛 값과 새 값을 모두 받아들이도록 배포 → ② 이 호출 → ③ 새 값 반영 → ④ 옛 값 제거. - 같은 `Idempotency-Key`로 다시 부르면 새로 발급하지 않고 처음 발급한 값을 돌려줍니다(24시간).
|
|
1201
1201
|
* @summary 웹훅 서명 시크릿 재발급
|
|
1202
1202
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1203
|
-
* @param {string} idempotencyKey
|
|
1203
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1204
1204
|
* @param {*} [options] Override http request option.
|
|
1205
1205
|
* @throws {RequiredError}
|
|
1206
1206
|
*/
|
|
@@ -1236,10 +1236,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1236
1236
|
};
|
|
1237
1237
|
}),
|
|
1238
1238
|
/**
|
|
1239
|
-
* 등록된 주소로 `ping` 이벤트를
|
|
1239
|
+
* 등록된 주소로 `ping` 이벤트를 1회 보내고 결과를 돌려줍니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 수신측이 받지 못해도 응답은 200이고 `delivered: false`입니다. 원인은 `responseStatus`와 `error`로 좁힙니다. - 실제 이벤트와 같은 서명 헤더가 실리므로 검증 코드를 그대로 시험할 수 있습니다. - 다시 보내려면 새 `Idempotency-Key`를 쓰세요. 같은 키는 24시간 동안 직전 결과를 돌려줍니다.
|
|
1240
1240
|
* @summary 웹훅 연결 확인 발송
|
|
1241
1241
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1242
|
-
* @param {string} idempotencyKey
|
|
1242
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1243
1243
|
* @param {*} [options] Override http request option.
|
|
1244
1244
|
* @throws {RequiredError}
|
|
1245
1245
|
*/
|
|
@@ -1275,10 +1275,10 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1275
1275
|
};
|
|
1276
1276
|
}),
|
|
1277
1277
|
/**
|
|
1278
|
-
*
|
|
1278
|
+
* 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고의 응찰자별 점수를 입력합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전에 호출합니다. 협상 방식 공고는 이 평가를 마쳐야 낙찰에 진입합니다. - `complete=true`면 평가완료로 처리되어 낙찰을 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다).
|
|
1279
1279
|
* @summary 협상 점수평가
|
|
1280
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1281
|
-
* @param {string} idempotencyKey
|
|
1280
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1281
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1282
1282
|
* @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
|
|
1283
1283
|
* @param {*} [options] Override http request option.
|
|
1284
1284
|
* @throws {RequiredError}
|
|
@@ -1319,11 +1319,11 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1319
1319
|
};
|
|
1320
1320
|
}),
|
|
1321
1321
|
/**
|
|
1322
|
-
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write`
|
|
1322
|
+
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 진행중·초안 상태만 수정할 수 있습니다. 마감·취소된 공고는 거부됩니다. - 낙찰방법(`awardMethod`)은 수정할 수 없고, 참여자가 있으면 입찰방식·면허·예산·품목 일부가 잠깁니다. - 한 섹션을 수정하려면 그 섹션의 필수 필드를 함께 보냅니다. - `hideEditHistory=true`면 변경이력을 비공개로 남기고 노출 카운터를 올리지 않습니다.
|
|
1323
1323
|
* @summary 공고 수정
|
|
1324
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1325
|
-
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412
|
|
1326
|
-
* @param {string} idempotencyKey
|
|
1324
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1325
|
+
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412로 거절되며 아무것도 수정되지 않습니다.
|
|
1326
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1327
1327
|
* @param {UpdateBidRequestDto} updateBidRequestDto
|
|
1328
1328
|
* @param {*} [options] Override http request option.
|
|
1329
1329
|
* @throws {RequiredError}
|
|
@@ -1369,11 +1369,11 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1369
1369
|
};
|
|
1370
1370
|
}),
|
|
1371
1371
|
/**
|
|
1372
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다.
|
|
1372
|
+
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - `eventTypes`는 치환입니다. 하나를 더하려면 기존 목록을 포함한 전체를 보냅니다. - `If-Match`가 필수입니다. `GET`으로 받은 `ETag`를 그대로 실으세요. 누락은 428, 그 사이 구독이 바뀌었으면 412이며 아무것도 수정되지 않습니다. - 연속 실패로 자동 중지된 구독은 `{\"status\":\"ACTIVE\"}`로 되살립니다. - 시크릿은 이 경로로 바뀌지 않습니다. 재발급은 `rotate-secret`입니다.
|
|
1373
1373
|
* @summary 웹훅 구독 수정
|
|
1374
1374
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1375
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
1376
|
-
* @param {string} idempotencyKey
|
|
1375
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
1376
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1377
1377
|
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
1378
1378
|
* @param {*} [options] Override http request option.
|
|
1379
1379
|
* @throws {RequiredError}
|
|
@@ -1419,9 +1419,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1419
1419
|
};
|
|
1420
1420
|
}),
|
|
1421
1421
|
/**
|
|
1422
|
-
*
|
|
1422
|
+
* 공고 첨부파일을 올리고 `fileKey`를 받습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. `base64`와 `url` 중 하나만 보냅니다. 받은 `fileKey`는 공고 등록·수정의 `attachments`에 넣습니다. | 제출 방식 | 상한 | 호출 수 | | --- | --- | --- | | 이 호출 + `base64` | 23MB | 1 | | 이 호출 + `url` | 30MB | 1 | | `POST /v2/files/upload-url` 2단계 | 100MB | 2 + 스토리지 PUT | 한 공고에만 쓰는 파일이면 `POST /v2/bids`의 `attachments`에 `url`·`base64`를 직접 넣어 이 호출을 생략할 수 있습니다.
|
|
1423
1423
|
* @summary 공고 첨부파일 업로드 (기본)
|
|
1424
|
-
* @param {string} idempotencyKey
|
|
1424
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1425
1425
|
* @param {UploadFileRequestDto} uploadFileRequestDto
|
|
1426
1426
|
* @param {*} [options] Override http request option.
|
|
1427
1427
|
* @throws {RequiredError}
|
|
@@ -1467,10 +1467,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1467
1467
|
const localVarAxiosParamCreator = PartnerApiApiAxiosParamCreator(configuration);
|
|
1468
1468
|
return {
|
|
1469
1469
|
/**
|
|
1470
|
-
*
|
|
1470
|
+
* 진행중(`ONGOING`) 공고를 취소합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 취소 사유는 필수이고 공고 이력에 남습니다. - 진행중이 아니거나 이미 취소된 공고는 409, 다른 발주기관의 공고는 403입니다. - 응찰은 받았으나 낙찰자를 정하지 못한 종료는 취소가 아니라 유찰(`POST /v2/bids/{bidRef}/fail`)입니다.
|
|
1471
1471
|
* @summary 공고 취소
|
|
1472
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1473
|
-
* @param {string} idempotencyKey
|
|
1472
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1473
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1474
1474
|
* @param {CancelBidRequestDto} cancelBidRequestDto
|
|
1475
1475
|
* @param {*} [options] Override http request option.
|
|
1476
1476
|
* @throws {RequiredError}
|
|
@@ -1485,10 +1485,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1485
1485
|
});
|
|
1486
1486
|
},
|
|
1487
1487
|
/**
|
|
1488
|
-
*
|
|
1488
|
+
* 납품 검수 완료를 기록합니다. 낙찰 처리된 공고에서 호출합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 현금 결제 공고는 세금계산서 발행요청이 등록되고 낙찰자에게 알림·문자가 나갑니다. 카드 결제 공고는 발행요청이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 협의로 계약금액이 줄었으면 `supplyAmount`와 `vat`를 함께 보냅니다. 현금 결제·낙찰자 1인·감액일 때만 허용하며 어긋나면 409입니다. 생략하면 낙찰금액에서 파생합니다. - 문서에 찍히는 구매사 사업자정보·담당자·작성일자와 낙찰자는 등록된 값에서 채워지며 요청으로 바꿀 수 없습니다.
|
|
1489
1489
|
* @summary 검수완료 전송
|
|
1490
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1491
|
-
* @param {string} idempotencyKey
|
|
1490
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1491
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1492
1492
|
* @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
|
|
1493
1493
|
* @param {*} [options] Override http request option.
|
|
1494
1494
|
* @throws {RequiredError}
|
|
@@ -1503,10 +1503,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1503
1503
|
});
|
|
1504
1504
|
},
|
|
1505
1505
|
/**
|
|
1506
|
-
* `uploadUrl
|
|
1506
|
+
* `uploadUrl`로 올린 파일을 확정합니다. 이 시점부터 `fileKey`를 공고 첨부로 쓸 수 있습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. - 확정 전 `fileKey`를 첨부로 쓰면 공고 등록이 400입니다. - 신고한 `fileSize`가 아니라 실제 파일을 측정해 기록하며, 정책 상한을 넘으면 여기서 거절됩니다. - 같은 `fileKey`로 여러 번 호출해도 안전합니다.
|
|
1507
1507
|
* @summary 대용량 업로드 2/2 — 업로드 확정
|
|
1508
1508
|
* @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
1509
|
-
* @param {string} idempotencyKey
|
|
1509
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1510
1510
|
* @param {CompleteUploadRequestDto} completeUploadRequestDto
|
|
1511
1511
|
* @param {*} [options] Override http request option.
|
|
1512
1512
|
* @throws {RequiredError}
|
|
@@ -1521,10 +1521,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1521
1521
|
});
|
|
1522
1522
|
},
|
|
1523
1523
|
/**
|
|
1524
|
-
*
|
|
1524
|
+
* 공급사에게 계산서를 수령한 뒤 계약을 완료처리합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 결제완료·계산서 발급 상태가 기록되고 발급일자는 현재 시각이 됩니다. - 이미 완료된 공고는 409, 다른 발주기관의 공고는 403입니다.
|
|
1525
1525
|
* @summary 정산 마감
|
|
1526
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1527
|
-
* @param {string} idempotencyKey
|
|
1526
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1527
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1528
1528
|
* @param {*} [options] Override http request option.
|
|
1529
1529
|
* @throws {RequiredError}
|
|
1530
1530
|
*/
|
|
@@ -1538,9 +1538,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1538
1538
|
});
|
|
1539
1539
|
},
|
|
1540
1540
|
/**
|
|
1541
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable
|
|
1541
|
+
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
1542
1542
|
* @summary 결제창 발행
|
|
1543
|
-
* @param {string} idempotencyKey
|
|
1543
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1544
1544
|
* @param {CreateCardPaymentDto} createCardPaymentDto
|
|
1545
1545
|
* @param {*} [options] Override http request option.
|
|
1546
1546
|
* @throws {RequiredError}
|
|
@@ -1555,9 +1555,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1555
1555
|
});
|
|
1556
1556
|
},
|
|
1557
1557
|
/**
|
|
1558
|
-
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents
|
|
1558
|
+
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
1559
1559
|
* @summary 계약서류 생성
|
|
1560
|
-
* @param {string} idempotencyKey
|
|
1560
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1561
1561
|
* @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
|
|
1562
1562
|
* @param {*} [options] Override http request option.
|
|
1563
1563
|
* @throws {RequiredError}
|
|
@@ -1572,9 +1572,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1572
1572
|
});
|
|
1573
1573
|
},
|
|
1574
1574
|
/**
|
|
1575
|
-
*
|
|
1575
|
+
* 파일을 스토리지로 직접 올리기 위한 1회용 서명 URL을 발급합니다(100MB까지). 스코프 `files:write` · `Idempotency-Key` 헤더 필수. 1. 이 호출로 `fileKey`와 `uploadUrl`을 받습니다. 2. `uploadUrl`에 파일 바이트를 그대로 `PUT` 합니다. 응답의 `contentType`을 `Content-Type` 헤더에 싣고, `Authorization` 헤더는 붙이지 않습니다(주소 자체가 자격증명입니다). 3. `POST /v2/files/{fileKey}/complete`로 확정합니다. ```bash curl -X PUT \"$uploadUrl\" -H \"Content-Type: $contentType\" --upload-file 시방서.pdf ``` - 2단계는 요청이 스토리지로 가므로 이 명세에 오퍼레이션이 없고, 실패 본문도 problem+json이 아닙니다. 만료(400)·중복 업로드(409)면 1단계부터 다시 합니다. - `uploadUrl`은 1회용이며 `expiresIn`초 뒤 만료됩니다. 주소가 곧 자격증명이므로 로그에 남기지 않습니다. - 30MB 이하는 `POST /v2/files` 한 번으로 끝납니다.
|
|
1576
1576
|
* @summary 대용량 업로드 1/2 — 업로드 주소 발급
|
|
1577
|
-
* @param {string} idempotencyKey
|
|
1577
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1578
1578
|
* @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
|
|
1579
1579
|
* @param {*} [options] Override http request option.
|
|
1580
1580
|
* @throws {RequiredError}
|
|
@@ -1589,9 +1589,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1589
1589
|
});
|
|
1590
1590
|
},
|
|
1591
1591
|
/**
|
|
1592
|
-
* 수신 주소와 구독할 이벤트를 등록합니다.
|
|
1592
|
+
* 수신 주소와 구독할 이벤트를 등록합니다. 연동 초기 1회 호출합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 잃어버렸다면 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret`으로 재발급합니다. - 수신 주소가 바뀌면 새로 만들지 말고 `PATCH`로 고치세요. 시크릿과 전송 이력이 유지됩니다. - `url`은 HTTPS만 허용하고 `eventTypes`는 아래 목록 안의 값이어야 합니다. 어기면 400입니다. ### 서명 검증 **[Standard Webhooks](https://www.standardwebhooks.com)** 규약입니다. 직접 짜지 말고 각 언어의 `standardwebhooks` 라이브러리에 등록 시 받은 시크릿(`whsec_…`)을 그대로 넘기세요. ```ts import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); // 실패하면 예외 ``` 라이브러리를 쓸 수 없다면 헤더 셋으로 직접 검증합니다. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. 시크릿에서 `whsec_` 접두어를 떼고 base64 디코드한 바이트가 HMAC 키입니다. 2. `{webhook-id}.{webhook-timestamp}.{본문}`을 연결합니다. 본문은 **파싱 전 원문 바이트**여야 합니다. JSON을 다시 직렬화하면 키 순서·공백이 달라져 서명이 어긋납니다. 3. HMAC-SHA256을 base64로 인코딩해 `webhook-signature`의 `v1,` 뒤 값과 상수 시간 함수로 비교합니다. 4. `webhook-timestamp`가 5분 이상 지났으면 거절합니다. `webhook-signature`에는 서명이 여러 개 실릴 수 있으므로(키 회전용) 하나라도 맞으면 통과로 처리하세요. ### 중복 제거 `webhook-id`가 이벤트 식별자입니다. 재시도에도 같은 값이 오므로 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상이며 중복 제거는 수신측 책임입니다. `webhook-event-type` 헤더에 본문 `type`과 같은 값이 실려, 본문을 파싱하기 전에 거를 수 있습니다. ### 재시도와 자동 중지 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`로 조회해 메웁니다.
|
|
1593
1593
|
* @summary 웹훅 구독 등록
|
|
1594
|
-
* @param {string} idempotencyKey
|
|
1594
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1595
1595
|
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
1596
1596
|
* @param {*} [options] Override http request option.
|
|
1597
1597
|
* @throws {RequiredError}
|
|
@@ -1606,11 +1606,11 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1606
1606
|
});
|
|
1607
1607
|
},
|
|
1608
1608
|
/**
|
|
1609
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다.
|
|
1609
|
+
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. 잠시만 멈추려면 `PATCH`로 `{\"status\":\"DISABLED\"}`를 보내세요. - `If-Match`가 필수입니다. 누락은 428, 그 사이 구독이 바뀌었으면 412입니다.
|
|
1610
1610
|
* @summary 웹훅 구독 삭제
|
|
1611
1611
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1612
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
1613
|
-
* @param {string} idempotencyKey
|
|
1612
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
1613
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1614
1614
|
* @param {*} [options] Override http request option.
|
|
1615
1615
|
* @throws {RequiredError}
|
|
1616
1616
|
*/
|
|
@@ -1624,9 +1624,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1624
1624
|
});
|
|
1625
1625
|
},
|
|
1626
1626
|
/**
|
|
1627
|
-
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl
|
|
1627
|
+
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl`이 이 URL을 가리킨다. 요청 시점에 서명하므로 URL을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}`가 파일 메타와 `downloadUrl`을 v2 응답 규약으로 돌려줍니다. 이 안정 URL은 파트너 응답의 `fileUrl`/`fullUrl`이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
1628
1628
|
* @summary 파일 다운로드
|
|
1629
|
-
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex
|
|
1629
|
+
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다.
|
|
1630
1630
|
* @param {*} [options] Override http request option.
|
|
1631
1631
|
* @throws {RequiredError}
|
|
1632
1632
|
*/
|
|
@@ -1640,10 +1640,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1640
1640
|
});
|
|
1641
1641
|
},
|
|
1642
1642
|
/**
|
|
1643
|
-
*
|
|
1643
|
+
* 공고 한 건의 전체 정보를 조회합니다 — 기본 정보, 납품·대금 조건, 담당자, 품목, 응찰 참여자, 계약서류, 검수 상태. 스코프 `bids:read`. - 낙찰 여부는 `status`가 아니라 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없어(낙찰 직후 `CONTRACT_IN_PROGRESS`) `status === \'AWARDED\'` 폴링은 끝나지 않습니다. - 계약서류는 `contractDocuments[]`에 실립니다. 따로 받는 엔드포인트는 없습니다. - 여러 건은 `GET /v2/bid-results`로 한 번에 받습니다. - 다른 발주기관의 공고는 403입니다.
|
|
1644
1644
|
* @summary 공고 상세 조회
|
|
1645
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1646
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1645
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1646
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1647
1647
|
* @param {*} [options] Override http request option.
|
|
1648
1648
|
* @throws {RequiredError}
|
|
1649
1649
|
*/
|
|
@@ -1657,10 +1657,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1657
1657
|
});
|
|
1658
1658
|
},
|
|
1659
1659
|
/**
|
|
1660
|
-
* 낙찰 공급사의
|
|
1660
|
+
* 낙찰 공급사의 사업자·계좌 정보와 공급가액·부가세, 응찰 품목내역을 조회합니다. 대금 지급에 필요한 값입니다. 스코프 `invoices:read`(종전 `bids:read`에서 변경). 다른 조회에서 참가자 정보가 가려지는 경우와 무관하게 이 응답은 항상 그대로 나갑니다.
|
|
1661
1661
|
* @summary 정산 정보 조회
|
|
1662
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1663
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1662
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1663
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1664
1664
|
* @param {*} [options] Override http request option.
|
|
1665
1665
|
* @throws {RequiredError}
|
|
1666
1666
|
*/
|
|
@@ -1674,11 +1674,11 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1674
1674
|
});
|
|
1675
1675
|
},
|
|
1676
1676
|
/**
|
|
1677
|
-
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다.
|
|
1677
|
+
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다. 스코프 `invoices:read`(종전 `contracts:read`에서 변경).
|
|
1678
1678
|
* @summary 거래명세서 조회
|
|
1679
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1679
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1680
1680
|
* @param {number} [paperCode] 거래명세서 서식 코드. 생략하면 해당 공고에 적용된 기본 서식으로 조회합니다. 기관에 서식이 여러 벌인 경우에만 지정하세요.
|
|
1681
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1681
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1682
1682
|
* @param {*} [options] Override http request option.
|
|
1683
1683
|
* @throws {RequiredError}
|
|
1684
1684
|
*/
|
|
@@ -1692,10 +1692,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1692
1692
|
});
|
|
1693
1693
|
},
|
|
1694
1694
|
/**
|
|
1695
|
-
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey
|
|
1695
|
+
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
|
|
1696
1696
|
* @summary 파일 정보 조회
|
|
1697
1697
|
* @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
1698
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1698
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1699
1699
|
* @param {*} [options] Override http request option.
|
|
1700
1700
|
* @throws {RequiredError}
|
|
1701
1701
|
*/
|
|
@@ -1725,10 +1725,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1725
1725
|
});
|
|
1726
1726
|
},
|
|
1727
1727
|
/**
|
|
1728
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write
|
|
1728
|
+
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write`를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
1729
1729
|
* @summary 공급사 카드결제 가능 여부
|
|
1730
1730
|
* @param {string} memberId 계약업체 회원 ID
|
|
1731
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1731
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1732
1732
|
* @param {*} [options] Override http request option.
|
|
1733
1733
|
* @throws {RequiredError}
|
|
1734
1734
|
*/
|
|
@@ -1742,10 +1742,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1742
1742
|
});
|
|
1743
1743
|
},
|
|
1744
1744
|
/**
|
|
1745
|
-
* 구독 1건의 현재 상태를 조회합니다.
|
|
1745
|
+
* 구독 1건의 현재 상태를 조회합니다. 스코프 `webhooks:read`. 수정·삭제 전에 먼저 호출해 응답 헤더의 `ETag`를 `If-Match`에 실어야 합니다. 없는 구독이거나 다른 파트너 키의 구독이면 404입니다. 서명 시크릿은 실리지 않습니다.
|
|
1746
1746
|
* @summary 웹훅 구독 단건 조회
|
|
1747
1747
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1748
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1748
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1749
1749
|
* @param {*} [options] Override http request option.
|
|
1750
1750
|
* @throws {RequiredError}
|
|
1751
1751
|
*/
|
|
@@ -1761,7 +1761,7 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1761
1761
|
/**
|
|
1762
1762
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
1763
1763
|
* @summary Partner API 헬스체크
|
|
1764
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1764
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1765
1765
|
* @param {*} [options] Override http request option.
|
|
1766
1766
|
* @throws {RequiredError}
|
|
1767
1767
|
*/
|
|
@@ -1775,10 +1775,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1775
1775
|
});
|
|
1776
1776
|
},
|
|
1777
1777
|
/**
|
|
1778
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`.
|
|
1778
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. - 결과 확인은 공고를 하나씩 조회하지 말고 이 엔드포인트로 최대 100건씩 받습니다. 응답의 `ETag`를 다음 요청의 `If-None-Match`로 보내면 변화가 없을 때 본문 없이 `304`로 끝납니다. - 식별자는 `?bidRefs=A,B,C`와 `?bidRefs=A&bidRefs=B` 둘 다 됩니다. - 없거나 대행 범위 밖인 식별자는 오류가 아니라 응답에서 빠집니다. 보낸 값이 공고번호면 `bidId`, 구매번호면 `purchaseNo`로 대조합니다.
|
|
1779
1779
|
* @summary 공고 결과 조회
|
|
1780
|
-
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1781
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1780
|
+
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidRefs`를 반복해 전달합니다. 최대 100건입니다.
|
|
1781
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1782
1782
|
* @param {*} [options] Override http request option.
|
|
1783
1783
|
* @throws {RequiredError}
|
|
1784
1784
|
*/
|
|
@@ -1792,14 +1792,14 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1792
1792
|
});
|
|
1793
1793
|
},
|
|
1794
1794
|
/**
|
|
1795
|
-
*
|
|
1795
|
+
* API 키에 연결된 발주기관의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. - 발주기관은 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 페이지네이션: `limit`(1~100, 기본 100)과 `cursor`. 응답 `meta.nextCursor`를 다음 요청의 `cursor`로 보내고, `meta.hasMore`가 `false`면 마지막 페이지입니다. - 낙찰 여부는 공고 상태가 아니라 `GET /v2/bid-results`의 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없습니다.
|
|
1796
1796
|
* @summary 공고 목록 조회
|
|
1797
1797
|
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
1798
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
1799
|
-
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1798
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 보냅니다. 생략하면 첫 페이지이고, `nextCursor`가 `null`이면 마지막 페이지입니다.
|
|
1799
|
+
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
1800
1800
|
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회합니다.
|
|
1801
1801
|
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
1802
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1802
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1803
1803
|
* @param {*} [options] Override http request option.
|
|
1804
1804
|
* @throws {RequiredError}
|
|
1805
1805
|
*/
|
|
@@ -1813,7 +1813,7 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1813
1813
|
});
|
|
1814
1814
|
},
|
|
1815
1815
|
/**
|
|
1816
|
-
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market
|
|
1816
|
+
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
1817
1817
|
* @summary 거래에 필요한 계약서류 목록 조회
|
|
1818
1818
|
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
1819
1819
|
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
@@ -1830,13 +1830,13 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1830
1830
|
});
|
|
1831
1831
|
},
|
|
1832
1832
|
/**
|
|
1833
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸
|
|
1833
|
+
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문, 수신측 응답 상태, 다음 재시도 시각이 함께 실립니다. 스코프 `webhooks:read`. - 수신측 장애로 놓친 이벤트는 `status=EXHAUSTED`로 걸러 다시 처리합니다. 웹훅의 폴링 대체 경로입니다. - 재시도마다 한 행이며 `eventId`가 같고 `attempt`만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단합니다. - 페이지네이션: 응답 `nextCursor`를 다음 요청의 `cursor`로 보냅니다. `null`이면 마지막 페이지입니다.
|
|
1834
1834
|
* @summary 웹훅 전송 이력 조회
|
|
1835
1835
|
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
1836
1836
|
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
1837
1837
|
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
1838
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
1839
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1838
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
1839
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1840
1840
|
* @param {*} [options] Override http request option.
|
|
1841
1841
|
* @throws {RequiredError}
|
|
1842
1842
|
*/
|
|
@@ -1850,9 +1850,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1850
1850
|
});
|
|
1851
1851
|
},
|
|
1852
1852
|
/**
|
|
1853
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다.
|
|
1853
|
+
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. 스코프 `webhooks:read`. 발송이 멈춘 이유는 `status`와 `consecutiveFailures`로 확인합니다. 서명 시크릿은 실리지 않습니다. 수신측 구현 방법은 `POST /v2/webhook-endpoints` 설명에 있습니다.
|
|
1854
1854
|
* @summary 웹훅 구독 목록 조회
|
|
1855
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
1855
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
1856
1856
|
* @param {*} [options] Override http request option.
|
|
1857
1857
|
* @throws {RequiredError}
|
|
1858
1858
|
*/
|
|
@@ -1866,10 +1866,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1866
1866
|
});
|
|
1867
1867
|
},
|
|
1868
1868
|
/**
|
|
1869
|
-
* 공고를 유찰
|
|
1869
|
+
* 공고를 유찰 처리합니다. 입찰 마감 상태에서 호출합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. 공고 상태가 유찰(`FAILED`)로 바뀌고 유찰사유가 기록됩니다. 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). | `failureReasonCode` | 의미 | | --- | --- | | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | | `OTHER` | 기타(`failureReasonDetail` 필수) |
|
|
1870
1870
|
* @summary 유찰 처리
|
|
1871
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1872
|
-
* @param {string} idempotencyKey
|
|
1871
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1872
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1873
1873
|
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
1874
1874
|
* @param {*} [options] Override http request option.
|
|
1875
1875
|
* @throws {RequiredError}
|
|
@@ -1884,10 +1884,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1884
1884
|
});
|
|
1885
1885
|
},
|
|
1886
1886
|
/**
|
|
1887
|
-
* 낙찰 결과를 등록합니다.
|
|
1887
|
+
* 낙찰 결과를 등록합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감(입찰완료) 상태에서 호출합니다. - 낙찰 후 공고 상태는 계약진행(`CONTRACT_IN_PROGRESS`)입니다. `AWARDED` 공고 상태는 없으므로 낙찰 여부는 `participants[].isWinner`로 판단합니다. - 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고는 `POST /v2/bids/{bidRef}/negotiation-scores`로 평가를 마쳐야 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 같은 키와 같은 body로 재전송하면 24시간 동안 캐시된 응답을 돌려줍니다.
|
|
1888
1888
|
* @summary 낙찰 결과 전송
|
|
1889
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1890
|
-
* @param {string} idempotencyKey
|
|
1889
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1890
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1891
1891
|
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
1892
1892
|
* @param {*} [options] Override http request option.
|
|
1893
1893
|
* @throws {RequiredError}
|
|
@@ -1902,9 +1902,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1902
1902
|
});
|
|
1903
1903
|
},
|
|
1904
1904
|
/**
|
|
1905
|
-
*
|
|
1905
|
+
* 공고를 등록합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. 첨부는 두 방법 중 하나입니다. - `attachments` 원소에 `{ fileName, url }` 또는 `{ fileName, base64 }`를 그대로 넣습니다. - 여러 공고에서 재사용할 파일은 `POST /v2/files`로 먼저 올려 받은 `fileKey`를 넣습니다.
|
|
1906
1906
|
* @summary 공고 등록
|
|
1907
|
-
* @param {string} idempotencyKey
|
|
1907
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1908
1908
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
1909
1909
|
* @param {*} [options] Override http request option.
|
|
1910
1910
|
* @throws {RequiredError}
|
|
@@ -1921,7 +1921,7 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1921
1921
|
/**
|
|
1922
1922
|
* 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
1923
1923
|
* @summary 계약 발행대상 등록
|
|
1924
|
-
* @param {string} idempotencyKey
|
|
1924
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1925
1925
|
* @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
|
|
1926
1926
|
* @param {*} [options] Override http request option.
|
|
1927
1927
|
* @throws {RequiredError}
|
|
@@ -1936,10 +1936,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1936
1936
|
});
|
|
1937
1937
|
},
|
|
1938
1938
|
/**
|
|
1939
|
-
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write
|
|
1939
|
+
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write` · `Idempotency-Key` 헤더 필수. - 청구만 접수합니다. 발행은 정산 파이프라인이 처리하며 진행 여부는 `GET /v2/bids/{bidRef}`의 `taxInvoiceRequested`로 확인합니다. - `supplyAmount`와 `vat`는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 **새 `Idempotency-Key`**로 한 번 더 청구합니다. 같은 키는 앞선 청구의 응답을 그대로 돌려줍니다. - `issueDate`는 선택이며 미래 일자는 400입니다.
|
|
1940
1940
|
* @summary 계산서 분할 발급 청구
|
|
1941
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1942
|
-
* @param {string} idempotencyKey
|
|
1941
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1942
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1943
1943
|
* @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
|
|
1944
1944
|
* @param {*} [options] Override http request option.
|
|
1945
1945
|
* @throws {RequiredError}
|
|
@@ -1956,8 +1956,8 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1956
1956
|
/**
|
|
1957
1957
|
* 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
1958
1958
|
* @summary 낙찰 되돌리기
|
|
1959
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
1960
|
-
* @param {string} idempotencyKey
|
|
1959
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
1960
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1961
1961
|
* @param {RevertAwardRequestDto} revertAwardRequestDto
|
|
1962
1962
|
* @param {*} [options] Override http request option.
|
|
1963
1963
|
* @throws {RequiredError}
|
|
@@ -1972,10 +1972,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1972
1972
|
});
|
|
1973
1973
|
},
|
|
1974
1974
|
/**
|
|
1975
|
-
* 서명 시크릿을 새로 발급합니다.
|
|
1975
|
+
* 서명 시크릿을 새로 발급합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 새 시크릿은 이 응답에서 한 번만 나가고 `secretVersion`이 1 올라갑니다. - **옛 시크릿은 즉시 무효입니다.** 유예가 없으므로 순서를 지키세요 — ① 수신측이 옛 값과 새 값을 모두 받아들이도록 배포 → ② 이 호출 → ③ 새 값 반영 → ④ 옛 값 제거. - 같은 `Idempotency-Key`로 다시 부르면 새로 발급하지 않고 처음 발급한 값을 돌려줍니다(24시간).
|
|
1976
1976
|
* @summary 웹훅 서명 시크릿 재발급
|
|
1977
1977
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1978
|
-
* @param {string} idempotencyKey
|
|
1978
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1979
1979
|
* @param {*} [options] Override http request option.
|
|
1980
1980
|
* @throws {RequiredError}
|
|
1981
1981
|
*/
|
|
@@ -1989,10 +1989,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
1989
1989
|
});
|
|
1990
1990
|
},
|
|
1991
1991
|
/**
|
|
1992
|
-
* 등록된 주소로 `ping` 이벤트를
|
|
1992
|
+
* 등록된 주소로 `ping` 이벤트를 1회 보내고 결과를 돌려줍니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 수신측이 받지 못해도 응답은 200이고 `delivered: false`입니다. 원인은 `responseStatus`와 `error`로 좁힙니다. - 실제 이벤트와 같은 서명 헤더가 실리므로 검증 코드를 그대로 시험할 수 있습니다. - 다시 보내려면 새 `Idempotency-Key`를 쓰세요. 같은 키는 24시간 동안 직전 결과를 돌려줍니다.
|
|
1993
1993
|
* @summary 웹훅 연결 확인 발송
|
|
1994
1994
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
1995
|
-
* @param {string} idempotencyKey
|
|
1995
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
1996
1996
|
* @param {*} [options] Override http request option.
|
|
1997
1997
|
* @throws {RequiredError}
|
|
1998
1998
|
*/
|
|
@@ -2006,10 +2006,10 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
2006
2006
|
});
|
|
2007
2007
|
},
|
|
2008
2008
|
/**
|
|
2009
|
-
*
|
|
2009
|
+
* 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고의 응찰자별 점수를 입력합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전에 호출합니다. 협상 방식 공고는 이 평가를 마쳐야 낙찰에 진입합니다. - `complete=true`면 평가완료로 처리되어 낙찰을 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다).
|
|
2010
2010
|
* @summary 협상 점수평가
|
|
2011
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2012
|
-
* @param {string} idempotencyKey
|
|
2011
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2012
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2013
2013
|
* @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
|
|
2014
2014
|
* @param {*} [options] Override http request option.
|
|
2015
2015
|
* @throws {RequiredError}
|
|
@@ -2024,11 +2024,11 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
2024
2024
|
});
|
|
2025
2025
|
},
|
|
2026
2026
|
/**
|
|
2027
|
-
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write`
|
|
2027
|
+
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 진행중·초안 상태만 수정할 수 있습니다. 마감·취소된 공고는 거부됩니다. - 낙찰방법(`awardMethod`)은 수정할 수 없고, 참여자가 있으면 입찰방식·면허·예산·품목 일부가 잠깁니다. - 한 섹션을 수정하려면 그 섹션의 필수 필드를 함께 보냅니다. - `hideEditHistory=true`면 변경이력을 비공개로 남기고 노출 카운터를 올리지 않습니다.
|
|
2028
2028
|
* @summary 공고 수정
|
|
2029
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2030
|
-
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412
|
|
2031
|
-
* @param {string} idempotencyKey
|
|
2029
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2030
|
+
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412로 거절되며 아무것도 수정되지 않습니다.
|
|
2031
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2032
2032
|
* @param {UpdateBidRequestDto} updateBidRequestDto
|
|
2033
2033
|
* @param {*} [options] Override http request option.
|
|
2034
2034
|
* @throws {RequiredError}
|
|
@@ -2043,11 +2043,11 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
2043
2043
|
});
|
|
2044
2044
|
},
|
|
2045
2045
|
/**
|
|
2046
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다.
|
|
2046
|
+
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - `eventTypes`는 치환입니다. 하나를 더하려면 기존 목록을 포함한 전체를 보냅니다. - `If-Match`가 필수입니다. `GET`으로 받은 `ETag`를 그대로 실으세요. 누락은 428, 그 사이 구독이 바뀌었으면 412이며 아무것도 수정되지 않습니다. - 연속 실패로 자동 중지된 구독은 `{\"status\":\"ACTIVE\"}`로 되살립니다. - 시크릿은 이 경로로 바뀌지 않습니다. 재발급은 `rotate-secret`입니다.
|
|
2047
2047
|
* @summary 웹훅 구독 수정
|
|
2048
2048
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2049
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
2050
|
-
* @param {string} idempotencyKey
|
|
2049
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
2050
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2051
2051
|
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2052
2052
|
* @param {*} [options] Override http request option.
|
|
2053
2053
|
* @throws {RequiredError}
|
|
@@ -2062,9 +2062,9 @@ export const PartnerApiApiFp = function (configuration) {
|
|
|
2062
2062
|
});
|
|
2063
2063
|
},
|
|
2064
2064
|
/**
|
|
2065
|
-
*
|
|
2065
|
+
* 공고 첨부파일을 올리고 `fileKey`를 받습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. `base64`와 `url` 중 하나만 보냅니다. 받은 `fileKey`는 공고 등록·수정의 `attachments`에 넣습니다. | 제출 방식 | 상한 | 호출 수 | | --- | --- | --- | | 이 호출 + `base64` | 23MB | 1 | | 이 호출 + `url` | 30MB | 1 | | `POST /v2/files/upload-url` 2단계 | 100MB | 2 + 스토리지 PUT | 한 공고에만 쓰는 파일이면 `POST /v2/bids`의 `attachments`에 `url`·`base64`를 직접 넣어 이 호출을 생략할 수 있습니다.
|
|
2066
2066
|
* @summary 공고 첨부파일 업로드 (기본)
|
|
2067
|
-
* @param {string} idempotencyKey
|
|
2067
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2068
2068
|
* @param {UploadFileRequestDto} uploadFileRequestDto
|
|
2069
2069
|
* @param {*} [options] Override http request option.
|
|
2070
2070
|
* @throws {RequiredError}
|
|
@@ -2087,10 +2087,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2087
2087
|
const localVarFp = PartnerApiApiFp(configuration);
|
|
2088
2088
|
return {
|
|
2089
2089
|
/**
|
|
2090
|
-
*
|
|
2090
|
+
* 진행중(`ONGOING`) 공고를 취소합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 취소 사유는 필수이고 공고 이력에 남습니다. - 진행중이 아니거나 이미 취소된 공고는 409, 다른 발주기관의 공고는 403입니다. - 응찰은 받았으나 낙찰자를 정하지 못한 종료는 취소가 아니라 유찰(`POST /v2/bids/{bidRef}/fail`)입니다.
|
|
2091
2091
|
* @summary 공고 취소
|
|
2092
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2093
|
-
* @param {string} idempotencyKey
|
|
2092
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2093
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2094
2094
|
* @param {CancelBidRequestDto} cancelBidRequestDto
|
|
2095
2095
|
* @param {*} [options] Override http request option.
|
|
2096
2096
|
* @throws {RequiredError}
|
|
@@ -2099,10 +2099,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2099
2099
|
return localVarFp.cancelBid(bidRef, idempotencyKey, cancelBidRequestDto, options).then((request) => request(axios, basePath));
|
|
2100
2100
|
},
|
|
2101
2101
|
/**
|
|
2102
|
-
*
|
|
2102
|
+
* 납품 검수 완료를 기록합니다. 낙찰 처리된 공고에서 호출합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 현금 결제 공고는 세금계산서 발행요청이 등록되고 낙찰자에게 알림·문자가 나갑니다. 카드 결제 공고는 발행요청이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 협의로 계약금액이 줄었으면 `supplyAmount`와 `vat`를 함께 보냅니다. 현금 결제·낙찰자 1인·감액일 때만 허용하며 어긋나면 409입니다. 생략하면 낙찰금액에서 파생합니다. - 문서에 찍히는 구매사 사업자정보·담당자·작성일자와 낙찰자는 등록된 값에서 채워지며 요청으로 바꿀 수 없습니다.
|
|
2103
2103
|
* @summary 검수완료 전송
|
|
2104
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2105
|
-
* @param {string} idempotencyKey
|
|
2104
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2105
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2106
2106
|
* @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
|
|
2107
2107
|
* @param {*} [options] Override http request option.
|
|
2108
2108
|
* @throws {RequiredError}
|
|
@@ -2111,10 +2111,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2111
2111
|
return localVarFp.completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(axios, basePath));
|
|
2112
2112
|
},
|
|
2113
2113
|
/**
|
|
2114
|
-
* `uploadUrl
|
|
2114
|
+
* `uploadUrl`로 올린 파일을 확정합니다. 이 시점부터 `fileKey`를 공고 첨부로 쓸 수 있습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. - 확정 전 `fileKey`를 첨부로 쓰면 공고 등록이 400입니다. - 신고한 `fileSize`가 아니라 실제 파일을 측정해 기록하며, 정책 상한을 넘으면 여기서 거절됩니다. - 같은 `fileKey`로 여러 번 호출해도 안전합니다.
|
|
2115
2115
|
* @summary 대용량 업로드 2/2 — 업로드 확정
|
|
2116
2116
|
* @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
2117
|
-
* @param {string} idempotencyKey
|
|
2117
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2118
2118
|
* @param {CompleteUploadRequestDto} completeUploadRequestDto
|
|
2119
2119
|
* @param {*} [options] Override http request option.
|
|
2120
2120
|
* @throws {RequiredError}
|
|
@@ -2123,10 +2123,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2123
2123
|
return localVarFp.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(axios, basePath));
|
|
2124
2124
|
},
|
|
2125
2125
|
/**
|
|
2126
|
-
*
|
|
2126
|
+
* 공급사에게 계산서를 수령한 뒤 계약을 완료처리합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 결제완료·계산서 발급 상태가 기록되고 발급일자는 현재 시각이 됩니다. - 이미 완료된 공고는 409, 다른 발주기관의 공고는 403입니다.
|
|
2127
2127
|
* @summary 정산 마감
|
|
2128
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2129
|
-
* @param {string} idempotencyKey
|
|
2128
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2129
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2130
2130
|
* @param {*} [options] Override http request option.
|
|
2131
2131
|
* @throws {RequiredError}
|
|
2132
2132
|
*/
|
|
@@ -2134,9 +2134,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2134
2134
|
return localVarFp.completeInvoice(bidRef, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2135
2135
|
},
|
|
2136
2136
|
/**
|
|
2137
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable
|
|
2137
|
+
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2138
2138
|
* @summary 결제창 발행
|
|
2139
|
-
* @param {string} idempotencyKey
|
|
2139
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2140
2140
|
* @param {CreateCardPaymentDto} createCardPaymentDto
|
|
2141
2141
|
* @param {*} [options] Override http request option.
|
|
2142
2142
|
* @throws {RequiredError}
|
|
@@ -2145,9 +2145,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2145
2145
|
return localVarFp.createCardPayment(idempotencyKey, createCardPaymentDto, options).then((request) => request(axios, basePath));
|
|
2146
2146
|
},
|
|
2147
2147
|
/**
|
|
2148
|
-
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents
|
|
2148
|
+
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
2149
2149
|
* @summary 계약서류 생성
|
|
2150
|
-
* @param {string} idempotencyKey
|
|
2150
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2151
2151
|
* @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
|
|
2152
2152
|
* @param {*} [options] Override http request option.
|
|
2153
2153
|
* @throws {RequiredError}
|
|
@@ -2156,9 +2156,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2156
2156
|
return localVarFp.createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(axios, basePath));
|
|
2157
2157
|
},
|
|
2158
2158
|
/**
|
|
2159
|
-
*
|
|
2159
|
+
* 파일을 스토리지로 직접 올리기 위한 1회용 서명 URL을 발급합니다(100MB까지). 스코프 `files:write` · `Idempotency-Key` 헤더 필수. 1. 이 호출로 `fileKey`와 `uploadUrl`을 받습니다. 2. `uploadUrl`에 파일 바이트를 그대로 `PUT` 합니다. 응답의 `contentType`을 `Content-Type` 헤더에 싣고, `Authorization` 헤더는 붙이지 않습니다(주소 자체가 자격증명입니다). 3. `POST /v2/files/{fileKey}/complete`로 확정합니다. ```bash curl -X PUT \"$uploadUrl\" -H \"Content-Type: $contentType\" --upload-file 시방서.pdf ``` - 2단계는 요청이 스토리지로 가므로 이 명세에 오퍼레이션이 없고, 실패 본문도 problem+json이 아닙니다. 만료(400)·중복 업로드(409)면 1단계부터 다시 합니다. - `uploadUrl`은 1회용이며 `expiresIn`초 뒤 만료됩니다. 주소가 곧 자격증명이므로 로그에 남기지 않습니다. - 30MB 이하는 `POST /v2/files` 한 번으로 끝납니다.
|
|
2160
2160
|
* @summary 대용량 업로드 1/2 — 업로드 주소 발급
|
|
2161
|
-
* @param {string} idempotencyKey
|
|
2161
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2162
2162
|
* @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
|
|
2163
2163
|
* @param {*} [options] Override http request option.
|
|
2164
2164
|
* @throws {RequiredError}
|
|
@@ -2167,9 +2167,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2167
2167
|
return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
|
|
2168
2168
|
},
|
|
2169
2169
|
/**
|
|
2170
|
-
* 수신 주소와 구독할 이벤트를 등록합니다.
|
|
2170
|
+
* 수신 주소와 구독할 이벤트를 등록합니다. 연동 초기 1회 호출합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 잃어버렸다면 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret`으로 재발급합니다. - 수신 주소가 바뀌면 새로 만들지 말고 `PATCH`로 고치세요. 시크릿과 전송 이력이 유지됩니다. - `url`은 HTTPS만 허용하고 `eventTypes`는 아래 목록 안의 값이어야 합니다. 어기면 400입니다. ### 서명 검증 **[Standard Webhooks](https://www.standardwebhooks.com)** 규약입니다. 직접 짜지 말고 각 언어의 `standardwebhooks` 라이브러리에 등록 시 받은 시크릿(`whsec_…`)을 그대로 넘기세요. ```ts import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); // 실패하면 예외 ``` 라이브러리를 쓸 수 없다면 헤더 셋으로 직접 검증합니다. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. 시크릿에서 `whsec_` 접두어를 떼고 base64 디코드한 바이트가 HMAC 키입니다. 2. `{webhook-id}.{webhook-timestamp}.{본문}`을 연결합니다. 본문은 **파싱 전 원문 바이트**여야 합니다. JSON을 다시 직렬화하면 키 순서·공백이 달라져 서명이 어긋납니다. 3. HMAC-SHA256을 base64로 인코딩해 `webhook-signature`의 `v1,` 뒤 값과 상수 시간 함수로 비교합니다. 4. `webhook-timestamp`가 5분 이상 지났으면 거절합니다. `webhook-signature`에는 서명이 여러 개 실릴 수 있으므로(키 회전용) 하나라도 맞으면 통과로 처리하세요. ### 중복 제거 `webhook-id`가 이벤트 식별자입니다. 재시도에도 같은 값이 오므로 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상이며 중복 제거는 수신측 책임입니다. `webhook-event-type` 헤더에 본문 `type`과 같은 값이 실려, 본문을 파싱하기 전에 거를 수 있습니다. ### 재시도와 자동 중지 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`로 조회해 메웁니다.
|
|
2171
2171
|
* @summary 웹훅 구독 등록
|
|
2172
|
-
* @param {string} idempotencyKey
|
|
2172
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2173
2173
|
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2174
2174
|
* @param {*} [options] Override http request option.
|
|
2175
2175
|
* @throws {RequiredError}
|
|
@@ -2178,11 +2178,11 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2178
2178
|
return localVarFp.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2179
2179
|
},
|
|
2180
2180
|
/**
|
|
2181
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다.
|
|
2181
|
+
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. 잠시만 멈추려면 `PATCH`로 `{\"status\":\"DISABLED\"}`를 보내세요. - `If-Match`가 필수입니다. 누락은 428, 그 사이 구독이 바뀌었으면 412입니다.
|
|
2182
2182
|
* @summary 웹훅 구독 삭제
|
|
2183
2183
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2184
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
2185
|
-
* @param {string} idempotencyKey
|
|
2184
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
2185
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2186
2186
|
* @param {*} [options] Override http request option.
|
|
2187
2187
|
* @throws {RequiredError}
|
|
2188
2188
|
*/
|
|
@@ -2190,9 +2190,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2190
2190
|
return localVarFp.deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2191
2191
|
},
|
|
2192
2192
|
/**
|
|
2193
|
-
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl
|
|
2193
|
+
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl`이 이 URL을 가리킨다. 요청 시점에 서명하므로 URL을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}`가 파일 메타와 `downloadUrl`을 v2 응답 규약으로 돌려줍니다. 이 안정 URL은 파트너 응답의 `fileUrl`/`fullUrl`이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
2194
2194
|
* @summary 파일 다운로드
|
|
2195
|
-
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex
|
|
2195
|
+
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다.
|
|
2196
2196
|
* @param {*} [options] Override http request option.
|
|
2197
2197
|
* @throws {RequiredError}
|
|
2198
2198
|
*/
|
|
@@ -2200,10 +2200,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2200
2200
|
return localVarFp.downloadFile(fileKey, options).then((request) => request(axios, basePath));
|
|
2201
2201
|
},
|
|
2202
2202
|
/**
|
|
2203
|
-
*
|
|
2203
|
+
* 공고 한 건의 전체 정보를 조회합니다 — 기본 정보, 납품·대금 조건, 담당자, 품목, 응찰 참여자, 계약서류, 검수 상태. 스코프 `bids:read`. - 낙찰 여부는 `status`가 아니라 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없어(낙찰 직후 `CONTRACT_IN_PROGRESS`) `status === \'AWARDED\'` 폴링은 끝나지 않습니다. - 계약서류는 `contractDocuments[]`에 실립니다. 따로 받는 엔드포인트는 없습니다. - 여러 건은 `GET /v2/bid-results`로 한 번에 받습니다. - 다른 발주기관의 공고는 403입니다.
|
|
2204
2204
|
* @summary 공고 상세 조회
|
|
2205
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2206
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2205
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2206
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2207
2207
|
* @param {*} [options] Override http request option.
|
|
2208
2208
|
* @throws {RequiredError}
|
|
2209
2209
|
*/
|
|
@@ -2211,10 +2211,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2211
2211
|
return localVarFp.getBid(bidRef, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2212
2212
|
},
|
|
2213
2213
|
/**
|
|
2214
|
-
* 낙찰 공급사의
|
|
2214
|
+
* 낙찰 공급사의 사업자·계좌 정보와 공급가액·부가세, 응찰 품목내역을 조회합니다. 대금 지급에 필요한 값입니다. 스코프 `invoices:read`(종전 `bids:read`에서 변경). 다른 조회에서 참가자 정보가 가려지는 경우와 무관하게 이 응답은 항상 그대로 나갑니다.
|
|
2215
2215
|
* @summary 정산 정보 조회
|
|
2216
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2217
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2216
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2217
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2218
2218
|
* @param {*} [options] Override http request option.
|
|
2219
2219
|
* @throws {RequiredError}
|
|
2220
2220
|
*/
|
|
@@ -2222,11 +2222,11 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2222
2222
|
return localVarFp.getBidSettlement(bidRef, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2223
2223
|
},
|
|
2224
2224
|
/**
|
|
2225
|
-
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다.
|
|
2225
|
+
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다. 스코프 `invoices:read`(종전 `contracts:read`에서 변경).
|
|
2226
2226
|
* @summary 거래명세서 조회
|
|
2227
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2227
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2228
2228
|
* @param {number} [paperCode] 거래명세서 서식 코드. 생략하면 해당 공고에 적용된 기본 서식으로 조회합니다. 기관에 서식이 여러 벌인 경우에만 지정하세요.
|
|
2229
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2229
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2230
2230
|
* @param {*} [options] Override http request option.
|
|
2231
2231
|
* @throws {RequiredError}
|
|
2232
2232
|
*/
|
|
@@ -2234,10 +2234,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2234
2234
|
return localVarFp.getBidStatement(bidRef, paperCode, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2235
2235
|
},
|
|
2236
2236
|
/**
|
|
2237
|
-
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey
|
|
2237
|
+
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
|
|
2238
2238
|
* @summary 파일 정보 조회
|
|
2239
2239
|
* @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
2240
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2240
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2241
2241
|
* @param {*} [options] Override http request option.
|
|
2242
2242
|
* @throws {RequiredError}
|
|
2243
2243
|
*/
|
|
@@ -2255,10 +2255,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2255
2255
|
return localVarFp.getSemoContractTaxinvoiceStatus(externalContractId, options).then((request) => request(axios, basePath));
|
|
2256
2256
|
},
|
|
2257
2257
|
/**
|
|
2258
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write
|
|
2258
|
+
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write`를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
2259
2259
|
* @summary 공급사 카드결제 가능 여부
|
|
2260
2260
|
* @param {string} memberId 계약업체 회원 ID
|
|
2261
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2261
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2262
2262
|
* @param {*} [options] Override http request option.
|
|
2263
2263
|
* @throws {RequiredError}
|
|
2264
2264
|
*/
|
|
@@ -2266,10 +2266,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2266
2266
|
return localVarFp.getSupplierCardPayableV2(memberId, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2267
2267
|
},
|
|
2268
2268
|
/**
|
|
2269
|
-
* 구독 1건의 현재 상태를 조회합니다.
|
|
2269
|
+
* 구독 1건의 현재 상태를 조회합니다. 스코프 `webhooks:read`. 수정·삭제 전에 먼저 호출해 응답 헤더의 `ETag`를 `If-Match`에 실어야 합니다. 없는 구독이거나 다른 파트너 키의 구독이면 404입니다. 서명 시크릿은 실리지 않습니다.
|
|
2270
2270
|
* @summary 웹훅 구독 단건 조회
|
|
2271
2271
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2272
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2272
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2273
2273
|
* @param {*} [options] Override http request option.
|
|
2274
2274
|
* @throws {RequiredError}
|
|
2275
2275
|
*/
|
|
@@ -2279,7 +2279,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2279
2279
|
/**
|
|
2280
2280
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
2281
2281
|
* @summary Partner API 헬스체크
|
|
2282
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2282
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2283
2283
|
* @param {*} [options] Override http request option.
|
|
2284
2284
|
* @throws {RequiredError}
|
|
2285
2285
|
*/
|
|
@@ -2287,10 +2287,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2287
2287
|
return localVarFp.healthControllerCheck(ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2288
2288
|
},
|
|
2289
2289
|
/**
|
|
2290
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`.
|
|
2290
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. - 결과 확인은 공고를 하나씩 조회하지 말고 이 엔드포인트로 최대 100건씩 받습니다. 응답의 `ETag`를 다음 요청의 `If-None-Match`로 보내면 변화가 없을 때 본문 없이 `304`로 끝납니다. - 식별자는 `?bidRefs=A,B,C`와 `?bidRefs=A&bidRefs=B` 둘 다 됩니다. - 없거나 대행 범위 밖인 식별자는 오류가 아니라 응답에서 빠집니다. 보낸 값이 공고번호면 `bidId`, 구매번호면 `purchaseNo`로 대조합니다.
|
|
2291
2291
|
* @summary 공고 결과 조회
|
|
2292
|
-
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2293
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2292
|
+
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidRefs`를 반복해 전달합니다. 최대 100건입니다.
|
|
2293
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2294
2294
|
* @param {*} [options] Override http request option.
|
|
2295
2295
|
* @throws {RequiredError}
|
|
2296
2296
|
*/
|
|
@@ -2298,14 +2298,14 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2298
2298
|
return localVarFp.listBidResults(bidRefs, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2299
2299
|
},
|
|
2300
2300
|
/**
|
|
2301
|
-
*
|
|
2301
|
+
* API 키에 연결된 발주기관의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. - 발주기관은 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 페이지네이션: `limit`(1~100, 기본 100)과 `cursor`. 응답 `meta.nextCursor`를 다음 요청의 `cursor`로 보내고, `meta.hasMore`가 `false`면 마지막 페이지입니다. - 낙찰 여부는 공고 상태가 아니라 `GET /v2/bid-results`의 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없습니다.
|
|
2302
2302
|
* @summary 공고 목록 조회
|
|
2303
2303
|
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
2304
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
2305
|
-
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2304
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 보냅니다. 생략하면 첫 페이지이고, `nextCursor`가 `null`이면 마지막 페이지입니다.
|
|
2305
|
+
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
2306
2306
|
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회합니다.
|
|
2307
2307
|
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
2308
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2308
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2309
2309
|
* @param {*} [options] Override http request option.
|
|
2310
2310
|
* @throws {RequiredError}
|
|
2311
2311
|
*/
|
|
@@ -2313,7 +2313,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2313
2313
|
return localVarFp.listBids(limit, cursor, bidRefs, status, include, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2314
2314
|
},
|
|
2315
2315
|
/**
|
|
2316
|
-
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market
|
|
2316
|
+
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
2317
2317
|
* @summary 거래에 필요한 계약서류 목록 조회
|
|
2318
2318
|
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
2319
2319
|
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
@@ -2324,13 +2324,13 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2324
2324
|
return localVarFp.listExternalContractDocuments(buyerId, bidType, options).then((request) => request(axios, basePath));
|
|
2325
2325
|
},
|
|
2326
2326
|
/**
|
|
2327
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸
|
|
2327
|
+
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문, 수신측 응답 상태, 다음 재시도 시각이 함께 실립니다. 스코프 `webhooks:read`. - 수신측 장애로 놓친 이벤트는 `status=EXHAUSTED`로 걸러 다시 처리합니다. 웹훅의 폴링 대체 경로입니다. - 재시도마다 한 행이며 `eventId`가 같고 `attempt`만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단합니다. - 페이지네이션: 응답 `nextCursor`를 다음 요청의 `cursor`로 보냅니다. `null`이면 마지막 페이지입니다.
|
|
2328
2328
|
* @summary 웹훅 전송 이력 조회
|
|
2329
2329
|
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
2330
2330
|
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
2331
2331
|
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
2332
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
2333
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2332
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
2333
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2334
2334
|
* @param {*} [options] Override http request option.
|
|
2335
2335
|
* @throws {RequiredError}
|
|
2336
2336
|
*/
|
|
@@ -2338,9 +2338,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2338
2338
|
return localVarFp.listWebhookDeliveries(endpointId, status, limit, cursor, ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2339
2339
|
},
|
|
2340
2340
|
/**
|
|
2341
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다.
|
|
2341
|
+
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. 스코프 `webhooks:read`. 발송이 멈춘 이유는 `status`와 `consecutiveFailures`로 확인합니다. 서명 시크릿은 실리지 않습니다. 수신측 구현 방법은 `POST /v2/webhook-endpoints` 설명에 있습니다.
|
|
2342
2342
|
* @summary 웹훅 구독 목록 조회
|
|
2343
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2343
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2344
2344
|
* @param {*} [options] Override http request option.
|
|
2345
2345
|
* @throws {RequiredError}
|
|
2346
2346
|
*/
|
|
@@ -2348,10 +2348,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2348
2348
|
return localVarFp.listWebhookEndpoints(ifNoneMatch, options).then((request) => request(axios, basePath));
|
|
2349
2349
|
},
|
|
2350
2350
|
/**
|
|
2351
|
-
* 공고를 유찰
|
|
2351
|
+
* 공고를 유찰 처리합니다. 입찰 마감 상태에서 호출합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. 공고 상태가 유찰(`FAILED`)로 바뀌고 유찰사유가 기록됩니다. 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). | `failureReasonCode` | 의미 | | --- | --- | | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | | `OTHER` | 기타(`failureReasonDetail` 필수) |
|
|
2352
2352
|
* @summary 유찰 처리
|
|
2353
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2354
|
-
* @param {string} idempotencyKey
|
|
2353
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2354
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2355
2355
|
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
2356
2356
|
* @param {*} [options] Override http request option.
|
|
2357
2357
|
* @throws {RequiredError}
|
|
@@ -2360,10 +2360,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2360
2360
|
return localVarFp.markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options).then((request) => request(axios, basePath));
|
|
2361
2361
|
},
|
|
2362
2362
|
/**
|
|
2363
|
-
* 낙찰 결과를 등록합니다.
|
|
2363
|
+
* 낙찰 결과를 등록합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감(입찰완료) 상태에서 호출합니다. - 낙찰 후 공고 상태는 계약진행(`CONTRACT_IN_PROGRESS`)입니다. `AWARDED` 공고 상태는 없으므로 낙찰 여부는 `participants[].isWinner`로 판단합니다. - 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고는 `POST /v2/bids/{bidRef}/negotiation-scores`로 평가를 마쳐야 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 같은 키와 같은 body로 재전송하면 24시간 동안 캐시된 응답을 돌려줍니다.
|
|
2364
2364
|
* @summary 낙찰 결과 전송
|
|
2365
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2366
|
-
* @param {string} idempotencyKey
|
|
2365
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2366
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2367
2367
|
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
2368
2368
|
* @param {*} [options] Override http request option.
|
|
2369
2369
|
* @throws {RequiredError}
|
|
@@ -2372,9 +2372,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2372
2372
|
return localVarFp.registerAward(bidRef, idempotencyKey, registerAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
2373
2373
|
},
|
|
2374
2374
|
/**
|
|
2375
|
-
*
|
|
2375
|
+
* 공고를 등록합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. 첨부는 두 방법 중 하나입니다. - `attachments` 원소에 `{ fileName, url }` 또는 `{ fileName, base64 }`를 그대로 넣습니다. - 여러 공고에서 재사용할 파일은 `POST /v2/files`로 먼저 올려 받은 `fileKey`를 넣습니다.
|
|
2376
2376
|
* @summary 공고 등록
|
|
2377
|
-
* @param {string} idempotencyKey
|
|
2377
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2378
2378
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
2379
2379
|
* @param {*} [options] Override http request option.
|
|
2380
2380
|
* @throws {RequiredError}
|
|
@@ -2385,7 +2385,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2385
2385
|
/**
|
|
2386
2386
|
* 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2387
2387
|
* @summary 계약 발행대상 등록
|
|
2388
|
-
* @param {string} idempotencyKey
|
|
2388
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2389
2389
|
* @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
|
|
2390
2390
|
* @param {*} [options] Override http request option.
|
|
2391
2391
|
* @throws {RequiredError}
|
|
@@ -2394,10 +2394,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2394
2394
|
return localVarFp.registerSemoContract(idempotencyKey, registerSemoContractRequestDto, options).then((request) => request(axios, basePath));
|
|
2395
2395
|
},
|
|
2396
2396
|
/**
|
|
2397
|
-
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write
|
|
2397
|
+
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write` · `Idempotency-Key` 헤더 필수. - 청구만 접수합니다. 발행은 정산 파이프라인이 처리하며 진행 여부는 `GET /v2/bids/{bidRef}`의 `taxInvoiceRequested`로 확인합니다. - `supplyAmount`와 `vat`는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 **새 `Idempotency-Key`**로 한 번 더 청구합니다. 같은 키는 앞선 청구의 응답을 그대로 돌려줍니다. - `issueDate`는 선택이며 미래 일자는 400입니다.
|
|
2398
2398
|
* @summary 계산서 분할 발급 청구
|
|
2399
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2400
|
-
* @param {string} idempotencyKey
|
|
2399
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2400
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2401
2401
|
* @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
|
|
2402
2402
|
* @param {*} [options] Override http request option.
|
|
2403
2403
|
* @throws {RequiredError}
|
|
@@ -2408,8 +2408,8 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2408
2408
|
/**
|
|
2409
2409
|
* 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
2410
2410
|
* @summary 낙찰 되돌리기
|
|
2411
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2412
|
-
* @param {string} idempotencyKey
|
|
2411
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2412
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2413
2413
|
* @param {RevertAwardRequestDto} revertAwardRequestDto
|
|
2414
2414
|
* @param {*} [options] Override http request option.
|
|
2415
2415
|
* @throws {RequiredError}
|
|
@@ -2418,10 +2418,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2418
2418
|
return localVarFp.revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
2419
2419
|
},
|
|
2420
2420
|
/**
|
|
2421
|
-
* 서명 시크릿을 새로 발급합니다.
|
|
2421
|
+
* 서명 시크릿을 새로 발급합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 새 시크릿은 이 응답에서 한 번만 나가고 `secretVersion`이 1 올라갑니다. - **옛 시크릿은 즉시 무효입니다.** 유예가 없으므로 순서를 지키세요 — ① 수신측이 옛 값과 새 값을 모두 받아들이도록 배포 → ② 이 호출 → ③ 새 값 반영 → ④ 옛 값 제거. - 같은 `Idempotency-Key`로 다시 부르면 새로 발급하지 않고 처음 발급한 값을 돌려줍니다(24시간).
|
|
2422
2422
|
* @summary 웹훅 서명 시크릿 재발급
|
|
2423
2423
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2424
|
-
* @param {string} idempotencyKey
|
|
2424
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2425
2425
|
* @param {*} [options] Override http request option.
|
|
2426
2426
|
* @throws {RequiredError}
|
|
2427
2427
|
*/
|
|
@@ -2429,10 +2429,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2429
2429
|
return localVarFp.rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2430
2430
|
},
|
|
2431
2431
|
/**
|
|
2432
|
-
* 등록된 주소로 `ping` 이벤트를
|
|
2432
|
+
* 등록된 주소로 `ping` 이벤트를 1회 보내고 결과를 돌려줍니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 수신측이 받지 못해도 응답은 200이고 `delivered: false`입니다. 원인은 `responseStatus`와 `error`로 좁힙니다. - 실제 이벤트와 같은 서명 헤더가 실리므로 검증 코드를 그대로 시험할 수 있습니다. - 다시 보내려면 새 `Idempotency-Key`를 쓰세요. 같은 키는 24시간 동안 직전 결과를 돌려줍니다.
|
|
2433
2433
|
* @summary 웹훅 연결 확인 발송
|
|
2434
2434
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2435
|
-
* @param {string} idempotencyKey
|
|
2435
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2436
2436
|
* @param {*} [options] Override http request option.
|
|
2437
2437
|
* @throws {RequiredError}
|
|
2438
2438
|
*/
|
|
@@ -2440,10 +2440,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2440
2440
|
return localVarFp.sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2441
2441
|
},
|
|
2442
2442
|
/**
|
|
2443
|
-
*
|
|
2443
|
+
* 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고의 응찰자별 점수를 입력합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전에 호출합니다. 협상 방식 공고는 이 평가를 마쳐야 낙찰에 진입합니다. - `complete=true`면 평가완료로 처리되어 낙찰을 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다).
|
|
2444
2444
|
* @summary 협상 점수평가
|
|
2445
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2446
|
-
* @param {string} idempotencyKey
|
|
2445
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2446
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2447
2447
|
* @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
|
|
2448
2448
|
* @param {*} [options] Override http request option.
|
|
2449
2449
|
* @throws {RequiredError}
|
|
@@ -2452,11 +2452,11 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2452
2452
|
return localVarFp.submitNegotiationScores(bidRef, idempotencyKey, submitNegotiationScoresRequestDto, options).then((request) => request(axios, basePath));
|
|
2453
2453
|
},
|
|
2454
2454
|
/**
|
|
2455
|
-
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write`
|
|
2455
|
+
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 진행중·초안 상태만 수정할 수 있습니다. 마감·취소된 공고는 거부됩니다. - 낙찰방법(`awardMethod`)은 수정할 수 없고, 참여자가 있으면 입찰방식·면허·예산·품목 일부가 잠깁니다. - 한 섹션을 수정하려면 그 섹션의 필수 필드를 함께 보냅니다. - `hideEditHistory=true`면 변경이력을 비공개로 남기고 노출 카운터를 올리지 않습니다.
|
|
2456
2456
|
* @summary 공고 수정
|
|
2457
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2458
|
-
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412
|
|
2459
|
-
* @param {string} idempotencyKey
|
|
2457
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2458
|
+
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412로 거절되며 아무것도 수정되지 않습니다.
|
|
2459
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2460
2460
|
* @param {UpdateBidRequestDto} updateBidRequestDto
|
|
2461
2461
|
* @param {*} [options] Override http request option.
|
|
2462
2462
|
* @throws {RequiredError}
|
|
@@ -2465,11 +2465,11 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2465
2465
|
return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
|
|
2466
2466
|
},
|
|
2467
2467
|
/**
|
|
2468
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다.
|
|
2468
|
+
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - `eventTypes`는 치환입니다. 하나를 더하려면 기존 목록을 포함한 전체를 보냅니다. - `If-Match`가 필수입니다. `GET`으로 받은 `ETag`를 그대로 실으세요. 누락은 428, 그 사이 구독이 바뀌었으면 412이며 아무것도 수정되지 않습니다. - 연속 실패로 자동 중지된 구독은 `{\"status\":\"ACTIVE\"}`로 되살립니다. - 시크릿은 이 경로로 바뀌지 않습니다. 재발급은 `rotate-secret`입니다.
|
|
2469
2469
|
* @summary 웹훅 구독 수정
|
|
2470
2470
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2471
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
2472
|
-
* @param {string} idempotencyKey
|
|
2471
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
2472
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2473
2473
|
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2474
2474
|
* @param {*} [options] Override http request option.
|
|
2475
2475
|
* @throws {RequiredError}
|
|
@@ -2478,9 +2478,9 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2478
2478
|
return localVarFp.updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2479
2479
|
},
|
|
2480
2480
|
/**
|
|
2481
|
-
*
|
|
2481
|
+
* 공고 첨부파일을 올리고 `fileKey`를 받습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. `base64`와 `url` 중 하나만 보냅니다. 받은 `fileKey`는 공고 등록·수정의 `attachments`에 넣습니다. | 제출 방식 | 상한 | 호출 수 | | --- | --- | --- | | 이 호출 + `base64` | 23MB | 1 | | 이 호출 + `url` | 30MB | 1 | | `POST /v2/files/upload-url` 2단계 | 100MB | 2 + 스토리지 PUT | 한 공고에만 쓰는 파일이면 `POST /v2/bids`의 `attachments`에 `url`·`base64`를 직접 넣어 이 호출을 생략할 수 있습니다.
|
|
2482
2482
|
* @summary 공고 첨부파일 업로드 (기본)
|
|
2483
|
-
* @param {string} idempotencyKey
|
|
2483
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2484
2484
|
* @param {UploadFileRequestDto} uploadFileRequestDto
|
|
2485
2485
|
* @param {*} [options] Override http request option.
|
|
2486
2486
|
* @throws {RequiredError}
|
|
@@ -2495,10 +2495,10 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
2495
2495
|
*/
|
|
2496
2496
|
export class PartnerApiApi extends BaseAPI {
|
|
2497
2497
|
/**
|
|
2498
|
-
*
|
|
2498
|
+
* 진행중(`ONGOING`) 공고를 취소합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 취소 사유는 필수이고 공고 이력에 남습니다. - 진행중이 아니거나 이미 취소된 공고는 409, 다른 발주기관의 공고는 403입니다. - 응찰은 받았으나 낙찰자를 정하지 못한 종료는 취소가 아니라 유찰(`POST /v2/bids/{bidRef}/fail`)입니다.
|
|
2499
2499
|
* @summary 공고 취소
|
|
2500
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2501
|
-
* @param {string} idempotencyKey
|
|
2500
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2501
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2502
2502
|
* @param {CancelBidRequestDto} cancelBidRequestDto
|
|
2503
2503
|
* @param {*} [options] Override http request option.
|
|
2504
2504
|
* @throws {RequiredError}
|
|
@@ -2507,10 +2507,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2507
2507
|
return PartnerApiApiFp(this.configuration).cancelBid(bidRef, idempotencyKey, cancelBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2508
2508
|
}
|
|
2509
2509
|
/**
|
|
2510
|
-
*
|
|
2510
|
+
* 납품 검수 완료를 기록합니다. 낙찰 처리된 공고에서 호출합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 현금 결제 공고는 세금계산서 발행요청이 등록되고 낙찰자에게 알림·문자가 나갑니다. 카드 결제 공고는 발행요청이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 협의로 계약금액이 줄었으면 `supplyAmount`와 `vat`를 함께 보냅니다. 현금 결제·낙찰자 1인·감액일 때만 허용하며 어긋나면 409입니다. 생략하면 낙찰금액에서 파생합니다. - 문서에 찍히는 구매사 사업자정보·담당자·작성일자와 낙찰자는 등록된 값에서 채워지며 요청으로 바꿀 수 없습니다.
|
|
2511
2511
|
* @summary 검수완료 전송
|
|
2512
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2513
|
-
* @param {string} idempotencyKey
|
|
2512
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2513
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2514
2514
|
* @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
|
|
2515
2515
|
* @param {*} [options] Override http request option.
|
|
2516
2516
|
* @throws {RequiredError}
|
|
@@ -2519,10 +2519,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2519
2519
|
return PartnerApiApiFp(this.configuration).completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2520
2520
|
}
|
|
2521
2521
|
/**
|
|
2522
|
-
* `uploadUrl
|
|
2522
|
+
* `uploadUrl`로 올린 파일을 확정합니다. 이 시점부터 `fileKey`를 공고 첨부로 쓸 수 있습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. - 확정 전 `fileKey`를 첨부로 쓰면 공고 등록이 400입니다. - 신고한 `fileSize`가 아니라 실제 파일을 측정해 기록하며, 정책 상한을 넘으면 여기서 거절됩니다. - 같은 `fileKey`로 여러 번 호출해도 안전합니다.
|
|
2523
2523
|
* @summary 대용량 업로드 2/2 — 업로드 확정
|
|
2524
2524
|
* @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
2525
|
-
* @param {string} idempotencyKey
|
|
2525
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2526
2526
|
* @param {CompleteUploadRequestDto} completeUploadRequestDto
|
|
2527
2527
|
* @param {*} [options] Override http request option.
|
|
2528
2528
|
* @throws {RequiredError}
|
|
@@ -2531,10 +2531,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2531
2531
|
return PartnerApiApiFp(this.configuration).completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2532
2532
|
}
|
|
2533
2533
|
/**
|
|
2534
|
-
*
|
|
2534
|
+
* 공급사에게 계산서를 수령한 뒤 계약을 완료처리합니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 결제완료·계산서 발급 상태가 기록되고 발급일자는 현재 시각이 됩니다. - 이미 완료된 공고는 409, 다른 발주기관의 공고는 403입니다.
|
|
2535
2535
|
* @summary 정산 마감
|
|
2536
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2537
|
-
* @param {string} idempotencyKey
|
|
2536
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2537
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2538
2538
|
* @param {*} [options] Override http request option.
|
|
2539
2539
|
* @throws {RequiredError}
|
|
2540
2540
|
*/
|
|
@@ -2542,9 +2542,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2542
2542
|
return PartnerApiApiFp(this.configuration).completeInvoice(bidRef, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2543
2543
|
}
|
|
2544
2544
|
/**
|
|
2545
|
-
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable
|
|
2545
|
+
* 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2546
2546
|
* @summary 결제창 발행
|
|
2547
|
-
* @param {string} idempotencyKey
|
|
2547
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2548
2548
|
* @param {CreateCardPaymentDto} createCardPaymentDto
|
|
2549
2549
|
* @param {*} [options] Override http request option.
|
|
2550
2550
|
* @throws {RequiredError}
|
|
@@ -2553,9 +2553,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2553
2553
|
return PartnerApiApiFp(this.configuration).createCardPayment(idempotencyKey, createCardPaymentDto, options).then((request) => request(this.axios, this.basePath));
|
|
2554
2554
|
}
|
|
2555
2555
|
/**
|
|
2556
|
-
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents
|
|
2556
|
+
* 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 수 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서)를 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서)를 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 빈 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208)을 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 — 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
2557
2557
|
* @summary 계약서류 생성
|
|
2558
|
-
* @param {string} idempotencyKey
|
|
2558
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2559
2559
|
* @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
|
|
2560
2560
|
* @param {*} [options] Override http request option.
|
|
2561
2561
|
* @throws {RequiredError}
|
|
@@ -2564,9 +2564,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2564
2564
|
return PartnerApiApiFp(this.configuration).createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2565
2565
|
}
|
|
2566
2566
|
/**
|
|
2567
|
-
*
|
|
2567
|
+
* 파일을 스토리지로 직접 올리기 위한 1회용 서명 URL을 발급합니다(100MB까지). 스코프 `files:write` · `Idempotency-Key` 헤더 필수. 1. 이 호출로 `fileKey`와 `uploadUrl`을 받습니다. 2. `uploadUrl`에 파일 바이트를 그대로 `PUT` 합니다. 응답의 `contentType`을 `Content-Type` 헤더에 싣고, `Authorization` 헤더는 붙이지 않습니다(주소 자체가 자격증명입니다). 3. `POST /v2/files/{fileKey}/complete`로 확정합니다. ```bash curl -X PUT \"$uploadUrl\" -H \"Content-Type: $contentType\" --upload-file 시방서.pdf ``` - 2단계는 요청이 스토리지로 가므로 이 명세에 오퍼레이션이 없고, 실패 본문도 problem+json이 아닙니다. 만료(400)·중복 업로드(409)면 1단계부터 다시 합니다. - `uploadUrl`은 1회용이며 `expiresIn`초 뒤 만료됩니다. 주소가 곧 자격증명이므로 로그에 남기지 않습니다. - 30MB 이하는 `POST /v2/files` 한 번으로 끝납니다.
|
|
2568
2568
|
* @summary 대용량 업로드 1/2 — 업로드 주소 발급
|
|
2569
|
-
* @param {string} idempotencyKey
|
|
2569
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2570
2570
|
* @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
|
|
2571
2571
|
* @param {*} [options] Override http request option.
|
|
2572
2572
|
* @throws {RequiredError}
|
|
@@ -2575,9 +2575,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2575
2575
|
return PartnerApiApiFp(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2576
2576
|
}
|
|
2577
2577
|
/**
|
|
2578
|
-
* 수신 주소와 구독할 이벤트를 등록합니다.
|
|
2578
|
+
* 수신 주소와 구독할 이벤트를 등록합니다. 연동 초기 1회 호출합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - **서명 시크릿은 이 응답에서 한 번만 나갑니다.** 서버는 해시만 보관하므로 조회로 다시 받을 수 없습니다. 잃어버렸다면 `POST /v2/webhook-endpoints/{endpointId}/rotate-secret`으로 재발급합니다. - 수신 주소가 바뀌면 새로 만들지 말고 `PATCH`로 고치세요. 시크릿과 전송 이력이 유지됩니다. - `url`은 HTTPS만 허용하고 `eventTypes`는 아래 목록 안의 값이어야 합니다. 어기면 400입니다. ### 서명 검증 **[Standard Webhooks](https://www.standardwebhooks.com)** 규약입니다. 직접 짜지 말고 각 언어의 `standardwebhooks` 라이브러리에 등록 시 받은 시크릿(`whsec_…`)을 그대로 넘기세요. ```ts import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); // 실패하면 예외 ``` 라이브러리를 쓸 수 없다면 헤더 셋으로 직접 검증합니다. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. 시크릿에서 `whsec_` 접두어를 떼고 base64 디코드한 바이트가 HMAC 키입니다. 2. `{webhook-id}.{webhook-timestamp}.{본문}`을 연결합니다. 본문은 **파싱 전 원문 바이트**여야 합니다. JSON을 다시 직렬화하면 키 순서·공백이 달라져 서명이 어긋납니다. 3. HMAC-SHA256을 base64로 인코딩해 `webhook-signature`의 `v1,` 뒤 값과 상수 시간 함수로 비교합니다. 4. `webhook-timestamp`가 5분 이상 지났으면 거절합니다. `webhook-signature`에는 서명이 여러 개 실릴 수 있으므로(키 회전용) 하나라도 맞으면 통과로 처리하세요. ### 중복 제거 `webhook-id`가 이벤트 식별자입니다. 재시도에도 같은 값이 오므로 이미 처리한 값이면 무시하세요. 같은 이벤트를 두 번 받는 것은 정상이며 중복 제거는 수신측 책임입니다. `webhook-event-type` 헤더에 본문 `type`과 같은 값이 실려, 본문을 파싱하기 전에 거를 수 있습니다. ### 재시도와 자동 중지 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`로 조회해 메웁니다.
|
|
2579
2579
|
* @summary 웹훅 구독 등록
|
|
2580
|
-
* @param {string} idempotencyKey
|
|
2580
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2581
2581
|
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2582
2582
|
* @param {*} [options] Override http request option.
|
|
2583
2583
|
* @throws {RequiredError}
|
|
@@ -2586,11 +2586,11 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2586
2586
|
return PartnerApiApiFp(this.configuration).createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2587
2587
|
}
|
|
2588
2588
|
/**
|
|
2589
|
-
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다.
|
|
2589
|
+
* 구독을 삭제합니다. 이후 그 주소로는 아무 이벤트도 발송되지 않습니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 되돌릴 수 없습니다. 다시 등록하면 새 구독이고 서명 시크릿도 새 값입니다. 잠시만 멈추려면 `PATCH`로 `{\"status\":\"DISABLED\"}`를 보내세요. - `If-Match`가 필수입니다. 누락은 428, 그 사이 구독이 바뀌었으면 412입니다.
|
|
2590
2590
|
* @summary 웹훅 구독 삭제
|
|
2591
2591
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2592
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
2593
|
-
* @param {string} idempotencyKey
|
|
2592
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
2593
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2594
2594
|
* @param {*} [options] Override http request option.
|
|
2595
2595
|
* @throws {RequiredError}
|
|
2596
2596
|
*/
|
|
@@ -2598,9 +2598,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2598
2598
|
return PartnerApiApiFp(this.configuration).deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2599
2599
|
}
|
|
2600
2600
|
/**
|
|
2601
|
-
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl
|
|
2601
|
+
* 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl`이 이 URL을 가리킨다. 요청 시점에 서명하므로 URL을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}`가 파일 메타와 `downloadUrl`을 v2 응답 규약으로 돌려줍니다. 이 안정 URL은 파트너 응답의 `fileUrl`/`fullUrl`이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
|
|
2602
2602
|
* @summary 파일 다운로드
|
|
2603
|
-
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex
|
|
2603
|
+
* @param {string} fileKey 파일 키 — 영문 대소문자·숫자 32자. 업로드(`POST /v1|/v2/files`) 응답에서 받은 값. 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다.
|
|
2604
2604
|
* @param {*} [options] Override http request option.
|
|
2605
2605
|
* @throws {RequiredError}
|
|
2606
2606
|
*/
|
|
@@ -2608,10 +2608,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2608
2608
|
return PartnerApiApiFp(this.configuration).downloadFile(fileKey, options).then((request) => request(this.axios, this.basePath));
|
|
2609
2609
|
}
|
|
2610
2610
|
/**
|
|
2611
|
-
*
|
|
2611
|
+
* 공고 한 건의 전체 정보를 조회합니다 — 기본 정보, 납품·대금 조건, 담당자, 품목, 응찰 참여자, 계약서류, 검수 상태. 스코프 `bids:read`. - 낙찰 여부는 `status`가 아니라 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없어(낙찰 직후 `CONTRACT_IN_PROGRESS`) `status === \'AWARDED\'` 폴링은 끝나지 않습니다. - 계약서류는 `contractDocuments[]`에 실립니다. 따로 받는 엔드포인트는 없습니다. - 여러 건은 `GET /v2/bid-results`로 한 번에 받습니다. - 다른 발주기관의 공고는 403입니다.
|
|
2612
2612
|
* @summary 공고 상세 조회
|
|
2613
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2614
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2613
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2614
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2615
2615
|
* @param {*} [options] Override http request option.
|
|
2616
2616
|
* @throws {RequiredError}
|
|
2617
2617
|
*/
|
|
@@ -2619,10 +2619,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2619
2619
|
return PartnerApiApiFp(this.configuration).getBid(bidRef, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2620
2620
|
}
|
|
2621
2621
|
/**
|
|
2622
|
-
* 낙찰 공급사의
|
|
2622
|
+
* 낙찰 공급사의 사업자·계좌 정보와 공급가액·부가세, 응찰 품목내역을 조회합니다. 대금 지급에 필요한 값입니다. 스코프 `invoices:read`(종전 `bids:read`에서 변경). 다른 조회에서 참가자 정보가 가려지는 경우와 무관하게 이 응답은 항상 그대로 나갑니다.
|
|
2623
2623
|
* @summary 정산 정보 조회
|
|
2624
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2625
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2624
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2625
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2626
2626
|
* @param {*} [options] Override http request option.
|
|
2627
2627
|
* @throws {RequiredError}
|
|
2628
2628
|
*/
|
|
@@ -2630,11 +2630,11 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2630
2630
|
return PartnerApiApiFp(this.configuration).getBidSettlement(bidRef, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2631
2631
|
}
|
|
2632
2632
|
/**
|
|
2633
|
-
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다.
|
|
2633
|
+
* 낙찰 계약의 거래명세서(문서 헤더와 품목 라인)를 조회합니다. 스코프 `invoices:read`(종전 `contracts:read`에서 변경).
|
|
2634
2634
|
* @summary 거래명세서 조회
|
|
2635
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2635
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2636
2636
|
* @param {number} [paperCode] 거래명세서 서식 코드. 생략하면 해당 공고에 적용된 기본 서식으로 조회합니다. 기관에 서식이 여러 벌인 경우에만 지정하세요.
|
|
2637
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2637
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2638
2638
|
* @param {*} [options] Override http request option.
|
|
2639
2639
|
* @throws {RequiredError}
|
|
2640
2640
|
*/
|
|
@@ -2642,10 +2642,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2642
2642
|
return PartnerApiApiFp(this.configuration).getBidStatement(bidRef, paperCode, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2643
2643
|
}
|
|
2644
2644
|
/**
|
|
2645
|
-
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey
|
|
2645
|
+
* 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
|
|
2646
2646
|
* @summary 파일 정보 조회
|
|
2647
2647
|
* @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
|
|
2648
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2648
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2649
2649
|
* @param {*} [options] Override http request option.
|
|
2650
2650
|
* @throws {RequiredError}
|
|
2651
2651
|
*/
|
|
@@ -2663,10 +2663,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2663
2663
|
return PartnerApiApiFp(this.configuration).getSemoContractTaxinvoiceStatus(externalContractId, options).then((request) => request(this.axios, this.basePath));
|
|
2664
2664
|
}
|
|
2665
2665
|
/**
|
|
2666
|
-
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write
|
|
2666
|
+
* 계약업체가 카드결제로 대금을 받을 수 있는 상태인지 확인합니다(씨마켓 회원 + 카드결제 가맹). **결제수단을 사용자에게 보여주기 전에** 호출하세요. 불가한 업체로 결제창을 만들면 만들어지기는 하지만 결제가 막혀, 사용자가 막다른 길에 갇힙니다. **응답은 가부와 사유뿐입니다.** 업체의 상호·사업자번호 같은 식별정보는 싣지 않습니다. **필수 스코프:** `payments:read` — 구 경로(`/v2/card-payment-requests/suppliers/{id}/card-payable`)는 조회인데도 `payments:write`를 요구했습니다. 그쪽은 동결 표면이라 그대로 둡니다.
|
|
2667
2667
|
* @summary 공급사 카드결제 가능 여부
|
|
2668
2668
|
* @param {string} memberId 계약업체 회원 ID
|
|
2669
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2669
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2670
2670
|
* @param {*} [options] Override http request option.
|
|
2671
2671
|
* @throws {RequiredError}
|
|
2672
2672
|
*/
|
|
@@ -2674,10 +2674,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2674
2674
|
return PartnerApiApiFp(this.configuration).getSupplierCardPayableV2(memberId, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2675
2675
|
}
|
|
2676
2676
|
/**
|
|
2677
|
-
* 구독 1건의 현재 상태를 조회합니다.
|
|
2677
|
+
* 구독 1건의 현재 상태를 조회합니다. 스코프 `webhooks:read`. 수정·삭제 전에 먼저 호출해 응답 헤더의 `ETag`를 `If-Match`에 실어야 합니다. 없는 구독이거나 다른 파트너 키의 구독이면 404입니다. 서명 시크릿은 실리지 않습니다.
|
|
2678
2678
|
* @summary 웹훅 구독 단건 조회
|
|
2679
2679
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2680
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2680
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2681
2681
|
* @param {*} [options] Override http request option.
|
|
2682
2682
|
* @throws {RequiredError}
|
|
2683
2683
|
*/
|
|
@@ -2687,7 +2687,7 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2687
2687
|
/**
|
|
2688
2688
|
* ERP 연동 직전 회선·인증 endpoint 동작 확인용.
|
|
2689
2689
|
* @summary Partner API 헬스체크
|
|
2690
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2690
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2691
2691
|
* @param {*} [options] Override http request option.
|
|
2692
2692
|
* @throws {RequiredError}
|
|
2693
2693
|
*/
|
|
@@ -2695,10 +2695,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2695
2695
|
return PartnerApiApiFp(this.configuration).healthControllerCheck(ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2696
2696
|
}
|
|
2697
2697
|
/**
|
|
2698
|
-
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`.
|
|
2698
|
+
* 여러 공고의 응찰 결과를 한 번에 조회합니다. 스코프 `bids:read`. - 결과 확인은 공고를 하나씩 조회하지 말고 이 엔드포인트로 최대 100건씩 받습니다. 응답의 `ETag`를 다음 요청의 `If-None-Match`로 보내면 변화가 없을 때 본문 없이 `304`로 끝납니다. - 식별자는 `?bidRefs=A,B,C`와 `?bidRefs=A&bidRefs=B` 둘 다 됩니다. - 없거나 대행 범위 밖인 식별자는 오류가 아니라 응답에서 빠집니다. 보낸 값이 공고번호면 `bidId`, 구매번호면 `purchaseNo`로 대조합니다.
|
|
2699
2699
|
* @summary 공고 결과 조회
|
|
2700
|
-
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2701
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2700
|
+
* @param {string} bidRefs 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. 쉼표로 구분하거나 `bidRefs`를 반복해 전달합니다. 최대 100건입니다.
|
|
2701
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2702
2702
|
* @param {*} [options] Override http request option.
|
|
2703
2703
|
* @throws {RequiredError}
|
|
2704
2704
|
*/
|
|
@@ -2706,14 +2706,14 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2706
2706
|
return PartnerApiApiFp(this.configuration).listBidResults(bidRefs, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2707
2707
|
}
|
|
2708
2708
|
/**
|
|
2709
|
-
*
|
|
2709
|
+
* API 키에 연결된 발주기관의 공고를 게시일 최신순으로 조회합니다. 스코프 `bids:read`. - 발주기관은 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 페이지네이션: `limit`(1~100, 기본 100)과 `cursor`. 응답 `meta.nextCursor`를 다음 요청의 `cursor`로 보내고, `meta.hasMore`가 `false`면 마지막 페이지입니다. - 낙찰 여부는 공고 상태가 아니라 `GET /v2/bid-results`의 `participants[].isWinner`로 판단합니다. `AWARDED` 상태는 없습니다.
|
|
2710
2710
|
* @summary 공고 목록 조회
|
|
2711
2711
|
* @param {number} [limit] 페이지 크기(1~100, 기본 100).
|
|
2712
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
2713
|
-
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2712
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 보냅니다. 생략하면 첫 페이지이고, `nextCursor`가 `null`이면 마지막 페이지입니다.
|
|
2713
|
+
* @param {Array<string>} [bidRefs] 조회할 공고 식별자 목록. 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다. 두 형식을 섞어 보내도 됩니다. CSV로 전달하며 최대 100건. 지정 시 그 공고만 조회합니다.
|
|
2714
2714
|
* @param {Array<BidPublicStatus>} [status] 공고 상태 필터(공개값) CSV. 지정 시 그중 하나라도 일치하는 공고만 조회합니다.
|
|
2715
2715
|
* @param {Array<ListBidsIncludeEnum>} [include] 행별 확장 부착 CSV. `results`=응찰 참여자, `products`=공고 등록 품목, `contacts`=발주 담당자 성명·연락처·이메일. 미지정이면 부착하지 않는다(응답이 가볍고 조회 비용도 들지 않는다).
|
|
2716
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2716
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2717
2717
|
* @param {*} [options] Override http request option.
|
|
2718
2718
|
* @throws {RequiredError}
|
|
2719
2719
|
*/
|
|
@@ -2721,7 +2721,7 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2721
2721
|
return PartnerApiApiFp(this.configuration).listBids(limit, cursor, bidRefs, status, include, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2722
2722
|
}
|
|
2723
2723
|
/**
|
|
2724
|
-
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market
|
|
2724
|
+
* 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래 — 예: 채팅 기반 견적 — 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
|
|
2725
2725
|
* @summary 거래에 필요한 계약서류 목록 조회
|
|
2726
2726
|
* @param {string} buyerId 발주기관 회원 ID(c-market memberId).
|
|
2727
2727
|
* @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
|
|
@@ -2732,13 +2732,13 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2732
2732
|
return PartnerApiApiFp(this.configuration).listExternalContractDocuments(buyerId, bidType, options).then((request) => request(this.axios, this.basePath));
|
|
2733
2733
|
}
|
|
2734
2734
|
/**
|
|
2735
|
-
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸
|
|
2735
|
+
* 이 API 키의 웹훅 발송 시도를 최신순으로 조회합니다. 보낸 본문, 수신측 응답 상태, 다음 재시도 시각이 함께 실립니다. 스코프 `webhooks:read`. - 수신측 장애로 놓친 이벤트는 `status=EXHAUSTED`로 걸러 다시 처리합니다. 웹훅의 폴링 대체 경로입니다. - 재시도마다 한 행이며 `eventId`가 같고 `attempt`만 올라갑니다. 처리 여부는 `eventId` 기준으로 판단합니다. - 페이지네이션: 응답 `nextCursor`를 다음 요청의 `cursor`로 보냅니다. `null`이면 마지막 페이지입니다.
|
|
2736
2736
|
* @summary 웹훅 전송 이력 조회
|
|
2737
2737
|
* @param {string} [endpointId] 이 구독의 전송만 조회합니다. 미지정이면 이 키의 모든 구독을 함께 조회합니다.
|
|
2738
2738
|
* @param {PartnerWebhookDeliveryStatus} [status] 전송 상태 필터. 미지정이면 전부.
|
|
2739
2739
|
* @param {number} [limit] 페이지 크기(1~200, 기본 50).
|
|
2740
|
-
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`
|
|
2741
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2740
|
+
* @param {string} [cursor] 다음 페이지 커서(불투명 토큰). 직전 응답의 `nextCursor`를 그대로 전달합니다. 미지정 시 첫 페이지.
|
|
2741
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2742
2742
|
* @param {*} [options] Override http request option.
|
|
2743
2743
|
* @throws {RequiredError}
|
|
2744
2744
|
*/
|
|
@@ -2746,9 +2746,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2746
2746
|
return PartnerApiApiFp(this.configuration).listWebhookDeliveries(endpointId, status, limit, cursor, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2747
2747
|
}
|
|
2748
2748
|
/**
|
|
2749
|
-
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다.
|
|
2749
|
+
* 이 API 키가 등록한 웹훅 구독을 모두 조회합니다. 스코프 `webhooks:read`. 발송이 멈춘 이유는 `status`와 `consecutiveFailures`로 확인합니다. 서명 시크릿은 실리지 않습니다. 수신측 구현 방법은 `POST /v2/webhook-endpoints` 설명에 있습니다.
|
|
2750
2750
|
* @summary 웹훅 구독 목록 조회
|
|
2751
|
-
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`
|
|
2751
|
+
* @param {string} [ifNoneMatch] 직전 응답의 `ETag` 값. 내용이 그대로면 본문 없이 `304`로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
|
|
2752
2752
|
* @param {*} [options] Override http request option.
|
|
2753
2753
|
* @throws {RequiredError}
|
|
2754
2754
|
*/
|
|
@@ -2756,10 +2756,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2756
2756
|
return PartnerApiApiFp(this.configuration).listWebhookEndpoints(ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
|
|
2757
2757
|
}
|
|
2758
2758
|
/**
|
|
2759
|
-
* 공고를 유찰
|
|
2759
|
+
* 공고를 유찰 처리합니다. 입찰 마감 상태에서 호출합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. 공고 상태가 유찰(`FAILED`)로 바뀌고 유찰사유가 기록됩니다. 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). | `failureReasonCode` | 의미 | | --- | --- | | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | | `OTHER` | 기타(`failureReasonDetail` 필수) |
|
|
2760
2760
|
* @summary 유찰 처리
|
|
2761
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2762
|
-
* @param {string} idempotencyKey
|
|
2761
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2762
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2763
2763
|
* @param {MarkBidFailedRequestDto} markBidFailedRequestDto
|
|
2764
2764
|
* @param {*} [options] Override http request option.
|
|
2765
2765
|
* @throws {RequiredError}
|
|
@@ -2768,10 +2768,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2768
2768
|
return PartnerApiApiFp(this.configuration).markBidFailed(bidRef, idempotencyKey, markBidFailedRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2769
2769
|
}
|
|
2770
2770
|
/**
|
|
2771
|
-
* 낙찰 결과를 등록합니다.
|
|
2771
|
+
* 낙찰 결과를 등록합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감(입찰완료) 상태에서 호출합니다. - 낙찰 후 공고 상태는 계약진행(`CONTRACT_IN_PROGRESS`)입니다. `AWARDED` 공고 상태는 없으므로 낙찰 여부는 `participants[].isWinner`로 판단합니다. - 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고는 `POST /v2/bids/{bidRef}/negotiation-scores`로 평가를 마쳐야 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다). - 같은 키와 같은 body로 재전송하면 24시간 동안 캐시된 응답을 돌려줍니다.
|
|
2772
2772
|
* @summary 낙찰 결과 전송
|
|
2773
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2774
|
-
* @param {string} idempotencyKey
|
|
2773
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2774
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2775
2775
|
* @param {RegisterAwardRequestDto} registerAwardRequestDto
|
|
2776
2776
|
* @param {*} [options] Override http request option.
|
|
2777
2777
|
* @throws {RequiredError}
|
|
@@ -2780,9 +2780,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2780
2780
|
return PartnerApiApiFp(this.configuration).registerAward(bidRef, idempotencyKey, registerAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2781
2781
|
}
|
|
2782
2782
|
/**
|
|
2783
|
-
*
|
|
2783
|
+
* 공고를 등록합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. 첨부는 두 방법 중 하나입니다. - `attachments` 원소에 `{ fileName, url }` 또는 `{ fileName, base64 }`를 그대로 넣습니다. - 여러 공고에서 재사용할 파일은 `POST /v2/files`로 먼저 올려 받은 `fileKey`를 넣습니다.
|
|
2784
2784
|
* @summary 공고 등록
|
|
2785
|
-
* @param {string} idempotencyKey
|
|
2785
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2786
2786
|
* @param {CreateBidRequestDto} createBidRequestDto
|
|
2787
2787
|
* @param {*} [options] Override http request option.
|
|
2788
2788
|
* @throws {RequiredError}
|
|
@@ -2793,7 +2793,7 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2793
2793
|
/**
|
|
2794
2794
|
* 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
|
|
2795
2795
|
* @summary 계약 발행대상 등록
|
|
2796
|
-
* @param {string} idempotencyKey
|
|
2796
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2797
2797
|
* @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
|
|
2798
2798
|
* @param {*} [options] Override http request option.
|
|
2799
2799
|
* @throws {RequiredError}
|
|
@@ -2802,10 +2802,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2802
2802
|
return PartnerApiApiFp(this.configuration).registerSemoContract(idempotencyKey, registerSemoContractRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2803
2803
|
}
|
|
2804
2804
|
/**
|
|
2805
|
-
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write
|
|
2805
|
+
* 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write` · `Idempotency-Key` 헤더 필수. - 청구만 접수합니다. 발행은 정산 파이프라인이 처리하며 진행 여부는 `GET /v2/bids/{bidRef}`의 `taxInvoiceRequested`로 확인합니다. - `supplyAmount`와 `vat`는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 **새 `Idempotency-Key`**로 한 번 더 청구합니다. 같은 키는 앞선 청구의 응답을 그대로 돌려줍니다. - `issueDate`는 선택이며 미래 일자는 400입니다.
|
|
2806
2806
|
* @summary 계산서 분할 발급 청구
|
|
2807
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2808
|
-
* @param {string} idempotencyKey
|
|
2807
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2808
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2809
2809
|
* @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
|
|
2810
2810
|
* @param {*} [options] Override http request option.
|
|
2811
2811
|
* @throws {RequiredError}
|
|
@@ -2816,8 +2816,8 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2816
2816
|
/**
|
|
2817
2817
|
* 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
|
|
2818
2818
|
* @summary 낙찰 되돌리기
|
|
2819
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2820
|
-
* @param {string} idempotencyKey
|
|
2819
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2820
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2821
2821
|
* @param {RevertAwardRequestDto} revertAwardRequestDto
|
|
2822
2822
|
* @param {*} [options] Override http request option.
|
|
2823
2823
|
* @throws {RequiredError}
|
|
@@ -2826,10 +2826,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2826
2826
|
return PartnerApiApiFp(this.configuration).revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2827
2827
|
}
|
|
2828
2828
|
/**
|
|
2829
|
-
* 서명 시크릿을 새로 발급합니다.
|
|
2829
|
+
* 서명 시크릿을 새로 발급합니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 새 시크릿은 이 응답에서 한 번만 나가고 `secretVersion`이 1 올라갑니다. - **옛 시크릿은 즉시 무효입니다.** 유예가 없으므로 순서를 지키세요 — ① 수신측이 옛 값과 새 값을 모두 받아들이도록 배포 → ② 이 호출 → ③ 새 값 반영 → ④ 옛 값 제거. - 같은 `Idempotency-Key`로 다시 부르면 새로 발급하지 않고 처음 발급한 값을 돌려줍니다(24시간).
|
|
2830
2830
|
* @summary 웹훅 서명 시크릿 재발급
|
|
2831
2831
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2832
|
-
* @param {string} idempotencyKey
|
|
2832
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2833
2833
|
* @param {*} [options] Override http request option.
|
|
2834
2834
|
* @throws {RequiredError}
|
|
2835
2835
|
*/
|
|
@@ -2837,10 +2837,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2837
2837
|
return PartnerApiApiFp(this.configuration).rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2838
2838
|
}
|
|
2839
2839
|
/**
|
|
2840
|
-
* 등록된 주소로 `ping` 이벤트를
|
|
2840
|
+
* 등록된 주소로 `ping` 이벤트를 1회 보내고 결과를 돌려줍니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - 수신측이 받지 못해도 응답은 200이고 `delivered: false`입니다. 원인은 `responseStatus`와 `error`로 좁힙니다. - 실제 이벤트와 같은 서명 헤더가 실리므로 검증 코드를 그대로 시험할 수 있습니다. - 다시 보내려면 새 `Idempotency-Key`를 쓰세요. 같은 키는 24시간 동안 직전 결과를 돌려줍니다.
|
|
2841
2841
|
* @summary 웹훅 연결 확인 발송
|
|
2842
2842
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2843
|
-
* @param {string} idempotencyKey
|
|
2843
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2844
2844
|
* @param {*} [options] Override http request option.
|
|
2845
2845
|
* @throws {RequiredError}
|
|
2846
2846
|
*/
|
|
@@ -2848,10 +2848,10 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2848
2848
|
return PartnerApiApiFp(this.configuration).sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2849
2849
|
}
|
|
2850
2850
|
/**
|
|
2851
|
-
*
|
|
2851
|
+
* 협상 방식(`NEGOTIATION`, `NEGOTIATION_AUTO`) 공고의 응찰자별 점수를 입력합니다. 스코프 `awards:write` · `Idempotency-Key` 헤더 필수. - 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전에 호출합니다. 협상 방식 공고는 이 평가를 마쳐야 낙찰에 진입합니다. - `complete=true`면 평가완료로 처리되어 낙찰을 호출할 수 있습니다. - 발주기관은 API 키로 결정됩니다(`buyerId`를 보내지 않습니다).
|
|
2852
2852
|
* @summary 협상 점수평가
|
|
2853
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2854
|
-
* @param {string} idempotencyKey
|
|
2853
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2854
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2855
2855
|
* @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
|
|
2856
2856
|
* @param {*} [options] Override http request option.
|
|
2857
2857
|
* @throws {RequiredError}
|
|
@@ -2860,11 +2860,11 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2860
2860
|
return PartnerApiApiFp(this.configuration).submitNegotiationScores(bidRef, idempotencyKey, submitNegotiationScoresRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2861
2861
|
}
|
|
2862
2862
|
/**
|
|
2863
|
-
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write`
|
|
2863
|
+
* 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` · `Idempotency-Key` 헤더 필수. - 진행중·초안 상태만 수정할 수 있습니다. 마감·취소된 공고는 거부됩니다. - 낙찰방법(`awardMethod`)은 수정할 수 없고, 참여자가 있으면 입찰방식·면허·예산·품목 일부가 잠깁니다. - 한 섹션을 수정하려면 그 섹션의 필수 필드를 함께 보냅니다. - `hideEditHistory=true`면 변경이력을 비공개로 남기고 노출 카운터를 올리지 않습니다.
|
|
2864
2864
|
* @summary 공고 수정
|
|
2865
|
-
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에
|
|
2866
|
-
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412
|
|
2867
|
-
* @param {string} idempotencyKey
|
|
2865
|
+
* @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 연결된 발주기관 범위에서 최신 라운드 공고로 해소됩니다.
|
|
2866
|
+
* @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 `GET /v2/bids/{bidRef}` 응답의 `ETag` 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412로 거절되며 아무것도 수정되지 않습니다.
|
|
2867
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2868
2868
|
* @param {UpdateBidRequestDto} updateBidRequestDto
|
|
2869
2869
|
* @param {*} [options] Override http request option.
|
|
2870
2870
|
* @throws {RequiredError}
|
|
@@ -2873,11 +2873,11 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2873
2873
|
return PartnerApiApiFp(this.configuration).updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2874
2874
|
}
|
|
2875
2875
|
/**
|
|
2876
|
-
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다.
|
|
2876
|
+
* 수신 주소·구독 이벤트·상태를 수정합니다. 보낸 필드만 바뀝니다. 스코프 `webhooks:write` · `Idempotency-Key` 헤더 필수. - `eventTypes`는 치환입니다. 하나를 더하려면 기존 목록을 포함한 전체를 보냅니다. - `If-Match`가 필수입니다. `GET`으로 받은 `ETag`를 그대로 실으세요. 누락은 428, 그 사이 구독이 바뀌었으면 412이며 아무것도 수정되지 않습니다. - 연속 실패로 자동 중지된 구독은 `{\"status\":\"ACTIVE\"}`로 되살립니다. - 시크릿은 이 경로로 바뀌지 않습니다. 재발급은 `rotate-secret`입니다.
|
|
2877
2877
|
* @summary 웹훅 구독 수정
|
|
2878
2878
|
* @param {string} endpointId 구독 식별자(등록 응답의 `endpointId`).
|
|
2879
|
-
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412
|
|
2880
|
-
* @param {string} idempotencyKey
|
|
2879
|
+
* @param {string} ifMatch 직전 조회 응답의 `ETag` 값. 누락하면 428, 그 사이 구독이 바뀌었으면 412로 거절되며 아무것도 변경되지 않습니다.
|
|
2880
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2881
2881
|
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2882
2882
|
* @param {*} [options] Override http request option.
|
|
2883
2883
|
* @throws {RequiredError}
|
|
@@ -2886,9 +2886,9 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2886
2886
|
return PartnerApiApiFp(this.configuration).updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2887
2887
|
}
|
|
2888
2888
|
/**
|
|
2889
|
-
*
|
|
2889
|
+
* 공고 첨부파일을 올리고 `fileKey`를 받습니다. 스코프 `files:write` · `Idempotency-Key` 헤더 필수. `base64`와 `url` 중 하나만 보냅니다. 받은 `fileKey`는 공고 등록·수정의 `attachments`에 넣습니다. | 제출 방식 | 상한 | 호출 수 | | --- | --- | --- | | 이 호출 + `base64` | 23MB | 1 | | 이 호출 + `url` | 30MB | 1 | | `POST /v2/files/upload-url` 2단계 | 100MB | 2 + 스토리지 PUT | 한 공고에만 쓰는 파일이면 `POST /v2/bids`의 `attachments`에 `url`·`base64`를 직접 넣어 이 호출을 생략할 수 있습니다.
|
|
2890
2890
|
* @summary 공고 첨부파일 업로드 (기본)
|
|
2891
|
-
* @param {string} idempotencyKey
|
|
2891
|
+
* @param {string} idempotencyKey 멱등키(1~255자, `[A-Za-z0-9_-]`). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: `bid-create-{구매번호}`). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
|
|
2892
2892
|
* @param {UploadFileRequestDto} uploadFileRequestDto
|
|
2893
2893
|
* @param {*} [options] Override http request option.
|
|
2894
2894
|
* @throws {RequiredError}
|