Skip to content
3 changes: 2 additions & 1 deletion docs/definitions/name.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ Name of a person

| Name | Type | Required | Description |
| - | - | - | - |
| firstName | string (len: 50) | Yes | First name |
| firstName | string (len: 50) | Yes | First name. If `isSingularName` is true then this field is set to `FNU`. |
| middleName | string (len: 50) | No | Middle name |
| lastName | string (len: 50) | Yes | Last name |
| suffix | string (len: 4) | No | Suffix |
| isSingularName | boolean | Yes | Indicates if this is a singular name |

*Note: Any fields marked as deprecated will be removed in a future version of the API. New code should not rely on these fields. Existing code should be updated to use alternative fields.*
7 changes: 4 additions & 3 deletions docs/practitioners-v1/get-current.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Get Current
# Get Current Profile

Get the current FCVS Profile for a practitioner.
Gets the current FCVS Profile for a practitioner.

```http
GET {baseUrl}/v1/boards/{board}/practitioners/{fid}/profiles/current
Expand All @@ -19,7 +19,8 @@ GET {baseUrl}/v1/boards/{board}/practitioners/{fid}/profiles/current
| Name | Type | Description |
| - |-|-|
| 200 OK | [Profile](/docs/definitions/profile.md) | Success |
| 404 Not Found | | Board code is missing/invalid or Practitioner does not have an FCVS Profile |
| 403 Forbidden | | Board code is invalid |
| 404 Not Found | | Profile not found |

## Security

Expand Down
3 changes: 2 additions & 1 deletion docs/practitioners-v1/get-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ GET {baseUrl}/v1/boards/{board}/practitioners/{fid}/status
| Name | Type | Description |
| - |-|-|
| 200 OK | [Practitioner Status](/docs/definitions/practitioner-status.md) | Success |
| 404 Not Found | | Board code is missing/invalid or Practitioner does not have an FCVS Profile |
| 403 Forbidden | | Board code is invalid |
| 404 Not Found | | Profile not found |

## Security

Expand Down
13 changes: 8 additions & 5 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,18 @@ To learn more about FSMB APIs, refer to the [Getting Started](https://github.com
- URL
- Demo: https://services-fcvs-demo.fsmb.org
- Production: https://services-fcvs.fsmb.org
- Authentication URL `<baseUrl>/connect/token`
- [Postman Collection](https://www.getpostman.com/collections/b59f8de00ca54eb654b7)
- [OpenAPI Specification](https://services-fcvs.fsmb.org/swagger/v1)
- OpenAPI Specification: [JSON](https://services-fcvs-demo.fsmb.org/openapi/v1.json) [YAML](https://services-fcvs-demo.fsmb.org/openapi/v1.yaml)

[<img src="https://run.pstmn.io/button.svg" alt="Run In Postman" style="width: 128px; height: 32px;">](https://app.getpostman.com/run-collection/1384052-bbfef0d8-d867-446d-8ae8-08d42b035ebe?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D1384052-bbfef0d8-d867-446d-8ae8-08d42b035ebe%26entityType%3Dcollection%26workspaceId%3D58240218-129c-4c2c-a71a-139a2efabdb2#?env%5BFCVS%20(Demo)%5D=W3siZW5hYmxlZCI6dHJ1ZSwia2V5IjoiYmFzZVVybCIsInZhbHVlIjoiaHR0cHM6Ly9zZXJ2aWNlcy1mY3ZzLWRlbW8uZnNtYi5vcmcifSx7ImVuYWJsZWQiOnRydWUsInR5cGUiOiJzZWNyZXQiLCJrZXkiOiJjbGllbnRJZCIsInZhbHVlIjoiRE9fTk9UX1NFVCJ9LHsiZW5hYmxlZCI6dHJ1ZSwidHlwZSI6InNlY3JldCIsImtleSI6ImNsaWVudFNlY3JldCIsInZhbHVlIjoiRE9fTk9UX1NFVCJ9XQ==)

[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/b59f8de00ca54eb654b7)
## Change Log

| Version | Date | Release Notes |
| - | - | -|
| 1.0 | 5 Dec 2019 | Initial version |
| Date | Release Notes |
| - | -|
| Aug 2026 | [Release Notes](relnotes/relnotes-202608.md) |
| Dec 2019 | Initial version |

## Security

Expand Down
52 changes: 52 additions & 0 deletions relnotes/relnotes-202608.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Release August 2026

## What's New

- [Singular Names](#singular-names)
- [Error Reporting](#error-reporting)
- [Response Changes](#response-changes)

## Breaking Changes

- The format for reporting errors has changed to align with standard API practices. Refer to [Error Reporting](#error-reporting) for more information.
- Some endpoint responses have changed the status code returned to better reflect the error. Refer to [Response Changes](#response-changes) for more information.

## Singular Names

Support for singular names has been added to the API for physician names. Physicians who have only a last name are considered to have a singular name.
To support this the following changes have been made to the physician's [Name](/docs/definitions/name.md).

- The `firstName` field is still required. If the physician has a singular name then the field is set to `FNU` which indicates there is no first name.
- A `isSingularName` field has been added to indicate when the name is singular.

Existing clients will continue to behave as before but should consider updating to support singular names.

- If `isSingularName` is set then the `firstName` should be considered empty and not the value specified.
- It is possible that a physician's first name is `FNU`. Therefore clients should not assume that a first name set to this value is a singular name. Use the indicator instead.

## Error Reporting

Historically errors from the API have returned an FSMB-specific error object containing the details of the error. The [RFC7807 Problem Details](https://tools.ietf.org/html/rfc7807) format has become the industry standard format for reporting errors and newer FSMB APIs use this format. Additionally some errors triggered by the lower level HTTP runtime would automatically return the `ProblemDetails` format before the API even had a chance to detect it. This causes confusion and requires that clients that need more detailed error information handle two different formats.

To resolve this the API has fully transitioned to the `ProblemDetails` format for error reporting. This ensures consistent error reporting while also making it behave like other APIs. However this breaks any existing code that reads the error object for detailed information. To allow for migration the API returns additional fields as part of the standard `ProblemDetails` format that line up with some of the older fields.

| Legacy Field | New Field | Description |
| - | - | - |
| `code` | `type` | Provides a unique identifier for the error |
| `message` | `detail` or `title` | Provides a friendly description of the error |
| `target` | `instance` | When applicable, the instance/field that the error is for |

Clients should do the following:

- Continue to use the HTTP status code for general error detection and reporting.
- If specific error details are needed, such as why a request was marked as bad, then read the `ProblemDetails` object.
- Any code relying on the older format including the legacy fields mentioned in the table should be migrated to use the new fields as soon as possible.

The legacy fields will be removed in a future update.

## Response Changes

Some endpoints have been adjusted to better reflect the data or error being returned.

- Any endpoint accepting a FID now requires an exact 9-digit value. Previously less than 9 digits were allowed but would return no results, e.g. 404 or 204. Now a 400 status is returned to reflect the invalid data.
- Previously passing an invalid board code to any endpoint resulted in a 404. This was confusing since some endpoints return a 404 when the request is valid but no data is available. With this release passing an invalid board code will result in an 403 Forbidden error with a message indicating the code is invalid.