SAP Concur Users v3.0

This reference is readable without JavaScript. Download the OpenAPI document.

Runtime

/api/purple-suite/{instanceId}/contracts/expense/concur
[
  {
    "method": "get",
    "path": "/common/users",
    "operationId": "get_common_users"
  }
]

Credentials

Coverage and limitations

{
  "documentScope": "full",
  "runtimeFidelity": "modeled",
  "counts": {
    "operations": 1
  },
  "notes": [
    "The single operation declared by the pinned Users document is mounted as `modeled-core`. Users are internal people drawn from the shared PurpleSuite roster (`getPeople`), so a Concur `LoginID` resolves to the same person as every other Purple app. All 7 declared filters are executable.",
    "This is the supporting entity for the Reports and Entries profiles: report owners and approvers are the same roster people. Concur's Identity v4 / SCIM user-provisioning API is a separate product and is not pinned here.",
    "Provenance `oas`: a vendor-published Swagger 2.0 document from SAP's own documentation repository. `runtimeFidelity` is `modeled`, not `exact`: the served request schema is deliberately narrowed and the runtime is deterministic synthetic state, not captured Concur tenant behaviour.",
    "Swagger 2.0 `basePath` cannot template a variable, so the instance-scoped prefix is expressed as a literal `/api/purple-suite/{instanceId}/contracts/expense/concur` basePath with `host`, `schemes` and the vendor `x-servers` block removed. The reference viewer supplies a templated server that overrides it, so a Scalar try-it-out still targets a concrete instance; the cost falls on a strict Swagger 2.0 client reading the raw document, which treats `{instanceId}` as a literal path segment.",
    "Vendor-document defect repaired in the served projection only: the pinned collection definition declares `Items` as a single `$ref` object while its sibling `NextPage` is documented as \"The URI of the next page of results, if any.\" The projection declares `Items` as an array of the pinned item schema; `sources/` is unchanged.",
    "Concur's report/entry approval workflow, and every other Concur product surface, declares no operation in these documents and is therefore not modeled rather than faked."
  ]
}

Provides details of all the client's SAP Concur users that meet the search parameters.

Servers

[]

Authentication schemes

{}

Each operation lists its security requirements. An empty security array permits an unauthenticated request. Use the scheme and headers declared for the selected contract.

Operations

GET /common/users

Get all users.

Retrieves all users based on the search criteria. Executable core. Requests are narrowed to the published parameters listed here (exact-value filters, no wildcards; `YYYY-MM-DD` date bounds; `limit` 1-100) and to the declared request properties. The `Items` array shape is the served repair of the pinned document's own cursor inconsistency. The PurpleSuite instance key stands in for a Concur OAuth access token on the vendor's `Authorization: Bearer` transport; no token-exchange operation is pinned in this document.

Authentication

[
  {
    "OAuth2": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Resources"
  ],
  "summary": "Get all users.",
  "description": "Retrieves all users based on the search criteria.\n\nExecutable core. Requests are narrowed to the published parameters listed here (exact-value filters, no wildcards; `YYYY-MM-DD` date bounds; `limit` 1-100) and to the declared request properties. The `Items` array shape is the served repair of the pinned document's own cursor inconsistency. The PurpleSuite instance key stands in for a Concur OAuth access token on the vendor's `Authorization: Bearer` transport; no token-exchange operation is pinned in this document.",
  "parameters": [
    {
      "name": "offset",
      "in": "query",
      "description": "The starting point of the next set of results, after the limit specified in the limit field has been reached.",
      "required": false,
      "type": "string",
      "maxLength": 256,
      "pattern": "^[A-Za-z0-9_.:-]*$"
    },
    {
      "name": "limit",
      "in": "query",
      "description": "The number of records to return. Default value: 25. Maximum: 100.",
      "required": false,
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    },
    {
      "name": "primaryEmail",
      "in": "query",
      "description": "The primary email of the user.",
      "required": false,
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[^*%]*$"
    },
    {
      "name": "employeeID",
      "in": "query",
      "description": "The employee ID of the user.",
      "required": false,
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[^*%]*$"
    },
    {
      "name": "user",
      "in": "query",
      "description": "The login ID of the user.",
      "required": false,
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[^*%]*$"
    },
    {
      "name": "lastName",
      "in": "query",
      "description": "The last name of the user.",
      "required": false,
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[^*%]*$"
    },
    {
      "name": "active",
      "in": "query",
      "description": "Indicates whether to return active or inactive users. FORMAT: true or false",
      "required": false,
      "type": "boolean"
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "schema": {
        "$ref": "#/definitions/UserCollection"
      }
    }
  },
  "operationId": "get_common_users",
  "x-purplesuite-classification": "modeled-core"
}

