openapi: 3.2.0
info:
description: Account Notifications (webhooks) allow you to subscribe to proactive push notifications for select accounts, eliminating the need to regularly post update requests.
contact:
name: Standards & Developer Hub
url: https://tts.sandbox.developer.citi.com/citiconnect/
email: developer-support@citi.com
version: 1.0.0
title: Account Notifications Account Notification API
servers:
- url: https://tts.apib2b.citi.com/citiconnect/prod/accountstatementservices
description: Production gateway URL
- url: https://tts.sandbox.apib2b.citi.com/citiconnect/sb/accountstatementservices
description: Sandbox URL
security:
- clientCredentials: []
tags:
- name: Account Notification
paths:
/v1/crdr/subscription:
post:
tags:
- Account Notification
summary: Account Notification Subscription Request
operationId: AccountNotificationSubscriptionRequest
security:
- clientCredentials: []
description: Using this endpoint you can create, modify, or delete a subscription request and set parameters such as frequency and number of notifications.
parameters:
- in: header
name: Content-Type
description: Supports \"application/xml\" and \"application/json\".
required: true
schema:
type: string
- in: header
name: Authorization
description: The OAuth Token prefixed with "Bearer" and space in between.
required: true
schema:
type: string
- in: query
name: client_id
required: true
description: Your unique client identifier, assigned as part of your onboarding with your Citi representative.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionReqType'
example:
'@xmlns': http://com.citi.citiconnect/services/types/creditdebit/subscription
requestType: CREATE
format: XML
creditDebitIndicator: BOTH
accountIdentification: '2826628017'
branchIdentification: '032'
fromAmount: '1'
toAmount: '999999999'
application/xml:
schema:
$ref: '#/components/schemas/SubscriptionReqType'
example: CREATEXMLCRDT0821946026032099999999999
required: true
responses:
'200':
description: OK.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionResponse'
example:
SubscriptionResponse:
Info: Request successfully submitted; please wait for the final confirmation
application/xml:
schema:
$ref: '#/components/schemas/SubscriptionResponse'
example: Request successfully submitted; please wait for the final confirmation
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
correlationId: q2te~bd8e9b8f-d8e5-4a48-ad13-5d1ec8bb32e815587
message: 'Details mentioned on the request is incorrect : accountIdentification field has invalid data'
status: '400'
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: 'q2te~bd8e9b8f-d8e5-4a48-ad13-5d1ec8bb32e815587Details mentioned on the request is incorrect : accountIdentification field has invalid dataCITI_CONNECT_SERVICES'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpCode: '401'
httpMessage: Unauthorized
moreInformation: This server could not verify that you are authorized to access the URL
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: 401Invalid OAuth TokenPlease use valid OAuth Token
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpMessage: Not Found
httpCode: 404
moreInformation: No resources match requested URI
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: Not Found404No resources match requested URI
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpMessage: Method Not Allowed
httpCode: 405
moreInformation: The method is not allowed for the requested URI
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: Method Not Allowed405The method is not allowed for the requested URL
'415':
description: Unsupported Media Type
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpMessage: UNSUPPORTED MEDIA TYPE
httpCode: 415
moreInformation: Unsupported Content-Type
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: Unsupported Media Type415Unsupported Content-Type
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpMessage: Invalid
httpCode: 422
moreInformation: Provided request is invalid, please resend the request with valid schema.
application/xml:
schema:
$ref: '#/components/schemas/Error'
example: Invalid422Provided request is invalid, please resend the request with valid schema.
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
httpMessage: Internal Server Error
httpCode: 500
moreInformation: Internal Server Error
application/xml:
schema:
$ref: '#/components/schemas/ErrorMessage'
example: Internal Server Error500Internal Server Error
components:
schemas:
Error:
properties:
status:
type: string
description: It will have category code of error
message:
type: string
description: More information about the error
correlationId:
type: string
description: Unique identifier which can be used to track the request
xml:
name: response
SubscriptionResponse:
properties:
Info:
type: string
description: Information for your request
xml:
name: Info
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
example: Request successfully submitted; please wait for the final confirmation
SubscriptionReqType:
required:
- accountIdentification
- branchIdentification
- creditDebitIndicator
- format
- requestType
properties:
requestType:
type: string
description: Specifies the action to perform on the specified subscription. You can create, modify, or delete subscriptions, based on the request type.
enum:
- CREATE
- MODIFY
- DELETE
example: CREATE
xml:
name: ReqTp
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
format:
type: string
description: Specifies the format to use for notifications - XML or JSON.
enum:
- XML
- JSON
example: JSON
xml:
name: Fmt
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
creditDebitIndicator:
type: string
description: "The type of transaction for which you want notifications:\n\n* Credit \n* Debit \n* Both"
enum:
- DBIT
- CRDT
- BOTH
example: BOTH
xml:
name: CdtDbtInd
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
accountIdentification:
minLength: 1
maxLength: 34
description: The account number associated with the subscription.
xml:
name: AcctId
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
example: '1730173616'
branchIdentification:
type: string
description: Citi branch ID associated with the account.
minLength: 1
maxLength: 35
xml:
name: BrnchId
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
example: '713'
fromAmount:
type: string
description: The minimum amount of a transaction to trigger a notification. Notifications will not be sent for transaction amounts below this threshold.
xml:
name: FrAmt
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
example: '0'
toAmount:
type: string
description: The maximium amount of a transaction to trigger a notification. Notifications will not be sent for transaction amounts above this limit.
xml:
name: ToAmt
namespace: http://com.citi.citiconnect/services/types/creditdebit/subscription
example: '99999999999'
ErrorMessage:
properties:
httpCode:
format: int32
type: integer
httpMessage:
type: string
moreInformation:
type: string
required:
- httpCode
xml:
name: errormessage
securitySchemes:
clientCredentials:
description: 'All CitiConnect APIs use the oAuth2 authentication scheme, which requires a bearer token to authenticate your API call. The Token URL includes the version of authentication used by this API. See the Citi Authentication API reference for information on requesting a token.
'
type: oauth2
flows:
clientCredentials:
tokenUrl: /authenticationservices/v3/oauth/token
scopes: {}