/{organizationId}/{mandateId}/booking/events/offers/{offerId}Get offer
Returns information for a specific offer for a given mandate
Required permissions:
mandate.read
eventOffer.read
Path Parameters
organizationIdstringrequired mandateIdstringrequired offerIdstringrequired Authentication: X-API-Key
Request
curl --request GET 'https://cloud.campai.com/api/{organizationId}/{mandateId}/booking/events/offers/{offerId}' \
--header 'X-API-Key: YOUR_API_KEY'Responses
This endpoint returns different response codes based on the request outcome.
200Successful response
Content-Type: application/json
ObjectId as string
ObjectId as string
sessionMinutesintegerrequired maximum: 9007199254740991
exclusiveMinimum: 0
sessionRetriesintegerrequired minimum: 0
maximum: 9007199254740991
Additional properties are not allowed.
paymentMethodsPendingstringrequired Options:
unpaidpartialpaidmaxItems: 20
Additional properties are not allowed.
maxItems: 8
refundTextstringrequired maxLength: 400
Additional properties are not allowed.
Additional properties are not allowed.
namestringrequired minLength: 1
maxLength: 60
descriptionstringrequired maxLength: 140
maxItems: 50
Additional properties are not allowed.
attendeeModestringrequired Options:
multiplesingleteamrateAdditional properties are not allowed.
Additional properties are not allowed.
Response
{
"_id": "000000000000000000000001",
"mandate": "000000000000000000000001",
"sessionMinutes": 1,
"sessionRetries": 0,
"paymentMethods": {
"sepaCreditTransfer": {
"internal": true,
"cashAccount": "000000000000000000000001",
"note": "string"
},
"sepaDirectDebit": {
"internal": true,
"cashAccount": "000000000000000000000001",
"note": "string"
},
"online": {
"internal": true,
"note": "string",
"stripe": true,
"paypal": false
},
"cash": {
"internal": true,
"note": "string"
}
},
"paymentMethodsPending": "unpaid",
"services": [
{
"service": "000000000000000000000001",
"serviceName": "string",
"serviceDescription": "string",
"serviceOptions": [
{
"id": "string",
"name": "string",
"description": "string",
"price": {
"isNet": true,
"price": 0,
"taxCode": "string",
"account": 1,
"costCenter1": 1,
"costCenter2": 1
}
}
],
"serviceMinOptions": 1,
"serviceMaxOptions": 1,
"availableAmount": 1
}
],
"serviceSettings": {
"required": true,
"selection": "single"
},
"refundPolicies": [
{
"refundUntil": {
"value": 0,
"unit": "hours"
},
"priceModifier": {
"value": 0,
"type": "%"
},
"pointModifier": {
"value": 0,
"type": "%"
}
}
],
"refundText": "string",
"form": {
"groups": [
{
"id": "string",
"label": "string",
"fields": [
{
"id": "string",
"type": "placeholder",
"name": "string"
}
]
}
]
},
"formSettings": {
"addressMode": "none",
"applicantType": "person",
"organisationNamePlaceholder": "string",
"requirePhone": true,
"showDiscountCode": true,
"showRefundPolicies": true,
"membershipNumberLabel": "string"
},
"name": "string",
"description": "string",
"rates": [
{
"id": "string",
"name": "string",
"description": "string",
"availableFrom": {
"value": 1,
"unit": "hours"
},
"availableTo": {
"value": 1,
"unit": "hours"
},
"member": {
"tags": "string",
"tagsMode": "any",
"allMandates": false,
"perTicket": false
},
"charge": {
"type": "price",
"price": {
"isNet": true,
"price": 0,
"taxCode": "string",
"account": 1,
"costCenter1": 1,
"costCenter2": 1
},
"punchCard": {
"punchCard": "000000000000000000000001",
"punchCardName": "string",
"punchCardPrice": {
"isNet": true,
"price": 0,
"taxCode": "string",
"account": 1,
"costCenter1": 1,
"costCenter2": 1
},
"points": 1
}
},
"standard": true,
"availableAmount": 1
}
],
"availability": {
"fromType": "anytime",
"fromDate": "2026-06-15T22:30:00Z",
"fromRelative": {
"value": 1,
"unit": "hours"
},
"from": null,
"toType": "start",
"toDate": "2026-06-15T22:30:00Z",
"toRelative": {
"value": 1,
"unit": "hours"
},
"to": null
},
"attendeeMode": "multiple",
"team": {
"requiresSize": true,
"minimumSize": 1,
"maximumSize": 1,
"chargeBySize": true,
"label": "string"
},
"permanent": {
"beforeStart": true,
"proRata": true
}
}400Invalid input data
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}401Authorization not provided
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}403Insufficient access
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}404Not found
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}500Internal server error
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}