Schemas and reusable components

Document metadata and extensions

{
  "x-sap-shortText": "Retreives basic company information with a list of users.",
  "swagger": "2.0",
  "basePath": "/api/purple-suite/{instanceId}/contracts/expense/concur",
  "produces": [
    "application/json",
    "application/xml"
  ],
  "consumes": [
    "application/json",
    "application/xml"
  ],
  "info": {
    "title": "SAP Concur Users v3.0 — PurpleSuite executable core",
    "description": "Provides details of all the client's SAP Concur users that meet the search parameters.",
    "version": "3.0",
    "x-purplesuite-contract": {
      "system": "expense",
      "paint": "concur",
      "profileId": "concur-users-v3",
      "revision": "v3.0; SAP-docs/preview.developer.concur.com @ main, src/api-explorer/v3-0 Swagger 2.0 set",
      "vendorBaseUrl": "https://www.concursolutions.com/api/v3.0",
      "documentScope": "full",
      "runtimeFidelity": "modeled",
      "operations": 1,
      "boundaries": [
        "Swagger 2.0 `basePath` has no variable templating, so the `{instanceId}` in this document's basePath is a literal brace pair. The PurpleSuite reference viewer overrides it with a templated server, so try-it-out resolves a real instance; a strict Swagger 2.0 client reading the raw document must substitute the instance id itself.",
        "`securityDefinitions` is the vendor's OAuth2 client-credentials declaration, verbatim. PurpleSuite accepts the instance key as the bearer token on that same transport; the vendor token endpoint is not pinned in this document and no token-exchange route is mounted.",
        "Concur's report and entry approval workflow (submit, approve, send back, recall) declares no operation in these three documents, so none is modeled. The same is true of Itemizations, Attendees, Allocations, Quick Expenses, Payment Batches, Expense Group Configurations, Receipt Images and the Identity v4 API, which are separate Concur products.",
        "An unspecified `user` means \"the OAuth Consumer\" in the vendor document. There is no OAuth consumer here: on a list operation an unspecified `user` returns every owner in the instance (equivalent to `user=ALL`), and on a write it resolves to the instance's service persona, the first person in the shared roster."
      ]
    }
  },
  "securityDefinitions": {
    "OAuth2": {
      "type": "oauth2",
      "description": "To use this API, you need to get OAuth client credentials (client ID, secret, and geolocation) from SAP Concur, and be authorized to use the relevant scope. Refer to the <a href=\"https://developer.concur.com/api-reference/authentication/getting-started.html\">full authentication information</a> for more information.",
      "tokenUrl": "https://us.api.concursolutions.com/oauth2/v0",
      "flow": "application"
    }
  },
  "security": [
    {
      "OAuth2": []
    }
  ],
  "tags": [
    {
      "name": "Resources",
      "description": ""
    }
  ],
  "definitions": {
    "User": {
      "properties": {
        "Active": {
          "type": "boolean",
          "description": "Indicates whether the user is currently active or not."
        },
        "CellPhoneNumber": {
          "type": "string",
          "description": "The cell phone number of the user."
        },
        "EmployeeID": {
          "type": "string",
          "description": "The employee ID of the user."
        },
        "FirstName": {
          "type": "string",
          "description": "The first name of the user."
        },
        "ID": {
          "type": "string",
          "description": "The unique identifier of the resource."
        },
        "LastName": {
          "type": "string",
          "description": "The last name of the user."
        },
        "LoginID": {
          "type": "string",
          "description": "The login ID of the user."
        },
        "MiddleName": {
          "type": "string",
          "description": "The middle name of the user."
        },
        "OrganizationUnit": {
          "type": "string",
          "description": "The organization unit of the user."
        },
        "PrimaryEmail": {
          "type": "string",
          "description": "The primary email of the user."
        },
        "URI": {
          "type": "string",
          "description": "The URI to the resource."
        }
      }
    },
    "UserCollection": {
      "properties": {
        "Items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/User"
          }
        },
        "NextPage": {
          "type": "string",
          "description": "The URI of the next page of results, if any."
        }
      },
      "type": "object"
    }
  }
}
Interactive API explorer (requires JavaScript)