Users
Symitar in Platform
>
Users
openapi: 3.0.1
info:
title: Symitar in Platform API - Users
version: v1
description: API to interact with Symitar in Platform
contact:
name: Picard
url: https://www.jackhenry.com/
email: DC-Picard-Product@jackhenry.com
servers:
- url: https://platform.banno.com
description: Production Endpoint
components:
securitySchemes:
OpenIDEnterprise:
type: openIdConnect
openIdConnectUrl: https://login.jackhenry.com/.well-known/openid-configuration
description: "Jack Henry Enterprise Authentication. \n\n ### Supported Flows\n \n #### 1. Authorization Code Flow\n * **Use Case:** Person-at-keyboard logins (FI or JH Employees).\n * **Security:** Supports/recommends PKCE (S256). Supports Pushed Authorization Requests (PAR), and DPoP token binding.\n * **Client Auth:** Supports/recommends `client_assertion` (Private Key JWT), also supports `client_secret`.\n \n #### 2. Client Credentials Flow\n * **Use Case:** System services and machine-to-machine integrations.\n * **Security:** Supports DPoP token binding.\n * **Client Auth:** **Requires** `client_assertion` (Private Key JWT).\n"
OpenIDConsumer:
type: openIdConnect
openIdConnectUrl: https://digital.garden-fi.com/.well-known/openid-configuration
description: "Jack Henry Consumer Authentication. \n\n> **WARNING: FI-SPECIFIC ROUTING**\n> The authorization server is currently pointing to our **Sandbox Environment** (`digital.garden-fi.com`) so you can test this documentation. In production code, this domain **must** be replaced with the specific Financial Institution's domain.\n> Example: Replace `{API-ENVIRONMENT}` in `https://{API-ENVIRONMENT}/.well-known/openid-configuration` with `digital.garden-fi.com` for the Garden financial institution.\n\n### Supported Flows\n\n#### 1. Authorization Code Flow\n* **Use Case:** Person-at-keyboard logins (customer or member of FI).\n* **Security:** Supports/recommends PKCE (S256). Supports Pushed Authorization Requests (PAR), and DPoP token binding.\n* **Client Auth:** Supports `client_secret`.\n"
tags:
- name: Users
description: User lookup operations (via SymXchange)
paths:
/a/api/picard/v1/{InstitutionUniversalId}/users/{userNumber}:
get:
operationId: fetchUser
tags:
- Users
summary: Fetch User by User Number
description: |
Retrieves Symitar system user information by user number. This calls
the SymXchange `getUserSelectFields` operation on the User CRUD
service (`/user` path) and returns the user record.
A "user" in SymXchange is a **system user** (teller, employee, etc.),
not a credit union member. Use `GET /members/{memberRecordNumber}`
to look up member information.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- name: userNumber
in: path
required: true
description: The numeric Symitar user number.
schema:
type: integer
example: 42
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: |
Symitar system user (teller, employee, etc.). Retrieved via the
SymXchange `getUserSelectFields` operation on the User CRUD service.
This is **not** a credit union member — see the `Member` schema for
member information.
When embedded in a `Note`, only `number` is guaranteed to be present.
The remaining fields are populated when the user record is available
in the cache.
required:
- number
properties:
number:
type: integer
description: Symitar user number
example: 42
name:
type: string
description: Full name of the user
example: Jean-Luc Picard
email:
type: string
description: Email address
example: jlpicard@example.com
phone:
type: string
description: Phone number
example: 555-0100
extension:
type: string
description: Phone extension
jobTitle:
type: string
description: Job title
example: Branch Manager
jobFunction:
type: string
description: Job function
deptName:
type: string
description: Department name
example: Operations
location:
type: string
description: Location
managersName:
type: string
description: Manager's name
assignedBranch:
type: integer
description: Assigned branch number
example: 1
type:
type: integer
description: User type code
onlineAccess:
type: integer
description: Online access flag
activeMode:
type: integer
description: Active mode flag
lastLogonDate:
type: string
description: Last logon date (YYYY-MM-DD)
example: '2026-03-09'
lastLogonTime:
type: integer
description: Last logon time (HHMM format)
example: 1430
secondaryId:
type: string
description: Secondary identifier
directory:
type: string
description: Directory path
recordChangeDate:
type: string
description: Record change date (YYYY-MM-DD)
securityCodes:
type: array
description: List of enabled security codes for the user.
items:
type: object
properties:
code:
type: integer
description: Security code identifier
description:
type: string
description: Human-readable security code description
'400':
description: Bad request — userNumber is not a valid number, or SymX config not found
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the clients identity is known to the server.
'404':
description: No user found for the given user number
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'500':
description: An unexpected internal server error occurred while processing the request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
examples:
internalServerError:
summary: Internal server error
value:
type: general/internal-server-error
title: Internal server error
details:
- Unexpected internal server error
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Tue Sep 15 2026