Skip to content
Taylorz CRM Developers
Esc
↑↓navigate↵open⌘Jpreview

Create a quote

POST/api/v1/quotes
Authorization
AuthorizationOAuth2 access token · headerrequired

Authorization-code grant with PKCE. Clients are public and hold no secret. Discovery is published at /.well-known/oauth-authorization-server/api/auth.

Scopes:api.access
Request body
requiredapplication/json
accountRecordIdstringrequired
min length 1 · max length 255
currencystringrequired
matches ^[A-Z]{3}$
exchangeRateobject
Show properties
asOfstring<date>required
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])))$
ratestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
sourcestringrequired
min length 1 · max length 200
linesobject[]required
min items 1 · max items 500
Show properties
Array of object
componentKindstring
default: "product"
Allowed:producthardwaresoftwareserviceoptionpackage
groupNamestring
min length 1 · max length 120
pricingobject
default: {"method":"catalog"}
Show properties
One of:
object
methodstringrequired
object
costEntryIdstringrequired
min length 1 · max length 255
markupstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
methodstringrequired
object
costEntryIdstringrequired
min length 1 · max length 255
marginstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
methodstringrequired
object
costEntryIdstringrequired
min length 1 · max length 255
downstreamMarginsstring[]required
min items 1 · max items 10
methodstringrequired
retailPricestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
object
methodstringrequired
reasonstringrequired
min length 1 · max length 500
unitPricestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
productIdstringrequired
min length 1 · max length 255
quantitystringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
schedulesobject[]required
min items 1 · max items 100
Show properties
Array of object
One of:
object
amountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
kindstringrequired
startsOnstring<date>required
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])))$
object
amountstringrequired
matches ^-?(?: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])))$
intervalMonthsintegerrequired
min 1 · max 120
kindstringrequired
startsOnstring<date>required
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])))$
object
amountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
kindstringrequired
milestoneLabelstringrequired
min 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])))$
taxRatestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
numberstringrequired
min length 1 · max length 120
orderDiscountobject
Show properties
One of:
object
basisstringrequired
ratestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
object
amountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
basisstringrequired
pricingDatestring<date>required
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])))$
recordIdstringrequired
min length 1 · max length 255
Responses
201

The quote and its first version

idstringrequired
min length 1 · max length 255
totalsQuoteTotalsrequired
Show properties
currencystringrequired
matches ^[A-Z]{3}$
discountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
linesobject[]required
Show properties
Array of object
discountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
netstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxRatestringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
subtotalstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
taxableAmountstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
totalstringrequired
matches ^-?(?:0|[1-9]\d{0,15})(?:\.\d{1,8})?$
versionintegerrequired
min 1 · max 2147483647
versionIdstringrequired
min length 1 · max length 255
400

The request body, query or parameters were refused

codestringrequired
Allowed:invalid_inputnot_foundconflictforbidden
detailany
errorstringrequired
reasonstring
401

The access token is missing, invalid or revoked

errorstringrequired
403

The tenant's module is off, or the token's scope or the member's role does not permit the action

codestringrequired
Allowed:invalid_inputnot_foundconflictforbidden
detailany
errorstringrequired
reasonstring
404

No such record, or none the caller may read

codestringrequired
Allowed:invalid_inputnot_foundconflictforbidden
detailany
errorstringrequired
reasonstring
409

The operation conflicts with the current state

codestringrequired
Allowed:invalid_inputnot_foundconflictforbidden
detailany
errorstringrequired
reasonstring
413

The request exceeds the route's body limit

errorstringrequired
500

An unexpected failure

errorstringrequired
Request
curl -X POST '/api/v1/api/v1/quotes' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "accountRecordId": "string",
  "currency": "string",
  "exchangeRate": {
    "asOf": "2019-08-24",
    "rate": "string",
    "source": "string"
  },
  "lines": [
    {
      "componentKind": "product",
      "groupName": "string",
      "pricing": {
        "method": "catalog"
      },
      "productId": "string",
      "quantity": "string",
      "schedules": [
        {
          "amount": "string",
          "kind": "one_time",
          "startsOn": "2019-08-24"
        }
      ],
      "taxRate": "string"
    }
  ],
  "number": "string",
  "orderDiscount": {
    "basis": "rate",
    "rate": "string"
  },
  "pricingDate": "2019-08-24",
  "recordId": "string"
}'
Response
{
  "id": "string",
  "totals": {
    "currency": "string",
    "discount": "string",
    "lines": [
      {
        "discount": "string",
        "net": "string",
        "tax": "string",
        "taxRate": "string"
      }
    ],
    "subtotal": "string",
    "tax": "string",
    "taxableAmount": "string",
    "total": "string"
  },
  "version": 1,
  "versionId": "string"
}

Was this page helpful?