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 tax
  • termsstring

    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"
}


GET/v2/quotes

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 true to return only the quotes that have all the labels of labels.id.

  • currencystring

    The currency code (ISO, e.g., EUR).

  • totalnumber

    Only the quotes with this exact total.

  • archiveboolean

    true to retrieve only the archived quotes, false to 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 is issueDate.

  • directionstring

    The sort direction: asc or desc. The default is desc.

Request

GET
/v2/quotes
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
}

POST/v2/quotes

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

POST
/v2/quotes
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"
}


POST/v2/quotes/multi

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

POST
/v2/quotes/multi
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"
  }
]


GET/v2/quotes/:id

Retrieve a quote

This endpoint allows you to retrieve a quote by providing their id.

Request

GET
/v2/quotes/:id
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"
}


GET/v2/quotes/generate

Retrieve a quote as PDF

This endpoint allows you to retrieve a PDF for one or multiple quotes.

Request

GET
/v2/quotes/generate
curl https://api.lsp.expert/v2/quotes/generate/ids=6728d9ae1736399b5f810c52 \
  -u {key}:

PUT/v2/quotes/:id

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 null to 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 over status if 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

PUT
/v2/quotes/:id
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"
}

PUT/v2/quotes/:id/sync-client

Sync quote with client info

This endpoint allows you to sync the quote with the latest client info.

Parameters

Request

PUT
/v2/quotes/:id/sync-client
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/v2/quotes/:id

Delete a quote

This endpoint allows you to delete a quote.

Request

DELETE
/v2/quotes/:id
curl -X DELETE https://api.lsp.expert/v2/quotes/6728d9ae1736399b5f810c52 \
  -u {key}:

POST/v2/quotes/email

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

POST
/v2/quotes/:id
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"
}

POST/v2/quotes/:id/lines

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

POST
/v2/quotes/:id/lines
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"
}


POST/v2/quotes/:id/lines/job

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

POST
/v2/quotes/:id/lines/job
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"
}


PUT/v2/quotes/:id/lines/:line-id

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

PUT
/v2/quotes/:id/lines/:line-id
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"
}

PUT/v2/quotes/:id/lines/:line-id/sync

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

PUT
/v2/quotes/:id/lines/:line-id/sync
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"
}

PUT/v2/quotes/:id/lines/:line-id/move/:new-position

Move a quote line

This endpoint allows you to move a line to a new position.

Parameters

Request

PUT
/v2/quotes/:id/lines/:line-id/move/:new-position
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/v2/quotes/:id/lines/:line-id

Delete a quote line

This endpoint allows you to delete a quote line.

Request

DELETE
/v2/quotes/:id/lines/:line-id
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"
}