Estimating quotes
Quotes from the Estimating module. A different thing from an AR quote, which is an order with status quote - see the orders resource. ordertype 2 is a rental order, not a quote.
The object#
| Field | Type | Description |
|---|---|---|
| idread-only | integer | NolaPro id. |
| customerid | integer | Reference to customers, by id. Write either this or customer. |
| customer | string(30) | Code for the referenced customer, instead of the id. |
| contactname | string(50) | Customer contact the quote is for. |
| stdsizeid | integer | Stdsizeid. Id only. |
| cwidthmoney | string(3dp) | Stored as decimal(10,3). |
| clengthmoney | string(3dp) | Stored as decimal(10,3). |
| substockid | integer | Paper stock the job prints on (the Stock picker on the quote form). |
| substock | string(255) | The sku of the referenced items, instead of the id. Send this or substockid, not both unless they agree. |
| tightreg1 | integer | 1 when side 1 requires tight registration; the option appears when more than one ink is selected. |
| tightreg2 | integer | 1 when side 2 requires tight registration. |
| cancel | boolean | Cancelled. Always a boolean on the wire, whatever integer width the column uses (D23). |
| entrydate | string | When the record was created. |
| lastchangedateread-only | string | Last modification. Drives modifiedsince. |
| description | string(255) | Job description. |
| substockcolorid | integer | Substockcolorid. Id only. |
| shippingservice | string(3) | Shipping service quoted for delivery. |
| shippingzipcode | string(12) | Destination ZIP code used to quote shipping. |
| special | string(255) | Special Notes for the job. |
| quotenum | string(20) | Quote number shown to the customer. |
| extusermoney | string | Stored as double. |
| genusermoney | string | Stored as double. |
| pricelistid | integer | Pricelistid. Id only. |
| duedate | string | Date payment is due. |
| finalshipdate | string | Date the job actually shipped. |
| status | string | Status. Labels are Estquotequote_model::$statuses; stored as an int and never exposed or accepted as one (D35). One of quote, open, confirmed, partiallyshipped, shipped, complete, unconfirmedexternal, unconfirmedinternal, inprogress. |
| billdate | string | Date the job was billed. |
| order_quantity | integer | Quantity ordered. |
| shiptotalmoney | string(2dp) | Stored as decimal(12,2). |
| billtotalmoney | string(2dp) | Stored as decimal(12,2). |
| orderdate | string | Date the quote became an order. |
| instructions | string(255) | Production instructions printed on the job ticket. |
| id_printorder | integer | Print order (job) number assigned when the quote becomes an order; 0 while it is still a quote. |
| extras | integer | Extra Sheets Scrap - additional sheets run to cover setup and spoilage. |
| numup | integer | Number Up On Press Sheet - how many pieces print per sheet. |
| itemid | integer | Reference to items, by id. Write either this or item. |
| item | string(255) | The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree. |
| papername | string(50) | Paper name printed on the job ticket. |
| paperwidthmoney | string(3dp) | Stored as decimal(12,3). |
| paperlengthmoney | string(3dp) | Stored as decimal(12,3). |
| priority | integer | Production priority used to sequence jobs. |
| formnumber | string(50) | Form Number of the printed piece. |
| numparts | integer | Number of parts in the piece (multi-part carbonless forms). |
| salesglacctid | integer | Reference to glaccounts, by id. Write either this or salesglacct. |
| salesglacct | string(20) | The name of the referenced glaccounts, instead of the id. Send this or salesglacctid, not both unless they agree. |
| presslengthmoney | string(2dp) | Stored as decimal(12,2). |
| presswidthmoney | string(2dp) | Stored as decimal(12,2). |
| customer_po | string(30) | Customer PO number for the job. |
| print_how | integer | Press imposition: 0 = none, 1 = Work & Turn, 2 = Work & Flop. |
| rush_chargemoney | string(4dp) | Stored as decimal(12,4). |
| composition_chargemoney | string(4dp) | Stored as decimal(12,4). |
| glrush | integer | GL account rush charges post to; seeded from the print module default. |
| glcomposition | integer | GL account composition (typesetting) charges post to; seeded from the print module default. |
| reprint | integer | 1 when the job is a reprint of an earlier printing. |
| printdate | string | Date the job printed. |
| calculated_qtyqty | string(5dp) | Quantity, 5 decimal places, as a string. Stored as decimal(5dp). |
| sell_totalmoney | string(5dp) | Stored as decimal(12,5). |
| calculated_totalmoney | string(5dp) | Stored as decimal(14,5). |
| previous_id_printorder | integer | The earlier print order a reprint or reorder was copied from; artwork carries over from it. |
| client_notes | text | Client_notes. Stored as text, no practical length limit. |
| confirm_date | string | Date the order was confirmed with the customer. |
| sigmult | integer | Number of Sigs - signatures making up the piece. |
| invoiceto_companyid | integer | Invoiceto companyid. Id only. |
| order_discount_percentnumber | string(2dp) | Numeric string, 2 decimal places. Not money - do not apply currency rounding. |
| preferred_shipdate | string | Ship date the customer asked for. |
| receivedate | string | Date the order was received. |
| shipbefore | string | Latest date the job may ship. |
| shipafter | integer | Ship XX Days After Approval - days to wait after proof approval before shipping. |
| orderyear | string(4) | Order Year bucket the job number belongs to; print order numbering restarts each year. |
| art_number | string(30) | Art # - artwork reference for the job. |
| reorder | integer | 1 when this order is a reorder of a previous job. |
| ordertaker | string(10) | Order Taken By - who took the order. |
| problem | integer | 1 flags a Problem Order for follow-up. |
| rush | integer | 1 marks the job as a rush order. |
| order_sourceid | integer | Order sourceid. Id only. |
| sales_responseid | integer | Sales responseid. Id only. |
| shipnote | string(100) | Ship Note printed on shipping paperwork. |
| ok | integer | 1 once the customer’s proof approval (OK to print) is recorded. |
| okdate | string | Date the proof approval was recorded. |
| topress | integer | 1 once the job is Released to Press. |
| topressdate | string | Date the job was released to press. |
| print_what_on_covers | integer | For printed covers: 0 = N/A, 1 = print names and addresses, 2 = print names only. |
| coupon_amountmoney | string(5dp) | Stored as decimal(16,5). |
| couponid | integer | Couponid. Id only. |
| rescom | integer | Whether the delivery address is commercial or residential, from the Commercial or Residential selector. |
| pricepercovermoney | string(5dp) | Stored as decimal(19,5). |
| priceperspecialdesignmoney | string(5dp) | Stored as decimal(19,5). |
| pricepercolorbordermoney | string(5dp) | Stored as decimal(19,5). |
| priceperpremiummoney | string(5dp) | Stored as decimal(19,5). |
| priceperstandardmoney | string(5dp) | Stored as decimal(19,5). |
| totalpriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| basepriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| totaldiscountamountmoney | string(5dp) | Stored as decimal(19,5). |
| externalid | string(100) | Your own key. Scoped to your company. |
Endpoints#
Create many.
Requires scope estimating:write.
| Name | In | Type | Notes |
|---|---|---|---|
| Field | Type | Description |
|---|---|---|
| idread-only | integer | NolaPro id. |
| customerid | integer | Reference to customers, by id. Write either this or customer. |
| customer | string(30) | Code for the referenced customer, instead of the id. |
| contactname | string(50) | Customer contact the quote is for. |
| stdsizeid | integer | Stdsizeid. Id only. |
| cwidthmoney | string(3dp) | Stored as decimal(10,3). |
| clengthmoney | string(3dp) | Stored as decimal(10,3). |
| substockid | integer | Paper stock the job prints on (the Stock picker on the quote form). |
| substock | string(255) | The sku of the referenced items, instead of the id. Send this or substockid, not both unless they agree. |
| tightreg1 | integer | 1 when side 1 requires tight registration; the option appears when more than one ink is selected. |
| tightreg2 | integer | 1 when side 2 requires tight registration. |
| cancel | boolean | Cancelled. Always a boolean on the wire, whatever integer width the column uses (D23). |
| entrydate | string | When the record was created. |
| lastchangedateread-only | string | Last modification. Drives modifiedsince. |
| description | string(255) | Job description. |
| substockcolorid | integer | Substockcolorid. Id only. |
| shippingservice | string(3) | Shipping service quoted for delivery. |
| shippingzipcode | string(12) | Destination ZIP code used to quote shipping. |
| special | string(255) | Special Notes for the job. |
| quotenum | string(20) | Quote number shown to the customer. |
| extusermoney | string | Stored as double. |
| genusermoney | string | Stored as double. |
| pricelistid | integer | Pricelistid. Id only. |
| duedate | string | Date payment is due. |
| finalshipdate | string | Date the job actually shipped. |
| status | string | Status. Labels are Estquotequote_model::$statuses; stored as an int and never exposed or accepted as one (D35). One of quote, open, confirmed, partiallyshipped, shipped, complete, unconfirmedexternal, unconfirmedinternal, inprogress. |
| billdate | string | Date the job was billed. |
| order_quantity | integer | Quantity ordered. |
| shiptotalmoney | string(2dp) | Stored as decimal(12,2). |
| billtotalmoney | string(2dp) | Stored as decimal(12,2). |
| orderdate | string | Date the quote became an order. |
| instructions | string(255) | Production instructions printed on the job ticket. |
| id_printorder | integer | Print order (job) number assigned when the quote becomes an order; 0 while it is still a quote. |
| extras | integer | Extra Sheets Scrap - additional sheets run to cover setup and spoilage. |
| numup | integer | Number Up On Press Sheet - how many pieces print per sheet. |
| itemid | integer | Reference to items, by id. Write either this or item. |
| item | string(255) | The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree. |
| papername | string(50) | Paper name printed on the job ticket. |
| paperwidthmoney | string(3dp) | Stored as decimal(12,3). |
| paperlengthmoney | string(3dp) | Stored as decimal(12,3). |
| priority | integer | Production priority used to sequence jobs. |
| formnumber | string(50) | Form Number of the printed piece. |
| numparts | integer | Number of parts in the piece (multi-part carbonless forms). |
| salesglacctid | integer | Reference to glaccounts, by id. Write either this or salesglacct. |
| salesglacct | string(20) | The name of the referenced glaccounts, instead of the id. Send this or salesglacctid, not both unless they agree. |
| presslengthmoney | string(2dp) | Stored as decimal(12,2). |
| presswidthmoney | string(2dp) | Stored as decimal(12,2). |
| customer_po | string(30) | Customer PO number for the job. |
| print_how | integer | Press imposition: 0 = none, 1 = Work & Turn, 2 = Work & Flop. |
| rush_chargemoney | string(4dp) | Stored as decimal(12,4). |
| composition_chargemoney | string(4dp) | Stored as decimal(12,4). |
| glrush | integer | GL account rush charges post to; seeded from the print module default. |
| glcomposition | integer | GL account composition (typesetting) charges post to; seeded from the print module default. |
| reprint | integer | 1 when the job is a reprint of an earlier printing. |
| printdate | string | Date the job printed. |
| calculated_qtyqty | string(5dp) | Quantity, 5 decimal places, as a string. Stored as decimal(5dp). |
| sell_totalmoney | string(5dp) | Stored as decimal(12,5). |
| calculated_totalmoney | string(5dp) | Stored as decimal(14,5). |
| previous_id_printorder | integer | The earlier print order a reprint or reorder was copied from; artwork carries over from it. |
| client_notes | text | Client_notes. Stored as text, no practical length limit. |
| confirm_date | string | Date the order was confirmed with the customer. |
| sigmult | integer | Number of Sigs - signatures making up the piece. |
| invoiceto_companyid | integer | Invoiceto companyid. Id only. |
| order_discount_percentnumber | string(2dp) | Numeric string, 2 decimal places. Not money - do not apply currency rounding. |
| preferred_shipdate | string | Ship date the customer asked for. |
| receivedate | string | Date the order was received. |
| shipbefore | string | Latest date the job may ship. |
| shipafter | integer | Ship XX Days After Approval - days to wait after proof approval before shipping. |
| orderyear | string(4) | Order Year bucket the job number belongs to; print order numbering restarts each year. |
| art_number | string(30) | Art # - artwork reference for the job. |
| reorder | integer | 1 when this order is a reorder of a previous job. |
| ordertaker | string(10) | Order Taken By - who took the order. |
| problem | integer | 1 flags a Problem Order for follow-up. |
| rush | integer | 1 marks the job as a rush order. |
| order_sourceid | integer | Order sourceid. Id only. |
| sales_responseid | integer | Sales responseid. Id only. |
| shipnote | string(100) | Ship Note printed on shipping paperwork. |
| ok | integer | 1 once the customer’s proof approval (OK to print) is recorded. |
| okdate | string | Date the proof approval was recorded. |
| topress | integer | 1 once the job is Released to Press. |
| topressdate | string | Date the job was released to press. |
| print_what_on_covers | integer | For printed covers: 0 = N/A, 1 = print names and addresses, 2 = print names only. |
| coupon_amountmoney | string(5dp) | Stored as decimal(16,5). |
| couponid | integer | Couponid. Id only. |
| rescom | integer | Whether the delivery address is commercial or residential, from the Commercial or Residential selector. |
| pricepercovermoney | string(5dp) | Stored as decimal(19,5). |
| priceperspecialdesignmoney | string(5dp) | Stored as decimal(19,5). |
| pricepercolorbordermoney | string(5dp) | Stored as decimal(19,5). |
| priceperpremiummoney | string(5dp) | Stored as decimal(19,5). |
| priceperstandardmoney | string(5dp) | Stored as decimal(19,5). |
| totalpriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| basepriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| totaldiscountamountmoney | string(5dp) | Stored as decimal(19,5). |
| externalid | string(100) | Your own key. Scoped to your company. |
curl -X POST \ 'https://acme.nolapro.com/!/api/v2/estquotes/batch' \ -H 'Authorization: Bearer $NP_TOKEN' \ -H 'Content-Type: application/json' \ -H 'Idempotency-Key: your-unique-key' \ -d '[ { "status": "quote" } ]'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/batch'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ [ 'status' => 'quote', ], ]), ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.post( "https://acme.nolapro.com/!/api/v2/estquotes/batch", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, json=[ { "status": "quote", }, ], ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/batch', { method: 'POST', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, body: JSON.stringify([ { status: "quote", }, ]), } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var body = new[] { new { status = "quote", }, }; var req = new HttpRequestMessage(HttpMethod.Post, "https://acme.nolapro.com/!/api/v2/estquotes/batch") { Content = JsonContent.Create(body), }; req.Headers.Add("Idempotency-Key", "your-unique-key"); var res = await http.SendAsync(req); res.EnsureSuccessStatusCode();
List estimating quotes.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| status | query | string | Restrict to one status. |
| customerid | query | string | Restrict to one customerid. |
| itemid | query | string | Restrict to one itemid. |
| description | query | string | description. Partial match, case-insensitive. |
| cancel | query | string | Defaults to false. Pass true or any. |
| modifiedsince | query | string | RFC 3339 UTC timestamp. Returns only records changed since then, including cancelled ones - so cancel defaults to any rather than false when this is used. The response carries _meta.synced_through; store it and send it back next time. |
| externalid | query | string | Exact match on your own key. |
| include | query | string | Comma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions. |
| Status | Code | Meaning |
|---|---|---|
| 403 | insufficient_scope | Token lacks read scope. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes"); res.EnsureSuccessStatusCode();
Create.
Requires scope estimating:write.
| Name | In | Type | Notes |
|---|---|---|---|
| Field | Type | Description |
|---|---|---|
| idread-only | integer | NolaPro id. |
| customerid | integer | Reference to customers, by id. Write either this or customer. |
| customer | string(30) | Code for the referenced customer, instead of the id. |
| contactname | string(50) | Customer contact the quote is for. |
| stdsizeid | integer | Stdsizeid. Id only. |
| cwidthmoney | string(3dp) | Stored as decimal(10,3). |
| clengthmoney | string(3dp) | Stored as decimal(10,3). |
| substockid | integer | Paper stock the job prints on (the Stock picker on the quote form). |
| substock | string(255) | The sku of the referenced items, instead of the id. Send this or substockid, not both unless they agree. |
| tightreg1 | integer | 1 when side 1 requires tight registration; the option appears when more than one ink is selected. |
| tightreg2 | integer | 1 when side 2 requires tight registration. |
| cancel | boolean | Cancelled. Always a boolean on the wire, whatever integer width the column uses (D23). |
| entrydate | string | When the record was created. |
| lastchangedateread-only | string | Last modification. Drives modifiedsince. |
| description | string(255) | Job description. |
| substockcolorid | integer | Substockcolorid. Id only. |
| shippingservice | string(3) | Shipping service quoted for delivery. |
| shippingzipcode | string(12) | Destination ZIP code used to quote shipping. |
| special | string(255) | Special Notes for the job. |
| quotenum | string(20) | Quote number shown to the customer. |
| extusermoney | string | Stored as double. |
| genusermoney | string | Stored as double. |
| pricelistid | integer | Pricelistid. Id only. |
| duedate | string | Date payment is due. |
| finalshipdate | string | Date the job actually shipped. |
| status | string | Status. Labels are Estquotequote_model::$statuses; stored as an int and never exposed or accepted as one (D35). One of quote, open, confirmed, partiallyshipped, shipped, complete, unconfirmedexternal, unconfirmedinternal, inprogress. |
| billdate | string | Date the job was billed. |
| order_quantity | integer | Quantity ordered. |
| shiptotalmoney | string(2dp) | Stored as decimal(12,2). |
| billtotalmoney | string(2dp) | Stored as decimal(12,2). |
| orderdate | string | Date the quote became an order. |
| instructions | string(255) | Production instructions printed on the job ticket. |
| id_printorder | integer | Print order (job) number assigned when the quote becomes an order; 0 while it is still a quote. |
| extras | integer | Extra Sheets Scrap - additional sheets run to cover setup and spoilage. |
| numup | integer | Number Up On Press Sheet - how many pieces print per sheet. |
| itemid | integer | Reference to items, by id. Write either this or item. |
| item | string(255) | The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree. |
| papername | string(50) | Paper name printed on the job ticket. |
| paperwidthmoney | string(3dp) | Stored as decimal(12,3). |
| paperlengthmoney | string(3dp) | Stored as decimal(12,3). |
| priority | integer | Production priority used to sequence jobs. |
| formnumber | string(50) | Form Number of the printed piece. |
| numparts | integer | Number of parts in the piece (multi-part carbonless forms). |
| salesglacctid | integer | Reference to glaccounts, by id. Write either this or salesglacct. |
| salesglacct | string(20) | The name of the referenced glaccounts, instead of the id. Send this or salesglacctid, not both unless they agree. |
| presslengthmoney | string(2dp) | Stored as decimal(12,2). |
| presswidthmoney | string(2dp) | Stored as decimal(12,2). |
| customer_po | string(30) | Customer PO number for the job. |
| print_how | integer | Press imposition: 0 = none, 1 = Work & Turn, 2 = Work & Flop. |
| rush_chargemoney | string(4dp) | Stored as decimal(12,4). |
| composition_chargemoney | string(4dp) | Stored as decimal(12,4). |
| glrush | integer | GL account rush charges post to; seeded from the print module default. |
| glcomposition | integer | GL account composition (typesetting) charges post to; seeded from the print module default. |
| reprint | integer | 1 when the job is a reprint of an earlier printing. |
| printdate | string | Date the job printed. |
| calculated_qtyqty | string(5dp) | Quantity, 5 decimal places, as a string. Stored as decimal(5dp). |
| sell_totalmoney | string(5dp) | Stored as decimal(12,5). |
| calculated_totalmoney | string(5dp) | Stored as decimal(14,5). |
| previous_id_printorder | integer | The earlier print order a reprint or reorder was copied from; artwork carries over from it. |
| client_notes | text | Client_notes. Stored as text, no practical length limit. |
| confirm_date | string | Date the order was confirmed with the customer. |
| sigmult | integer | Number of Sigs - signatures making up the piece. |
| invoiceto_companyid | integer | Invoiceto companyid. Id only. |
| order_discount_percentnumber | string(2dp) | Numeric string, 2 decimal places. Not money - do not apply currency rounding. |
| preferred_shipdate | string | Ship date the customer asked for. |
| receivedate | string | Date the order was received. |
| shipbefore | string | Latest date the job may ship. |
| shipafter | integer | Ship XX Days After Approval - days to wait after proof approval before shipping. |
| orderyear | string(4) | Order Year bucket the job number belongs to; print order numbering restarts each year. |
| art_number | string(30) | Art # - artwork reference for the job. |
| reorder | integer | 1 when this order is a reorder of a previous job. |
| ordertaker | string(10) | Order Taken By - who took the order. |
| problem | integer | 1 flags a Problem Order for follow-up. |
| rush | integer | 1 marks the job as a rush order. |
| order_sourceid | integer | Order sourceid. Id only. |
| sales_responseid | integer | Sales responseid. Id only. |
| shipnote | string(100) | Ship Note printed on shipping paperwork. |
| ok | integer | 1 once the customer’s proof approval (OK to print) is recorded. |
| okdate | string | Date the proof approval was recorded. |
| topress | integer | 1 once the job is Released to Press. |
| topressdate | string | Date the job was released to press. |
| print_what_on_covers | integer | For printed covers: 0 = N/A, 1 = print names and addresses, 2 = print names only. |
| coupon_amountmoney | string(5dp) | Stored as decimal(16,5). |
| couponid | integer | Couponid. Id only. |
| rescom | integer | Whether the delivery address is commercial or residential, from the Commercial or Residential selector. |
| pricepercovermoney | string(5dp) | Stored as decimal(19,5). |
| priceperspecialdesignmoney | string(5dp) | Stored as decimal(19,5). |
| pricepercolorbordermoney | string(5dp) | Stored as decimal(19,5). |
| priceperpremiummoney | string(5dp) | Stored as decimal(19,5). |
| priceperstandardmoney | string(5dp) | Stored as decimal(19,5). |
| totalpriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| basepriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| totaldiscountamountmoney | string(5dp) | Stored as decimal(19,5). |
| externalid | string(100) | Your own key. Scoped to your company. |
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | A required field was missing. |
curl -X POST \ 'https://acme.nolapro.com/!/api/v2/estquotes' \ -H 'Authorization: Bearer $NP_TOKEN' \ -H 'Content-Type: application/json' \ -H 'Idempotency-Key: your-unique-key' \ -d '{ "status": "quote" }'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'status' => 'quote', ]), ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.post( "https://acme.nolapro.com/!/api/v2/estquotes", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, json={ "status": "quote", }, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes', { method: 'POST', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, body: JSON.stringify({ status: "quote", }), } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var body = new { status = "quote", }; var req = new HttpRequestMessage(HttpMethod.Post, "https://acme.nolapro.com/!/api/v2/estquotes") { Content = JsonContent.Create(body), }; req.Headers.Add("Idempotency-Key", "your-unique-key"); var res = await http.SendAsync(req); res.EnsureSuccessStatusCode();
{
"status": "quote"
}
Retrieve one record.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| include | query | string | Comma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions. |
| Status | Code | Meaning |
|---|---|---|
| 404 | not_found | No record with that id. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes/104' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes/104", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes/104"); res.EnsureSuccessStatusCode();
{
"status": "quote"
}
Update.
Requires scope estimating:write.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| Field | Type | Description |
|---|---|---|
| idread-only | integer | NolaPro id. |
| customerid | integer | Reference to customers, by id. Write either this or customer. |
| customer | string(30) | Code for the referenced customer, instead of the id. |
| contactname | string(50) | Customer contact the quote is for. |
| stdsizeid | integer | Stdsizeid. Id only. |
| cwidthmoney | string(3dp) | Stored as decimal(10,3). |
| clengthmoney | string(3dp) | Stored as decimal(10,3). |
| substockid | integer | Paper stock the job prints on (the Stock picker on the quote form). |
| substock | string(255) | The sku of the referenced items, instead of the id. Send this or substockid, not both unless they agree. |
| tightreg1 | integer | 1 when side 1 requires tight registration; the option appears when more than one ink is selected. |
| tightreg2 | integer | 1 when side 2 requires tight registration. |
| cancel | boolean | Cancelled. Always a boolean on the wire, whatever integer width the column uses (D23). |
| entrydate | string | When the record was created. |
| lastchangedateread-only | string | Last modification. Drives modifiedsince. |
| description | string(255) | Job description. |
| substockcolorid | integer | Substockcolorid. Id only. |
| shippingservice | string(3) | Shipping service quoted for delivery. |
| shippingzipcode | string(12) | Destination ZIP code used to quote shipping. |
| special | string(255) | Special Notes for the job. |
| quotenum | string(20) | Quote number shown to the customer. |
| extusermoney | string | Stored as double. |
| genusermoney | string | Stored as double. |
| pricelistid | integer | Pricelistid. Id only. |
| duedate | string | Date payment is due. |
| finalshipdate | string | Date the job actually shipped. |
| status | string | Status. Labels are Estquotequote_model::$statuses; stored as an int and never exposed or accepted as one (D35). One of quote, open, confirmed, partiallyshipped, shipped, complete, unconfirmedexternal, unconfirmedinternal, inprogress. |
| billdate | string | Date the job was billed. |
| order_quantity | integer | Quantity ordered. |
| shiptotalmoney | string(2dp) | Stored as decimal(12,2). |
| billtotalmoney | string(2dp) | Stored as decimal(12,2). |
| orderdate | string | Date the quote became an order. |
| instructions | string(255) | Production instructions printed on the job ticket. |
| id_printorder | integer | Print order (job) number assigned when the quote becomes an order; 0 while it is still a quote. |
| extras | integer | Extra Sheets Scrap - additional sheets run to cover setup and spoilage. |
| numup | integer | Number Up On Press Sheet - how many pieces print per sheet. |
| itemid | integer | Reference to items, by id. Write either this or item. |
| item | string(255) | The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree. |
| papername | string(50) | Paper name printed on the job ticket. |
| paperwidthmoney | string(3dp) | Stored as decimal(12,3). |
| paperlengthmoney | string(3dp) | Stored as decimal(12,3). |
| priority | integer | Production priority used to sequence jobs. |
| formnumber | string(50) | Form Number of the printed piece. |
| numparts | integer | Number of parts in the piece (multi-part carbonless forms). |
| salesglacctid | integer | Reference to glaccounts, by id. Write either this or salesglacct. |
| salesglacct | string(20) | The name of the referenced glaccounts, instead of the id. Send this or salesglacctid, not both unless they agree. |
| presslengthmoney | string(2dp) | Stored as decimal(12,2). |
| presswidthmoney | string(2dp) | Stored as decimal(12,2). |
| customer_po | string(30) | Customer PO number for the job. |
| print_how | integer | Press imposition: 0 = none, 1 = Work & Turn, 2 = Work & Flop. |
| rush_chargemoney | string(4dp) | Stored as decimal(12,4). |
| composition_chargemoney | string(4dp) | Stored as decimal(12,4). |
| glrush | integer | GL account rush charges post to; seeded from the print module default. |
| glcomposition | integer | GL account composition (typesetting) charges post to; seeded from the print module default. |
| reprint | integer | 1 when the job is a reprint of an earlier printing. |
| printdate | string | Date the job printed. |
| calculated_qtyqty | string(5dp) | Quantity, 5 decimal places, as a string. Stored as decimal(5dp). |
| sell_totalmoney | string(5dp) | Stored as decimal(12,5). |
| calculated_totalmoney | string(5dp) | Stored as decimal(14,5). |
| previous_id_printorder | integer | The earlier print order a reprint or reorder was copied from; artwork carries over from it. |
| client_notes | text | Client_notes. Stored as text, no practical length limit. |
| confirm_date | string | Date the order was confirmed with the customer. |
| sigmult | integer | Number of Sigs - signatures making up the piece. |
| invoiceto_companyid | integer | Invoiceto companyid. Id only. |
| order_discount_percentnumber | string(2dp) | Numeric string, 2 decimal places. Not money - do not apply currency rounding. |
| preferred_shipdate | string | Ship date the customer asked for. |
| receivedate | string | Date the order was received. |
| shipbefore | string | Latest date the job may ship. |
| shipafter | integer | Ship XX Days After Approval - days to wait after proof approval before shipping. |
| orderyear | string(4) | Order Year bucket the job number belongs to; print order numbering restarts each year. |
| art_number | string(30) | Art # - artwork reference for the job. |
| reorder | integer | 1 when this order is a reorder of a previous job. |
| ordertaker | string(10) | Order Taken By - who took the order. |
| problem | integer | 1 flags a Problem Order for follow-up. |
| rush | integer | 1 marks the job as a rush order. |
| order_sourceid | integer | Order sourceid. Id only. |
| sales_responseid | integer | Sales responseid. Id only. |
| shipnote | string(100) | Ship Note printed on shipping paperwork. |
| ok | integer | 1 once the customer’s proof approval (OK to print) is recorded. |
| okdate | string | Date the proof approval was recorded. |
| topress | integer | 1 once the job is Released to Press. |
| topressdate | string | Date the job was released to press. |
| print_what_on_covers | integer | For printed covers: 0 = N/A, 1 = print names and addresses, 2 = print names only. |
| coupon_amountmoney | string(5dp) | Stored as decimal(16,5). |
| couponid | integer | Couponid. Id only. |
| rescom | integer | Whether the delivery address is commercial or residential, from the Commercial or Residential selector. |
| pricepercovermoney | string(5dp) | Stored as decimal(19,5). |
| priceperspecialdesignmoney | string(5dp) | Stored as decimal(19,5). |
| pricepercolorbordermoney | string(5dp) | Stored as decimal(19,5). |
| priceperpremiummoney | string(5dp) | Stored as decimal(19,5). |
| priceperstandardmoney | string(5dp) | Stored as decimal(19,5). |
| totalpriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| basepriceperbookmoney | string(5dp) | Stored as decimal(19,5). |
| totaldiscountamountmoney | string(5dp) | Stored as decimal(19,5). |
| externalid | string(100) | Your own key. Scoped to your company. |
| Status | Code | Meaning |
|---|---|---|
| 404 | not_found | No record with that id. |
curl -X PATCH \ 'https://acme.nolapro.com/!/api/v2/estquotes/104' \ -H 'Authorization: Bearer $NP_TOKEN' \ -H 'Content-Type: application/json' \ -H 'Idempotency-Key: your-unique-key' \ -d '{ "status": "quote" }'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'PATCH', CURLOPT_POSTFIELDS => json_encode([ 'status' => 'quote', ]), ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.patch( "https://acme.nolapro.com/!/api/v2/estquotes/104", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, json={ "status": "quote", }, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104', { method: 'PATCH', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, body: JSON.stringify({ status: "quote", }), } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var body = new { status = "quote", }; var req = new HttpRequestMessage(HttpMethod.Patch, "https://acme.nolapro.com/!/api/v2/estquotes/104") { Content = JsonContent.Create(body), }; req.Headers.Add("Idempotency-Key", "your-unique-key"); var res = await http.SendAsync(req); res.EnsureSuccessStatusCode();
{
"status": "quote"
}
Cancel.
Requires scope estimating:cancel.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| Status | Code | Meaning |
|---|---|---|
| 404 | not_found | No record with that id. |
curl -X DELETE \ 'https://acme.nolapro.com/!/api/v2/estquotes/104' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'DELETE', ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.delete( "https://acme.nolapro.com/!/api/v2/estquotes/104", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104', { method: 'DELETE', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var req = new HttpRequestMessage(HttpMethod.Delete, "https://acme.nolapro.com/!/api/v2/estquotes/104"); var res = await http.SendAsync(req); res.EnsureSuccessStatusCode();
{
"status": "quote"
}
Packing slip as a PDF
The packing slip for the print order this quote belongs to. Keyed by the quote you already have an id for; the print order behind it is resolved for you.
Answers application/pdf, not JSON. Because the body is binary it cannot be carried inside a /batch results array; asking for it there returns 415 not_batchable.
A quote with no print order yet is refused with 409 not_posted - there is no job to print until one is scheduled.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| Status | Code | Meaning |
|---|---|---|
| 409 | The quote has no print order yet. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes/104/packingslip' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104/packingslip'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes/104/packingslip", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104/packingslip', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes/104/packingslip"); res.EnsureSuccessStatusCode();
Job ticket as a PDF
The shop travelling ticket: what to run, on what stock, in what order.
Answers application/pdf, not JSON. Because the body is binary it cannot be carried inside a /batch results array; asking for it there returns 415 not_batchable.
A quote with no print order yet is refused with 409 not_posted - there is no job to print until one is scheduled.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| Status | Code | Meaning |
|---|---|---|
| 409 | The quote has no print order yet. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes/104/jobticket' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104/jobticket'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes/104/jobticket", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104/jobticket', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes/104/jobticket"); res.EnsureSuccessStatusCode();
Mailing address form as a PDF
The addressing and mailing form for the print order.
Answers application/pdf, not JSON. Because the body is binary it cannot be carried inside a /batch results array; asking for it there returns 415 not_batchable.
A quote with no print order yet is refused with 409 not_posted - there is no job to print until one is scheduled.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| Status | Code | Meaning |
|---|---|---|
| 409 | The quote has no print order yet. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes/104/addressform' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104/addressform'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes/104/addressform", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104/addressform', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes/104/addressform"); res.EnsureSuccessStatusCode();
Box labels as a PDF
Carton labels for the print order this quote belongs to.
Answers application/pdf, not JSON. Because the body is binary it cannot be carried inside a /batch results array; asking for it there returns 415 not_batchable.
Requires scope estimating:read.
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
curl \ 'https://acme.nolapro.com/!/api/v2/estquotes/104/boxlabel' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/estquotes/104/boxlabel'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/estquotes/104/boxlabel", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/estquotes/104/boxlabel', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/estquotes/104/boxlabel"); res.EnsureSuccessStatusCode();
quotecomment, not estquotequotenotes - the UI joins quotecomment.id = customer.quotecommentid (arcustcsvlist.php:118). The Estimating table of a similar name is a different thing and is not exposed.