releaseBidProposalRevision
Requires permission biddesk:proposal:release.
Releases a draft proposal revision: the release approval rules run first (proposal.release for R0, proposal.revise after), then the customer's DRAFT quote is created from the approved price schedule (the configured assembly priced from the approved cost sheet, each catalog line priced by the quote engine), linked to the bid, and the revision is frozen. Releasing R1 or later cancels the previous revision's quote as superseded. Refused with PROPOSAL_NEEDS_REFRESH or PROPOSAL_PRICES_CHANGED when the bid or a price moved since the revision was filled, PROPOSAL_REVISION_LOCKED, BID_NO_CUSTOMER, PROPOSAL_COST_SHEET_NOT_APPROVED, PROPOSAL_LINE_UOM_MISSING or VERSION_CONFLICT. Requires Bid Desk and permission to release proposals.
Errors: a failed call returns a GraphQL errors entry, not a field on the result, and data may be null or partial. Read the entry's extensions.code and message; every shape and code is in the Error reference.
Example:
- GraphQL
- cURL
mutation ReleaseBidProposalRevision($expectedVersion: Int!, $revisionId: ID!) {
releaseBidProposalRevision(
expectedVersion: $expectedVersion
revisionId: $revisionId
) {
quoteNumber
quoteId
supersedeWarning
revision {
id
revisionNumber
status
createdAt
basedOnId
bidId
}
}
}
curl -X POST "https://<api-host>/graphql" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--data @- <<'EOF'
{
"query": "mutation ReleaseBidProposalRevision($expectedVersion: Int!, $revisionId: ID!) {\n releaseBidProposalRevision(\n expectedVersion: $expectedVersion\n revisionId: $revisionId\n ) {\n quoteNumber\n quoteId\n supersedeWarning\n revision {\n id\n revisionNumber\n status\n createdAt\n basedOnId\n bidId\n }\n }\n}",
"variables": {
"expectedVersion": 0,
"revisionId": "id"
}
}
EOF
Variables:
{
"expectedVersion": 0,
"revisionId": "id"
}
Response:
{
"data": {
"releaseBidProposalRevision": {
"quoteNumber": "string",
"quoteId": "id",
"supersedeWarning": "string",
"revision": {
"id": "id",
"revisionNumber": 0,
"status": "DRAFT",
"createdAt": "2025-01-15T00:00:00Z",
"basedOnId": "id",
"bidId": "id"
}
}
}
}
releaseBidProposalRevision(
expectedVersion: Int!
revisionId: ID!
): BidProposalReleaseResult!
Arguments
releaseBidProposalRevision.expectedVersion ● Int! non-null scalar
The revision's version as last loaded.
releaseBidProposalRevision.revisionId ● ID! non-null scalar
The draft revision to release.
Type
BidProposalReleaseResult object
What releasing a proposal revision did: the released revision, the customer's quote created from it, and a warning when the previous revision's quote could not be cancelled.