Details
Consumer API
>
API Reference
>
v0
>
Wire Transfers
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: Wire Transfers
tags:
- name: ISO 20022 Wire Transfers
description: ISO 20022 Wire Transfers
- name: Entitlements
description: |
Entitlements of user to submit (create) or approve (transmit) Wire Transfers
that originate in the accounts. These entitlements include which operations
are or not allowed, as well as limits on the amount of money they can move.
servers:
- url: 'https://{API_ENVIRONMENT}/a/consumer/api/v0'
variables:
API_ENVIRONMENT:
default: digital.garden-fi.com
description: FI specific hostname
paths:
'/users/{userId}/accounts/{accountId}/wires':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
post:
tags:
- ISO 20022 Wire Transfers
summary: Create a new wire.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ISO20022_Wire_Creation_Request_V1'
responses:
"201":
description: The API has created a new wire.
content:
application/json:
schema:
$ref: '#/components/schemas/Created_CreateWire_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWire_Forbidden_V0'
"409":
description: |
(For credit unions only) Attempted to create a wire with duplicate information.
A duplicate wire is defined as any wire that has the same Amount and Credit Account Number
as a wire that has been sent or is scheduled to be sent on the same business day.
"500":
description: Internal Server Error.
"503":
description: Service is not available.
'/users/{userId}/wires/{wireId}/future':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/WireId'
post:
tags:
- ISO 20022 Wire Transfers
summary: Initiate a future dated wire
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ISO20022_Future_Dated_Wire_Creation_Request_V1'
responses:
"200":
description: The wire future dated wire was successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/Initiate_Success_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
example:
errors:
- InsufficientFunds
oneOf:
- $ref: '#/components/schemas/Forbidden_V0'
"404":
description: Invalid sequence number or account designator
content:
application/json:
schema:
$ref: '#/components/schemas/Not_Found_V0'
"500":
description: Internal Server Error.
"503":
description: Service is not available.
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/wires/{wireId}/recurring':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/WireId'
post:
tags:
- ISO 20022 Wire Transfers
summary: Initiate a recurring wire
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ISO20022_Recurring_Wire_Creation_Request_V1'
responses:
"200":
description: The recurring wire was successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/Initiate_Success_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
example:
errors:
- InsufficientFunds
oneOf:
- $ref: '#/components/schemas/Forbidden_V0'
"404":
description: Invalid sequence number or account designator
content:
application/json:
schema:
$ref: '#/components/schemas/Not_Found_V0'
"500":
description: Internal Server Error.
"503":
description: Service is not available.
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/accounts/{accountId}/wires/active':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
get:
tags:
- ISO 20022 Wire Transfers
summary: Get a List of Wire Transfers available for the given Account for the given Banno User.
description: Wire Transfers are sorted by sequence number descending.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/SortByActiveWire'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Wires_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/wires/templates':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
get:
tags:
- ISO 20022 Wire Transfers
summary: Get a List of Repetitive Wire Transfers available for the given Account for the given Banno User.
description: Wire Transfers are sorted by sequence number descending.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- in: query
name: templatesOnly
description: When included, regardless of value, only template wires are returned
required: false
schema:
type: boolean
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Wires_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/wires/drafts':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
get:
tags:
- ISO 20022 Wire Transfers
summary: Get a List of Draft Wire Transfers available for the given Account for the given Banno User.
description: Wire Transfers are sorted by sequence number descending.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Wires_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/wires/{wireId}':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/WireId'
get:
tags:
- ISO 20022 Wire Transfers
summary: View details for a wire transfer.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Details_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"404":
description: Not Found
"500":
description: Internal Service Error
"503":
description: Service is not available.
post:
tags:
- ISO 20022 Wire Transfers
summary: Initiate a wire. When a wire is initiated it will be scheduled for processing.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
responses:
"200":
description: The wire transfer was successfully initiated.
content:
application/json:
schema:
$ref: '#/components/schemas/Initiate_Success_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
example:
errors:
- InsufficientFunds
oneOf:
- $ref: '#/components/schemas/Forbidden_V0'
"404":
description: Invalid sequence number or account designator
content:
application/json:
schema:
$ref: '#/components/schemas/Not_Found_V0'
"500":
description: Internal Server Error
"503":
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Service_Unavailable_InitiateWire_V0'
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
put:
tags:
- ISO 20022 Wire Transfers
summary: Edit an untransmitted wire.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Edit_Request_V1'
responses:
"202":
description: The API has edited the wire successfully.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"404":
description: Wire not found.
"412":
description: |
Credit Unions only. The wire was detected to have been modified between the user fetching the wire and making an edit request.
The user is free to resubmit their edit request against the new state of the wire.
"500":
description: Internal Server Error.
"503":
description: Service is not available.
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
patch:
tags:
- ISO 20022 Wire Transfers
summary: Update the Status of a Wire
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
description: |
Wires can be approved, unapproved, or transmitted via status updates.
Wire is in ready status
- Approves the wire when transmitWithoutApproval is false, approvals is < requiredApprovals and Patch status is Initiate.
- Initiates the wire when transmitWithoutApproval is true and Patch status is Initiate.
Wire is in approval status
- Approves the wire when patch status is Initiate and < requiredApprovals.
- Initiates the wire when patch status is Initiate and this patch makes approvals == requiredApprovals.
- Void all approvals when patch status is Ready and a rejectionReason is provided.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Patch_Request_V0'
responses:
"200":
description: Status updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Patch_Response_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Patch_Forbidden_V0'
"404":
description: Wire not found.
"409":
description: Conflict, the current Status of the wire disallows the transition of the Wire to the new status
content:
application/json:
schema:
$ref: '#/components/schemas/Wire_Patch_Conflict_V0'
"422":
description: Invalid JSON
"500":
description: Internal Server Error
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
delete:
tags:
- ISO 20022 Wire Transfers
description: |
Delete a wire transfer. Wire transfers in an initiated state can not be deleted.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
- 'https://api.banno.com/consumer/auth/wiretransfers.readwrite'
responses:
"202":
description: |
The request to delete the wire transfer was accepted, but may not be complete yet. It's possible the request may not succeed.
You can confirm by checking the wireList endpoint. If the wire still shows up, try deleting again.
"403":
description: Forbidden
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"404":
description: Not Found
"500":
description: Internal Server Error.
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/wires/history':
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/SortByHistoryWire'
- in: query
name: dateRangeType
description: Date range type.
required: false
schema:
type: string
enum: [transmittedDate, effectiveDate]
default: effectiveDate
- in: query
name: fromDate
description: Start transmitted/effective date to retrieve historical wires within a date range. If unspecified, fromDate defaults to 2010-01-01.
required: false
schema:
type: string
format: date
example: '2010-01-01'
- in: query
name: toDate
description: End transmitted/effective date to retrieve historical wires within a date range. If unspecified, toDate defaults to today's date in UTC.
required: false
schema:
type: string
format: date
example: '2022-09-30'
- in: query
name: minAmount
description: Minimum wire amount
required: false
schema:
type: integer
format: int32
- in: query
name: maxAmount
description: Maximum wire amount
required: false
schema:
type: integer
format: int32
get:
tags:
- ISO 20022 Wire Transfers
summary: Get a List of Wire History available for the given Account for the given Banno User.
description: Wire Transfers are sorted by sequence number descending.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Wires_History_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/wires/entitlements':
parameters:
- $ref: '#/components/parameters/UserId'
get:
description: |
Retrieves the user-level entitlements for the Wire Transfers functionality
of this user.
tags:
- Entitlements
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: successfully retrieved Wire entitlements for this User
content:
application/json:
schema:
$ref: '#/components/schemas/User_Entitlements_V0'
"403":
description: Forbidden
"500":
description: |
Internal Server Error. This can be due to: the entitlements service is unavailable, the user's account designator cannot be found, etc.
'/users/{userId}/accounts/{accountId}/wires/entitlements':
get:
tags:
- Entitlements
description: |
Retrieves the account-level Wire-Transfer entitlements of this user on this account.
These entitlements indicate the permissions of the user to create (submit)
wire transfers, amend existing transfers, or approve and transmit them.
It also indicates some limits on how much money the user is able to send
out for some operations.
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: successfully retrieved Wire entitlements for this account
content:
application/json:
schema:
$ref: '#/components/schemas/Account_Entitlements_V0'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V0'
"500":
description: |
Internal Server Error. This can be due to: the entitlements service is unavailable, the user's account designator cannot be found, etc.
'/wires/country-codes':
get:
tags:
- Settings
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/wiretransfers.readonly'
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CountryCodeResponse_V0'
"500":
description: Internal Server Error.
components:
parameters:
UserId:
in: path
name: userId
description: The Identifier of the User given by Banno.
required: true
schema:
type: string
format: uuid
AccountId:
in: path
name: accountId
description: |
An identifier, created in Banno, for the credit or savings account
from which the Wire Transfer (or transfers) would originate.
required: true
schema:
type: string
format: uuid
SequenceNumber:
in: path
name: sequenceNumber
description: The sequence number associated with the wire transfer.
required: true
schema:
type: string
minLength: 1
maxLength: 7
RepeatCode:
in: query
name: repeatCode
required: false
schema:
type: string
description: |
The repeat code associated with the wire.
IsRepetitive:
in: query
name: isRepetitive
required: true
schema:
type: string
description: True if the Wire transfer is a repetitive wire.
IsRecurring:
in: query
name: isRecurring
required: true
schema:
type: string
description: True if the Wire transfer is a recurring wire.
WireId:
in: path
name: wireId
required: true
description: Unique identifier of a wire.
schema:
type: string
Limit:
in: query
name: limit
required: true
schema:
type: integer
description: The number of items to come back in the results list.
Offset:
in: query
name: offset
required: true
schema:
type: integer
description: The current offset of wires you are requesting to view. The first result's index is 1. The next offset comes back in the api response.
SortByActiveWire:
in: query
name: sortBy
required: false
schema:
type: string
default: name
enum: [name, status, amount, instructedAgentName]
SortByHistoryWire:
in: query
name: sortBy
required: false
schema:
type: string
default: effectiveDate
enum: [name, amount, transmittedDate, effectiveDate, creditorAccountNumber, instructedAgentName]
securitySchemes:
OpenID_Connect:
type: openIdConnect
description: OpenID Connect - Discovery endpoint will be institution specific
openIdConnectUrl: >-
https://digital.garden-fi.com/a/consumer/api/v0/oidc/.well-known/openid-configuration
schemas:
Wires_V0:
type: object
required:
- results
- totalNumberOfAvailableResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Wire_V0'
totalNumberOfAvailableResults:
type: integer
description: Total number of wires that are available to page through
nextOffset:
type: integer
description: An optional next offset value, if this value is not present, you are viewing the last wires.
Wires_History_V0:
type: object
required:
- results
- totalNumberOfAvailableResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Wire_History_V0'
totalNumberOfAvailableResults:
type: integer
description: Total number of wires that are available to page through
nextOffset:
type: integer
description: An optional next offset value, if this value is not present, you are viewing the last wires.
Wire_Details_V0:
type: object
properties:
id:
type: string
nullable: false
name:
type: string
description: Name of the wire transfer.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
status:
$ref: '#/components/schemas/Status_V0'
sequenceNumber:
type: string
description: The sequence number of the wire.
nullable: false
isEditable:
type: boolean
description: True if the wire transfer can be edited.
nullable: false
isDeletable:
type: boolean
description: True if the wire transfer can be deleted.
nullable: false
isRecurring:
type: boolean
description: True if the wire transfer is recurring.
nullable: false
isRepetitive:
type: boolean
description: True if the Wire transfer is a repetitive wire.
nullable: false
repeatCode:
type: string
description: |
A string that indicates which template a wire transfer was created from. If the wire
transfer is not a repetitive wire, this field will display an empty string or "Single"
nullable: false
fromAccountId:
type: string
format: uuid
description: The accountId of the wire to be transferred from.
nullable: false
creditAccountInformation:
$ref: '#/components/schemas/Credit_Account_Information_V0'
remarks:
$ref: '#/components/schemas/Remarks_V0'
receivingInstitutionDetails:
$ref: '#/components/schemas/Receiving_Institution_Details_V0'
intermediaryInstitutionDetails:
$ref: '#/components/schemas/Intermediary_Institution_Details_V0'
recurringInformation:
$ref: '#/components/schemas/Recurring_Information_V0'
approvals:
type: array
items:
type: string
format: uuid
description: an array of user ids tracking who has approved a dual control wire. The array is always empty for banks. The array becomes empty when the wire is initiated.
futureEffectiveDate:
type: string
format: date
description: The date a future dated wire will be processed on. When present, indicates the wire is a future dated wire. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
required:
- id
- name
- fromAccountId
- amount
- isRepetitive
- isRecurring
- status
- sequenceNumber
- isEditable
- isDeletable
- creditAccountInformation
- receivingInstitutionDetails
- approvals
- futureEffectiveDate
Credit_Account_Information_V0:
type: object
description: Information concerning the entity receiving the wire.
properties:
name:
type: string
description: A user provided name to identity the entity receiving the wire transfer.
maxLength: 35
number:
type: string
description: The account number receiving the wire transfer
format: number
maxLength: 34
address1:
type: string
description: The first line of the address of the account receiving the wire transfer.
maxLength: 35
address2:
type: string
description: The second line of the address of the account receiving the wire transfer.
maxLength: 35
address3:
type: string
description: The third line of the address of the account receiving the wire transfer.
maxLength: 35
required:
- name
- number
- address1
Remarks_V0:
type: object
properties:
remarks1:
type: string
description: The first line of remarks about the wire transfer.
maxLength: 35
remarks2:
type: string
description: Additional remarks about the wire transfer.
maxLength: 35
remarks3:
type: string
description: Additional remarks about the wire transfer.
maxLength: 35
remarks4:
type: string
description: Additional remarks about the wire transfer.
maxLength: 35
Receiving_Institution_Details_V0:
type: object
properties:
name:
type: string
description: The name of the institution receiving the wire transfer.
maxLength: 18
abaNumber:
type: string
description: The ABA routing transit number of the receiving financial institution.
maxLength: 9
address1:
type: string
description: The first line of the address of the receiving financial institution.
maxLength: 35
address2:
type: string
description: The second line of the address of the receiving financial institution.
maxLength: 35
address3:
type: string
description: The third line of the address of the receiving financial institution.
maxLength: 35
required:
- name
- abaNumber
- address1
Create_Intermediary_Institution_Details_V0:
description: |
Details of the intermediary institution if one is present. An intermediary institution will be present for all international wires and
on any domestic wires where the receiving institution can not receive the wire funds directly.
required:
- id
- idCode
- name
- address1
properties:
id:
type: string
nullable: false
description: >
An identifier of the Institution. The exact length/format of this value can vary based on the Type of ID that was specified by the user in the sibling `idCode` property.
maxLength: 34
idCode:
type: string
nullable: false
description: |
A value indicating what type of `id` the user provided when creating the wire transfer.
This value is chosen by the user when creating the wire transfer and could be one of the following:
- B: a BANK ID / SWIFT number.
- C: Chips Participant.
- D: DDA account number.
- F: FRB Routing number.
- U: Chips identifier
- N: Non Blank
enum: [ "B", "C", "D", "F", "U", "N" ]
name:
type: string
nullable: false
description: The name of the institution
maxLength: 35
address1:
type: string
nullable: false
description: The first line of address of the institution.
maxLength: 35
address2:
type: string
nullable: false
description: The second line of the address of the institution.
maxLength: 35
address3:
type: string
nullable: false
description: The third line of the address of the institution.
maxLength: 35
Intermediary_Institution_Details_V0:
description: |
Details of the intermediary institution if one is present. An intermediary institution will be present for all international wires and
on any domestic wires where the receiving institution can not receive the wire funds directly.
properties:
id:
type: string
nullable: false
description: >
An identifier of the Institution. The exact length/format of this value can vary based on the Type of ID that was specified by the user in the sibling `idCode` property.
maxLength: 34
idCode:
type: string
nullable: false
description: |
A value indicating what type of `id` the user provided when creating the wire transfer.
This value is chosen by the user when creating the wire transfer and could be one of the following:
- B: a BANK ID / SWIFT number.
- C: Chips Participant.
- D: DDA account number.
- F: FRB Routing number.
- U: Chips identifier
- N: Non Blank
enum: [ "B", "C", "D", "F", "U", "N" ]
name:
type: string
nullable: false
description: The name of the institution
maxLength: 35
address1:
type: string
nullable: false
description: The first line of address of the institution.
maxLength: 35
address2:
type: string
nullable: false
description: The second line of the address of the institution.
maxLength: 35
address3:
type: string
nullable: false
description: The third line of the address of the institution.
maxLength: 35
CreateWire_Forbidden_V0:
type: object
required:
- error
properties:
error:
type: number
enum:
- 40
- 998
- 999
- 1000
- 1001
description: >
40 - JWT is not valid <br>
998 - Enterprise JWT is not supported <br>
999 - User is not allowed to view the list of wires <br>
1000 - User is not supported <br>
1001 - User created wires not enabled for this institution
Forbidden_V0:
type: object
required:
- error
properties:
error:
type: number
enum:
- 40
- 998
- 999
- 1000
description: >
40 - JWT is not valid <br>
998 - Enterprise JWT is not supported <br>
999 - User is not allowed to view the list of wires <br>
1000 - User is not supported
Not_Found_V0:
type: object
required:
- error
properties:
error:
type: number
enum:
- 991
- 992
description: >
991 - no account found associated with the AccountId <br>
992 - The sequenceNumber was not found when attempting to initiate the wire.
Missing_Query_Param_V0:
type: object
required:
- missingQueryParameters
properties:
missingQueryParameters:
type: array
items:
type: string
description: The names of the required query parameters missing in the request URL.
Wire_V0:
type: object
required:
- name
- amount
- status
- isEditable
- isDeletable
- isRepetitive
- isRecurring
- recurringFrequency
- fromAccountId
- receivingAccountNumber
- receivingFinancialInstitutionName
- sequenceNumber
- id
- retainTemplate
- futureEffectiveDate
properties:
name:
type: string
description: Name of the wire.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
status:
$ref: '#/components/schemas/Status_V0'
isEditable:
type: boolean
description: True if the wire transfer can be edited.
nullable: false
isDeletable:
type: boolean
description: True if the wire transfer can be deleted.
nullable: false
isRepetitive:
type: boolean
description: The value indicating this wire can be used multiple times.
nullable: false
isRecurring:
type: boolean
description: The value indicating whether the wire is recurring.
nullable: false
example: true
recurringFrequency:
type: string
enum: [ 'weekly', 'biWeekly', 'semiMonthly', 'monthly', 'quarterly', 'annually', 'semiAnnually']
description: The frequency of the transfer request.
nullable: true
sequenceNumber:
type: string
description: The sequence number of the wire.
nullable: false
repeatCode:
type: string
description: A number returned for repetitive wire transfers only. Null for one time wire transfers.
nullable: true
fromAccountId:
type: string
format: uuid
description: The Banno Account ID from which the wire transfer was sent
receivingAccountNumber:
type: string
format: number
description: The account number of the receiving account.
nullable: false
receivingFinancialInstitutionName:
type: string
description: The name of the financial institution receiving the wire transfer.
nullable: false
id:
type: string
description: The identifier of a wire transfer
nullable: false
retainTemplate:
type: boolean
description: The value indicating whether the template will be retained.
nullable: false
example: true
futureEffectiveDate:
type: string
format: date
description: The date a future dated wire will be processed on. When present, indicates the wire is a future dated wire. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
Wire_History_V0:
type: object
required:
- name
- amount
- fromAccountId
- receivingAccountNumber
- receivingFinancialInstitutionName
- sequenceNumber
- id
- isRepetitive
- isRecurring
properties:
name:
type: string
description: Name of the wire.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
sequenceNumber:
type: string
description: The sequence number of the wire.
nullable: false
repeatCode:
type: string
description: A number returned for repetitive wire transfers only. Null for one time wire transfers.
nullable: true
fromAccountId:
type: string
format: uuid
description: The Banno Account ID from which the wire transfer was sent
receivingAccountNumber:
type: string
format: number
description: The account number of the receiving account.
nullable: false
receivingFinancialInstitutionName:
type: string
description: The name of the financial institution receiving the wire transfer.
nullable: false
id:
type: string
description: The identifier of a wire transfer
nullable: false
isRepetitive:
type: boolean
description: |
true is the wire is a template, false if not.
isRecurring:
type: boolean
description: |
Indicates if the wire has recurringInformation.
effectiveDate:
type: string
format: date
example: '2022-08-31'
transmittedDate:
type: string
format: date
example: '2022-08-31'
outputManagementAccountabilityData:
type: string
recurringInformation:
$ref: '#/components/schemas/Recurring_Information_V0'
Recurring_Information_V0:
type: object
required:
- recurringFrequency
- firstDay
- secondDay
- startDate
- expirationDate
- lastDayOfMonth
- dayOfWeek
- dayOfMonth
- neverExpire
properties:
recurringFrequency:
type: string
enum: [ 'weekly', 'biWeekly', 'semiMonthly', 'monthly', 'quarterly', 'semiAnnually', 'annually' ]
description: The frequency of the transfer request.
nullable: true
example: weekly
firstDay:
type: integer
description: The day of month for first semi-monthly payment. (Ex. 1, 2...31).
nullable: true
example: null
secondDay:
type: integer
description: The day of month for second semi-monthly payment. (Ex. 1, 2...31).
nullable: true
example: null
startDate:
type: string
description: The date this recurring transfer request starts.
format: date
example: '2022-08-31'
nullable: true
expirationDate:
type: string
description: The date this recurring transfer request expires. A null value indicates that the recurring transfer request does not expire.
format: date
example: '2022-08-31'
nullable: true
lastDayOfMonth:
type: boolean
description: True, the recurring wire will be transmitted on the last day of the current month. False or null, the recurring wire transmitted date will be returned in the secondDay or dayOfMonth field.
nullable: true
example: false
dayOfWeek:
type: string
enum: [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday' ]
description: The day of the week this transfer occurs.
nullable: true
example: "monday"
dayOfMonth:
type: integer
description: The day of the month this transfer occurs when frequency is monthly. (Ex. 1, 2...31).
nullable: true
example: null
Edit_Recurring_Information_V0:
type: object
required:
- recurringFrequency
- firstDay
- secondDay
- startDate
- expirationDate
- lastDayOfMonth
- dayOfWeek
- dayOfMonth
- neverExpire
- retainTemplate
properties:
recurringFrequency:
type: string
enum: [ 'weekly', 'biWeekly', 'semiMonthly', 'monthly', 'quarterly', 'semiAnnually', 'annually' ]
description: The frequency of the transfer request.
nullable: false
example: weekly
firstDay:
type: integer
description: The day of month for first semi-monthly payment. (Ex. 1, 2...31).
nullable: true
example: null
secondDay:
type: integer
description: The day of month for second semi-monthly payment. (Ex. 1, 2...31).
nullable: true
example: null
startDate:
type: string
description: The date this recurring transfer request starts.
format: date
example: '2022-08-31'
nullable: true
expirationDate:
type: string
description: The date this recurring transfer request expires. A null value indicates that the recurring transfer request does not expire.
format: date
example: '2022-08-31'
nullable: true
lastDayOfMonth:
type: boolean
description: True, the recurring wire will be transmitted on the last day of the current month. False or null, the recurring wire transmitted date will be returned in the secondDay or dayOfMonth field.
nullable: true
example: false
dayOfWeek:
type: string
enum: [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday' ]
description: The day of the week this transfer occurs.
nullable: true
example: "monday"
dayOfMonth:
type: integer
description: The day of the month this transfer occurs when frequency is monthly. (Ex. 1, 2...31).
nullable: true
example: null
retainTemplate:
type: boolean
description: The value indicating whether the template will be retained.
nullable: false
example: true
Status_V0:
type: string
enum: [ 'Ready', 'Active', 'Approval', 'Initiated', 'Next Day', 'Scheduled', 'Processed', 'Denied', 'Omitted', 'Pending', 'Under Review', 'Problem', 'Expired', 'Suspended' ]
nullable: false
Status_V1:
nullable: false
oneOf:
- type: string
enum: [ 'Ready', 'Active', 'Approval', 'Initiated', 'Next Day', 'Scheduled', 'Processed', 'Denied', 'Omitted', 'Expired', 'Suspended' ]
description: >
Banks will see the following statuses
- type: string
enum: [ 'Ready', 'Processing', 'Rejected', Approval']
description: >
Credit Unions will see the following statuses
Created_CreateWire_V0:
type: object
required:
- sequenceNumber
properties:
sequenceNumber:
type: string
description: The sequence number of the newly created wire.
BadRequest_CreateWire_V0:
type: object
required:
- errors
- title
- details
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Create_Wire_BadRequest_Error_V0'
title:
type: string
description: The title of the error.
details:
type: array
items:
type: string
Create_Wire_BadRequest_Error_V0:
type: string
Service_Unavailable_InitiateWire_V0:
type: object
required:
- error
properties:
errors:
type: string
enum:
- 'InvalidProcessingTime'
- 'NoneProcessingDate'
description: >
InvalidProcessingTime - The wire transfer cannot be initiated outside of the time specified by the financial Institution <br>
NonProcessingDate - The user attempted to Initiate the wire on a date the federal reserve was closed (e.g. a federal holiday)
Wire_Creation_Request_V0:
type: object
required:
- name
- isRepetitive
- amount
- creditAccountInformation
- receivingInstitutionDetails
properties:
name:
type: string
description: |
The name of the wire.
30-character limit, alpha numeric and spaces (no special characters).
maxLength: 30
pattern: '^[a-zA-Z0-9\s]*$'
example: 'Wire name alpha num3ric spaces'
nullable: false
isRepetitive:
type: boolean
description: |
Setting to true will create save this wire transfer information to a template
and allow the user to create new wire transfers from that template.
repeatCode:
type: string
description: |
Required when isRepetitive is true. The repeatCode identifies the
template a repetitive wire originates from. A repeatCode is alpha numeric plus
special characters minus ^,\,*,{,},|
pattern: '^[^[\]*{}|]*$'
amount:
type: string
format: currency
description: the monetary amount being sent.
maxLength: 12
creditAccountInformation:
$ref: '#/components/schemas/Credit_Account_Information_V0'
receivingInstitutionDetails:
$ref: '#/components/schemas/Receiving_Institution_Details_V0'
intermediaryInstitutionDetails:
$ref: '#/components/schemas/Create_Intermediary_Institution_Details_V0'
remarks:
$ref: '#/components/schemas/Remarks_V0'
WeeklySettings:
type: object
description: Settings required for a wire to recur weekly.
required:
- dayOfWeek
properties:
dayOfWeek:
type: string
description: Indicates the day of the week the wire is scheduled to be processed (Ex. "monday", "tuesday", "wednesday", "thursday", "friday"). Wires are not processed on Saturdays and Sundays.
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
example: 'monday'
BiWeeklySettings:
type: object
description: Settings required for a wire to recur bi-weekly.
required:
- dayOfWeek
properties:
dayOfWeek:
type: string
description: Indicates the day of the week the wire is scheduled to be processed (Ex. "monday", "tuesday", "wednesday", "thursday", "friday"). Wires are not processed on Saturdays and Sundays.
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
SemiMonthlySettings:
type: object
description: Settings required for a wire to recur semi-monthly.
required:
- firstDay
- secondDay
properties:
firstDay:
type: integer
description: Sets the day of month for first semi-monthly payment. (Ex. 1, 2...30). There is a parameter on the host for the bank to determine if the date falls on a non-processing date (or if the month does not have that many days) either to process the business day before or after.
minimum: 1
maximum: 31
secondDay:
type: integer
description: Sets the day of month for second semi-monthly payment. (Ex. 1, 2...30). If the lastDayOfMonth field is set to 'true', the second payment will be sent on the lastDayOfMonth instead of the second day selected. There is a parameter on the host for the bank to determine if the date falls on a non-processing date (or if the month does not have that many days) either to process the business day before or after.
minimum: 1
maximum: 31
nullable: true
MonthlySettings:
type: object
description: Settings required for a wire to recur monthly.
required:
- dayOfMonth
properties:
dayOfMonth:
type: integer
description: Indicates the day of the month the wire is scheduled to be processed (Ex. 1, 2...30). There is a parameter on the host for the bank to determine if the date falls on a non-processing date (or if the month does not have that many days) either to process the business day before or after.
minimum: 1
maximum: 31
nullable: true
QuarterlySettings:
type: object
description: No additional fields necessary. A quarterly wire will recur in three month intervals on the month day selected in the startDate field.
SemiAnnuallySettings:
type: object
description: No additional fields necessary. A semiAnnually wire will recur in six month intervals on the month day selected in the startDate field.
AnnuallySettings:
type: object
description: No additional fields necessary. An annually wire will recur once a year on the date selected in the startDate field.
Future_Wire_Creation_Request_V0:
type: object
required:
- futureEffectiveDate
properties:
futureEffectiveDate:
type: string
format: date
description: Indicates the date a future dated wire will be processed on. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
Recurring_Wire_Creation_Request_V0:
type: object
required:
- recurringWireFrequency
- startDate
- expirationDate
- lastDayOfMonth
- retainTemplate
- neverExpire
properties:
recurringWireFrequency:
type: string
description: This field is required for a wire to be recurring. This field indicates the frequency which the wire will recur.
enum:
- weekly
- biWeekly
- semiMonthly
- monthly
- quarterly
- semiAnnually
- annually
example: 'weekly'
conditionalSettings:
description: Settings for the recurring wire. Required fields are based off the frequency type selected. No other fields can be selected.
oneOf:
- $ref: '#/components/schemas/WeeklySettings'
- $ref: '#/components/schemas/BiWeeklySettings'
- $ref: '#/components/schemas/SemiMonthlySettings'
- $ref: '#/components/schemas/MonthlySettings'
- $ref: '#/components/schemas/QuarterlySettings'
- $ref: '#/components/schemas/SemiAnnuallySettings'
- $ref: '#/components/schemas/AnnuallySettings'
startDate:
type: string
description: The starting date the recurring wire will be processed on.
format: date
example: '2022-08-31'
expirationDate:
type: string
description: The expiration date of the recurring wire. The neverExpire field must be set to 'false' when an expiration date is set or the request will fail.
format: date
example: '2025-08-31'
lastDayOfMonth:
type: boolean
description: If true, the recurring wire will be processed on the last day of every month.
example: false
neverExpire:
type: boolean
description: When set to true, the wire will never expire and an expiration date cannot be included else the request will fail.
example: false
retainTemplate:
type: boolean
description: Indicates if the recurring wire template will be retained.
example: true
Wire_Edit_Request_V0:
type: object
required:
- isRepetitive
- amount
- creditAccountInformation
- receivingInstitutionDetails
properties:
name:
type: string
description: |
The name of the wire.
30-character limit, alpha numeric and spaces (no special characters).
maxLength: 30
pattern: '^[a-zA-Z0-9\s]*$'
example: 'Wire name alpha num3ric spaces'
nullable: true
isRepetitive:
type: boolean
description: |
Indicates if the wire being edited is a repetitive Wire.
isRecurring:
type: boolean
description: |
Indicates if the wire has recurringInformation. A singleUse wire cannot be edited to become a recurring wire, and vice versa.
repeatCode:
type: string
description: |
Required when isRepetitive is true, the repeatCode identifies the
template a repetitive wire originates from. A repeatCode is alpha numeric plus
special characters minus ^,\,*,{,},|
pattern: '^[^[\]*{}|]*$'
amount:
type: string
format: currency
description: the monetary amount being sent.
maxLength: 12
creditAccountInformation:
$ref: '#/components/schemas/Credit_Account_Information_V0'
receivingInstitutionDetails:
$ref: '#/components/schemas/Receiving_Institution_Details_V0'
intermediaryInstitutionDetails:
$ref: '#/components/schemas/Intermediary_Institution_Details_V0'
remarks:
$ref: '#/components/schemas/Remarks_V0'
recurringInformation:
$ref: '#/components/schemas/Edit_Recurring_Information_V0'
Initiate_Success_V0:
type: object
required:
- confirmationNumber
properties:
confirmationNumber:
type: string
description: a value indicating that the wire was successfully initiated.
Edit_Wire_Template_V0:
type: object
description: Indicates what fields on a wire template a user can edit.
required:
- name
- amount
- intermediaryInstitutionDetails
- receivingInstitutionDetails
- creditAccountInformation
- remarks
properties:
name:
type: boolean
description: Indicates if the name of the Wire can be edited.
amount:
type: boolean
description: Indicates if the amount of the Wire can be edited.
intermediaryInstitutionDetails:
type: boolean
description: Indicates if the intermediary institution details can be edited.
receivingInstitutionDetails:
type: boolean
description: Indicates if the receiving institution details can be edited.
creditAccountInformation:
type: boolean
description: Indicates if the credit account information can be edited.
remarks:
type: boolean
description: Indicates if the notes on a Wire can be edited. This field maps to ISO remittanceInformation field.
Edit_Recurring_Wire_V0:
type: object
description: Indicates what fields on a recurring wire a user can edit.
required:
- name
- amount
- intermediaryInstitutionDetails
- receivingInstitutionDetails
- creditAccountInformation
- remarks
- recurringInformation
properties:
name:
type: boolean
description: Indicates if the name of the Wire can be edited.
amount:
type: boolean
description: Indicates if the amount of the Wire can be edited.
intermediaryInstitutionDetails:
type: boolean
description: Indicates if the intermediary institution details can be edited.
receivingInstitutionDetails:
type: boolean
description: Indicates if the receiving institution details can be edited.
creditAccountInformation:
type: boolean
description: Indicates if the credit account information can be edited.
remarks:
type: boolean
description: Indicates if the notes on a Wire can be edited. This field maps to ISO remittanceInformation field.
recurringInformation:
type: boolean
description: Indicates if the recurring information of a wire can be edited.
Edit_Single_Wire_V0:
type: object
description: Indicates what fields on an un-transmitted single wire a user can edit.
required:
- name
- amount
- intermediaryInstitutionDetails
- receivingInstitutionDetails
- creditAccountInformation
- remarks
properties:
name:
type: boolean
description: Indicates if the name of the Wire can be edited.
amount:
type: boolean
description: Indicates if the amount of the Wire can be edited.
intermediaryInstitutionDetails:
type: boolean
description: Indicates if the intermediary institution details can be edited.
receivingInstitutionDetails:
type: boolean
description: Indicates if the receiving institution details can be edited.
creditAccountInformation:
type: boolean
description: Indicates if the credit account information can be edited.
remarks:
type: boolean
description: Indicates if the notes on a Wire can be edited. This field maps to ISO remittanceInformation field.
User_Entitlements_V0:
type: object
required:
- createWire
- moneyPerWireLimit
- moneyPerDayLimit
- peerApprovalThreshold
- accounts
- requiresPeerApproval
- editWireTemplate
- editSingleWire
- wireNameRules
properties:
editWireTemplate:
$ref: '#/components/schemas/Edit_Wire_Template_V0'
editRecurringWire:
$ref: '#/components/schemas/Edit_Recurring_Wire_V0'
editSingleWire:
$ref: '#/components/schemas/Edit_Single_Wire_V0'
createWire:
type: boolean
description: |
True if this user is allowed to create a new Wire transfer,
from at least one of their accounts. Note that this entitlement
is only for creating the wire transfer defining its parameters,
but that created wire needs to be "transmitted" for money to be moved.
moneyPerDayLimit:
nullable: true
type: string
format: currency
maxLength: 12
description: |
The maximum amount of money that this user can
transmit/send through wire transfers within a single day.
if null, The user belongs to a provider that does not support daily limits.
moneyPerWireLimit:
type: string
format: currency
maxLength: 12
description: |
The maximum amount of money, that this user is allowed to
transmit/send in a single wire transfer. In other words,
this user is not allowed to transmit/send any wire transfer
with an amount over this limit, whether that be a single
wire or an instance of wire template.
requiresPeerApproval:
type: boolean
description: |
This setting is a default on the account-level settings.
if this entitlement is true, then all accounts of this
user should have a peer-approval policy. If this setting
is false, each accounts may require peer approval or it may not.
peerApprovalThreshold:
nullable: true
type: string
format: currency
maxLength: 12
description: |
Amount of money in a Wire transfer, or in a wire template,
above which the transfer start requiring peer approval.
This per-user limit is a ceiling on per-account thresholds:
the entitlements of this user on any account cannot give
a higher threshold value than this one, but it can be smaller.
if null, The user belongs to a provider that does not support peer approval.
accounts:
type: array
items:
type: string
format: uuid
description: |
List of the AccountIds for accounts for which this user has any
entitlement to view, create, edit, and transmit (submit, amend, and approve)
Wire transfers that originate from this account.
wireNameRules:
$ref: '#/components/schemas/Wire_Name_Rules_V0'
wireType:
type: string
nullable: false
description: |
Wire type
enum: [ "FAIM", "ISO" ]
calendarSettings:
$ref: '#/components/schemas/CalendarSettings_V0'
Account_Entitlements_V0:
type: object
required:
- createSingleWire
- createWireTemplate
- editSingleWire
- editRecurringWire
- editWireTemplate
- transmit
- transmitFutureDatedWire
- transmitRecurringWire
- peerApproval
- moneyPerWireLimit
properties:
createSingleWire:
type: boolean
description: |
True if the user is authorized to create a single/one-time wire transfer
from this account. This does not allow the user to transmit or send
the created wire.
createWireTemplate:
type: boolean
description: |
True if the user is authorized to create a template of wire transfers
from this account. This does not allow the user to transmit/send
a wire that is an instance of this template.
editSingleWire:
type: boolean
description: |
True if the user is authorized to edit an existing single/one-time
wire transfer from this account. This does not allow the user to
transmit/send the amended wire.
editRecurringWire:
type: boolean
description: |
True if the user is authorized to edit an existing recurring
wire transfer from this account. This does not allow the user to
transmit/send the amended wire.
editWireTemplate:
type: boolean
description: |
True if the user is authorized to edit an existing template for
wire transfers from this account.
This does not allow the user to transmit/send a wire that is an
instance of this template.
transmit:
type: boolean
description: |
True if the user is authorized to transmit/send a wire that is not
considered a recurring wire or future-dated wire.
This authorisation may be restricted by the `perDayLimit` and
`perWireLimit` fields, so the user may not send wires that exceed
those limits.
transmitFutureDatedWire:
type: boolean
description: |
True if the user is authorized to select a future date
(rather than the current time) when the Wire should be transmitted,
so that the wire transfer will be sent on that date they select.
transmitRecurringWire:
type: boolean
description: |
True if the user is authorized to select an existing wire,
and set up a schedule, or frequency, at which several instances
of that wire would be automatically transmitted/sent.
moneyPerWireLimit:
type: string
format: currency
maxLength: 14
description: |
The maximum amount of money, with two decimals, that this user is allowed to
transmit/send in a single wire transfer from this account.
In other words, this user is not allowed to transmit/send
from this account any wire transfer with an amount over
this limit, be it a single wire or an instance of a template.
This entitlement overrides the user entitlement with same name.
peerApproval:
$ref: '#/components/schemas/Peer_Approval_Policy_V0'
Peer_Approval_Policy_V0:
type: object
nullable: true
description: |
Peer approval is the policy, which may be set up by the organisation,
that constrains how many users with "transmit" entitlement have to
transmit / approve a wire transfer before it can proceed,
and restricts who can transmit those wire transfers.
required:
- requiredApprovals
- authorCanTransmit
- transmitWithoutApproval
- moneyThreshold
- unapproveWire
properties:
moneyThreshold:
type: string
format: currency
maxLength: 12
description: |
Amount of money in a Wire transfer, or in the template,
above which the transfer start requiring peer approval.
For example, if this threshold amount is defined as $500,
then a single user with the transmit entitlement would be
able to transmit any single wire transfer for $450, and
regardless of whether they are the author or not; whereas
a Wire transfer for $750 would require peer approval.
If this field is absent, it means that all wire transfers
need peer approval.
requiredApprovals:
type: integer
description: |
The number of users, with access to this account and who have
the "transmit" entitlements, that have to transmit on a wire
transfer before it can be executed.
Note that the user daily limit and the per-wire limit on the
user and account have to apply to every one of those approvers,
and that the amount of a wire transfer counts towards the
limits of each of those approvers.
authorCanTransmit:
type: boolean
description: |
True if the last author or editor of a wire transfer can be one
of the requiredApprovers, or false if they all must be other users
than the author. For example, if two approvers are required and
this entitlement is false, then a wire will need two users,
other than the last author, to "transmit" it before it is run.
transmitWithoutApproval:
type: boolean
description: |
when Dual Control is enabled and this value is true. The user can transmit a wire without needing additional approvals.
unapproveWire:
type: boolean
description: |
A user can reject a wire.
Wire_Patch_Request_V0:
type: object
required:
- newStatus
properties:
newStatus:
description: |
The status to transition the wire to.
Moving the status to Ready and providing a rejection reason voids any existing approvals.
Moving the status to Initiated moves the status to approval when
Approvals are required, or initiated when no more approvals are required.
type: string
enum: [Ready, Initiated]
rejectionReason:
description: |
The user-provided reason they are rejecting/unapproving the wire.
This field is only required when requesting newStatus=Ready (unapproving a wire). Must be a non-empty string.
type: string
Wire_Patch_Response_V0:
type: object
required:
- newStatus
properties:
newStatus:
type: string
description: |
The updated status of the wire.
- Ready status indicates the wire is ready to initiate.
- Approval status indicates the wire needs an additional organization user to initiate.
- Under Review indicates the wire needs a financial institution employee to initiate.
- Initiated indicates the wire has been initiated.
enum: [Ready, Approval, Under Review, Initiated]
Wire_Patch_Conflict_V0:
type: object
required:
- error
- errorMessage
properties:
error:
type: string
description: |
A string indicating the error type.
- InvalidStatusTransititon the wire is in a status that can not be transitioned to the requested status.
enum: [InvalidStatusTransitition]
errorMessage:
type: string
description: A human readable message of the error.
example: wires in status Initiated can not be modified
Wire_Patch_Forbidden_V0:
type: object
required:
- error
- errorMessage
properties:
error:
type: string
description: |
A string indicating the error type.
enum: [UserIsMissingEntitlements, AccountIsMissingEntitlements]
errorMessage:
type: string
description: |
A human readable message of the error
details:
type: array
items:
type: object
required:
- field
- reason
properties:
field:
type: string
description: The field that failed validation.
example: status
reason:
type: string
description: The reason the validation failed.
example: invalid status. Ready or Initiated expected
Forbidden_EditWire_V0:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: string
enum:
- 'NoAlterIntWireError'
description: >
NoAlterIntWireError - international wires may not be edited or initiated <br>
Generic_StandardError_V1:
type: object
required:
- type
- title
- details
properties:
type:
description: |
The error type.
type: string
nullable: false
example: 'jackhenry/operation-failed'
title:
description: |
The title of the error. This is a short, human readable summary of the error.
type: string
nullable: false
details:
description: |
An array of strings that provide additional details for the error message.
type: array
items:
type: string
nullable: false
Wire_Name_Rules_V0:
type: object
description: |
The rules that define the name of the wire that this user
is allowed to create. The rules are defined by the institution type.
The rules include the minimum and maximum length of the name as well as the complete list of all the characters
that are allowed in the name.
required:
- minLength
- maxLength
- allowedCharacters
properties:
minLength:
type: number
description: |
The minimum number of characters allowed in the name of a wire.
minimum: 1
maxLength:
type: number
description: |
The maximum number of characters allowed in the name of a wire.
example: 30
allowedCharacters:
type: array
description: |
The list of characters that are allowed in the name of a wire.
example: ["a", "b", "c", "A", "B", "C", "1", "2", "3", " ", "?", "!"]
items:
type: string
ISO20022_Wire_Creation_Request_V1:
type: object
required:
- name
- isRepetitive
- amount
- creditorInformation
- instructedAgentInformation
- creditorAgentInformation
properties:
name:
type: string
description: |
The name of the wire.
30-character limit, alpha numeric and spaces (no special characters) for banks.
35-character limit, alpha numeric and spaces (no special characters) for CUs.
maxLength: 35
pattern: '^[a-zA-Z0-9\s]*$'
example: 'Wire name alpha num3ric spaces'
nullable: false
isRepetitive:
type: boolean
description: |
Setting to true will create and save this wire transfer information to a template
and allow the user to create new wire transfers from that template.
amount:
type: string
format: currency
description: the monetary amount being sent.
maxLength: 14
example: "9999999999.99"
creditorInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Information_V1'
instructedAgentInformation:
$ref: '#/components/schemas/ISO20022_Instructed_Agent_Information_V1'
creditorAgentInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Agent_Information_Creation_V1'
intermediaryAgentInformation:
$ref: '#/components/schemas/ISO20022_Intermediary_Agent_Information_V1'
debtorAgentInformation:
$ref: '#/components/schemas/ISO20022_Debtor_Agent_Information_V1'
endToEndIdentification:
type: string
description: |
Unique identification, as assigned by the initiating party, to unambiguously identify the transaction.
If it is not provided, then "NOTPROVIDED" is used
maxLength: 35
nullable: true
remittanceInformation:
type: string
description: Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system.
maxLength: 140
nullable: true
Wires_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Wire_V1'
totalNumberOfAvailableResults:
type: integer
description: Total number of wires that are available to page through
nextOffset:
type: integer
description: An optional next offset value, if this value is not present, you are viewing the last wires.
Wire_V1:
type: object
required:
- wireId
- name
- amount
- status
- isEditable
- isDeletable
- isRepetitive
- isRecurring
- recurringFrequency
- fromAccountId
- creditorAccountNumber
- instructedAgentName
- futureEffectiveDate
properties:
wireId:
type: string
format: uuid
description: The wire ID.
nullable: false
name:
type: string
description: Name of the wire.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
status:
$ref: '#/components/schemas/Status_V1'
wireTemplateId:
type: string
format: uuid
description: Reference to the wire template.
nullable: true
isEditable:
type: boolean
description: The value indicating whether the wire is editable.
nullable: false
isDeletable:
type: boolean
description: True if the wire transfer can be deleted.
nullable: false
isRepetitive:
type: boolean
description: The value indicating this wire can be used multiple times.
nullable: false
isRecurring:
type: boolean
description: The value indicating whether the wire is recurring.
nullable: false
example: true
recurringFrequency:
type: string
enum: [ 'weekly', 'biWeekly', 'semiMonthly', 'monthly', 'quarterly', 'annually', 'semiAnnually' ]
description: The frequency of the transfer request.
nullable: true
fromAccountId:
type: string
format: uuid
description: The Banno Account ID from which the wire transfer was sent
creditorAccountNumber:
type: string
format: number
description: The account number of the receiving account.
nullable: false
instructedAgentName:
type: string
description: The name of the financial institution receiving the wire transfer.
nullable: false
futureEffectiveDate:
type: string
format: date
description: The date a future dated wire will be processed on. When present, indicates the wire is a future dated wire. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
Wire_Details_V1:
type: object
properties:
wireId:
type: string
format: uuid
nullable: false
name:
type: string
description: Name of the wire transfer.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
status:
$ref: '#/components/schemas/Status_V1'
wireTemplateId:
type: string
format: uuid
description: Reference to the wire template.
nullable: true
isEditable:
type: boolean
description: True if the wire transfer can be edited.
nullable: false
isDeletable:
type: boolean
description: True if the wire transfer can be deleted.
nullable: false
isRecurring:
type: boolean
description: True if the wire transfer is recurring.
nullable: false
isRepetitive:
type: boolean
description: True if the Wire transfer is a repetitive wire.
nullable: false
futureEffectiveDate:
type: string
format: date
description: The date a future dated wire will be processed on. When present, indicates the wire is a future dated wire. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
fromAccountId:
type: string
format: uuid
description: The accountId of the wire to be transferred from.
nullable: false
creditorInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Information_V1'
instructedAgentInformation:
$ref: '#/components/schemas/ISO20022_Instructed_Agent_Information_V1'
intermediaryAgentInformation:
$ref: '#/components/schemas/ISO20022_Intermediary_Agent_Information_V1'
creditorAgentInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Agent_Information_V1'
debtorAgentInformation:
$ref: '#/components/schemas/ISO20022_Debtor_Agent_Information_V1'
recurringInformation:
$ref: '#/components/schemas/Recurring_Information_V0'
endToEndIdentification:
type: string
description: |
Unique identification, as assigned by the initiating party, to unambiguously identify the transaction.
If it is not provided, then "NOTPROVIDED" is used
remittanceInformation:
type: string
description: Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system.
approvals:
type: array
description: an array of user ids tracking who has approved a dual control wire. The array is always empty for banks. The array becomes empty when the wire is initiated.
items:
properties:
approvedByUserId:
type: string
format: uuid
nullable: false
approvedAt:
type: string
format: date
example: '2022-08-31'
nullable: false
required:
- wireId
- name
- fromAccountId
- amount
- isRepetitive
- isRecurring
- status
- isEditable
- isDeletable
- creditorInformation
- instructedAgentInformation
- creditorAgentInformation
- approvals
Wires_History_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Wire_History_V1'
totalNumberOfAvailableResults:
type: integer
description: Total number of wires that are available to page through
nextOffset:
type: integer
description: An optional next offset value, if this value is not present, you are viewing the last wires.
Wire_History_V1:
type: object
required:
- wireId
- name
- amount
- fromAccountId
- creditorName
- creditorAccountNumber
- instructedAgentName
properties:
wireId:
type: string
format: uuid
description: The wire ID.
nullable: false
name:
type: string
description: Name of the wire.
nullable: false
amount:
type: string
description: Total amount of the wire.
nullable: false
wireTemplateId:
type: string
format: uuid
description: Reference to the wire template.
nullable: true
fromAccountId:
type: string
format: uuid
description: The Banno Account ID from which the wire transfer was sent
creditorName:
type: string
description: A user provided name to identity the entity receiving the wire transfer.
maxLength: 140
creditorAccountNumber:
type: string
format: number
description: The account number of the receiving account.
nullable: false
instructedAgentName:
type: string
description: The name of the financial institution receiving the wire transfer.
nullable: false
effectiveDate:
type: string
format: date
example: '2022-08-31'
transmittedDate:
type: string
format: date
example: '2022-08-31'
outputManagementAccountabilityData:
type: string
Wire_Edit_Request_V1:
type: object
required:
- name
- isRepetitive
- amount
- creditorInformation
- instructedAgentInformation
- creditorAgentInformation
properties:
name:
type: string
description: |
The name of the wire.
30-character limit, alpha numeric and spaces (no special characters) for banks.
35-character limit, alpha numeric and spaces (no special characters) for CUs.
maxLength: 35
pattern: '^[a-zA-Z0-9\s]*$'
example: 'Wire name alpha num3ric spaces'
isRepetitive:
type: boolean
description: |
Indicates if the wire being edited is a repetitive Wire.
amount:
type: string
format: currency
description: the monetary amount being sent.
maxLength: 13
example: "9999999999.99"
creditorInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Information_V1'
instructedAgentInformation:
$ref: '#/components/schemas/ISO20022_Instructed_Agent_Information_V1'
creditorAgentInformation:
$ref: '#/components/schemas/ISO20022_Creditor_Agent_Information_V1'
intermediaryAgentInformation:
$ref: '#/components/schemas/ISO20022_Intermediary_Agent_Information_V1'
debtorAgentInformation:
$ref: '#/components/schemas/ISO20022_Debtor_Agent_Information_V1'
endToEndIdentification:
type: string
description: |
Unique identification, as assigned by the initiating party, to unambiguously identify the transaction.
If it is not provided, then "NOTPROVIDED" is used
maxLength: 35
remittanceInformation:
type: string
description: Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system.
maxLength: 140
recurringInformation:
$ref: '#/components/schemas/Edit_Recurring_Information_V0'
ISO20022_Creditor_Information_V1:
type: object
description: Information concerning the entity receiving the wire.
properties:
name:
type: string
description: A user provided name to identity the entity receiving the wire transfer.
maxLength: 140
number:
type: string
description: The account number receiving the wire transfer
pattern: ^[A-Za-z0-9]+$
maxLength: 34
buildingDetails:
$ref: '#/components/schemas/ISO20022_Agent_Building_Details_V1'
required:
- name
- number
ISO20022_Creditor_Agent_Information_V1:
type: object
description: Information concerning the entity receiving the wire.
properties:
institutionInformation:
$ref: '#/components/schemas/Agent_Information_V1'
idCode:
type: string
nullable: false
description: |
A value indicating what type of `id` the user provided when creating the wire transfer.
This value is chosen by the user when creating the wire transfer and could be one of the following:
- B: a BANK ID / SWIFT number.
- C: Chips Participant.
- F: FRB Routing number.
enum: [ "B", "C", "F" ]
buildingDetails:
$ref: '#/components/schemas/ISO20022_Agent_Building_Details_V1'
required:
- institutionInformation
- buildingDetails
- idCode
ISO20022_Creditor_Agent_Information_Creation_V1:
type: object
description: Information concerning the entity receiving the wire.
properties:
institutionInformation:
$ref: '#/components/schemas/Agent_Information_V1'
idCode:
type: string
nullable: false
description: |
A value indicating what type of `id` the user provided when creating the wire transfer.
This value is chosen by the user when creating the wire transfer and could be one of the following:
- B: a BANK ID / SWIFT number.
- C: Chips Participant.
- F: FRB Routing number.
enum: [ "B", "C", "F" ]
buildingDetails:
$ref: '#/components/schemas/ISO20022_Agent_Building_Details_V1'
required:
- idCode
- institutionInformation
- buildingDetails
ISO20022_Agent_Building_Details_Optional_V1:
type: object
description: Creditor postal address.
properties:
streetName:
type: string
description: Name of the street.
maxLength: 70
zipCode:
type: string
description: Zip code/Postal code.
maxLength: 16
city:
type: string
description: City/Town name (ex. New York).
maxLength: 35
country:
type: string
description: Country (ex. US).
maxLength: 2
pattern: '[A-Z]{2,2}'
example: US
department:
type: string
description: Identification of a division of a large organization or building.
maxLength: 70
subDepartment:
type: string
description: Identification of a sub-division of a large organization or building.
maxLength: 70
buildingNumber:
type: string
description: Number that identifies the position of a building on a street.
maxLength: 16
buildingName:
type: string
description: Name of the building or house.
maxLength: 35
floor:
type: string
description: Floor or story within a building.
maxLength: 70
postBox:
type: string
description: Numbered box in a post office, assigned to a person or organization, where letters are kept until called for.
maxLength: 16
room:
type: string
description: Building room number.
maxLength: 70
townLocationName:
type: string
description: Specific location name within the town.
maxLength: 35
districtName:
type: string
description: Identifies a subdivision within a country sub-division.
maxLength: 35
state:
type: string
description: Identifies a subdivision of a country such as state, region, county.
maxLength: 35
ISO20022_Agent_Building_Details_V1:
type: object
description: Creditor postal address.
properties:
streetName:
type: string
description: Name of the street.
maxLength: 70
zipCode:
type: string
description: Zip code/Postal code.
maxLength: 16
city:
type: string
description: City/Town name (ex. New York).
maxLength: 35
country:
type: string
description: Country (ex. US).
maxLength: 2
pattern: '[A-Z]{2,2}'
example: US
department:
type: string
description: Identification of a division of a large organization or building.
maxLength: 70
subDepartment:
type: string
description: Identification of a sub-division of a large organization or building.
maxLength: 70
buildingNumber:
type: string
description: Number that identifies the position of a building on a street.
maxLength: 16
buildingName:
type: string
description: Name of the building or house.
maxLength: 35
floor:
type: string
description: Floor or story within a building.
maxLength: 70
postBox:
type: string
description: Numbered box in a post office, assigned to a person or organization, where letters are kept until called for.
maxLength: 16
room:
type: string
description: Building room number.
maxLength: 70
townLocationName:
type: string
description: Specific location name within the town.
maxLength: 35
districtName:
type: string
description: Identifies a subdivision within a country sub-division.
maxLength: 35
state:
type: string
description: Identifies a subdivision of a country such as state, region, county.
maxLength: 35
required:
- city
- country
ISO20022_Instructed_Agent_Information_V1:
type: object
properties:
name:
type: string
description: The name of the institution receiving the wire transfer.
maxLength: 140
abaNumber:
type: string
description: The ABA routing transit number of the receiving financial institution.
maxLength: 9
city:
type: string
description: City/Town name (ex. New York).
maxLength: 35
state:
type: string
description: Identifies a subdivision of a country such as state, region, county.
maxLength: 35
required:
- name
- abaNumber
Agent_Information_V1:
description: |
Details of financial institution.
properties:
id:
type: string
nullable: false
description: >
An identifier of the Institution.
maxLength: 35
name:
type: string
nullable: false
description: The name of the institution
maxLength: 140
required:
- id
- name
Created_CreateWire_V1:
type: object
required:
- wireId
properties:
wireId:
type: string
format: uuid
description: The wire ID of the newly created wire.
ISO20022_Intermediary_Agent_Information_V1:
description: |
Details of the intermediary institution if one is present. An intermediary institution will be present for all international wires and
on any domestic wires where the receiving institution can not receive the wire funds directly.
nullable: true
properties:
institutionInformation:
$ref: '#/components/schemas/Agent_Information_V1'
idCode:
type: string
nullable: false
description: |
A value indicating what type of `id` the user provided when creating the wire transfer.
This value is chosen by the user when creating the wire transfer and could be one of the following:
- B: a BANK ID / SWIFT number.
- C: Chips Participant.
- F: FRB Routing number.
enum: [ "B", "C", "F"]
buildingDetails:
$ref: '#/components/schemas/ISO20022_Agent_Building_Details_V1'
required:
- institutionInformation
- idCode
- buildingDetails
ISO20022_Debtor_Agent_Information_V1:
description: |
Details of the originating institution.
nullable: true
properties:
institutionInformation:
$ref: '#/components/schemas/Agent_Information_V1'
buildingDetails:
$ref: '#/components/schemas/ISO20022_Agent_Building_Details_Optional_V1'
ISO20022_Future_Dated_Wire_Creation_Request_V1:
type: object
required:
- futureEffectiveDate
properties:
futureEffectiveDate:
type: string
description: The starting date the future dated wire will be processed on.
format: date
example: '2022-08-31'
ISO20022_Recurring_Wire_Creation_Request_V1:
type: object
required:
- recurringWireFrequency
- startDate
- expirationDate
- lastDayOfMonth
- retainTemplate
- neverExpire
properties:
recurringWireFrequency:
type: string
description: This field is required for a wire to be recurring. This field indicates the frequency which the wire will recur.
enum:
- weekly
- biWeekly
- semiMonthly
- monthly
- quarterly
- semiAnnually
- annually
example: 'weekly'
conditionalSettings:
description: Settings for the recurring wire. Required fields are based off the frequency type selected. No other fields can be selected.
oneOf:
- $ref: '#/components/schemas/WeeklySettings'
- $ref: '#/components/schemas/BiWeeklySettings'
- $ref: '#/components/schemas/SemiMonthlySettings'
- $ref: '#/components/schemas/MonthlySettings'
- $ref: '#/components/schemas/QuarterlySettings'
- $ref: '#/components/schemas/SemiAnnuallySettings'
- $ref: '#/components/schemas/AnnuallySettings'
startDate:
type: string
description: The starting date the recurring wire will be processed on.
format: date
example: '2022-08-31'
expirationDate:
type: string
description: The expiration date of the recurring wire. The neverExpire field must be set to 'false' when an expiration date is set or the request will fail.
format: date
example: '2025-08-31'
lastDayOfMonth:
type: boolean
description: If true, the recurring wire will be processed on the last day of every month.
example: false
neverExpire:
type: boolean
description: When set to true, the wire will never expire and an expiration date cannot be included else the request will fail.
example: false
retainTemplate:
type: boolean
description: Indicates if the recurring wire template will be retained.
example: true
CalendarSettings_V0:
type: object
description: |
The calendar settings for the user.
required:
- firstAvailableFutureEffectiveDate
- lastAvailableFutureEffectiveDate
- singleInitiationEffectiveDates
properties:
firstAvailableFutureEffectiveDate:
description: The earliest date that can be selected as a future effective date.
type: string
format: date
example: '2022-12-25'
lastAvailableFutureEffectiveDate:
description: The latest date that can be selected as a future effective date.
type: string
format: date
example: '2022-12-25'
singleInitiationEffectiveDates:
type: array
description: A list of dates that can be selected as effective dates for a single initiation wire transfer (excludes federal holidays and weekends).
items:
type: string
format: date
example: '2022-12-25'
CountryCodeResponse_V0:
type: object
required:
- countries
properties:
countries:
type: array
items:
$ref: '#/components/schemas/CountryCode_V0'
CountryCode_V0:
type: object
required:
- country
- alpha2Code
properties:
country:
type: string
description: Human readable name of the country.
nullable: false
example: United States
alpha2Code:
type: string
nullable: false
description: A two letter abbreviation of the country as defined by the ISO standard.
example: US
Have a Question?
- Have a how-to question? Seeing a weird error? Get help on StackOverflow.
- Register for the Developer Office Hours where we answer technical Q&A from the audience.
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Fri Feb 13 2026