Skip to content
POST/{organizationId}/{mandateId}/booking/resources/offers/list

List offers

Returns a list of offers for a given mandate

Required permissions:

  • mandate.read

  • resourceOffer.read

Path Parameters

organizationIdstringrequired
mandateIdstringrequired

Request Body required

Content-Type: application/json

limitintegeroptional

Default: 50

minimum: 0

maximum: 100

offsetintegeroptional

Default: 0

minimum: 0

maximum: 9007199254740991

returnCountbooleanoptional

Default: false

searchTermstringoptional

Authentication: X-API-Key

Request

POST/{organizationId}/{mandateId}/booking/resources/offers/list
curl --request POST 'https://cloud.campai.com/api/{organizationId}/{mandateId}/booking/resources/offers/list' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "sort": {},
  "limit": 50,
  "offset": 0
}'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

countintegerrequired

minimum: 0

maximum: 9007199254740991

Response

200
{
  "count": 0,
  "offers": [
    {
      "_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
        }
      ],
      "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
          },
          "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,
          "adjustments": [
            {
              "fromMonth": 1,
              "fromDate": 1,
              "fromTime": {
                "hours": 0,
                "minutes": 0
              },
              "toMonth": 1,
              "toDate": 1,
              "toTime": {
                "hours": 0,
                "minutes": 0
              },
              "weekdays": {},
              "value": 0
            }
          ]
        }
      ],
      "availabilityHours": {
        "from": {
          "hours": 0,
          "minutes": 0
        },
        "to": {
          "hours": 0,
          "minutes": 0
        }
      },
      "availabilityWeekdays": {},
      "slots": {
        "size": 1,
        "unit": "minutes",
        "minimum": 1,
        "maximum": 1,
        "chargeRateBySlotNumber": true
      },
      "quantity": {
        "fromStock": true,
        "chargeRateByQuantity": true,
        "chargeServicesByQuantity": true,
        "minimum": 1,
        "maximum": 1,
        "name": "string",
        "description": "string"
      }
    }
  ]
}

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

400
{
  "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

401
{
  "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

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "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

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}