Create Offer
Lets an expert offer a price and a delivery time for a testimony. Only testimonies in the pending or offered state whose real estate lies in one of the expert's regions are eligible, and each expert can hold one live offer per testimony — there is no endpoint to update an offer.
Experts may create offers before their account is approved, but such offers stay hidden from the client (they are not part of the testimony's offers, no email is sent and the testimony's state does not change) until the approval comes through. Once the expert is approved, the offer surfaces, the client receives the offer email and a still-pending testimony moves to offered. Clients cannot check out an offer of an unapproved expert.
HTTP Request
POST /api/v1/testimonies/:testimonyId/offers
| Parameter | Description |
|---|---|
price number | Offer price in EUR. Must be ≥ 0 with at most two decimals. |
elaborationInDays integer | Estimated days for completion. Must be ≥ 1. |
Response
201 Created
The commission breakdown is calculated by the backend (see Offer Object); expert is the authenticated expert as a Counterparty. The first offer from an approved expert moves the testimony from pending to offered.
{
"data": {
"id": "01J5X4A2B3C4D5E6F7G8H9J0K1",
"price": 500,
"elaborationInDays": 14,
"commissionAmount": 105,
"commissionPercent": 21,
"expertAmount": 395,
"expert": {
"firstName": "Ján",
"lastName": "Novák",
"regions": ["nr", "tt", "ba"]
}
}
}Authentication
Requires authentication via Bearer token, a verified email and the expert role (403 Forbidden otherwise).
401 Unauthorized
{
"message": "Unauthenticated."
}Error Handling
Validation Errors
422 Unprocessable Content with an errors object — price or elaborationInDays missing or out of range.
Business Errors
422 Unprocessable Content — the testimony is accepted, completed or cancelled:
{
"message": "Posudok v aktuálnom stave neprijíma ponuky."
}422 Unprocessable Content — the real estate's region is not among the expert's regions. This includes testimonies whose region has not been resolved by geocoding yet:
{
"message": "Posudok je mimo vašich regiónov pôsobnosti."
}409 Conflict — the expert already has a live offer on this testimony:
{
"message": "Na tento posudok už máte aktívnu ponuku."
}409 Conflict — another request changed the testimony at the same moment; re-fetch it and retry:
{
"message": "Záznam bol medzitým zmenený. Skúste to znova."
}