openapi: 3.0.4 info: title: Bench AccountActivities PersonFieldValue API description: "

Versioning

\n

\n The API is currently at version 1.0. All API endpoints (other than\n authentication) require you to specify the API version as part of the path.\n

\n\n

URL Paths

\n

\n Authentication requests should be made to /auth/signin,\n as documented below. All other API requests should be made to\n sub-paths of /rp/api/1.0/....\n

\n\n

Authentication

\n

\n API requests are authenticated using an OAuth Bearer token.\n You can get a token by authenticating your user by sending a\n POST request to /auth/signin, with \"username and \"password\"\n parameters form-encoded in the body of the request.\n\n POST /auth/signin HTTP/1.1\n Content-Type: application/x-www-form-urlencoded\n\n username=user@example.com&password=some-secret-password\n

\n

\n The response will be a JSON object including both\n \"access_token\" and \"refresh_token\" property.\n All other requests against the Bench API should include an\n authorization header: Authorization: Bearer xxxYYYzzz,\n where xxxYYYzzz is the value of \"access_token\" in the response.\n

\n For example:\n\n $ curl https://bench.gobridgit.com/auth/signin -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'username=someone@example.com' --data-urlencode 'password=[...snip...]'\n {\n \"access_token\": \"...snip...\",\n \"token_type\": \"Bearer\",\n \"refresh_token\": \"...snip...\"\n \"expiry\": \"2020-01-01T00:00:00.413440849Z\"\n }\n\n

\n\n

\n The refresh token can be used to generate new session by request with /auth/token endpoint:\n\n POST /auth/token HTTP/1.1\n Content-Type: application/x-www-form-urlencoded\n\n grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA\n

\n

\n Note that once the refresh token is used, the previous access and refresh token is no longer valid.\n

\n For example:\n\n $ curl https://bench.gobridgit.com/auth/token -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'refresh_token=[...snip...]'\n {\n \"access_token\": \"...snip...\",\n \"token_type\": \"Bearer\",\n \"refresh_token\": \"...snip...\"\n \"expiry\": \"2020-01-01T00:00:00.413440849Z\"\n }\n

\n\n

Pagination

\n

\n Several of the API endpoints are paginated. These are denoted by\n including the offset (zero-based offset) and limit query\n parameters. For example, to request the 10 items,\n set the offset=0 to limit=10.\n
\n NOTE: the result set contains items with index of 0-9\n
\n To request the next 10 items (starting at index 10),\n set the offset=10 to limit=10\n

\n

\n Responses to paginated API endpoints return a JSON array of objects.\n If there are results beyond the page you have requested, the server\n will set a query-has-more: true header in the response.\n

\n\n

Request Encoding

\n

\n GET and DELETE requests should have parameters encoded as URL query\n parameters. Boolean values should be encoded as true and\n false, not as 1 and 0.\n

\n\n

Errors

\n

