swagger: '2.0'
info:
description: >-
IVA capabilities allow users to self-service when facing issues or inquiries
such as username/password reset, unlock accounts, authorizations and
declines, registration, card status, contact details update, merchant.
version: ''
title: IVA-GRACE
host: tts.apib2b.citi.com
basePath: /tts/cards/iva
schemes:
- https
produces:
- application/json
security:
- clientCredentials: []
paths:
/v1/user/publicKey:
get:
tags:
- Public Key
summary: Public Key
description: ''
operationId: publicKey
consumes:
- application/json
produces:
- application/json
parameters:
- name: Content-Type
in: header
description: Supports application/json
required: true
type: string
- name: Authorization
in: header
description: >-
Request should contain Authorization header OAuth
**OAuth:**
Request contains a header field in the form of Authorization:
Bearer (access_token), where access_token is generated using the
OAuth url
`Example` : Bearer
AAIkMjU2OTI4OGQtODY5Ny00ZjgzLTg0NzEtY2QyZWYwZjM5ZjJk_m3yqnGAbxR_ovVx5bs9OUfF0dd52qHadLtw2ARkwCw2BJcwg1zHsTOuvjPtsW5ioxxd2xXXjlDDCKLuvg15Ce1gzGxTu17xEvLOzSECLIdU_02JbpS3h9ee9GzB-u_MPfKseOiACXYAh_7AVWQhtRMLDKd8RgCUsNzTGXXBeE4
required: true
type: string
maxLength: 255
- name: client_id
in: query
required: true
description: >-
This is your unique identifier shared during your CitiConnect API
onboarding. This is the same `client_id` used for oauth token
generation
type: string
- name: region
in: header
description: 'region of the client.
`Example`: APAC, EMEA, NAM'
required: true
type: string
maxLength: 3
minLength: 3
- name: country
in: header
description: >-
Country code in ISO 3166 alpha-2 format.
`Example`: USA (United
States of America), SGP (Singapore), PHL (Philippines), THA
(Thailand)
required: true
type: string
maxLength: 3
minLength: 3
- name: req-sys-id
in: header
description: >-
Client Unique ID to identify the particular request.
`Format`:
UUID
`Example`: 123d837e-958a-4e9f-bc97-4843ec948123
required: true
type: string
maxLength: 36
minLength: 12
responses:
'200':
description: Success response
schema:
$ref: '#/definitions/publicKey'
'401':
description: Authentication Failure
schema:
$ref: '#/definitions/unAuthorizedResponse'
'405':
description: Method not allowed
schema:
$ref: '#/definitions/methodNotAllowedResponse'
'500':
description: Technical Error
schema:
$ref: '#/definitions/internalServerErrorResponse'
/v1/user/profile:
post:
tags:
- User Profile
summary: User Profile
description: ''
operationId: userProfile
parameters:
- name: Content-Type
in: header
description: Supports application/json
required: true
type: string
- name: Authorization
in: header
description: >-
Request should contain Authorization header OAuth
**OAuth:**
Request contains a header field in the form of Authorization:
Bearer (access_token), where access_token is generated using the
OAuth url
`Example` : Bearer
AAIkMjU2OTI4OGQtODY5Ny00ZjgzLTg0NzEtY2QyZWYwZjM5ZjJk_m3yqnGAbxR_ovVx5bs9OUfF0dd52qHadLtw2ARkwCw2BJcwg1zHsTOuvjPtsW5ioxxd2xXXjlDDCKLuvg15Ce1gzGxTu17xEvLOzSECLIdU_02JbpS3h9ee9GzB-u_MPfKseOiACXYAh_7AVWQhtRMLDKd8RgCUsNzTGXXBeE4
required: true
type: string
maxLength: 255
- name: client_id
in: query
required: true
description: >-
This is your unique identifier shared during your CitiConnect API
onboarding. This is the same `client_id` used for oauth token
generation
type: string
- name: region
in: header
description: 'region of the client.
`Example`: APAC, EMEA, NAM'
required: true
type: string
maxLength: 3
minLength: 3
- name: country
in: header
description: >-
Country code in ISO 3166 alpha-2 format..
`Example`: USA(United
States of America),SGP(Singapore), PHL(Philippines), THA(Thailand)
required: true
type: string
maxLength: 3
minLength: 3
- name: req-sys-id
in: header
description: >-
Client Unique id to identify the particular request.
`Format`:
UUID
`Example`: 123d837e-958a-4e9f-bc97-4843ec948123
required: true
type: string
maxLength: 36
minLength: 12
- in: body
name: IVAUserProfileRequest
description: This is a input request for User profile operations
required: false
schema:
$ref: '#/definitions/IVAUserProfileRequest'
responses:
'200':
description: Success response
schema:
$ref: '#/definitions/IVAUserProfileResponse'
'400':
description: Bad request
schema:
$ref: '#/definitions/IVAUserProfileResponse'
'401':
description: Authentication Failure
schema:
$ref: '#/definitions/unAuthorizedResponse'
'405':
description: Method not allowed
schema:
$ref: '#/definitions/methodNotAllowedResponse'
'500':
description: Technical Error
schema:
$ref: '#/definitions/internalServerErrorResponse'
securityDefinitions:
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
tokenUrl: https://tts.apib2b.citi.com/tts/cards/api/v1/oauth2/token
flow: application
scopes: null
definitions:
IVAUserProfileRequest:
required:
- encodedEncryptedCardNumber
- operationId
- source
- userType
properties:
operationId:
type: string
format: alpha[a-zA-Z]
description: Unique Id for defining the action to be taken
encodedEncryptedCardNumber:
type: string
description: "A reference number that uniquely identifies the virtual card\account."
userType:
type: string
format: alpha[a-zA-Z]
description: A field to identify the user type based on the card
source:
type: string
format: alphanumeric [a-zA-Z0-9 ]
example: IVA
description: Represents the Source system
maxLength: 255
emailType:
type: string
description: >-
Represents the mail type. Is required when operation ID emailId,
resetPassword and forgotUserName
mobileNumber:
type: string
description: >-
Represent the phone number to be updated for a profile. Is required
when operation ID phoneNumber
maxLength: 255
mobileCountryCode:
type: string
description: Represents the country code of the phone number
maxLength: 255
emailId:
type: string
description: >-
Represent the email id to be updated for a profile. IS required when
operation ID emailId. Emailid is mandatory when emailType is Temporary
and Operation is resetPassword. EmailId should be null or empty if
Operation is resetPassword and emailType is Primary/Alternate
IVAUserProfileResponse:
properties:
operationId:
type: string
format: alpha[a-zA-Z]
description: Unique ID for defining the action to be taken.
example: getuserprofile
requestStatus:
type: string
example: 'true'
description: This field represents request status
minLength: 0
maxLength: 100
additionalMessage:
type: string
description: This field represents additional message per request
minLength: 0
maxLength: 255
example: User profile retrieved successfully
profileResponse:
$ref: '#/definitions/ProfileResponseFields'
errors:
type: array
items:
$ref: '#/definitions/ErrorMessage'
ProfileResponseFields:
properties:
userName:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: encrypted value
userStatus:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: Activated
userMobileNumber:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: encrypted value
userPrimaryEmailAddress:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: avc@citi.com
userLastLoginDate:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 30-Oct-2023 12:09:31
userLastEmailUpdatedOn:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 19-Dec-2023 06:12:12
userLastMobileUpdatedOn:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 19-Dec-2023 06:12:12
noOfInvalidLoginAttempts:
type: number
format: numeric [0-9]
description: This data will be populated when operation ID is getUserProfile
example: '0'
ccasettingenabledOTP:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 'N'
ccasettingautoRegistrationEnabled:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 'N'
ccasettinglockedAccountsEnabled:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 'N'
ccasettinguseTextMessage:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 'N'
ccasettingUseBioMetrics:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
example: 'N'
ccasettingEmailDomains:
type: object
description: This data will be populated when operation ID is getUserProfile
example: 'null'
properties: {}
hdVerificationQuestion:
type: object
description: This data will be populated when operation ID is getUserProfile
example: What is your favorite color?
properties: {}
hdVerificationAnswer:
type: object
description: This data will be populated when operation ID is getUserProfile
example: encrypted value
properties: {}
ssoEnabled:
type: string
description: This data will be populated when operation ID is getUserProfile
minLength: 0
maxLength: 255
publicKey:
properties:
publicKeyString:
type: string
format: alphanumeric [a-zA-Z0-9-]
description: Represents the public key got from CM.
minLength: 1
maxLength: 255
ErrorMessage:
required:
- errorCode
- errorDescription
properties:
errorCode:
type: string
description: Error code to be sent to the Client
minLength: 1
maxLength: 10
enum:
- EVB0300
- EVB0301
- EVB0302
- EVB0303
- EVB0304
- EVB0305
- EVB0306
- EVB0307
- EVB0308
- EVB0309
- EVB0310
- EVB0311
- GRC0001
- GRC0002
- GRC0003
- GRC0004
- GRC0005
- GRC0006
- GRC0007
- GRC0008
- GRC0009
- GRC0010
- GRC0011
- GRC0012
- GRC0014
- GRC0015
- GRC0016
- CMERR02
- CMERR16
- CMERR17
- CMERR18
- CMERR22
- CMERR23
- CMERR24
- CMERR25
errorDescription:
type: string
description: >-
EVB0300 - operationId is mandatory\\ \'EVB0301' - Invalid value
passed. operationId accepts ["getUserProfile"\
\resetLockedCard","unlockUser","resetPassword","resetChallengeQuestion","forgotUserName"\
\"phoneNumber","emailId" ] `EVB0302` - encodedCardNumber is mandatory\
\`EVB0303` - source is mandatory `EVB0304` - userType is mandatory\
\`EVB0305` - Invalid value passed. userType accepts [CH,NCH]\
\`EVB0306` - mobileNumber is mandatory when operation id is
phoneNumber\ \`EVB0307` - mobileCountryCode is mandatory when
operation id is phoneNumber\ \`EVB0308` - emailId is mandatory when
operation id is emailId.\ \`EVB0309` - Email Type can be Primary or
Alternate\ \`EVB0310` - Mail address is required when mailType is
Temporary for resetPassword.\ \`EVB0311` - Mail address is should be
null or empty when mailType is not Temporary for resetPassword.\
\`GRC0001` - We have encountered an error and couldn't receive your
request. Please try again, or contact Citi support if you \have any
further questions or comments.\ \`GRC0002` - Client ID is missing in
the request header\ \`GRC0003` - Invalid JSON Input\ \`GRC0004` -
Region ID is not available in the request \`GRC0005` - Client Tracking
ID is missing in the request header \`GRC0006` - We have encountered
an error and couldn't receive your request. Please try again, or
contact Citi support if you \have any further questions or comments.\
\`GRC0007` - Client requested MediaType is not supported.\ \`GRC0008`
- Invalid request. Unable to bind incoming request\ \`GRC0009` - We
have encountered an error and couldn't receive your request. Please
try again, or contact Citi support if you \have any further questions
or comments\ \`GRC0010` - Client Tracking ID length should contain a
min of 12 character and a max of 36 characters\ \`GRC0011` - Client ID
and/or Country and/or region id is missing in Client Onboard
Configuration setup. Contact Citi support.\ \`GRC0012` - Necessary
header value is missing\ \`GRC0014` - We have encountered an error and
couldn't receive your request. Please try again, or contact Citi
support if you \have any further questions or comments\ \`GRC0015` -
We have encountered an error and couldn't receive your request. Please
try again, or contact Citi support if you \have any further questions
or comments\ \`GRC0016` - Country code is not available in the
request\ \`CMERR02` - Invalid Input Parameter(s)\ \`CMERR17` - Only
Individual Accounts (cards) and Centrally Billed cards can be updated\
\`CMERR18` - Not authorized to perform this action\ \`CMERR22` - Data
not Found for the given Card Number\ \`CMERR24` - Email
primary/alternate mail id not found\ \`CMERR25` - Error in password
creation
minLength: 1
maxLength: 255
unAuthorizedResponse:
properties:
httpCode:
type: string
example: '401'
description: Error code to be sent to the Client
minLength: 1
maxLength: 10
httpMessage:
type: string
example: Unauthorized
description: Error message to be sent to the Client
minLength: 1
maxLength: 255
moreInformation:
type: string
example: Access Denied
description: Details related to the error to be sent to the Client
minLength: 1
maxLength: 255
methodNotAllowedResponse:
properties:
httpCode:
type: string
example: '405'
description: Error code to be sent to the Client
minLength: 1
maxLength: 10
httpMessage:
type: string
example: Method Not ALLowed
description: Error message to be sent to the Client
minLength: 1
maxLength: 255
moreInformation:
type: string
example: Requested HTTP operation is not supported
description: Details related to the error to be sent to the Client
minLength: 1
maxLength: 255
internalServerErrorResponse:
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/definitions/ErrorMessage'