Endpoints and schemas for creating and managing meetings and attendees within the SAP Concur platform.

All meeting-scoped endpoints accept an optional companyId query parameter (UUID). When omitted, the company is resolved from the token; when supplied it must match the token’s company.

List Meetings

Retrieves meetings for the caller’s company.

Scopes

meetings.read — Refer to Scope Usage.

URI

GET https://{datacenterURI}/meetings/v4/meetings?companyId={companyId}

Parameters

Name Type Format Description
companyId string uuid Company identifier. Optional; must match the token’s company when supplied.
countAttendees boolean - When true, each returned meeting includes an attendeesCount field. Off by default.
limit integer - Maximum number of results per page.
offset integer - Number of results to skip for pagination.

Examples

Request

GET https://us.api.concursolutions.com/meetings/v4/meetings?companyId=62ec4e74-3238-41a2-9233-c1cc901c2daa
Accept: application/json
Authorization: Bearer {token}

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
  "meetings": [
    {
      "id": "5036ada6-25e8-4e96-9d28-59788b1cdd67",
      "name": "Q3 Sales Kickoff",
      "status": "active",
      "locationName": "Grand Hotel",
      "airport": "SFO",
      "startDateTime": "2026-09-01T09:00:00Z",
      "endDateTime": "2026-09-03T17:00:00Z",
      "timeZone": "America/Los_Angeles"
    }
  ],
  "pagination": { "limit": 25, "offset": 0, "total": 1 }
}

Create Meeting

Creates a meeting in the caller’s company. The response includes the generated id.

Scopes

meetings.write — Refer to Scope Usage.

URI

POST https://{datacenterURI}/meetings/v4/meetings

Payloads

Examples

Request

POST https://us.api.concursolutions.com/meetings/v4/meetings
Content-Type: application/json
Authorization: Bearer {token}
{
  "companyId": "62ec4e74-3238-41a2-9233-c1cc901c2daa",
  "name": "Q3 Sales Kickoff",
  "locationName": "Grand Hotel",
  "airport": "SFO",
  "startDateTime": "2026-09-01T09:00:00Z",
  "endDateTime": "2026-09-03T17:00:00Z",
  "timeZone": "America/Los_Angeles",
  "travelConfigId": "0b2f...",
  "partnerMeetingId": "EXT-12345"
}

Response

HTTP/1.1 201 Created
Content-Type: application/json
{ "id": "5036ada6-25e8-4e96-9d28-59788b1cdd67", "status": "active" }

Get a Meeting

Retrieves full meeting details including metadata, settings, and discounts.

Related read-only sub-resources: GET /meetings/{meetingId}/metadata, /settings, /discounts, and /history.

Scopes

meetings.read — Refer to Scope Usage.

URI

GET https://{datacenterURI}/meetings/v4/meetings/{meetingId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Examples

Request

GET https://us.api.concursolutions.com/meetings/v4/meetings/5036ada6-25e8-4e96-9d28-59788b1cdd67
Accept: application/json
Authorization: Bearer {token}

Response

HTTP/1.1 200 OK
Content-Type: application/json

Update a Meeting

Partially updates a meeting using JSON Merge Patch.

Scopes

meetings.write — Refer to Scope Usage.

URI

PATCH https://{datacenterURI}/meetings/v4/meetings/{meetingId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Examples

Request

PATCH https://us.api.concursolutions.com/meetings/v4/meetings/5036ada6-25e8-4e96-9d28-59788b1cdd67
Content-Type: application/merge-patch+json
Authorization: Bearer {token}
{ "name": "Q3 Sales Kickoff (Updated)" }

Response

HTTP/1.1 200 OK
Content-Type: application/json

Delete a Meeting

Soft-deletes the meeting.

Scopes

meetings.write — Refer to Scope Usage.

URI

DELETE https://{datacenterURI}/meetings/v4/meetings/{meetingId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Examples

Request

DELETE https://us.api.concursolutions.com/meetings/v4/meetings/5036ada6-25e8-4e96-9d28-59788b1cdd67
Authorization: Bearer {token}

Response

HTTP/1.1 204 No Content

List Attendees

Retrieves attendees for a meeting.

Scopes

meetings.read — Refer to Scope Usage.

URI

GET https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Add Attendee

Adds a single attendee to a meeting.

Scopes

meetings.write — Refer to Scope Usage.

URI

POST https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Payloads

Add Attendees (Bulk)

Adds multiple attendees to a meeting. Returns 207 Multi-Status with per-item results.

Scopes

meetings.write — Refer to Scope Usage.

