GET /api/v1/offers/{offerId}
Amounts use EUR or USD minor units without conversion. The school is derived from your API key.
Use x-api-key with an active key bound to this school. The bearer must retain membership and current domain permissions; CASL remains authoritative for owner/admin operations.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Conditional — organization-scoped closer |
| Requirement | Rule for this endpoint |
|---|---|
| Business role | Organization-scoped closer for members; none beyond owner/admin otherwise |
| Resource scope | School bound to the key; closer reads only their own offers, without schedules |
| Participation | None |
| Resource state | No additional state requirement |
| Parameter | Type | Required | Description |
|---|---|---|---|
offerId | UUID | yes | Offer visible to the bearer in this school |
curl -X GET "$COHORTE_API_BASE_URL/api/v1/offers/44444444-4444-4444-8444-444444444444" \
-H "x-api-key: $COHORTE_API_KEY"200: successful read, update or replay.400: invalid payload, unsupported currency, locked currency or invalid offer state.401: invalid key, bearer or membership.403: insufficient permission.404: absent or outside the authorized school/scope.429: rate limited.500: unexpected error.| Field | Type | Nullable | Description |
|---|---|---|---|
success | boolean | no | True on success |
data | object | no | Offer editable fields above, plus id, status, soldCount, programDefaultPriceCents (null for USD), expiresAt and updatedAt ISO instants. Schedule items also carry id; installments is null for a restricted closer read. paymentPath is the private payment path for nominative offers, null for slug offers. |
paymentState | string | no | On reads only: paid once a payment was captured or a scheduled payment of the current plan was settled, unpaid otherwise, not_open while the offer is a draft. Never an amount collected and never the schedule; a closer reads it on the offers he composed. Absent from create and update responses. |
{"success":true,"data":{"id":"44444444-4444-4444-8444-444444444444","title":"Coaching","amountCents":25000,"currency":"USD","status":"draft","installments":[],"programDefaultPriceCents":null,"paymentState":"not_open"}}The closer never gains access to other authors’ offers, payment schedules or payments; paymentState tells him whether his offer was paid, nothing more. Program default prices are EUR; enter USD amounts explicitly.