Quotes
Quotes represent a set of jobs that are quoted together.
The Quote object
Properties
idstring
Unique identifier for the object.
acceptedDatedate
The date the quote was accepted.
applyVATReverseChargeboolean
True if the reverse charge applies.
archiveboolean
True if the entity is archived.
clientobject
The client.clientNotestring
Any notes that are visible to the client.
currencyobject
The currency.customStatusobject
The custom status of the quote, if it has one. A custom status belongs to one of the statuses of the quote and is only available with a Plus, Premium or Team subscription.discountnumber
The discount percentage.
documentobject
The document configuration.filenameFormatstring
The filename format.
internalNotesarray
The notes linked to the entity.
isConflictingNumberboolean
True if the number is conflicting.
issueDatedate
The date the quote was issued.
labelsarray
The labels.linesarray
The lines.
notesstring
The notes linked to the entity.
numberstring
The quote number.
pinnedboolean
True if the entity is pinned.
rappenRoundingboolean
True if the rounding is in rappen (CHF currency only).
sentDatedate
The date the quote was sent.
sentDateStatusobject
The status of the sent date.statusnumber
The status of the quote. Valid values are:
1(draft),2(sent),3(accepted),4(refused).tax1object
The first tax.tax2object
The second taxtermsstring
The terms of the quote.
totalobject
The total of the quote.userobject
The user that created the quote.validityDatedate
The date the quote is valid until.
createdAtdate
The date and time the entity was created.
updatedAtdate
The date and time the entity was last updated.
quote object
{
"id": "6728d5531736399b5f80ffaf",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:08:19.412Z",
"labels": [],
"lines": [
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
},
"value": 2000
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 0,
"total": 280
},
"total": 280
},
"group": {
"isParent": false,
"childLines": []
},
"deliveryDate": "2024-10-28T15:00:00.000Z",
"additionalInfo": null,
"unitCost": 0.14,
"discount": 0,
"notIncludeInTaxes": false,
"lineTotal": 280,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 210,
"id": "6728d5531736399b5f80ffb2"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 28,
"id": "6728d5531736399b5f80ffb4"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 42,
"id": "6728d5531736399b5f80ffb6"
}
],
"groupMatches": false,
"id": "6728d5531736399b5f80ffb1"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"status": 1,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:08:19.412Z",
"createdAt": "2024-11-04T14:08:19.417Z",
"updatedAt": "2024-11-04T14:08:19.437Z"
}
List all quotes
This endpoint allows you to retrieve all the quotes.
Filters
All the filters are optional and can be combined. See Pagination for the rules shared by all the list endpoints (multiple values, dates, keywords).
idstring
Comma-separated list of quote ids.
statusstring
Comma-separated list of statuses. Each value is a status of the quote (
1(draft),2(sent),3(accepted),4(refused)) or the id of a custom status.numberstring
Only the quotes whose number contains this text (not case sensitive).
client.idstring
Comma-separated list of client ids.
projectManager.idstring
Comma-separated list of user ids. Only the quotes of the clients managed by these users (project managers) are returned.
lines.job.idstring
Comma-separated list of job ids. Only the quotes that have a line for one of these jobs are returned.
labels.idstring
Comma-separated list of label ids. The quotes that have at least one of these labels are returned (see
labels.all).labels.allboolean
Set to
trueto return only the quotes that have all the labels oflabels.id.currencystring
The currency code (ISO, e.g., EUR).
totalnumber
Only the quotes with this exact total.
archiveboolean
trueto retrieve only the archived quotes,falseto exclude them. If not provided, both are returned.issueDateFromdate
Only the quotes whose issue date is on or after this date (ISO 8601).
issueDateTodate
Only the quotes whose issue date is before this date (ISO 8601).
validityDateFromdate
Only the quotes whose validity date is on or after this date (ISO 8601).
validityDateTodate
Only the quotes whose validity date is before this date (ISO 8601).
Sorting
sortstring
The field to sort by. One of:
number,status,client.name,issueDate,validityDate,total. The default isissueDate.directionstring
The sort direction:
ascordesc. The default isdesc.
Request
curl -G https://api.lsp.expert/v2/quotes \
-u {key}:
Response
{
"items": [{
"id": "6728d5531736399b5f80ffaf",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:08:19.412Z",
"labels": [],
"lines": [
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
},
"value": 2000
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 0,
"total": 280
},
"total": 280
},
"group": {
"isParent": false,
"childLines": []
},
"deliveryDate": "2024-10-28T15:00:00.000Z",
"additionalInfo": null,
"unitCost": 0.14,
"discount": 0,
"notIncludeInTaxes": false,
"lineTotal": 280,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 210,
"id": "6728d5531736399b5f80ffb2"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 28,
"id": "6728d5531736399b5f80ffb4"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 42,
"id": "6728d5531736399b5f80ffb6"
}
],
"groupMatches": false,
"id": "6728d5531736399b5f80ffb1"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"status": 1,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:08:19.412Z",
"createdAt": "2024-11-04T14:08:19.417Z",
"updatedAt": "2024-11-04T14:08:19.437Z"
},
{...},
{...}
],
"pageSize": 20,
"page": 1,
"totalPages": 1,
"totalItems": 2,
"hasNextPage": false,
"hasPreviousPage": false
}
Create a quote
This endpoint allows you to add a new quote.
Parameters
clientstring Required
The client id.
currencystring Required
The currency code (ISO, e.g., EUR).
Request
curl https://api.lsp.expert/v2/quotes \
-u {key}: \
-d client="6718a1350e27164043ce9e80" \
-d currency="EUR"
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "002.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:23:41.604Z",
"labels": [],
"lines": [],
"number": "002",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"status": 1,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 0,
"subtotalTaxable": 0,
"subtotalWithoutTaxes": 0,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 0,
"value": 0.21
},
"tax2": null,
"total": 0
},
"user": {
"id": "6718a0b50e27164043ce9130",
"name": "Degallaix Corp."
},
"validityDate": "2024-11-14T14:23:41.604Z",
"createdAt": "2024-11-04T14:23:41.605Z",
"updatedAt": "2024-11-04T14:23:41.611Z"
}
Create a quote for jobs
This endpoint allows you to add a new quote and automatically add several lines for jobs.
Parameters
jobsarray
The list of jobs ids.
Request
curl https://api.lsp.expert/v2/quotes/multi \
-u {key}: \
-d ids=["6718a1ea0e27164043ceb62d", "6719f4f853737267e419408d"]
Response
[
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"id": "6718a1ea0e27164043ceb62d",
"groupId": "671f9cd7fca5590b104135a6",
"name": "Third job",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"deliveryDate": "2024-10-25T08:00:00.000Z",
"additionalInfo": null,
"unitCost": 0.14,
"discount": 0,
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"value": 1000,
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
}
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 140,
"discount": 0,
"total": 140
},
"total": 140
},
"notIncludeInTaxes": false,
"lineTotal": 140,
"matches": [],
"groupMatches": false,
"group": {
"isParent": false,
"childLines": []
},
"id": "6728d9ae1736399b5f810c5c"
},
{
"job": {
"id": "6719f4f853737267e419408d",
"groupId": "671f9cd7fca5590b104135a6",
"name": "Fourth job",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"deliveryDate": "2024-10-25T08:00:00.000Z",
"additionalInfo": null,
"unitCost": 0.14,
"discount": 0,
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"value": 1000,
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
}
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 140,
"discount": 0,
"total": 140
},
"total": 140
},
"notIncludeInTaxes": false,
"lineTotal": 140,
"matches": [],
"groupMatches": false,
"group": {
"isParent": false,
"childLines": []
},
"id": "6728d9ae1736399b5f810c66"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"status": 1,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:26:54.795Z"
}
]
Retrieve a quote
This endpoint allows you to retrieve a quote by providing their id.
Request
curl https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52 \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "002.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:23:41.604Z",
"labels": [],
"lines": [],
"number": "002",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"status": 1,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 0,
"subtotalTaxable": 0,
"subtotalWithoutTaxes": 0,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 0,
"value": 0.21
},
"tax2": null,
"total": 0
},
"user": {
"id": "6718a0b50e27164043ce9130",
"name": "Degallaix Corp."
},
"validityDate": "2024-11-14T14:23:41.604Z",
"createdAt": "2024-11-04T14:23:41.605Z",
"updatedAt": "2024-11-04T14:23:41.611Z"
}
Retrieve a quote as PDF
This endpoint allows you to retrieve a PDF for one or multiple quotes.
Request
curl https://api.lsp.expert/v2/quotes/generate/ids=6728d9ae1736399b5f810c52 \
-u {key}:
Update a quote
This endpoint allows you to perform an update on a quote. Any parameters not provided will be left unchanged.
Parameters
acceptedDatestring,
The date the quote was accepted.
applyVATReverseChargeboolean
True if the reverse charge applies.
clientAddressCitystring,
The city of the client address.
clientAddressCountrystring,
The country of the client address (ISO code).
clientAddressLine1string,
The first line of the client address.
clientAddressLine2string,
The second line of the client address.
clientAddressNamestring,
The name of the client address.
clientAddressPostalCodestring,
The postal code of the client address.
clientAddressStatestring,
The state of the client address.
clientDetailsstring,
Any details about the client.
clientNationalIdentificationNumberstring,
The national identification number of the client.
clientVatNumberstring,
The VAT number of the client.
customStatusstring,null
The id of a custom status, or
nullto remove the current one. Setting a custom status also sets the status of the quote to the status the custom status belongs to, and it takes precedence overstatusif both are provided. If the quote ends up in another status (for example because of an automatic rule), the custom status is removed. Custom statuses are only available with a Plus, Premium or Team subscription.discountnumber
The discount in percentage.
documentstring
The document id.
filenameFormatstring
The filename format.
issueDatestring
The date the quote was issued.
notesstring,
The notes linked to the entity.
numberstring
The number of the quote.
pinnedboolean
True if the entity is pinned.
rappenRoundingboolean
True if the rounding is in rappen (CHF only).
sentDatestring,
The date the quote was sent.
statusnumber
One of the following value:
1,2,3,4.tax1string,
The first tax id.
tax2string,
The second tax id.
termsstring,
The terms of the quote.
validityDatestring,
the date the quote is valid until.
Request
curl -X PUT https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52 \
-u {key}: \
-d status=2
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
//...
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:33:40.749Z"
}
Sync quote with client info
This endpoint allows you to sync the quote with the latest client info.
Parameters
Request
curl -X PUT https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/sync-client \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
//...
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:33:40.749Z"
}
Delete a quote
This endpoint allows you to delete a quote.
Request
curl -X DELETE https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52 \
-u {key}:
Send via email
This endpoint allows you to send a quote via email.
Parameters
ccarray
The list of contact ids to cc (if not provided, use the default cc contacts of the client).
contentstring
The content of the email (if not provided, use the default content of the document configuration for the client).
documentSettingsstring
The document id to use for the email (if not provided, use the default document of the client).
isReminderboolean Required
True if the email is a reminder.
subjectstring
The subject of the email (if not provided, use the default subject of the document configuration for the client).
toarray
The list of contact ids to send the emails to (if not provided, use the default to contacts of the client).
Request
curl https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52 \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
//...
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 280,
"subtotalTaxable": 280,
"subtotalWithoutTaxes": 280,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 58.8,
"value": 0.21
},
"tax2": null,
"total": 338.8
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:33:40.749Z"
}
Add line
This endpoint allows you to add a line on the quote.
Parameters
namestring Required
The name of the line.
additionalInfostring
Any additional info.
deliveryDatestring
The delivery date.
discountnumber
The discount applied on the line (percentage).
extraChargeAmountnumber
The extra charge amount.
extraChargeDescriptionstring,null
The extra charge description.
extraChargePercentagenumber
The extra charge percentage.
extraChargeTypestring
One of the following value:
amount,percentage.projectManagerstring
The project manager id.
purchaseOrderstring
The purchase order.
quantitynumber Required
The quantity.
quantityTypestring
The quantity type id.
unitCostnumber Required
The cost per unit.
Request
curl https://api.lsp.expert/v2/quotes/671f9a64186d40de4869f3c4/lines \
-u {key}: \
-d name="DHL fee" \
-d quantity=1 \
-d unitCost=13
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"name": "DHL fee",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"unitCost": 13,
"discount": 0,
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0,
"description": null
},
"quantity": {
"value": 1
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 13,
"discount": 0,
"total": 13
},
"total": 13
},
"notIncludeInTaxes": false,
"lineTotal": 13,
"matches": [],
"groupMatches": false,
"group": {
"isParent": false,
"childLines": []
},
"id": "6728dd291736399b5f810f92"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 13,
"subtotalTaxable": 13,
"subtotalWithoutTaxes": 13,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 2.73,
"value": 0.21
},
"tax2": null,
"total": 15.73
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:41:45.261Z"
}
Add line for a job
This endpoint allows you to add a line on the quote for a job.
Parameters
jobIdstring Required
The job id.
Request
curl https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/lines/job \
-u {key}: \
-d jobId="671f9ec7fca5590b10414931"
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"name": "DHL fee",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0,
"description": null
},
"quantity": {
"value": 1
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 13,
"discount": 0,
"total": 13
},
"total": 13
},
"group": {
"isParent": false,
"childLines": []
},
"unitCost": 13,
"discount": 0,
"notIncludeInTaxes": false,
"lineTotal": 13,
"matches": [],
"groupMatches": false,
"id": "6728dd291736399b5f810f92"
},
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"deliveryDate": "2024-10-28T15:00:00.000Z",
"additionalInfo": null,
"unitCost": 0.14,
"discount": 0.1,
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"value": 2000,
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
}
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 28,
"total": 252
},
"total": 252
},
"notIncludeInTaxes": false,
"lineTotal": 252,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 189,
"id": "6728dd791736399b5f81106b"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 25.2,
"id": "6728dd791736399b5f81106d"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 37.8,
"id": "6728dd791736399b5f81106f"
}
],
"groupMatches": false,
"group": {
"isParent": false,
"childLines": []
},
"id": "6728dd791736399b5f81106a"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 265,
"subtotalTaxable": 265,
"subtotalWithoutTaxes": 265,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 55.65,
"value": 0.21
},
"tax2": null,
"total": 320.65
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:43:05.884Z"
}
Update a quote line
This endpoint allows you to perform an update on a quote line. Any parameters not provided will be left unchanged.
Parameters
namestring
The name of the line.
additionalInfostring,null
Any additional info.
deliveryDatestring,null
The delivery date.
discountnumber
The discount applied on the line (percentage).
extraChargeAmountnumber
The extra charge amount.
extraChargeDescriptionstring,null
The extra charge description.
extraChargePercentagenumber
The extra charge percentage.
extraChargeTypestring
One of the following value:
amount,percentage.groupMatchesboolean
True if the matches are grouped on the line.
notIncludeInTaxesboolean
True if the line should not be included in the taxes.
projectManagerstring,null
The project manager id.
quantitynumber
The quantity.
quantityTypestring,null
The quantity type id.
unitCostnumber
The cost per unit.
Request
curl -X PUT https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/lines/6728dd791736399b5f81106a \
-u {key}: \
-d name="Brochure 2024 (edit)"
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024 (edit)",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
},
"value": 2000
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 28,
"total": 252
},
"total": 252
},
"group": {
"isParent": false,
"childLines": []
},
"deliveryDate": "2024-10-27T23:00:00.000Z",
"unitCost": 0.14,
"discount": 0.1,
"notIncludeInTaxes": false,
"lineTotal": 252,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 189,
"id": "6728dd791736399b5f81106b"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 25.2,
"id": "6728dd791736399b5f81106d"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 37.8,
"id": "6728dd791736399b5f81106f"
}
],
"groupMatches": false,
"id": "6728dd791736399b5f81106a"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 252,
"subtotalTaxable": 252,
"subtotalWithoutTaxes": 252,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 52.92,
"value": 0.21
},
"tax2": null,
"total": 304.92
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:46:54.704Z"
}
Sync a quote line with the job
This endpoint allows you to sync a line with the related job (quantity, unit cost, etc.).
Parameters
Request
curl -X PUT https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/lines/6728dd791736399b5f81106a/sync \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024 (edit)",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
},
"value": 2000
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 28,
"total": 252
},
"total": 252
},
"group": {
"isParent": false,
"childLines": []
},
"deliveryDate": "2024-10-27T23:00:00.000Z",
"unitCost": 0.14,
"discount": 0.1,
"notIncludeInTaxes": false,
"lineTotal": 252,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 189,
"id": "6728dd791736399b5f81106b"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 25.2,
"id": "6728dd791736399b5f81106d"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 37.8,
"id": "6728dd791736399b5f81106f"
}
],
"groupMatches": false,
"id": "6728dd791736399b5f81106a"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 252,
"subtotalTaxable": 252,
"subtotalWithoutTaxes": 252,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 52.92,
"value": 0.21
},
"tax2": null,
"total": 304.92
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:46:54.704Z"
}
Move a quote line
This endpoint allows you to move a line to a new position.
Parameters
Request
curl -X PUT https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/lines/6728dd791736399b5f81106a/move/1 \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [
{
"job": {
"id": "671f9ec7fca5590b10414931",
"name": "Brochure 2024 (edit)",
"isFixedPrice": false,
"minimumFeeApplied": false
},
"service": {
"id": "6718a0f90e27164043ce95c0",
"name": "Translation"
},
"extraCharge": {
"type": "percentage",
"percentage": 0,
"amount": 0
},
"quantity": {
"quantityType": {
"id": "6718a0f90e27164043ce96a7",
"name": "Words"
},
"value": 2000
},
"totalDetails": {
"extraCharge": {
"amount": 0,
"discount": 0,
"total": 0
},
"subtotal": {
"amount": 280,
"discount": 28,
"total": 252
},
"total": 252
},
"group": {
"isParent": false,
"childLines": []
},
"deliveryDate": "2024-10-27T23:00:00.000Z",
"unitCost": 0.14,
"discount": 0.1,
"notIncludeInTaxes": false,
"lineTotal": 252,
"matches": [
{
"match": {
"id": "671f9eaafca5590b1041459f",
"name": "0%"
},
"unitCost": 0.14,
"quantity": 1500,
"lineTotal": 189,
"id": "6728dd791736399b5f81106b"
},
{
"match": {
"id": "671f9ea7fca5590b10414546",
"name": "100%"
},
"unitCost": 0.14,
"quantity": 200,
"lineTotal": 25.2,
"id": "6728dd791736399b5f81106d"
},
{
"match": {
"id": "671f9eaefca5590b104145fa",
"name": "Fuzzies"
},
"unitCost": 0.14,
"quantity": 300,
"lineTotal": 37.8,
"id": "6728dd791736399b5f81106f"
}
],
"groupMatches": false,
"id": "6728dd791736399b5f81106a"
}
],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 252,
"subtotalTaxable": 252,
"subtotalWithoutTaxes": 252,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 52.92,
"value": 0.21
},
"tax2": null,
"total": 304.92
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:46:54.704Z"
}
Delete a quote line
This endpoint allows you to delete a quote line.
Request
curl -X DELETE https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52/lines/6728dd791736399b5f81106a \
-u {key}:
Response
{
"id": "6728d9ae1736399b5f810c52",
"applyVATReverseCharge": false,
"archive": false,
"client": {
"id": "6718a1350e27164043ce9e80",
"name": "Microsoft",
"address": {
"name": "Microsoft"
}
},
"currency": {
"code": "EUR",
"symbol": "€"
},
"discount": 0,
"document": {
"id": "6718a0b50e27164043ce915a",
"name": "English"
},
"filename": "001.pdf",
"filenameFormat": "[number]",
"internalNotes": [],
"isConflictingNumber": false,
"issueDate": "2024-11-04T14:26:54.768Z",
"labels": [],
"lines": [],
"number": "001",
"object": "quote",
"pinned": false,
"rappenRounding": false,
"sentDate": "2024-11-04T14:33:40.741Z",
"status": 2,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"value": 0.21
},
"total": {
"discount": {
"amount": 0,
"value": 0
},
"subtotal": 0,
"subtotalTaxable": 0,
"subtotalWithoutTaxes": 0,
"tax1": {
"id": "6718a0fd0e27164043ce97ae",
"name": "VAT",
"amount": 0,
"value": 0.21
},
"tax2": null,
"total": 0
},
"user": {
"id": "6718a0b50e27164043ce912e",
"name": "Cédric Doe"
},
"validityDate": "2024-11-14T14:26:54.768Z",
"createdAt": "2024-11-04T14:26:54.769Z",
"updatedAt": "2024-11-04T14:49:54.701Z"
}