URI

POST https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees/bulk

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.

Examples

Request

POST https://us.api.concursolutions.com/meetings/v4/meetings/{meetingId}/attendees/bulk
Content-Type: application/json
Authorization: Bearer {token}
{
  "attendees": [
    { "email": "jane@example.com", "firstName": "Jane", "lastName": "Doe", "profileType": "nonEmployee" },
    { "email": "john@example.com", "firstName": "John", "lastName": "Roe", "profileType": "employee" }
  ]
}

Response

HTTP/1.1 207 Multi-Status
Content-Type: application/json
{
  "totalRequested": 2,
  "successful": 2,
  "failed": 0,
  "results": [
    { "index": 0, "status": 201, "id": "17eeba90-d260-4bf6-8814-7f6336acf0e4" },
    { "index": 1, "status": 201, "id": "820a1325-d80c-4d80-adfa-ae6b322bc009" }
  ]
}

Get Attendee

Retrieves a single attendee.

Scopes

meetings.read — Refer to Scope Usage.

URI

GET https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees/{attendeeId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.
attendeeId string uuid Required Attendee identifier.

Update Attendee

Partially updates an attendee using JSON Merge Patch.

Scopes

meetings.write — Refer to Scope Usage.

URI

PATCH https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees/{attendeeId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.
attendeeId string uuid Required Attendee identifier.

Delete Attendee

Removes an attendee from a meeting.

Scopes

meetings.write — Refer to Scope Usage.

URI

DELETE https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees/{attendeeId}

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.
attendeeId string uuid Required Attendee identifier.

Generate Attendee Login URL

Generates a one-time login URL for a non-employee attendee.

Scopes

meetings.write — Refer to Scope Usage.

URI

POST https://{datacenterURI}/meetings/v4/meetings/{meetingId}/attendees/{attendeeId}/login-url

Parameters

Name Type Format Description
meetingId string uuid Required Meeting identifier.
attendeeId string uuid Required Attendee identifier.

Company Form Data

Retrieves the travel configs and their rule classes for a company, used to populate options when creating or editing a meeting.

Scopes

meetings.read — Refer to Scope Usage.

URI

GET https://{datacenterURI}/meetings/v4/companies/{companyId}/form-data

Parameters

Name Type Format Description
companyId string uuid Required Company identifier. The caller’s token must belong to the same company.

Examples

Request

GET https://us.api.concursolutions.com/meetings/v4/companies/62ec4e74-3238-41a2-9233-c1cc901c2daa/form-data
Accept: application/json
Authorization: Bearer {token}

Response

{
  "travelConfigs": [
    { "id": "0b2f...", "name": "Default Travel Config", "ruleClasses": [ { "ruleClassUuid": "...", "ruleClassName": "Default" } ] }
  ]
}

Schema

MeetingCreate

Name Type Format Description
companyId string uuid Required Company that owns the meeting.
name string - Required Meeting name.
description string - Meeting description.
locationName string - Required Location name.
airport string - Required Nearest airport IATA code.
startDateTime string date-time Required Meeting start (ISO 8601).
endDateTime string date-time Required Meeting end (ISO 8601).
timeZone string - Required IANA time zone (e.g., America/Los_Angeles).
travelConfigId string uuid Required Travel configuration identifier.
billingCode string - Billing code.
partnerMeetingId string - Meeting ID in the partner system.

AttendeeCreate

Name Type Format Description
email string email Required Attendee email.
firstName string - Required Attendee first name.
lastName string - Required Attendee last name.
profileType string enum Required One of employee, nonEmployee.
concurUuid string uuid Concur user profile UUID, if known.
concurLoginId string - Concur login ID / email, if known.
partnerAttendeeId string - Attendee ID in the partner system.

Attendee

Name Type Format Description
id string uuid Attendee identifier.
meetingId string uuid Parent meeting identifier.
profileType string enum One of employee, nonEmployee.
email string email Attendee email.
firstName string - Attendee first name.
lastName string - Attendee last name.
bookingStatus string enum One of pending, booked, cancelled.
tripId string uuid Associated trip identifier, if booked.
partnerAttendeeId string - Attendee ID in the partner system.

ErrorEnvelope

Name Type Format Description
errors array ErrorItem Required Array of error objects.

ErrorItem

Name Type Format Description
errorCode string - Required Machine-readable, non-localized code (e.g., ATTENDEE_NOT_FOUND, VALIDATION_ERROR, FORBIDDEN).
errorMessage string - Required Human-readable message for logging and diagnostics.

On this page