# Retrieve a single branch by branch number

Endpoint: GET /v1/{countryCode}/branches/{branchNumber}
Version: 0.0.1
Security: jwt-authorizer

## Path parameters:

  - `countryCode` (string, required)
    Enum: "au", "nz"

  - `branchNumber` (string, required)
    The unique branch number identifier.

## Query parameters:

  - `expand` (array)
    Comma-separated list of optional sections to include in the response. Supported values: hours (facility accessibility hours), departments (sales departments with resolved trading hours, trading branches only).
    Enum: "hours", "departments"

## Response 200 fields (application/json):

  - `number` (string, required)
    Unique identifier for the branch.
    Example: "MEL01"

  - `name` (string, required)
    Full trading name of the branch.
    Example: "Melbourne CBD"

  - `shortName` (string, required)
    Abbreviated name of the branch.
    Example: "MEL"

  - `identity` (object)
    Classification and trading status attributes that define what the branch is within the Enterprise hierarchy.

  - `identity.type` (object)
    The classification type of the branch within the Enterprise hierarchy.

  - `identity.type.id` (integer)
    Numeric identifier for the branch type.
    Example: 1

  - `identity.type.code` (string)
    Short code for the branch type.
    Example: "B"

  - `identity.type.description` (string)
    Human-readable description of the branch type.
    Example: "Branch"

  - `identity.isTrading` (boolean)
    Whether this is a trading branch with associated sales departments.
    Example: true

  - `contact` (object)
    Branch-level contact details representing the primary contact for the branch as an organisational unit.

  - `contact.telephone` (string)
    Primary telephone number for the branch.
    Example: "03 9000 0000"

  - `contact.fax` (string)
    Fax number for the branch.
    Example: "03 9000 0001"

  - `contact.managerName` (string)
    Full name of the branch manager.
    Example: "Sarah Williams"

  - `contact.primaryEmail` (string)
    Primary contact email address for the branch.
    Example: "mel01@reece.com.au"

  - `location` (object, required)
    Physical location attributes of the branch.

  - `location.address` (object)

  - `location.address.line1` (string)
    Primary street address line.
    Example: "123 Main Street"

  - `location.address.line2` (string)
    Secondary address line (unit, level, suite etc). Null if not applicable.
    Example: "Level 2"

  - `location.address.suburb` (string)
    Suburb or locality name.
    Example: "Melbourne"

  - `location.address.state` (string)
    State or territory code.
    Example: "VIC"

  - `location.address.postCode` (string)
    Postal code.
    Example: "3000"

  - `location.address.countryCode` (string)
    ISO 3166-1 alpha-2 country code.
    Example: "AU"

  - `location.latitude` (number)
    Geographic latitude in decimal degrees (WGS84).
    Example: -37.8136

  - `location.longitude` (number)
    Geographic longitude in decimal degrees (WGS84).
    Example: 144.9631

  - `location.timeZone` (string)
    IANA time zone identifier for the branch location.
    Example: "Australia/Melbourne"

  - `location.region` (string)
    Geographical region classification.
    Example: "Metro"

  - `hours` (array)
    Facility accessibility hours for this branch. Returned only when expand=hours is requested.

  - `hours.days` (array, required)
    The days of the week to which this time range applies.
    Enum: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"

  - `hours.open` (string, required)
    Opening time as RFC 3339 partial-time with explicit UTC offset (HH:mm:ss±HH:mm).
    Example: "07:00:00+10:00"

  - `hours.close` (string, required)
    Closing time as RFC 3339 partial-time with explicit UTC offset (HH:mm:ss±HH:mm).
    Example: "17:00:00+10:00"

  - `departments` (array)
    Sales departments for this branch. Returned only when expand=departments is requested.

  - `departments.code` (string, required)
    Stable identifier for the department type. Known values: TRADE, SHOWROOM.
    Example: "TRADE"

  - `departments.name` (string, required)
    Human-readable department name.
    Example: "Trade Counter"

  - `departments.telephone` (string)
    Direct telephone number for this department, if configured.
    Example: "03 9000 0000"

  - `departments.email` (string)
    Contact email address for this department, if configured.
    Example: "mel01.trade@reece.com.au"

  - `departments.hours` (array, required)
    Resolved trading hours for this department, grouped by time range.

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Stable machine-readable error identifier (UPPERCASE_WITH_UNDERSCORES).
    Example: "RESOURCE_NOT_FOUND"

  - `message` (string, required)
    Human-readable error description.
    Example: "The requested resource was not found."

  - `timestamp` (string)
    Time at which the error occurred (ISO 8601).
    Example: "2026-06-04T10:15:30Z"

  - `status` (integer)
    HTTP status code.
    Example: 404

  - `instance` (string)
    The request path or resource identifier that triggered the error.
    Example: "/v1/au/branches/MEL01"

  - `details` (array, required)
    Structured validation error details (populated for 400 responses).

  - `details.field` (string)
    The field that failed validation.
    Example: "typeCodes"

  - `details.issue` (string)
    Description of the validation failure.
    Example: "Invalid branch type code value."

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Stable machine-readable error identifier (UPPERCASE_WITH_UNDERSCORES).
    Example: "RESOURCE_NOT_FOUND"

  - `message` (string, required)
    Human-readable error description.
    Example: "The requested resource was not found."

  - `timestamp` (string)
    Time at which the error occurred (ISO 8601).
    Example: "2026-06-04T10:15:30Z"

  - `status` (integer)
    HTTP status code.
    Example: 404

  - `instance` (string)
    The request path or resource identifier that triggered the error.
    Example: "/v1/au/branches/MEL01"

  - `details` (array)
    Structured validation error details (populated for 400 responses).


