Create a quote
POST
/api/v1/quotesAuthorization
AuthorizationOAuth2 access token · headerrequiredAuthorization-code grant with PKCE. Clients are public and hold no secret. Discovery is published at /.well-known/oauth-authorization-server/api/auth.
Scopes:
api.accessRequest body
requiredapplication/jsonaccountRecordIdstringrequiredmin length 1 · max length 255
currencystringrequiredmatches ^[A-Z]{3}$
exchangeRateobjectShow propertiesHide properties
asOfstring<date>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
ratestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
sourcestringrequiredmin length 1 · max length 200
linesobject[]requiredmin items 1 · max items 500
Show propertiesHide properties
Array of
objectcomponentKindstringdefault: "product"
Allowed:
producthardwaresoftwareserviceoptionpackagegroupNamestringmin length 1 · max length 120
pricingobjectdefault: {"method":"catalog"}
Show propertiesHide properties
One of:
object
methodstringrequiredobject
costEntryIdstringrequiredmin length 1 · max length 255
markupstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
methodstringrequiredobject
costEntryIdstringrequiredmin length 1 · max length 255
marginstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
methodstringrequiredobject
costEntryIdstringrequiredmin length 1 · max length 255
downstreamMarginsstring[]requiredmin items 1 · max items 10
methodstringrequiredretailPricestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
object
methodstringrequiredreasonstringrequiredmin length 1 · max length 500
unitPricestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
productIdstringrequiredmin length 1 · max length 255
quantitystringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
schedulesobject[]requiredmin items 1 · max items 100
Show propertiesHide properties
Array of
objectOne of:
object
amountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
kindstringrequiredstartsOnstring<date>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
object
amountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
endsOnstring<date>matches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
intervalMonthsintegerrequiredmin 1 · max 120
kindstringrequiredstartsOnstring<date>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
object
amountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
kindstringrequiredmilestoneLabelstringrequiredmin length 1 · max length 200
startsOnstring<date>matches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
taxRatestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
numberstringrequiredmin length 1 · max length 120
orderDiscountobjectShow propertiesHide properties
One of:
object
basisstringrequiredratestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
object
amountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
basisstringrequiredpricingDatestring<date>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
recordIdstringrequiredmin length 1 · max length 255
Responses
201
The quote and its first version
idstringrequiredmin length 1 · max length 255
totalsQuoteTotalsrequiredShow propertiesHide properties
currencystringrequiredmatches ^[A-Z]{3}$
discountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
linesobject[]requiredShow propertiesHide properties
Array of
objectdiscountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
netstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxRatestringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
subtotalstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxableAmountstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
totalstringrequiredmatches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
versionintegerrequiredmin 1 · max 2147483647
versionIdstringrequiredmin length 1 · max length 255
400
The request body, query or parameters were refused
codestringrequiredAllowed:
invalid_inputnot_foundconflictforbiddendetailanyerrorstringrequiredreasonstring401
The access token is missing, invalid or revoked
errorstringrequired403
The tenant's module is off, or the token's scope or the member's role does not permit the action
codestringrequiredAllowed:
invalid_inputnot_foundconflictforbiddendetailanyerrorstringrequiredreasonstring404
No such record, or none the caller may read
codestringrequiredAllowed:
invalid_inputnot_foundconflictforbiddendetailanyerrorstringrequiredreasonstring409
The operation conflicts with the current state
codestringrequiredAllowed:
invalid_inputnot_foundconflictforbiddendetailanyerrorstringrequiredreasonstring413
The request exceeds the route's body limit
errorstringrequired500
An unexpected failure
errorstringrequired