Members
Symitar in Platform
>
Members
openapi: 3.0.1
info:
title: Symitar in Platform API - Members
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: Members
description: Member management operations
paths:
/a/api/picard/v1/{InstitutionUniversalId}/members/{memberRecordNumber}:
get:
operationId: fetchMember
tags:
- Members
summary: Fetch Member
description: Retrieves member information by member number
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: memberRecordNumber
in: path
required: true
description: |
17-digit member record number. Obtainable from the `memberRecordNumber` field on any `Relationship` object returned by `members-search` or `accounts-search`.
schema:
type: string
example: '20190510000000000'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
description: Member information
required:
- memberNumber
- shortName
- longName
- firstName
- middleName
- lastName
- suffix
- birthDate
- email
- homePhone
- workPhone
- mobilePhone
- street
- city
- state
- zipCode
- country
- status
- statusDescription
- openDate
- closeDate
- branch
- branchDescription
properties:
memberNumber:
type: string
description: Member number
example: '123456'
shortName:
type: string
description: Member short name
longName:
type: string
description: Member long/full name
firstName:
type: string
description: First name
middleName:
type: string
description: Middle name
nullable: true
lastName:
type: string
description: Last name
suffix:
type: string
description: Name suffix (Jr., Sr., etc.)
nullable: true
birthDate:
type: string
description: Birth date
nullable: true
example: '1990-01-15'
email:
type: string
format: email
description: Email address
nullable: true
homePhone:
type: string
description: Home phone number
nullable: true
workPhone:
type: string
description: Work phone number
nullable: true
mobilePhone:
type: string
description: Mobile phone number
nullable: true
street:
type: string
description: Street address
nullable: true
city:
type: string
description: City
nullable: true
state:
type: string
description: State
nullable: true
zipCode:
type: string
description: ZIP code
nullable: true
country:
type: string
description: Country
nullable: true
status:
type: integer
description: Member status code
statusDescription:
type: string
description: Member status description
openDate:
type: string
description: Account open date
nullable: true
example: '2020-01-15'
closeDate:
type: string
description: Account close date
nullable: true
example: '2025-01-15'
branch:
type: integer
description: Branch number
branchDescription:
type: string
description: Branch description
'400':
description: Bad 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
'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: Member 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
'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
patch:
operationId: updateMember
tags:
- Members
summary: Update Member Record
description: |
Updates fields on a member record in Symitar via the SymXchange
`updateMemberRecByID` SOAP operation. Only the fields present in the
request body are modified; omitted fields are left unchanged (PATCH
semantics).
After a successful update the Spanner cache row is invalidated and
the member record is re-fetched from SymXchange, so the response
always reflects the latest state.
**Updatable fields are limited to a safe subset.** Sensitive fields
such as `ssn`, `ssnType`, `mbrStatus`, and `restrict` cannot be
changed through this endpoint. Name fields (first, middle, last,
suffix, title, nameFormat) are also excluded — name changes require
additional verification.
**`employerName` and `occupation` must be submitted in all caps.**
Requests with mixed-case values for these fields will be rejected
with a 400 error.
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: memberRecordNumber
in: path
required: true
description: |
17-digit member record number. Obtainable from the `memberRecordNumber` field on any `Relationship` object returned by `members-search` or `accounts-search`.
schema:
type: string
example: '20190510000000000'
requestBody:
required: true
content:
application/merge-patch+json:
schema:
type: object
description: |
Request body for `PATCH /members/{memberRecordNumber}`.
All fields are optional — only supplied fields are sent to SymXchange.
At least one field must be provided.
**Name fields are not updatable** through this endpoint. Name changes
(first, middle, last, suffix, title, nameFormat) require additional
verification and should go through a separate process.
properties:
email:
type: string
format: email
description: Primary email address
example: member@example.com
altEmail:
type: string
format: email
description: Alternate email address
homePhone:
type: string
description: Home phone number
example: 555-0100
workPhone:
type: string
description: Work phone number
workPhoneExtension:
type: string
description: Work phone extension
mobilePhone:
type: string
description: Mobile phone number
example: 555-0199
preferredContactMethod:
type: integer
description: |
Preferred contact method code.
0 = None, 1 = Mail, 2 = Phone, 3 = Email
employerName:
type: string
description: |
Employer name. **Must be all caps** (e.g. `ACME CORPORATION`).
Requests with mixed-case values will be rejected with a 400 error.
occupation:
type: string
description: |
Occupation. **Must be all caps** (e.g. `SOFTWARE ENGINEER`).
Requests with mixed-case values will be rejected with a 400 error.
responses:
'200':
description: Successfully updated — returns the full updated member record.
content:
application/json:
schema:
type: object
description: Member information
required:
- memberNumber
- shortName
- longName
- firstName
- middleName
- lastName
- suffix
- birthDate
- email
- homePhone
- workPhone
- mobilePhone
- street
- city
- state
- zipCode
- country
- status
- statusDescription
- openDate
- closeDate
- branch
- branchDescription
properties:
memberNumber:
type: string
description: Member number
example: '123456'
shortName:
type: string
description: Member short name
longName:
type: string
description: Member long/full name
firstName:
type: string
description: First name
middleName:
type: string
description: Middle name
nullable: true
lastName:
type: string
description: Last name
suffix:
type: string
description: Name suffix (Jr., Sr., etc.)
nullable: true
birthDate:
type: string
description: Birth date
nullable: true
example: '1990-01-15'
email:
type: string
format: email
description: Email address
nullable: true
homePhone:
type: string
description: Home phone number
nullable: true
workPhone:
type: string
description: Work phone number
nullable: true
mobilePhone:
type: string
description: Mobile phone number
nullable: true
street:
type: string
description: Street address
nullable: true
city:
type: string
description: City
nullable: true
state:
type: string
description: State
nullable: true
zipCode:
type: string
description: ZIP code
nullable: true
country:
type: string
description: Country
nullable: true
status:
type: integer
description: Member status code
statusDescription:
type: string
description: Member status description
openDate:
type: string
description: Account open date
nullable: true
example: '2020-01-15'
closeDate:
type: string
description: Account close date
nullable: true
example: '2025-01-15'
branch:
type: integer
description: Branch number
branchDescription:
type: string
description: Branch description
'400':
description: Bad request — invalid or disallowed field
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: Member 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
'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
/a/api/picard/v1/{InstitutionUniversalId}/members/{memberRecordNumber}/ssn:
get:
operationId: fetchMemberSSN
tags:
- Members
summary: Fetch Member SSN
description: |
Retrieves the full (unmasked) Social Security Number for a member.
Unlike `GET /members/{memberRecordNumber}`, which returns the SSN
masked to the last four digits, this endpoint returns the complete
nine-digit SSN.
This endpoint always calls SymXchange directly and **does not** use
the Spanner cache.
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: memberRecordNumber
in: path
required: true
description: |
17-digit member record number. Obtainable from the `memberRecordNumber` field on any `Relationship` object returned by `members-search` or `accounts-search`.
schema:
type: string
example: '20190510000000000'
responses:
'200':
description: The member's full SSN as a plain-text string.
content:
text/plain:
schema:
type: string
example: '123456789'
'400':
description: The server could not understand the request due to an invalid 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
'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: Member 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
'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
/a/api/picard/v1/{InstitutionUniversalId}/members-search:
post:
operationId: searchMembers
tags:
- Members
summary: Search Members
description: Searches for members matching the supplied query expression.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- query
properties:
query:
type: string
description: Search expression.
example: John Smith
limit:
type: integer
description: Maximum number of results to return.
example: 50
additionalProperties: false
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
type: object
properties:
memberId:
type: string
example: 550e8400-e29b-41d4-a716-446655440000
first:
type: string
example: John
middle:
type: string
example: A
last:
type: string
example: Smith
birthDate:
type: string
description: Date of birth in YYYY-MM-DD format.
example: '1980-01-15'
ssnLast4:
type: string
example: '1234'
street:
type: string
description: Physical address.
example: 123 Main St
extraAddress:
type: string
description: Second physical address line, such as an apartment or suite. Omitted when empty.
example: Apt 2B
city:
type: string
example: Springfield
state:
type: string
example: IL
zipCode:
type: string
example: '62701'
mailingAddress:
allOf:
- type: object
description: An address the member has asked mail to be sent to instead of their physical address.
properties:
street:
type: string
example: 742 Snowbird Dr
extraAddress:
type: string
example: Unit 4
city:
type: string
example: Naples
state:
type: string
example: FL
zipCode:
type: string
example: '34102'
effectiveDate:
type: string
description: First day the override applies, YYYY-MM-DD. Omitted when open ended.
example: '2026-11-01'
expirationDate:
type: string
description: Last day the override applies, YYYY-MM-DD. Omitted when open ended.
example: '2027-03-31'
description: Seasonal or mail-override address in force today. Omitted when the member has no active override, in which case mail goes to the physical address above.
email:
type: string
format: email
example: john@example.com
altEmail:
type: string
format: email
example: john.alt@example.com
homePhone:
type: string
example: '2175550100'
workPhone:
type: string
example: '2175550101'
mobilePhone:
type: string
example: '2175550102'
accounts:
type: array
items:
type: object
properties:
accountNumber:
type: string
example: '0000123456'
accountId:
type: string
format: uuid
example: f2a071de-b754-3437-beb8-d590d56067f9
memberNumber:
type: string
example: '20190510000000000'
locator:
type: integer
format: int64
example: 1
nameOnRecord:
type: string
example: John A Smith
title:
type: string
example: Mr
suffix:
type: string
example: Jr
sharesLoans:
type: array
items:
type: object
properties:
id:
type: string
example: '0001'
type:
type: string
enum:
- Share
- Loan
example: Share
shareId:
type: string
description: The share identifier from the core system. Present only when type is Share.
example: S0001
loanId:
type: string
description: The loan identifier from the core system. Present only when type is Loan.
example: L0001
accountStatus:
type: string
example: Open
description:
type: string
example: Primary Savings
openDate:
type: string
example: '2020-01-15'
closeDate:
type: string
example: '2025-01-15'
shareCode:
type: string
example: S1
shareType:
type: string
example: Savings
loanCode:
type: string
example: L1
loanType:
type: string
example: Auto
relationshipCode:
type: string
example: '01'
'400':
description: The request body is invalid. See the response body for more information.
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.
'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
/a/api/picard/v1/{InstitutionUniversalId}/accounts/{accountId}:
get:
operationId: fetchAccountById
tags:
- Members
summary: Get Account Details
description: Retrieves account details, including linked shares and loans, by account id.
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: accountId
in: path
required: true
description: Account identifier.
schema:
type: string
format: uuid
example: f2a071de-b754-3437-beb8-d590d56067f9
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
accountNumber:
type: string
example: '0000123456'
accountId:
type: string
format: uuid
example: f2a071de-b754-3437-beb8-d590d56067f9
memberNumber:
type: string
example: '20190510000000000'
locator:
type: integer
format: int64
example: 1
nameOnRecord:
type: string
example: John A Smith
title:
type: string
example: Mr
suffix:
type: string
example: Jr
sharesLoans:
type: array
items:
type: object
properties:
id:
type: string
example: '0001'
type:
type: string
enum:
- Share
- Loan
example: Share
shareId:
type: string
description: The share identifier from the core system. Present only when type is Share.
example: S0001
loanId:
type: string
description: The loan identifier from the core system. Present only when type is Loan.
example: L0001
accountStatus:
type: string
example: Open
description:
type: string
example: Primary Savings
openDate:
type: string
example: '2020-01-15'
closeDate:
type: string
example: '2025-01-15'
shareCode:
type: string
example: S1
shareType:
type: string
example: Savings
loanCode:
type: string
example: L1
loanType:
type: string
example: Auto
relationshipCode:
type: string
example: '01'
'400':
description: The server could not understand the request due to an invalid 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
'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: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'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
/a/api/picard/v1/{InstitutionUniversalId}/member-details/{memberId}:
get:
operationId: fetchMemberById
tags:
- Members
summary: Get Member Details by Member ID
description: Retrieves member search details by the deterministic member id.
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: memberId
in: path
required: true
description: Deterministic member identifier.
schema:
type: string
format: uuid
example: 550e8400-e29b-41d4-a716-446655440000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
memberId:
type: string
example: 550e8400-e29b-41d4-a716-446655440000
first:
type: string
example: John
middle:
type: string
example: A
last:
type: string
example: Smith
birthDate:
type: string
description: Date of birth in YYYY-MM-DD format.
example: '1980-01-15'
ssnLast4:
type: string
example: '1234'
street:
type: string
description: Physical address.
example: 123 Main St
extraAddress:
type: string
description: Second physical address line, such as an apartment or suite. Omitted when empty.
example: Apt 2B
city:
type: string
example: Springfield
state:
type: string
example: IL
zipCode:
type: string
example: '62701'
mailingAddress:
allOf:
- type: object
description: An address the member has asked mail to be sent to instead of their physical address.
properties:
street:
type: string
example: 742 Snowbird Dr
extraAddress:
type: string
example: Unit 4
city:
type: string
example: Naples
state:
type: string
example: FL
zipCode:
type: string
example: '34102'
effectiveDate:
type: string
description: First day the override applies, YYYY-MM-DD. Omitted when open ended.
example: '2026-11-01'
expirationDate:
type: string
description: Last day the override applies, YYYY-MM-DD. Omitted when open ended.
example: '2027-03-31'
description: Seasonal or mail-override address in force today. Omitted when the member has no active override, in which case mail goes to the physical address above.
email:
type: string
format: email
example: john@example.com
altEmail:
type: string
format: email
example: john.alt@example.com
homePhone:
type: string
example: '2175550100'
workPhone:
type: string
example: '2175550101'
mobilePhone:
type: string
example: '2175550102'
accounts:
type: array
items:
type: object
properties:
accountNumber:
type: string
example: '0000123456'
accountId:
type: string
format: uuid
example: f2a071de-b754-3437-beb8-d590d56067f9
memberNumber:
type: string
example: '20190510000000000'
locator:
type: integer
format: int64
example: 1
nameOnRecord:
type: string
example: John A Smith
title:
type: string
example: Mr
suffix:
type: string
example: Jr
sharesLoans:
type: array
items:
type: object
properties:
id:
type: string
example: '0001'
type:
type: string
enum:
- Share
- Loan
example: Share
shareId:
type: string
description: The share identifier from the core system. Present only when type is Share.
example: S0001
loanId:
type: string
description: The loan identifier from the core system. Present only when type is Loan.
example: L0001
accountStatus:
type: string
example: Open
description:
type: string
example: Primary Savings
openDate:
type: string
example: '2020-01-15'
closeDate:
type: string
example: '2025-01-15'
shareCode:
type: string
example: S1
shareType:
type: string
example: Savings
loanCode:
type: string
example: L1
loanType:
type: string
example: Auto
relationshipCode:
type: string
example: '01'
'400':
description: The server could not understand the request due to an invalid 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
'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: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'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
/a/api/picard/v1/{InstitutionUniversalId}/member-lookup/{memberNumber}:
get:
operationId: lookupMember
tags:
- Members
summary: Lookup Member
description: Resolves a member number to its deterministic member id.
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: memberNumber
in: path
required: true
description: Member number.
schema:
type: string
example: '123456'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
memberId:
type: string
example: 550e8400-e29b-41d4-a716-446655440000
'400':
description: The server could not understand the request due to an invalid 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
'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: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'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