Developer docs menu

API reference / Quotes

Quotes API

8 endpoints. Scopes: Scalar360.quotes.READ, .CREATE, .UPDATE, .DELETE or .ALL. All calls need Authorization: Scalar360-oauthtoken <access_token> — see Authentication.

GET

List

/api/v1/quotes

Scope: Scalar360.quotes.READ

ParameterInTypeRequired
statusquerystringNo
customerIdquerystring (uuid)No
qquerystringNo
pagequeryintegerNo
pageSizequeryintegerNo
sortByquerystringNo
sortDirquerystringNo
startDatequerystring (date)No
endDatequerystring (date)No
Example request
curl -X GET "https://api.scalar360.com/api/v1/quotes" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Create

/api/v1/quotes

Scope: Scalar360.quotes.CREATE

Body fieldTypeRequiredNotes
customerIdstring (uuid)
customerNamestring
issueDatestring (date)
validTillstring (date)
notesstring
linesarray of objectYesrequired, not empty
lines[].itemIdstring (uuid)
lines[].descriptionstringYesrequired, not blank
lines[].hsnstring
lines[].qtynumber>= 0
lines[].unitstring
lines[].ratenumber>= 0
lines[].gstRatenumber>= 0
lines[].discountnumber>= 0
Example request
curl -X POST "https://api.scalar360.com/api/v1/quotes" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'
GET

Get

/api/v1/quotes/{id}

Scope: Scalar360.quotes.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/quotes/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
PUT

Update

/api/v1/quotes/{id}

Scope: Scalar360.quotes.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
customerIdstring (uuid)
customerNamestring
issueDatestring (date)
validTillstring (date)
notesstring
linesarray of objectYesrequired, not empty
lines[].itemIdstring (uuid)
lines[].descriptionstringYesrequired, not blank
lines[].hsnstring
lines[].qtynumber>= 0
lines[].unitstring
lines[].ratenumber>= 0
lines[].gstRatenumber>= 0
lines[].discountnumber>= 0
Example request
curl -X PUT "https://api.scalar360.com/api/v1/quotes/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"customerId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","customerName":"string","issueDate":"2026-10-12","validTill":"2026-10-12","notes":"string","lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'
POST

Cancel

/api/v1/quotes/{id}/cancel

Scope: Scalar360.quotes.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X POST "https://api.scalar360.com/api/v1/quotes/{id}/cancel" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Convert

/api/v1/quotes/{id}/convert

Scope: Scalar360.quotes.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X POST "https://api.scalar360.com/api/v1/quotes/{id}/convert" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Decision

/api/v1/quotes/{id}/decision

Scope: Scalar360.quotes.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
decisionstring
Example request
curl -X POST "https://api.scalar360.com/api/v1/quotes/{id}/decision" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"decision":"string"}'
POST

Send

/api/v1/quotes/{id}/send

Scope: Scalar360.quotes.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X POST "https://api.scalar360.com/api/v1/quotes/{id}/send" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"