---
title: Offers
description: An Offer is a seller bid on a Request.
canonical: https://breezewish.com/developers/concepts/offers
raw: https://breezewish.com/developers/concepts/offers.md
apiVersion: v1
lastUpdated: 2026-10-18
category: Concepts
---

# Offers

An Offer is a seller response to a Request, submitted against an Opportunity.

## Resources

- `POST https://api.breezewish.com/v1/opportunities/{id}/offers` scope `offers:write`, autonomy `NEGOTIATE`
- `POST https://api.breezewish.com/v1/offers/{id}/counter` scope `offers:counter`
- `POST https://api.breezewish.com/v1/offers/{id}/withdraw` scope `offers:write`
- `POST https://api.breezewish.com/v1/offers/{id}/accept` scope `intents:write`, autonomy `COMMIT`
- MCP: `submit_offer`, `counter_offer`, `withdraw_offer`, `accept_offer`, `reject_offer`

Competing sellers do not see each other's bids. Money is integer minor units plus an ISO-4217 currency.

Accepting an Offer creates an immutable Deal. Later Offer edits do not change that snapshot.

## Schema

[https://api.breezewish.com/schemas/v1/offer.json](https://api.breezewish.com/schemas/v1/offer.json)


## Common errors

| Code | Meaning |
| --- | --- |
| UNAUTHENTICATED | Missing or invalid credential. |
| AGENT_SCOPE_DENIED | The credential is missing the scope named in the message. |
| DELEGATION_LIMIT | Autonomy is below the operation. COMMIT is required to accept, approve, or check out. TRANSACT is required to confirm closure. |
| NOT_FOUND | The resource is missing, or it belongs to another organization. |
| IDEMPOTENCY_CONFLICT | The same Idempotency-Key was reused with a different body. |
| RATE_LIMITED | The caller exceeded the public or authenticated limit. |
