Verification
Symitar in Platform
>
Verification
openapi: 3.0.1
info:
title: Symitar in Platform API - Verification
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: Verification
description: Member identity verification operations
paths:
/verifications:
post:
operationId: startVerification
tags:
- Verification
summary: Start a member verification event
description: Initializes a new verification session and returns the generated event id.
responses:
'200':
description: Verification event started successfully.
content:
application/json:
schema:
type: object
properties:
eventId:
type: string
format: uuid
description: The unique id assigned to this verification event.
example: c9d8e7f6-a5b4-3c2d-1e0f-9a8b7c6d5e4f
'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: Internal server error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
/verifications/{eventId}/document-upload:
post:
operationId: uploadVerificationDocument
tags:
- Verification
summary: Upload a document for an active verification event
description: |
Uploads a document (e.g., Driver's License) as multipart/form-data to the active verification event. Extracts data and returns it for review. When `synergy=true`, also archives the file into Synergy (Cabinet MEMBERSHIP / Type MEMBER ID) and stores the resulting UniqueItemId.
parameters:
- name: eventId
in: path
required: true
description: The verification event id.
schema:
type: string
format: uuid
- name: synergy
in: query
required: false
description: |
When true, also archives the uploaded document into Synergy (Cabinet MEMBERSHIP / Type MEMBER ID) and links the resulting UniqueItemId to this verification document. Defaults to false.
schema:
type: boolean
default: false
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
document:
type: string
format: binary
description: The document file to upload.
responses:
'200':
description: Document processed successfully.
content:
application/json:
schema:
type: object
properties:
documentType:
type: string
example: drivers_license
documentId:
type: string
firstName:
type: string
example: Jean-Luc
middleName:
type: string
lastName:
type: string
example: Picard
dateOfBirth:
type: string
example: '2305-07-13'
address:
type: string
issueDate:
type: string
expirationDate:
type: string
rawText:
type: string
rawEntities:
type: object
additionalProperties:
type: string
'400':
description: Invalid request or missing file.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'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: Verification event not found.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'500':
description: Internal server error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'502':
description: Synergy upstream error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
/verifications/{eventId}:
patch:
operationId: updateVerification
tags:
- Verification
summary: Update a verification event
description: |
Submits verification data back to the event. This can be called multiple times to incrementally save data or resolve discrepancies.
parameters:
- name: eventId
in: path
required: true
description: The verification event id.
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json-patch+json:
schema:
type: object
properties:
memberId:
type: string
format: uuid
description: The member's unique id.
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status:
type: string
enum:
- APPROVED
- REJECTED
description: Optional final status of the verification.
notes:
type: string
description: Optional free-text notes about the verification.
example: Address didn't match exactly, but looks okay.
bypassReason:
type: string
description: Reason for optionally bypassing the verification.
example: Employee verification bypass.
verificationMethod:
type: string
description: Method used to verify the member's identity, Scan or Manual.
example: Scan
discrepancyResolution:
type: string
description: How any discrepancies were resolved.
example: Verified utility bill.
additionalProperties: false
responses:
'200':
description: Verification event updated successfully.
'400':
description: Invalid request body or status.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'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: Verification event not found.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'500':
description: Internal server error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
/verifications/synergy/{eventId}/documents/{docId}:
get:
operationId: getVerificationDocument
tags:
- Verification
summary: Retrieve a verification document
description: |
Retrieves the raw document bytes for a verification document from Synergy for on-screen display.
parameters:
- name: eventId
in: path
required: true
description: The verification event id.
schema:
type: string
format: uuid
- name: docId
in: path
required: true
description: The internal document id from MemberVerificationDocInfo.
schema:
type: string
format: uuid
responses:
'200':
description: Document retrieved successfully.
content:
application/pdf:
schema:
type: string
format: binary
image/jpeg:
schema:
type: string
format: binary
image/png:
schema:
type: string
format: binary
application/octet-stream:
schema:
type: string
format: binary
'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: Document not found.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'500':
description: Internal server error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
'502':
description: Synergy upstream error.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Human-readable error message.
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