Offers
Offers for a project. Send an offer with all its lines in one call, or start with an empty draft and add lines one by one. Then publish it; the customer accepts or declines. An offer goes DRAFT → PUBLISHED → ACCEPTED or DECLINED.
List offers
Returns your offers, newest first. Filter with `name`, `state`, `projectId`, `customerId` and `isIndication`, sort with `sort` (e.g. `sort=offerPrice.desc`) and page with `limit` and `offset`. Requires the `read:offers` scope.
Create an offer
Creates an offer as a draft, which the customer cannot see yet. Send it in one go, or start with the `offer` part alone and add lines later with the `/v1/offers/{offerId}/…` endpoints. Publish it with `POST /v1/offers/{id}/state`. Requires the `write:offers` scope.
Get an offer
Returns one offer with its state and total price. The lines are listed by the `/v1/offers/{offerId}/…` endpoints. Requires the `read:offers` scope.
Replace an offer
Replaces a draft completely with the offer you send: lines you leave out are removed. Only drafts can be replaced; once an offer was published, the customer has seen it and the call answers `409 offer_not_draft` — create a new offer instead. Requires the `write:offers` scope.
Delete an offer
Deletes an offer in any state; a published or accepted offer also disappears for the customer. This cannot be undone. Requires the `write:offers` scope.
Publish, accept or decline an offer
Moves an offer to another state. An offer goes from `DRAFT` to `PUBLISHED`, and from there to `ACCEPTED` or `DECLINED`. Requires the `write:offers` scope.
Offer services
4 items
Offer additional costs
4 items
Offer batteries
4 items
Offer wallboxes
4 items
Offer misc materials
4 items