Details
Consumer API
>
API Reference
>
v0
>
Zelle
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: Zelle
servers:
- url: 'https://{API_ENVIRONMENT}/a/consumer/api/v0'
variables:
API_ENVIRONMENT:
default: digital.garden-fi.com
description: FI specific hostname
tags:
- name: Account Entitlements
- name: Disclosures
- name: Enrollment check
- name: Tokens
- name: Contacts
- name: User activity
- name: Payments
- name: Requests
paths:
"/users/{userId}/zelle/accounts":
get:
tags:
- Account Entitlements
description: |
Returns a list of accountIds that a the user can use with zelle.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.accounts.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
accountIds:
type: array
items:
type: string
example: 00000000-0000-0000-0000-000000000000
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/attemptCallWithoutAbility"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/regd":
get:
tags:
- Disclosures
description: |
Returns the Zelle RegD notice for the user's institution.
This endpoint supports being used with an Access Token from the Admin API with "Manage security settings" permission.
security:
- OpenID_Connect:
- 'openid'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
notice:
type: string
example: Federal Regulation D limits certain types of withdrawals and transfers made from savings or money market accounts to a combined total of six per account cycle. Withdrawals and/or transfers exceeding the six per account cycle allowance will result in excessive withdrawal fee per transaction. For more infomation please contact us.
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: User does not have the Zelle ability
content:
application/json:
schema:
$ref: "#/components/schemas/attemptCallWithoutAbility"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/enrollment":
get:
tags:
- Enrollment check
description: |
Returns the enrollment status of the user. Not affected by the Zelle disclosure acceptence requirement to call.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.contacts.readonly'
- 'https://api.banno.com/consumer/auth/zelle.tokens.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/enrollmentDetails"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/attemptCallWithoutAbility"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/tokens":
get:
tags:
- Tokens
description: |
Returns the core-defined tokens for the user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.tokens.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/tokens"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/token":
post:
tags:
- Tokens
description: |
Provides the token and default account for the user. This endpoint is rate limited.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.tokens.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"204":
description: OK - OTP sent to token
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
- type: object
required:
- type
properties:
type:
type: string
enum:
- NonMobilePhoneNumber
- NonEmail
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/tokenEnrollment"
required: true
put:
tags:
- Tokens
description: |
Delete or update the individual token.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- "https://api.banno.com/consumer/auth/zelle.tokens.readwrite"
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/deleteTokenRequest"
- $ref: "#/components/schemas/updateTokenRequest"
example:
token:
type: Email
value: test@test.com
accountId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
required: true
responses:
"204":
description: OK - Token updated
"400":
description: Bad request
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: Token not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/token/verify":
post:
tags:
- Tokens
description: |
Verify the TOTP token provided by the user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.tokens.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: Response includes the pending payments for the verified user.
content:
application/json:
schema:
$ref: "#/components/schemas/pendingPayments"
"202":
description: Token verified successfully but enrolled with another institution.
content:
application/json:
schema:
type: object
required:
- enrolledInstitutionName
properties:
enrolledInstitutionName:
type: string
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: "disclosure acceptance required, no ability, or verification error"
content:
application/json:
schema:
type: object
example:
type: RestrictedToken
oneOf:
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/tokenVerificationErrors"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/tokenVerification"
required: true
"/users/{userId}/zelle/token/takeover":
post:
tags:
- Tokens
description: |
Confirms the user wishes to takeover their token from another institution.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.tokens.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK - token takeover successful
content:
application/json:
schema:
$ref: "#/components/schemas/pendingPayments"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/tokenTakeoverErrorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
$ref: "#/components/requestBodies/token"
"/users/{userId}/zelle/contacts":
get:
tags:
- Contacts
description: |
Retrieves the recipients for the desired user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.contacts.readonly'
- 'https://api.banno.com/consumer/auth/zelle.contacts.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: recipient list
content:
application/json:
schema:
$ref: "#/components/schemas/contacts"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/contacts/search":
post:
tags:
- Contacts
description: |
Check if contact is a zelle user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.contacts.readonly'
- 'https://api.banno.com/consumer/auth/zelle.contacts.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/contacts"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/tokenArray"
required: true
"/users/{userId}/zelle/contact":
post:
tags:
- Contacts
description: |
Creates a new recipient for the desired user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.contacts.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/contact"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: "HR JWT not provided, disclosure acceptance required or no ability"
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/notHighRiskEnabled"
- $ref: "#/components/schemas/restrictedRecipient"
- $ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/newRecipient"
required: true
put:
tags:
- Contacts
description: |
Remove a Contact (also known as recipient) from Zelle.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.contacts.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/deleteContactRequest"
responses:
"204":
description: The contact has been successfully removed via PayCenter
"401":
description: "Failure in auth, invalid or expired JWT"
"404":
description: "Could not find the either the user or the token provided was not a contact for the given user."
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/activity":
get:
tags:
- User activity
description: |
Activity for the desired user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.activity.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: query
name: allowNullTokens
description: "Should activities with a null token be returned? (default: false)<br><br>There are currently situations where a token on a past activity may be missing. That is translated as `token: null` on a payment or request's `sender`/`requestor` or `recipient`/`responder` property. These are filtered out by default, but some clients may prefer to include such activities."
required: false
schema:
type: boolean
responses:
"200":
description: Activity for a user
content:
application/json:
schema:
$ref: "#/components/schemas/activity"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/payments/{confirmationId}":
get:
tags:
- Payments
description: |
Retrieve payment for the desired user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.activity.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: ID of the payment
required: true
schema:
type: string
responses:
"200":
description: Activity for a user
content:
application/json:
schema:
$ref: "#/components/schemas/paymentDetail"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User or confirmationId not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
put:
tags:
- Payments
description: |
Edit an existing payment.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.payments.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: newly created payment
content:
application/json:
schema:
$ref: "#/components/schemas/payment"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/paymentsErrors"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/editPayment"
required: true
"/users/{userId}/zelle/requests/{confirmationId}":
get:
tags:
- Requests
description: Retrieve request for the desired user
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.activity.readonly'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: ID of the request
required: true
schema:
type: string
responses:
"200":
description: Activity for a user
content:
application/json:
schema:
$ref: "#/components/schemas/requestDetail"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
put:
tags:
- Requests
description: Modify a request
security:
- OpenID_Connect:
- 'openid'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: newly modified request
content:
application/json:
schema:
$ref: "#/components/schemas/request"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/editRequest"
required: true
"/users/{userId}/zelle/payments":
post:
tags:
- Payments
description: |
Create a payment i.e. Send Money.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.payments.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: newly created payment
content:
application/json:
schema:
$ref: "#/components/schemas/paymentCreation"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/paymentsErrors"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/newPayment"
required: true
"/users/{userId}/zelle/payments/{confirmationId}/retry":
post:
tags:
- Payments
description: |
Retry an existing payment.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.payments.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: newly created payment
content:
application/json:
schema:
$ref: "#/components/schemas/payment"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/paymentCancelationErrors"
"404":
description: User or Payment not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/payments/{confirmationId}/cancelation":
post:
tags:
- Payments
description: |
Cancel an existing payment.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.payments.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: newly canceled payment
content:
application/json:
schema:
$ref: "#/components/schemas/payment"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/paymentCancelationErrors"
"404":
description: User or Payment not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/request":
post:
tags:
- Requests
description: Request money
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.requests.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: newly created request
content:
application/json:
schema:
$ref: "#/components/schemas/requestCreation"
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/addRequest"
required: true
"/users/{userId}/zelle/requests/{confirmationId}/retry":
post:
tags:
- Requests
description: Retry an existing request
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.requests.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the request
required: true
schema:
type: string
responses:
"200":
description: newly created request
content:
application/json:
schema:
$ref: "#/components/schemas/request"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/requests/{confirmationId}/cancelation":
post:
tags:
- Requests
description: |
Cancel an existing request.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.requests.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the request
required: true
schema:
type: string
responses:
"200":
description: newly canceled request
content:
application/json:
schema:
$ref: "#/components/schemas/request"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/requests/{confirmationId}/acceptance":
post:
tags:
- Requests
description: |
Accept a request.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.requests.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: payment creation response
content:
application/json:
schema:
$ref: "#/components/schemas/paymentCreation"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/notHighRiskEnabled"
- $ref: "#/components/schemas/errorResponseType"
- $ref: "#/components/schemas/paymentsErrors"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/acceptRequest"
required: true
"/users/{userId}/zelle/requests/{confirmationId}/rejection":
post:
tags:
- Requests
description: |
Reject a request.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/zelle.requests.readwrite'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
- in: path
name: confirmationId
description: confirmationId of the payment
required: true
schema:
type: string
responses:
"200":
description: newly rejected request
content:
application/json:
schema:
$ref: "#/components/schemas/request"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: disclosure acceptance required or no ability
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponseType"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/disclosure":
get:
tags:
- Disclosures
description: |
Retrieve latest Zelle disclosure text and user acceptance.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- 'openid'
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"200":
description: The latest disclosure for using Zelle
content:
application/json:
schema:
$ref: "#/components/schemas/disclosure"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: Doesn't have ability
content:
application/json:
schema:
$ref: "#/components/schemas/attemptCallWithoutAbility"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
"/users/{userId}/zelle/disclosure/acceptance":
put:
tags:
- Disclosures
description: |
Documents the acceptance of Zelle disclosure by the desired user.
This endpoint does not support being used with an Access Token from the Admin API.
security:
- OpenID_Connect:
- "https://api.banno.com/consumer/auth/zelle.tokens.readwrite"
parameters:
- in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
responses:
"202":
description: The request was accepted but the user had already accepted that disclosure.
"204":
description: Acknowledge successful disclosure acceptance
"400":
description: Bad request
content:
application/json:
schema:
type: object
oneOf:
- $ref: "#/components/schemas/genericBadRequest"
"401":
description: "Failure in the authorization, invalid or expired JWT"
"403":
description: Doesn't have ability
content:
application/json:
schema:
$ref: "#/components/schemas/attemptCallWithoutAbility"
"404":
description: User not found
"500":
description: Server error
"503":
description: Zelle service not available
content:
application/json:
schema:
$ref: "#/components/schemas/serviceUnavailableErrorResponseType"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/disclosureId"
required: true
components:
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
requestBodies:
token:
content:
application/json:
schema:
$ref: "#/components/schemas/tokenObj"
required: true
schemas:
enrollmentDetails:
type: object
required:
- enrolled
properties:
enrolled:
type: boolean
description: Zelle enrollment status of the user
tokens:
type: object
required:
- enrolledTokens
- unenrolledTokens
properties:
unenrolledTokens:
type: array
items:
properties:
token:
$ref: "#/components/schemas/tokenObj"
numPendingPayments:
type: integer
description: Returns number of pending payments associated with the token
numPendingRequests:
type: integer
description: Returns number of pending requests associated with the token
required:
- token
- numPendingPayments
- numPendingRequests
enrolledTokens:
type: array
items:
properties:
token:
$ref: "#/components/schemas/tokenObj"
accountId:
type: string
description: The ID of the account that is associated with this token. Any payments sent to this token will be deposited to this account.
required:
- token
- accountId
tokenEnrollment:
type: object
required:
- token
- accountId
properties:
token:
$ref: "#/components/schemas/tokenObj"
accountId:
type: string
description: UUID of core account to set as default account for the token
tokenVerification:
type: object
required:
- token
- answer
properties:
token:
$ref: "#/components/schemas/tokenObj"
answer:
type: string
description: OTP code delivered to the user for the token
tokenArray:
type: array
items:
$ref: "#/components/schemas/tokenObj"
tokenObj:
type: object
description: Represents the email address or phone number used to identify a user within the Zelle network (may be `null` when associated with past activity)
properties:
type:
type: string
enum:
- Phone
- Email
example: Phone
description: Returns either phone or email
value:
type: string
example: "+15555551234"
description: Returns the enrolled token value
deleteContactRequest:
type: object
properties:
token:
$ref: "#/components/schemas/tokenObj"
remove:
type: boolean
description: When true will trigger the deletion of the contact related to the token provided.
deleteTokenRequest:
type: object
required:
- token
- remove
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the token to delete
remove:
type: boolean
description: true if token should be removed
updateTokenRequest:
type: object
required:
- token
- accountId
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the token to update
accountId:
type: string
description: UUID of core account to set as default account for the token
pendingPayments:
type: object
required:
- pendingPayments
properties:
pendingPayments:
type: array
items:
$ref: "#/components/schemas/payment"
pendingRequests:
type: array
items:
$ref: "#/components/schemas/request"
payment:
type: object
required:
- confirmationId
- sender
- recipient
- amount
- paymentStatus
- dateTime
- canRetry
properties:
confirmationId:
type: string
description: unique id per payment
canRetry:
type: boolean
description: True if the confirmationId can be retried. When false, any attempt to retry will fail.
expirationDate:
type: string
description: If the payment is not already final, the date at which it will no longer be valid for response.
requestConfirmationId:
type: string
description: parent request object id
sender:
type: object
required:
- token
- firstName
- lastName
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the sender's token
nullable: true
firstName:
type: string
description: the sender's first name
lastName:
type: string
description: the sender's last name
accountId:
type: string
description: the funding account of the sender
enrolled:
$ref: "#/components/schemas/enrollmentStatus"
recipient:
type: object
required:
- token
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the recipient's token
nullable: true
firstName:
type: string
description: the recipient's first name
lastName:
type: string
description: the recipient's last name
accountId:
type: string
description: the funding account of the recipient
enrolled:
$ref: "#/components/schemas/enrollmentStatus"
amount:
type: string
description: amount of the payment
paymentStatus:
type: string
enum:
- Success
- Pending
- Failure
- Canceled
- Expired
description: |-
status of the payment:
* Success - the transaction was completed and recipient received the amount sender selected
* Failure - the transaction could not be completed
* Pending - the transaction is not complete as the recipient is not enrolled in Zelle
* Canceled - a pending transaction that was closed by the sender
* Expired - a pending transaction that was automatically closed as the recipient did not enroll in Zelle after a period of time
note:
type: string
description: note to include on payment
dateTime:
type: string
description: 'date and time of payment "2018-01-01T00:00:00.000Z"'
paymentParty:
type: string
enum:
- Sender
- Receiver
- Both
description: detail on which party the user is on the given payment.
paymentDetail:
type: object
required:
- party
- payment
- history
properties:
party:
$ref: "#/components/schemas/paymentParty"
payment:
$ref: "#/components/schemas/payment"
history:
type: array
items:
type: object
required:
- date
- status
- description
properties:
status:
type: string
enum:
- Success
- Pending
- Failure
- Canceled
- Expired
description:
type: string
description: The description of the history event.
date:
type: string
description: 'date of payment history "2018-01-01"'
note:
type: string
description: Notes added to activity.
requestParty:
type: string
enum:
- Requestor
- Responder
- Both
description: detail on which party the user is on the given request.
requestDetail:
type: object
required:
- request
- party
- history
properties:
request:
$ref: "#/components/schemas/request"
party:
$ref: "#/components/schemas/requestParty"
history:
type: array
items:
type: object
required:
- date
- status
- description
properties:
status:
type: string
enum:
- Success
- Pending
- Failure
- Canceled
- Expired
- Rejected
description:
type: string
description: The description of the history event.
date:
type: string
description: 'date of request history "2018-01-01"'
note:
type: string
description: Notes added to activity.
contacts:
type: object
required:
- contacts
properties:
contacts:
type: array
items:
$ref: "#/components/schemas/contact"
contact:
type: object
required:
- token
- firstName
- lastName
- hasMadePayment
- paymentType
properties:
token:
$ref: "#/components/schemas/tokenObj"
firstName:
type: string
description: the recipient's first name
example: Ben
lastName:
type: string
description: the recipient's last name
example: Tester
paymentRailName:
type: object
required:
- firstName
- lastName
properties:
firstName:
type: string
description: User's first name as registered with the zelle system
example: Benjamin
lastName:
type: string
description: User's last name as registered with the zelle system
example: Tester
hasMadePayment:
type: boolean
description: has the user made a payment to this recipient
enrolled:
$ref: "#/components/schemas/enrollmentStatus"
deliveryEstimate:
type: string
description: Text indicating the best estimate of how long delivery of funds will take
example: Your contact will get their money after they enroll in Zelle
newRecipient:
type: object
required:
- token
- firstName
- lastName
properties:
token:
$ref: "#/components/schemas/tokenObj"
firstName:
type: string
description: the sender's first name
lastName:
type: string
description: the sender's last name
activity:
type: object
properties:
payments:
type: array
items:
$ref: "#/components/schemas/activityPayment"
requests:
type: array
items:
$ref: "#/components/schemas/activityRequest"
activityPayment:
type: object
required:
- party
- payment
properties:
payment:
$ref: "#/components/schemas/payment"
description: the payment
party:
$ref: "#/components/schemas/paymentParty"
activityRequest:
type: object
required:
- party
- request
properties:
request:
$ref: "#/components/schemas/request"
description: the request
party:
$ref: "#/components/schemas/requestParty"
enrollmentStatus:
type: boolean
description: True if the party has enrolled their token with Zelle
request:
type: object
required:
- confirmationId
- requestor
- responder
- amount
- requestStatus
- dateTime
- canRetry
properties:
confirmationId:
type: string
description: request id
paymentConfirmationId:
type: string
description: confirmationId of the payment associated with the fulfilled request
canRetry:
type: boolean
description: True if the confirmationId can be retried. When false, any attempt to retry will fail.
expirationDate:
type: string
description: If the payment is not already final, the date at which it will no longer be valid for response.
requestor:
type: object
required:
- token
- firstName
- lastName
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the requestor's token
nullable: true
firstName:
type: string
description: the requestor's first name
lastName:
type: string
description: the requestor's last name
accountId:
type: string
description: the funding account of the requestor
enrolled:
$ref: "#/components/schemas/enrollmentStatus"
responder:
type: object
required:
- token
properties:
token:
$ref: "#/components/schemas/tokenObj"
description: the responder's token
nullable: true
firstName:
type: string
description: the responder's first name
lastName:
type: string
description: the responder's last name
enrolled:
$ref: "#/components/schemas/enrollmentStatus"
amount:
type: string
description: amount of the request
requestStatus:
type: string
enum:
- Success
- Pending
- Failure
- Canceled
- Expired
- Rejected
description: |-
status of the request:
* Success - the transaction was completed and responder has accepted requestor payment request
* Pending - the transaction is not complete as the responder has not accepted requestor payment request
* Failure - the transaction could not be completed
* Canceled - a pending transaction that was closed by the requestor
* Expired - a pending transaction that was automatically closed as the responder did not accept the payment request after a period of time
* Rejected - a pending transaction that was rejected by the responder
note:
type: string
description: note to include on payment
dateTime:
type: string
description: 'date and time of payment "2018-01-01T00:00:00.000Z"'
paymentCreation:
type: object
required:
- confirmationId
properties:
confirmationId:
type: string
description: payment id
requestCreation:
type: object
required:
- confirmationId
properties:
confirmationId:
type: string
description: request id
newPayment:
type: object
required:
- recipientToken
- amount
- fundingAccountId
properties:
requestConfirmationId:
type: string
description: Include in response to a request. Request object will be included in response if included here.
example: JH1936596482
recipientToken:
$ref: "#/components/schemas/tokenObj"
description: recipient token
amount:
type: string
fundingAccountId:
type: string
description: The funding account of the sender/requestor
note:
type: string
description: optional note
editPayment:
type: object
required:
- amount
- fundingAccountId
properties:
amount:
type: string
fundingAccountId:
type: string
note:
type: string
acceptRequest:
type: object
required:
- fundingAccountId
properties:
fundingAccountId:
type: string
description: The funding account of the sender/requestor
note:
type: string
description: optional note
addRequest:
type: object
required:
- requestorToken
- responderToken
- amount
properties:
requestorToken:
$ref: "#/components/schemas/tokenObj"
description: requestor token
responderToken:
$ref: "#/components/schemas/tokenObj"
description: responder token
amount:
type: string
note:
type: string
editRequest:
type: object
required:
- amount
- fundingAccountId
properties:
amount:
type: string
note:
type: string
disclosure:
type: object
required:
- disclosureId
- terms
- creationDate
properties:
disclosureId:
type: string
example: 00000000-0000-0000-0000-000000000000
terms:
type: string
creationDate:
type: string
example: "2019-01-01T00:00:00.000Z"
acceptanceDate:
type: string
example: "2019-01-01T00:00:00.000Z"
disclosureId:
type: object
properties:
disclosureId:
type: string
genericBadRequest:
type: object
required:
- type
properties:
type:
type: string
enum:
- InvalidJson
attemptCallWithoutAbility:
type: object
required:
- type
properties:
type:
type: string
enum:
- AttemptedCallWithoutAbility
errorResponseType:
type: object
required:
- type
properties:
type:
type: string
enum:
- DisclosureAcceptanceRequired
- NotEnrolledWithZelle
- AttemptedCallWithoutAbility
- Blacklisted
paymentsErrors:
type: object
required:
- type
properties:
type:
type: string
enum:
- TransactionProhibited
- VelocityExceeded
- LimitExceeded
- NotEnoughFunds
- RestrictedToken
- RestrictedRecipient
- RetryLimitExceeded
paymentCancelationErrors:
type: object
required:
- type
properties:
type:
type: string
enum:
- PaymentNotPending
tokenVerificationErrors:
type: object
required:
- type
properties:
type:
type: string
enum:
- RestrictedToken
- TooManyTokens
- InvalidVerification
tokenTakeoverErrorResponseType:
type: object
required:
- type
properties:
type:
type: string
enum:
- RestrictedToken
- TooManyTokens
- TokenTakeoverExpired
- AttemptedCallWithoutAbility
notHighRiskEnabled:
type: object
required:
- type
properties:
type:
type: string
enum:
- UserIsNotHighRiskAuthorized
restrictedRecipient:
type: object
required:
- type
properties:
type:
type: string
enum:
- RestrictedRecipient
serviceUnavailableErrorResponseType:
type: object
properties:
type:
type: string
enum:
- memoMode
Have a Question?
Have a how-to question? Seeing a weird error? Get help on
StackOverflow.
Register for the Digital Toolkit Meetup
where we answer technical Q&A from the audience.
Last updated Thu May 27 2021