Zinevu
API reference

Offers

The records that have been quoted, with their line items and the article number each line carries in your ERP.

GET/offers

offers:read

Every record that has reached the offer stage.

Parameters
status
string
Exact match.
updated_since
ISO 8601
Only records changed at or after this instant.
limit
integer, 1–100
Defaults to 25.
cursor
string
From meta.next_cursor.
Request
curl "https://api.zinevu.com/api/public/v1/offers?updated_since=2026-09-01T00:00:00Z" \  -H "Authorization: Bearer $ZINEVU_API_KEY"

GET/offers/{id}

offers:read

One offer, with its lines.

Response
{  "data": {    "id": 14868,    "uuid": "0f2a…",    "number": "2026-0412",    "status": "sent",    "source": "form",    "customer_id": 9931,    "language": "nl",    "currency": "eur",    "total": 8420.5,    "total_includes_vat": true,    "discount_rate": 10,    "created_at": "2026-09-12T10:02:00+00:00",    "sent_at": "2026-09-12T10:14:51+00:00",    "signed_at": null,    "rejected_at": null,    "rejected_reason": null,    "measurement_accepted_at": null,    "invoice": { "number": null, "status": null, "paid_at": null },    "lines": [      {        "id": 90211,        "position": 3,        "name": "Solarmodule",        "description": null,        "quantity": 12,        "unit_price": 180,        "base_price": 180,        "vat_rate": 0,        "source": "auto",        "offer_item_id": 1341,        "article_number": "vk-solar-01"      }    ],    "record_created_at": "2026-09-11T19:41:22+00:00",    "updated_at": "2026-09-12T10:14:51+00:00"  }}

Lines#

FieldNotes
positionThe order the line appears in on the PDF.
unit_priceWhat the line charges per unit. base_price is what it cost before a discount or a negotiated rate moved it.
vat_rateA percentage on the line, because one offer can carry lines at different rates.
sourceauto when a rule wrote the line, otherwise it was typed by hand.
offer_item_idThe rule that wrote it — see offer items. A hand-typed line has none.
article_numberCopied onto the line when it was written, so the offer keeps its articles even if the item is later changed or deleted.

The timestamps are the lifecycle#

created_at is when the offer was built, sent_at when it was e-mailed, signed_at / rejected_at what the customer did with it, and measurement_accepted_at the one in between: the customer accepted the price and asked to be measured on site. record_created_at is the lead's own creation — the moment the enquiry arrived, which is usually earlier.

Each of those transitions also has a webhook event, which is a better way to hear about them than polling this list.