Skip to content

upsertQuoteLine

WRITE

Create or update a quote line. Keep description to a short one-line label - it is truncated on the digital quote. Long specifications belong in externalNotes (TipTap doc JSON, rendered in full under the line on the digital quote and PDF); internalNotes takes the same shape and is never shown to the customer..

POST /api/v1/sales/upsertQuoteLine
curl -X POST '<your-host>/api/v1/sales/upsertQuoteLine' \
  -H 'Authorization: Bearer <api-key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "quoteId": "string",
    "itemId": "string",
    "status": "Not Started",
    "description": "string",
    "methodType": "Purchase to Order",
    "unitOfMeasureCode": "string",
    "quantity": [],
    "taxPercent": 0
  }'
Response
{
  "id": "string"
}

Parameters

ParameterType
min length 1
min length 1
"Purchase to Order""Pull from Inventory""Make to Order"
"Not Started""In Progress""Complete""No Quote"
min 0max 1
min length 1
"Part""Material""Tool""Consumable""Service"

Input schema

schema
{
  "type": "object",
  "properties": {
    "quoteId": {
      "type": "string"
    },
    "itemType": {
      "type": "string",
      "enum": [
        "Part",
        "Material",
        "Tool",
        "Consumable",
        "Service"
      ]
    },
    "itemId": {
      "type": "string",
      "minLength": 1
    },
    "status": {
      "type": "string",
      "enum": [
        "Not Started",
        "In Progress",
        "Complete",
        "No Quote"
      ]
    },
    "estimatorId": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "minLength": 1
    },
    "methodType": {
      "type": "string",
      "enum": [
        "Purchase to Order",
        "Pull from Inventory",
        "Make to Order"
      ]
    },
    "customerPartId": {
      "type": "string"
    },
    "customerPartRevision": {
      "type": "string"
    },
    "unitOfMeasureCode": {
      "type": "string",
      "minLength": 1
    },
    "quantity": {
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 0.00001
      }
    },
    "noQuoteReason": {
      "type": "string"
    },
    "taxPercent": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "internalNotes": {},
    "externalNotes": {},
    "configuration": {},
    "customFields": {},
    "id": {
      "type": "string"
    }
  },
  "required": [
    "quoteId",
    "itemId",
    "status",
    "description",
    "methodType",
    "unitOfMeasureCode",
    "quantity",
    "taxPercent"
  ]
}