\n Errors are returned for some response codes such as 400 Bad Request in the\n following format:\n\n {\n \"errors\": [\n {\n \"errorType\": \"ValidationError\",\n \"description\": \"The value of Name must be a string with a minimum length of 1 and a maximum length of 8 and not whitespace.\",\n \"field\": \"Name\",\n \"values\": [\n null\n ]\n }\n ],\n \"title\": \"One or more validation errors occurred.\",\n \"status\": 400,\n \"instance\": \"api/v1/accounts/0/persons\",\n \"requestUid\": \"123e4567-e89b-12d3-a456-426614174000\"\n }\n

\n" version: '1.0' servers: - url: https://bench.gobridgit.com description: Bridgit Bench production security: - {} tags: - name: PersonFieldValue paths: /rp/api/v1/accounts/{accountId}/persons/{personId}/person-field-values: get: tags: - PersonFieldValue summary: Gets all custom field values for the given person. description: '
Permissions
Person: Read
HourlyProfile: Read
Private: Read
Finance: Read' operationId: PersonFieldValue_QueryFieldValues parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: personId in: path description: The Person ID required: true schema: type: integer format: int64 - name: includeEmpty in: query description: If true, the response will include all person field values, even if no value is set for a given field. If false, field values that are empty are not included in the response. schema: type: boolean default: false responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/FieldValuesResponse' application/json: schema: type: array items: $ref: '#/components/schemas/FieldValuesResponse' text/json: schema: type: array items: $ref: '#/components/schemas/FieldValuesResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden post: tags: - PersonFieldValue summary: Add or update one or more custom field values on a person description: 'It is mandatory that the fields with isRequired set to true be passed in as part of the request. Example: Say you have 2 person fields on an account "Contact Number" and "Certifications" where isRequired is set to true on "Contact Number". FieldDefinition Example Response - GET PersonFields (/api/v{version}/accounts/{id}/person-fields) [
  {
    "id": 1394,
    "name": "Contact Number",
    "type": "PhoneNumber",
    "isRequired": true,
    "isSystem": false,
    "isPrivate": false,
    "isFinancials": false,
    "isLocked": false
  },
  {
    "id": 1395,
    "name": "Certifications",
    "type": "Text",
    "isRequired": false,
    "isSystem": false,
    "isPrivate": false,
    "isFinancials": false,
    "isLocked": false
  }
]
If you only send in the following your request will result in a 400. [
  {
    "fieldId": 1395,
    "values": [
      "First Aid"
    ]
  }
]

Validation

Single List Selection: A list where only 1 value can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Multi List Selection: A list where 0 or more values can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Text: Min length: 0. Max length: 250 Date selector: Format: dd/MM/yyyy Other: Max length: 2400 Checkbox: Accepted values: ```true``` or ```false``` Currency: ^[0-9]{0,15}(\\.[0-9]{0,2})?$ Currency should be greater or equal to zero, starts with 0 to 15 digits of ```0-9``` then optionally followed by ```.``` with 0 to 2 digits of ```0-9``` Phone: ^\\+[1-9]\d{10,14}$ Phone starts with a ```+``` followed by 11 to 15 digits of ```0-9``` where the first digit is not ```0```
Permissions
Person: Write
HourlyProfile: Write
Private: Read
Finance: Read' operationId: PersonFieldValue_SetFieldValues parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: personId in: path description: The Person ID required: true schema: type: integer format: int64 requestBody: description: '' content: application/json-patch+json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' application/json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' text/json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' application/*+json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' required: true responses: '200': description: OK '204': description: No Content (success) '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden - User doesn't have permissions on this resource, or the account or person couldn't be found '422': description: Unprocessable Entity patch: tags: - PersonFieldValue summary: Update field values on a person description: '

Validation

Single List Selection: A list where only 1 value can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Multi List Selection: A list where 0 or more values can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Text: Min length: 0. Max length: 250 Date selector: Format: dd/MM/yyyy Other: Max length: 2400 Checkbox: Accepted values: ```true``` or ```false``` Currency: ^[0-9]{0,15}(\\.[0-9]{0,2})?$ Currency should be greater or equal to zero, starts with 0 to 15 digits of ```0-9``` then optionally followed by ```.``` with 0 to 2 digits of ```0-9``` Phone: ^\\+[1-9]\d{10,14}$ Phone starts with a ```+``` followed by 11 to 15 digits of ```0-9``` where the first digit is not ```0```
Permissions
Person: Write
HourlyProfile: Write
Private: Read
Finance: Read' operationId: PersonFieldValue_BulkUpdateFieldValues parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: personId in: path description: The Person ID required: true schema: type: integer format: int64 requestBody: description: '' content: application/json-patch+json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' application/json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' text/json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' application/*+json: schema: minItems: 1 type: array items: $ref: '#/components/schemas/FieldValuesPair' required: true responses: '200': description: OK '204': description: No Content (success) '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden - User doesn't have permissions on this resource, or the account or person couldn't be found delete: tags: - PersonFieldValue summary: Delete one or more custom field values for a person description: '
Permissions
Person: Write
HourlyProfile: Write
Private: Read
Finance: Read' operationId: PersonFieldValue_ClearFieldValues parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: personId in: path description: The Person ID required: true schema: type: integer format: int64 requestBody: description: The field IDs for which the custom values should be deleted content: application/json-patch+json: schema: minItems: 1 type: array items: type: integer format: int64 application/json: schema: minItems: 1 type: array items: type: integer format: int64 text/json: schema: minItems: 1 type: array items: type: integer format: int64 application/*+json: schema: minItems: 1 type: array items: type: integer format: int64 required: true responses: '200': description: OK '204': description: No Content (success) '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden - User doesn't have permissions on this resource, or the account or person couldn't be found /rp/api/v1/accounts/{accountId}/persons/{personId}/person-field-values/{fieldId}: patch: tags: - PersonFieldValue summary: Update a single field's value(s) for person in the given account. description: '

Validation

Single List Selection: A list where only 1 value can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Multi List Selection: A list where 0 or more values can be selected. When creating the list, each value should be between 1 and 250 non-empty characters. Text: Min length: 0. Max length: 250 Date selector: Format: dd/MM/yyyy Other: Max length: 2400 Checkbox: Accepted values: ```true``` or ```false``` Currency: ^[0-9]{0,15}(\\.[0-9]{0,2})?$ Currency should be greater or equal to zero, starts with 0 to 15 digits of ```0-9``` then optionally followed by ```.``` with 0 to 2 digits of ```0-9``` Phone: ^\\+[1-9]\d{10,14}$ Phone starts with a ```+``` followed by 11 to 15 digits of ```0-9``` where the first digit is not ```0```
Permissions
Person: Write
HourlyProfile: Write
Private: Read
Finance: Read' operationId: PersonFieldValue_UpdateFieldValue parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: personId in: path description: The Person ID required: true schema: type: integer format: int64 - name: fieldId in: path description: The field ID required: true schema: type: integer format: int64 requestBody: description: '' content: application/json-patch+json: schema: $ref: '#/components/schemas/FieldValuesRequest' application/json: schema: $ref: '#/components/schemas/FieldValuesRequest' text/json: schema: $ref: '#/components/schemas/FieldValuesRequest' application/*+json: schema: $ref: '#/components/schemas/FieldValuesRequest' required: true responses: '200': description: OK '204': description: No Content (success) '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden - User doesn't have permissions on this resource, or the account or person couldn't be found '422': description: Unprocessable Entity components: schemas: FieldValuesPair: type: object properties: fieldId: type: integer format: int64 example: 1394 values: type: array items: type: string nullable: true example: - '5195555555' additionalProperties: false FieldValuesRequest: type: object properties: values: type: array items: type: string nullable: true example: - '5195555555' additionalProperties: false FieldValuesResponse: type: object properties: fieldId: type: integer format: int64 example: 1394 name: type: string nullable: true example: Contact Number type: enum: - Boolean - Date - Email - PhoneNumber - Image - Text - LongText - SingleSelect - MultiSelect - Address - Currency - Phone - Integer - Number type: string example: PhoneNumber values: type: array items: type: string nullable: true example: - '5195555555' isRequired: type: boolean isSystem: type: boolean example: false isPrivate: type: boolean example: true isFinancials: type: boolean example: true lastModifiedOn: type: string format: date-time nullable: true example: '2021-05-27T10:58:23.530Z' additionalProperties: false securitySchemes: Bearer: type: http description: Standard Authorization header using the Bearer scheme scheme: bearer bearerFormat: JWT