Transfers
Symitar in Platform
>
Transfers
openapi: 3.0.1
info:
title: Symitar in Platform API - Transfers
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: Transfers
description: Internal account/share/loan transfer posting operations
paths:
/a/api/picard/v1/{InstitutionUniversalId}/transfers:
post:
operationId: postTransfer
tags:
- Transfers
summary: Post Transfer
description: |
Post a transfer between share/loan records using the SymXchange
Transactions `transfer` operation.
Provide donor and recipient scopes explicitly (`accountNumber` + exactly
one of `shareId` or `loanId` for each side).
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
description: Request body for `POST /transfers`.
required:
- donor
- recipient
- amount
properties:
donor:
type: object
description: Account scope for one side of a transfer.
required:
- accountNumber
anyOf:
- required:
- shareId
- required:
- loanId
properties:
accountNumber:
type: string
description: 10-digit account number
example: 0000379758
shareId:
type: string
description: Share ID. Mutually exclusive with loanId.
nullable: true
example: '0000'
loanId:
type: string
description: Loan ID. Mutually exclusive with shareId.
nullable: true
example: '0001'
recipient:
type: object
description: Account scope for one side of a transfer.
required:
- accountNumber
anyOf:
- required:
- shareId
- required:
- loanId
properties:
accountNumber:
type: string
description: 10-digit account number
example: 0000379758
shareId:
type: string
description: Share ID. Mutually exclusive with loanId.
nullable: true
example: '0000'
loanId:
type: string
description: Loan ID. Mutually exclusive with shareId.
nullable: true
example: '0001'
amount:
type: string
description: Positive transfer amount.
example: '125.50'
description:
type: string
description: Optional transfer comment. Defaults to `Internal Transfer`.
nullable: true
example: Internal Transfer
responses:
'200':
description: Transfer posted successfully
content:
application/json:
schema:
type: object
description: Result from transfer posting.
properties:
status:
type: string
enum:
- success
example: success
confirmationNumber:
type: string
description: SymX confirmation number when available.
nullable: true
example: '123456'
'400':
description: Bad request — validation error
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
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