Path: api/v1/quotes
This API is JSON:API compliant.
This endpoint supports the following methods:
GET PATCH
This endpoint requires an OAuth bearer token, and returns errors in a standard shape. See API Conventions for authentication, error responses and paging, which apply to every endpoint.
The resource type for this endpoint is Quote
The identifier is quoteno
Relationships
A relationship links this Quote to another resource. By default only the related resource's type and id are returned. Relationships marked Includable can be embedded in the response via the include query parameter (see Includes below). To set or change a relationship, send a resource identifier (type and id) for it. Postable means the relationship can be set when creating the resource (POST); Patchable means it can be changed when updating an existing resource (PATCH). Some relationships are Postable but not Patchable — they can be set at creation but not changed afterwards. A value sent for a relationship that is not Postable/Patchable in that context is not applied.
| Relationship | Type | Returns | Includable | Postable | Patchable |
|---|---|---|---|---|---|
| accountManager | CardFile | object | ✗ | ✗ | ✗ |
| asset | Asset | object | ✗ | ✗ | ✗ |
| comments | QuoteComment | array | ✓ | ✗ | ✗ |
| contract | Contract | object | ✗ | ✗ | ✓ |
| customer | CardFile | object | ✓ | ✗ | ✗ |
| from | CardFile | object | ✓ | ✗ | ✗ |
| item | Item | object | ✗ | ✗ | ✗ |
| name | CardFile | object | ✗ | ✗ | ✗ |
| quote | Quote | object | ✗ | ✗ | ✗ |
| ship | CardFile | object | ✓ | ✗ | ✗ |
| stock | QuoteStock | array | ✓ | ✗ | ✗ |
Includes
Use the include query parameter to embed Includable relationships in a single response, for example:GET /api/v1/quotes/{quoteno}?include=comments,customer,from,ship,stock
Embedded resources are returned in a top-level included array, not nested inside the relationship. Match each one back to its relationship by type and id.
For example, requesting include=comments returns the comments reference under relationships and the full resource in the included array. The reference and the included entry share the same type and id:
GET /api/v1/quotes/{quoteno}?include=comments
{
"data": {
"type": "Quote",
"id": "1001",
"relationships": {
"comments": {
"data": [ { "type": "QuoteComment", "id": "2002" } ]
}
}
},
"included": [
{
"type": "QuoteComment",
"id": "2002",
"attributes": { ... }
}
]
}
Attributes
The Quote resource type attributes are as follows:
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| BranchCode | string | The branch code. On update, must be a configured branch belonging to the quote's company. Branches are optional in Jim2 - this is only set when your site is configured to use branches. |
|
| companyCode | string | ✓ | The company code. |
| currencyCode | string | ✓ | The currency code. |
| CustRef | string | The customer's reference for the quote. | |
| dateIn | string (DateTime in ISO format) | ✓ | The quote's date in. |
| DateReq | string (DateTime in ISO format) | The date the quote is required by. | |
| DateValid | string (DateTime in ISO format) | The date the quote is valid until. | |
| exchangeRate | number | ✓ | The currency exchange rate applied to the quote. |
| FaultDesc | string | The fault description. | |
| FooterText | string | The footer text printed at the bottom of the quote. | |
| Freight | number | The freight charge amount. | |
| FreightTax | number | The tax on the freight charge. | |
| GLDeptCode | string | The GL department code. On update, must match a configured GL department. GL departments are optional in Jim2 - this is only set when your site is configured to use GL departments. |
|
| HeaderText | string | The header text printed at the top of the quote. | |
| InvoiceDesc | string | The description shown on the invoice. | |
| ItemDesc | string | The item description. | |
| JobNo | integer | The number of the job created from this quote, if any. | |
| ManfQty | number | The manufacturing quantity. | |
| OurRef | string | Our reference for the quote. | |
| priceLevel | string | ✓ | The price level description. |
| Priority | string | The quote's priority. | |
| ProbabilityPcnt | integer | The probability percentage of winning the quote. | |
| ProjectNo | integer | The contract/project number associated with the quote. | |
| quoteDetails | object | ✓ | The customer (bill-to) address, ship-to address and freight details for the quote. See the quoteDetails section below. |
| rateLocked | boolean | ✓ | Whether the quote's currency exchange rate is locked. |
| RejectionReasonNo | integer | The rejection reason number, if the quote was rejected. | |
| SerialNo | string | The serial number. | |
| source | string | ✓ | The quote's source name, identifying where the quote originated. |
| sourceValue | string | ✓ | The value associated with the quote's source. |
| Status | string | The quote's current status. Setting it changes the quote status (see the quote's setStatus). | |
| StockLocationCode | string | The stock location code. On update, must match a configured stock location. | |
| SubBranchCode | string | The sub-branch code. On update, must match a configured sub-branch. Sub-branches are optional in Jim2 - this is only set when your site is configured to use sub-branches. |
|
| TaxInc | boolean | Whether prices are calculated from the tax-paid (tax-inclusive) amount. | |
| taxPaid | boolean | ✓ | Whether the quote pays tax. |
| totalTF | number | ✓ | The quote total excluding tax (tax-free). |
| totalTP | number | ✓ | The quote total including tax (tax-paid). |
| Type | string | The quote's free-text Type field. |
Attributes of the quoteDetails object.
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| customer | object | ✓ | The customer (bill-to) name and address details stored on the quote. See the quoteDetails.customer section below. |
| freight | object | ✓ | The freight charge, tax and dispatch details for the quote. See the quoteDetails.freight section below. |
| ship | object | ✓ | The ship-to name and address details stored on the quote. See the quoteDetails.ship section below. |
Attributes of the quoteDetails.customer object.
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| attn | string | ✓ | The customer contact (attention) name. |
| country | string | ✓ | The customer country. |
| isAddressResidential | boolean | ✓ | Whether the customer address is residential. |
| name | string | ✓ | The customer name. |
| orderNo | string | ✓ | The customer's order number. |
| postCode | string | ✓ | The customer post code. |
| state | string | ✓ | The customer state. |
| streetAddress | string | ✓ | The customer street address. |
| suburb | string | ✓ | The customer suburb. |
Attributes of the quoteDetails.freight object.
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| amount | number | ✓ | The freight charge amount. |
| dispatch | array of object | ✓ | The dispatch / consignment details for the shipment. See the quoteDetails.freight.dispatch section below. |
| tax | number | ✓ | The tax on the freight charge. |
| taxCode | string | ✓ | The tax code applied to the freight charge. |
Attributes of the quoteDetails.ship object.
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| attn | string | ✓ | The delivery (ship-to) contact (attention) name. |
| country | string | ✓ | The delivery country. |
| isAddressResidential | boolean | ✓ | Whether the delivery address is residential. |
| name | string | ✓ | The delivery (ship-to) name. |
| postCode | string | ✓ | The delivery post code. |
| state | string | ✓ | The delivery state. |
| streetAddress | string | ✓ | The delivery street address. |
| suburb | string | ✓ | The delivery suburb. |
Attributes of each element in the quoteDetails.freight.dispatch array.
| Attribute | Type | Read-only | Description |
|---|---|---|---|
| noOfCartons | integer | ✓ | The number of cartons in the shipment. |
| shipRef | string | ✓ | The carrier consignment / shipping reference. |
| shipVia | string | ✓ | The carrier or method the goods are shipped via. |
Path: api/v1/quotes?filter[dateIn][-gt]2000-01-01T00%3A00%3A00%2B00%3A00&filter[status]=Web%20Quote&filter[isActive]=True For more information see Resource Filtering. Quote Filter uses list technology to retreive data. Names should match those on the list screen in Jim List Help. Response: This example shows the maximum set of fields the endpoint can return, all populated. A real response only contains the data that applies to that record, so fields that are empty or not relevant are omitted — do not assume every field shown here will be present in every response. This is a list. To keep the example readable, only the first item below is written out; the later items have been trimmed down in this documentation. In a real response each item comes back with the data applicable to that record (as described above). Side-loading related resources with the include query parameter is not supported on list endpoints: an include parameter is ignored here and no included section is returned. To retrieve a related resource, request it directly using the id shown in each item's relationships, or use the single-resource (get by id) endpoint, which does support include.
Example GET (Return using filter)
Filtering
Field Type Comment
accountManager.id Int Account Manager User CardFile id
branchCode Text Branch code
cardGroups Text Comma separated list of CardFile Group Ids to match customer on the quote
companyCode Text Company code
contract.id Int Quotes with project Id
currencyCode Text Quotes that are for a specified currency code
customer.id Int Customer CardFile id
custRef Text The Cust Ref# field
dateIn DateTime Gets quotes created with specified operator. ISO formatted date
dateRequired DateTime Gets quotes with Required by with specified operator. ISO formatted date
dateValid DateTime Gets quotes with Valid until with specified operator. ISO formatted date
from.id Int From CardFile id
gLDeptCode Text GLDept code
hasUnreadEmail Bool Is there any unread emails on the quote
isActive Bool Status other than CANCEL, REJECTED, ACCEPTED
isFinished Bool Status equal to REJECTED or ACCEPTED
item.id Int Item Id on the quote
itemGroup Text Comma separated list of Item Group Ids to match item on the quote
itemMake Text The Item make that is on the quote
itemModel Text The Item model that is on the quote
lastModified DateTime Gets quotes with Last Modified with specified operator. ISO formatted date
name.id Int Name User CardFile id
priceLevel Text Customer matching a Price Level on the quote
priority Text The priority text of the quote
probability Text Quotes matching Probability field
projectGroup Text Comma separated list of Project Group Ids to match project on the quote
projectPriceLevel Text Quotes with project with certain Price level
projectType Text Quotes with project with certain Type
quote.id Int
QuoteStock.stockId Int Quotes that contain the stockId
rejectionReason Text Matches the Rejection Reason on the quote
ship.id Int Ship CardFile id
sourceName Text Quotes created by Source Name
sourceValue Text Quotes created by external source with Id
status Text The status text of the quote
stockGroup Text Comma separated list of Stock Group Ids to match stock on the quote
subBranchCode Text SubBranch code
taxPaid Bool Is tax paid on the quote
type Text Quotes matching the Type field
{
"data": [
{
"id": "12",
"type": "Quote",
"attributes": {
"Status": "Web Quote",
"Priority": "Normal",
"ProbabilityPcnt": 75,
"Type": "Normal",
"CustRef": "WEB-123",
"OurRef": "OUR-012",
"ItemDesc": "Sale",
"InvoiceDesc": "Invoice for quote 12",
"FaultDesc": "Screen flickers on startup",
"SerialNo": "SN-2024-00099",
"HeaderText": "Thank you for your enquiry",
"FooterText": "Terms and conditions apply",
"dateIn": "2024-09-05T10:30:00",
"DateReq": "2024-09-19T00:00:00",
"DateValid": "2024-10-05T00:00:00",
"JobNo": 1030,
"ProjectNo": 4,
"RejectionReasonNo": 1,
"ManfQty": 2.0,
"Freight": 12.00,
"FreightTax": 1.20,
"BranchCode": "SYD",
"SubBranchCode": "SSYD",
"GLDeptCode": "SALES",
"StockLocationCode": "NSW",
"priceLevel": "Dealer",
"taxPaid": true,
"TaxInc": true,
"currencyCode": "AUD",
"exchangeRate": 1.0000,
"rateLocked": true,
"companyCode": "COMPANY.1",
"source": "WebAPI",
"sourceValue": "192.168.1.100",
"totalTF": 245.45,
"totalTP": 270.00,
"quoteDetails": {
"customer": {
"attn": "John Smith",
"name": "Simple Customer #1",
"isAddressResidential": false,
"streetAddress": "123 Main St",
"suburb": "Sydney",
"state": "NSW",
"postCode": "2000",
"country": "Australia",
"orderNo": "PO-12345"
},
"ship": {
"attn": "Jane Doe",
"name": "Simple Customer #1",
"isAddressResidential": true,
"streetAddress": "456 Delivery Rd",
"suburb": "Melbourne",
"state": "VIC",
"postCode": "3000",
"country": "Australia"
},
"freight": {
"amount": 12.00,
"tax": 1.20,
"taxCode": "GST",
"dispatch": [
{
"shipVia": "Australia Post",
"shipRef": "AP-77665",
"noOfCartons": null
}
]
}
}
},
"relationships": {
"contract": {
"data": {
"id": "4",
"type": "Contract"
}
},
"customer": {
"data": {
"id": "3",
"type": "CardFile"
}
},
"from": {
"data": {
"id": "3",
"type": "CardFile"
}
},
"ship": {
"data": {
"id": "28",
"type": "CardFile"
}
},
"asset": {
"data": {
"id": "1",
"type": "Asset"
}
},
"comments": {
"data": [
{
"id": "12-7",
"type": "QuoteComment"
},
{
"id": "12-1",
"type": "QuoteComment"
}
]
},
"stock": {
"data": [
{
"id": "12-3",
"type": "QuoteStock"
},
{
"id": "12-4",
"type": "QuoteStock"
}
]
}
}
},
{
"id": "15",
"type": "Quote",
"attributes": {
"Status": "Web Quote",
"CustRef": "WEB-456"
}
}
]
}
Path: api/v1/quotes/10?include=stock,comments Response: This example shows the maximum set of fields the endpoint can return, all populated. A real response only contains the data that applies to that record, so fields that are empty or not relevant are omitted — do not assume every field shown here will be present in every response.
Example GET (Return specific)
{
"data": {
"id": "10",
"type": "Quote",
"attributes": {
"Status": "Booked",
"Priority": "Normal",
"ProbabilityPcnt": 50,
"Type": "Normal",
"CustRef": "CUST-REF-001",
"OurRef": "OUR-REF-001",
"ItemDesc": "Sale",
"InvoiceDesc": "Invoice for quote 10",
"FaultDesc": "Unit intermittently powers off under load",
"SerialNo": "SN-2024-00187",
"HeaderText": "Thank you for your enquiry",
"FooterText": "Terms and conditions apply",
"dateIn": "2024-09-02T16:16:00",
"DateReq": "2024-09-15T00:00:00",
"DateValid": "2024-10-02T00:00:00",
"JobNo": 1045,
"ProjectNo": 4,
"RejectionReasonNo": 2,
"ManfQty": 5.0,
"Freight": 15.00,
"FreightTax": 1.50,
"BranchCode": "SYD",
"SubBranchCode": "SSYD",
"GLDeptCode": "SALES",
"StockLocationCode": "NSW",
"priceLevel": "Dealer",
"taxPaid": true,
"TaxInc": true,
"currencyCode": "AUD",
"exchangeRate": 1.0000,
"rateLocked": true,
"companyCode": "COMPANY.1",
"source": "WebAPI",
"sourceValue": "192.168.1.100",
"totalTF": 27.27,
"totalTP": 30.00,
"quoteDetails": {
"customer": {
"attn": "John Smith",
"name": "Simple Customer #1",
"isAddressResidential": false,
"streetAddress": "123 Main St",
"suburb": "Sydney",
"state": "NSW",
"postCode": "2000",
"country": "Australia",
"orderNo": "PO-12345"
},
"ship": {
"attn": "Jane Doe",
"name": "Simple Customer #1",
"isAddressResidential": true,
"streetAddress": "456 Delivery Rd",
"suburb": "Melbourne",
"state": "VIC",
"postCode": "3000",
"country": "Australia"
},
"freight": {
"amount": 15.00,
"tax": 1.50,
"taxCode": "GST",
"dispatch": [
{
"shipVia": "Australia Post",
"shipRef": "AP-99887",
"noOfCartons": null
}
]
}
}
},
"relationships": {
"contract": { "data": { "type": "Contract", "id": "4" } },
"customer": { "data": { "type": "CardFile", "id": "3" } },
"from": { "data": { "type": "CardFile", "id": "3" } },
"ship": { "data": { "type": "CardFile", "id": "3" } },
"asset": { "data": { "type": "Asset", "id": "1" } },
"comments": {
"data": [
{ "type": "QuoteComment", "id": "10-2" },
{ "type": "QuoteComment", "id": "10-1" }
]
},
"stock": {
"data": [
{ "type": "QuoteStock", "id": "10-3" }
]
}
},
"links": {
"self": "/api/v1/quotes/10"
}
},
"included": [
{
"id": "10-3",
"type": "QuoteStock",
"attributes": {
"qty": 1.0,
"unitPrice": 30.00,
"unitPriceTF": 27.27,
"unitPriceTP": 30.00,
"configNo": 812,
"addinit": "SYS",
"adddate": "2024-09-02T16:16:00",
"stockId": 6,
"stockCode": "KEYBOARD",
"unit": "EACH",
"description": "Keyboard",
"modifyinit": "SYS",
"modifydate": "2024-09-02T16:17:13"
},
"relationships": {
"stock": {
"data": {
"type": "QuoteStock",
"id": "6"
}
}
}
},
{
"id": "10-2",
"type": "QuoteComment",
"attributes": {
"include": true,
"status": "CANCEL",
"comment": "Customer requested cancellation of the previous revision",
"modifyInit": "API",
"modifyDate": "2025-03-27T13:56:32+11:00"
}
},
{
"id": "10-1",
"type": "QuoteComment",
"attributes": {
"include": true,
"status": "Booked",
"comment": "Initial enquiry logged from web form",
"modifyInit": "SYS",
"modifyDate": "2024-09-02T16:16:21+10:00"
}
},
{
"id": "3",
"type": "CardFile",
"attributes": {
"cardNo": 3,
"cardCode": "SIMPLE.CUST.1",
"contact": "John Smith",
"name": "Simple Customer #1",
"aBN": "53 004 085 616",
"aCN": "004 085 616",
"shipVia": "Australia Post",
"shipAmount": 15.00,
"branchCode": "SYD",
"subBranchCode": "SSYD",
"gLDeptCode": "SALES",
"customer": {
"terms": "30 Days",
"priceLevel": "Dealer",
"custPONo": "PO-12345",
"currencyCode": "AUD",
"creditHold": "OFF( Auto )",
"creditLimit": 25000.00,
"accFeePerc": 2.50,
"bPayRefNo": "1234567890",
"backorder": "Allow Backorders",
"requiredDays": 7,
"requiredHours": 0,
"taxPaid": true,
"taxExclCode": "GST",
"taxInclCode": "GSTINC",
"batchInvGroupBy": "Customer",
"sendStatementVia": "Email",
"sendInvVia": "Email",
"groups": [
{
"type": "Region",
"id": 1,
"name": "East Coast"
}
]
},
"address": {
"isAddressResidential": false,
"streetAddress": "123 Main St",
"suburb": "Sydney",
"state": "NSW",
"postCode": "2000",
"country": "Australia"
},
"delAddress": {
"isAddressResidential": true,
"streetAddress": "456 Delivery Rd",
"suburb": "Melbourne",
"state": "VIC",
"postCode": "3000",
"country": "Australia"
}
},
"relationships": {
"contacts": {
"data": [
{ "type": "CardFileContact", "id": "3-1" }
]
},
"accountManager": {
"data": { "type": "CardFile", "id": "16" }
},
"parent": {
"data": { "type": "CardFile", "id": "2" }
}
}
}
]
}
Path: api/v1/quotes/10 Request: Response: This example shows the maximum set of fields the endpoint can return, all populated. A real response only contains the data that applies to that record, so fields that are empty or not relevant are omitted — do not assume every field shown here will be present in every response.
Example PATCH
{
"data": {
"id": "10",
"type": "Quote",
"relationships": {
"contract": {
"data": {
"type": "Contract",
"id": "5001"
}
}
},
"attributes": {
"Status": "CANCEL",
"Priority": "Urgent",
"ProbabilityPcnt": 90,
"Type": "Normal",
"CustRef": "UPDATED-REF",
"OurRef": "OUR-002",
"ItemDesc": "Updated item description",
"InvoiceDesc": "Updated invoice description",
"FaultDesc": "Updated fault description",
"SerialNo": "SN-12345",
"HeaderText": "Updated header",
"FooterText": "Updated footer",
"DateReq": "2024-12-25T00:00:00",
"DateValid": "2025-01-31T00:00:00",
"JobNo": 240001,
"ProjectNo": 5001,
"RejectionReasonNo": 3,
"ManfQty": 10,
"Freight": 25.00,
"FreightTax": 2.50,
"BranchCode": "SYD",
"SubBranchCode": "SSYD",
"GLDeptCode": "SALES",
"StockLocationCode": "MAIN",
"TaxInc": true
}
}
}
{
"data": {
"id": "10",
"type": "Quote",
"attributes": {
"Status": "CANCEL",
"Priority": "Urgent",
"ProbabilityPcnt": 90,
"Type": "Normal",
"CustRef": "UPDATED-REF",
"OurRef": "OUR-002",
"ItemDesc": "Updated item description",
"InvoiceDesc": "Updated invoice description",
"FaultDesc": "Updated fault description",
"SerialNo": "SN-12345",
"HeaderText": "Updated header",
"FooterText": "Updated footer",
"dateIn": "2024-09-02T16:16:00",
"DateReq": "2024-12-25T00:00:00",
"DateValid": "2025-01-31T00:00:00",
"JobNo": 240001,
"ProjectNo": 5001,
"RejectionReasonNo": 3,
"ManfQty": 10.0,
"Freight": 25.00,
"FreightTax": 2.50,
"BranchCode": "SYD",
"SubBranchCode": "SSYD",
"GLDeptCode": "SALES",
"StockLocationCode": "MAIN",
"priceLevel": "Dealer",
"taxPaid": true,
"TaxInc": true,
"currencyCode": "AUD",
"exchangeRate": 1.0000,
"rateLocked": true,
"companyCode": "COMPANY.1",
"source": "WebAPI",
"sourceValue": "192.168.1.100",
"totalTF": 27.27,
"totalTP": 30.00,
"quoteDetails": {
"customer": {
"attn": "John Smith",
"name": "Simple Customer #1",
"isAddressResidential": false,
"streetAddress": "123 Main St",
"suburb": "Sydney",
"state": "NSW",
"postCode": "2000",
"country": "Australia",
"orderNo": "PO-12345"
},
"ship": {
"attn": "Jane Doe",
"name": "Simple Customer #1",
"isAddressResidential": true,
"streetAddress": "456 Delivery Rd",
"suburb": "Melbourne",
"state": "VIC",
"postCode": "3000",
"country": "Australia"
},
"freight": {
"amount": 25.00,
"tax": 2.50,
"taxCode": "GST",
"dispatch": [
{
"shipVia": "Australia Post",
"shipRef": "AP-99887",
"noOfCartons": null
}
]
}
}
},
"relationships": {
"contract": {
"data": {
"type": "Contract",
"id": "5001"
}
},
"customer": {
"data": {
"type": "CardFile",
"id": "3"
}
},
"from": {
"data": {
"type": "CardFile",
"id": "3"
}
},
"ship": {
"data": {
"type": "CardFile",
"id": "3"
}
},
"asset": {
"data": {
"type": "Asset",
"id": "1"
}
},
"comments": {
"data": [
{
"type": "QuoteComment",
"id": "10-3"
},
{
"type": "QuoteComment",
"id": "10-2"
},
{
"type": "QuoteComment",
"id": "10-1"
}
]
},
"stock": {
"data": [
{
"type": "QuoteStock",
"id": "10-3"
}
]
}
},
"links": {
"self": "/api/v1/quotes/10"
}
}
}