Naar de inhoud
Open Nexym

List quotes

GET
/api/connect/quotes
curl --request GET \
--url 'https://app.nexym.nl/api/connect/quotes?per_page=50&page=1' \
--header 'Authorization: Bearer <token>'

A page of quotes for the key’s project, each with its full lines.

Requires quotes: read (or write).

per_page
integer
default: 50 >= 1 <= 200

Records per page. Values above 200 are silently clamped to 200. The value is not otherwise validated, so send a sensible positive integer.

page
integer
default: 1 >= 1

1-based page number.

A page of quotes.

Media typeapplication/json
object
current_page
required
integer
data
required
Array<object>
object
first_page_url
required
string format: uri
from
required

Index of the first record on this page, or null on an empty page.

integer | null
last_page
required
integer
last_page_url
required
string format: uri
links
required
Array<object>

One entry of the paginator’s rendered link list.

object
url
string | null format: uri
label
string
page
integer | null
active
boolean
next_page_url
required
string | null format: uri
path
required
string format: uri
per_page
required
integer
prev_page_url
required
string | null format: uri
to
required
integer | null
total
required
integer
data
required
Array
object
id
integer
project_id
integer
reference

The canonical document key, unique within the project.

string
customer_reference
string | null
location_reference
string | null
status

The hub’s own word for how far the document has got, mapped from the source system’s vocabulary. The shipped vocabulary for an order is open, processing, paid, shipped, completed, cancelled, refunded, on_hold; for a shipment open, packed, shipped, in_transit, delivered, returned, cancelled. A project may curate its own words, so treat this as an open string rather than a fixed enum.

string | null
financial_status

How far the money has got, which is a different question from how far the document has got. Shipped vocabulary: pending, authorised, paid, partially_paid, partially_refunded, refunded, cancelled, chargeback.

string | null
currency
string | null
subtotal
string | null
tax_total
string | null
shipping_total
string | null
discount_total
string | null
grand_total
string | null
customer

A denormalised address or contact block, stored as JSON exactly as the mapping produced it. Keys vary by connector and by project mapping; treat it as an open object rather than a fixed shape.

object | null
billing

A denormalised address or contact block, stored as JSON exactly as the mapping produced it. Keys vary by connector and by project mapping; treat it as an open object rather than a fixed shape.

object | null
shipping

A denormalised address or contact block, stored as JSON exactly as the mapping produced it. Keys vary by connector and by project mapping; treat it as an open object rather than a fixed shape.

object | null
notes
string | null
meta

Free-form store for fields the universal schema does not define for everybody: a connector’s declared extension fields and a project’s own customer fields, each under its own name.

object | null
source_connection_id
integer | null
created_at
string | null format: date-time
updated_at
string | null format: date-time
is_virtual
boolean | null
valid_until
string | null format: date-time
lines
Array<object>

One line of a document. Money and quantity columns are strings.

object
id
integer
project_id
integer
document_id

The parent document’s id.

integer
line_reference

The source system’s own identifier for this line.

string | null
variant_reference
string | null
sku
string | null
name
string | null
qty

Three decimals.

string | null
unit_price

Four decimals.

string | null
tax_rate
string | null
tax_amount
string | null
discount
string | null
line_total
string | null
meta

Free-form store for fields the universal schema does not define for everybody: a connector’s declared extension fields and a project’s own customer fields, each under its own name.

object | null
created_at
string | null format: date-time
updated_at
string | null format: date-time

Example

{
"current_page": 1,
"first_page_url": "https://app.nexym.nl/api/connect/orders?page=1",
"from": 1,
"last_page": 7,
"last_page_url": "https://app.nexym.nl/api/connect/orders?page=7",
"links": [
{
"url": "https://app.nexym.nl/api/connect/orders?page=2",
"label": "2",
"page": 2,
"active": false
}
],
"next_page_url": "https://app.nexym.nl/api/connect/orders?page=2",
"path": "https://app.nexym.nl/api/connect/orders",
"per_page": 50,
"prev_page_url": null,
"to": 50,
"total": 318,
"data": [
{
"id": 12044,
"project_id": 3,
"reference": "SO-10241",
"customer_reference": "CUST-0099",
"location_reference": "WH-MAIN",
"status": "processing",
"financial_status": "paid",
"currency": "EUR",
"subtotal": "49.90",
"tax_total": "10.48",
"shipping_total": "4.95",
"discount_total": "0.00",
"grand_total": "65.33",
"customer": {
"name": "Acme Interiors",
"street": "Voorstraat 12",
"postcode": "1234 AB",
"city": "Middelburg",
"country": "NL"
},
"billing": {
"name": "Acme Interiors",
"street": "Voorstraat 12",
"postcode": "1234 AB",
"city": "Middelburg",
"country": "NL"
},
"shipping": {
"name": "Acme Interiors",
"street": "Voorstraat 12",
"postcode": "1234 AB",
"city": "Middelburg",
"country": "NL"
},
"notes": "Leave with the neighbour if nobody answers.",
"meta": {
"service_code": "INSTALL-STD"
},
"source_connection_id": 7,
"created_at": "2026-09-14T13:42:10.000000Z",
"updated_at": "2026-09-15T08:01:55.000000Z",
"is_virtual": false,
"valid_until": "2026-10-12T00:00:00.000000Z",
"lines": [
{
"id": 880341,
"project_id": 3,
"document_id": 12044,
"line_reference": "1",
"variant_reference": "ACME-1234-BLK",
"sku": "ACME-1234-BLK",
"name": "Widget 40 mm, black",
"qty": "2.000",
"unit_price": "24.9500",
"tax_rate": "21.00",
"tax_amount": "10.48",
"discount": "0.00",
"line_total": "49.90",
"meta": {
"service_code": "INSTALL-STD"
},
"created_at": "2026-09-14T13:42:10.000000Z",
"updated_at": "2026-09-14T13:42:10.000000Z"
}
]
}
]
}

No key, a key that does not match, a revoked key, or an expired one. The body says which, and nothing else — an unusable key is never described further.

Media typeapplication/json

Every error this API returns carries a single human-readable message.

object
message
required
string

Examples

No bearer token, or one too short to hold a prefix

{
"message": "Missing or invalid API key."
}

The key is valid but its abilities do not cover this resource at this right.

Media typeapplication/json

Every error this API returns carries a single human-readable message.

object
message
required
string

Examples

{
"message": "This API key lacks read access to orders."
}

The per-minute rate limit was exceeded. The limit is 120 requests per minute by default (CONNECT_API_RATE_PER_MIN), counted per API key — or per IP address for a request that never authenticated.

Media typeapplication/json

Every error this API returns carries a single human-readable message.

object
message
required
string

Examples

Examplelimited
{
"message": "Too many requests — slow down."
}
Retry-After
integer

Seconds until the limit resets.

X-RateLimit-Limit
integer

Requests allowed per minute.

X-RateLimit-Remaining
integer

Requests left in the current window.