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
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.
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.
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.
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.
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
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
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
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: Retreives the recipients for the desired user
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
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
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.
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
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: Retreive payment 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 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
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: Retreive 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
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
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
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
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
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
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.
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
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