openapi: 3.2.0
info:
title: PayerID Management Services Payer ID Update Assignee API
description: CitiConnectAPI service enable straight-through processing (STP) for Payer ID management functionality where client ERP system can invoke API request for Payer ID management functionalities.
version: 1.0.3
contact:
name: CitiConnect API Team
servers:
- url: https://tts.apib2b.citi.com/citiconnect/prod
description: production gateway url
- url: https://tts.sandbox.apib2b.citi.com/citiconnect/sb
description: sandbox url
security:
- oAuth2:
- /authenticationservices/v1
tags:
- name: PayerIdUpdateAssignee
description: PayerID Update assignee API has an ability to update, add or remove assignee details of the given Payer ID.
paths:
/receivablesservices/v1/payerids:
put:
tags:
- PayerIdUpdateAssignee
summary: Update, Add, or Remove Merchant and Beneficiary Details Associated with a…
description: This endpoint can update, add, or remove assignee details of a particular Payer ID.
operationId: payerIdUpdateAssigneeDetails
servers:
- url: https://tts.apib2b.citi.com/citiconnect/prod
description: production gateway url
parameters:
- in: query
name: payerid-number
description: Unique number assigned for payers and beneficiaries to identify incoming payments. Either of payerid-number or assignee_id is mandatory.
schema:
type: string
maxLength: 35
- $ref: '#/components/parameters/ClientId'
requestBody:
description: Describes the payer ID assignee details for update.
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Update-Assignee-Request'
examples:
PayerIDAddRemoveUpdateAssigneeRequestExample:
$ref: '#/components/examples/Payer-ID-Add-Remove-Update-Assignee-Request-Example'
AssigneeIDAddRemoveUpdateAssigneeRequestExample:
$ref: '#/components/examples/Assignee-ID-Add-Remove-Update-Assignee-Request-Example'
responses:
'202':
$ref: '#/components/responses/OkResponseForUpdateAssignee'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'415':
$ref: '#/components/responses/UnsupportedMediaTypeOrRequestedResourceNotFound'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- oAuth2:
- /authenticationservices/v1
callbacks:
asynchronous-update-assignee-push-notification-full:
$ref: '#/components/callbacks/PayerIDAddRemoveUpdateAssigneePushNotification'
components:
examples:
Method-Not-Allowed-Example:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: Method not supported
action: Please use valid HTTP verb.
code: CC00001
Requested-Resource-Not-Found:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: Resource that you are searching was not found.
action: Please use valid resource details.
code: CC00006
Assignee-ID-Add-Remove-Update-Assignee-Request-Example:
value:
country_code: HK
assignee_id: GB1234567890123456HK
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: '1234573'
city: ABCDEFHG
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- beneficiary_id: '123456'
last_name: YYY
middle_name: ZZZ
first_name: HHH
address: SAN STREET 878
zipcode: '545432678'
city: Paris
state: PPP
country_code: GB
dob: '2023-02-28'
- beneficiary_id: '888888'
last_name: YYY
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '4657898'
city: London
state: XXX
country_code: GB
dob: '2022-02-28'
tax_identifier: '12345676'
economic_id: '2312345678'
- last_name: BBB
middle_name: JJJ
first_name: VVV
address: SAN STREET 666
zipcode: 09090909
city: Barbados
state: NJNJ
country_code: HK
dob: '2020-02-28'
tax_identifier: '12345676'
economic_id: '2312345678'
Payer-ID-Add-Remove-Update-Assignee-Push-Notification-Error-Example:
value:
request_id: 9801bac6a4c74662ae78136bd4eba42
country_code: GB
action: UPDATE_ASSIGNEE_F
payerid_number: GB12345689856423
assignee_id: GB1234567890123456GB
assignee_id_status: ACTIVE
status_code: PIRJ
status_description: Updating was unsuccessful
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: 1234AOT
city: London
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- last_name: YYY
beneficiary_id: '123456'
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '9876567'
city: London
state: XXX
country_code: GB
dob: '2022-01-01'
tax_identifier: '12345676'
economic_id: '2312345678'
errors:
- error_code: PI1008
error_description: Incoming request content validation failed.
OK-Response-Update-Assignee-Success-Example:
value:
status_code: PIPND
status_description: Payer ID update assignee request is in progress.
request_id: 9801bac6a4c74662ae78136bd4eba462
Payer-ID-Add-Remove-Update-Assignee-Request-Example:
value:
country_code: HK
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: '1234573'
city: ABCDEFHG
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- beneficiary_id: '123456'
last_name: YYY
middle_name: ZZZ
first_name: HHH
address: SAN STREET 878
zipcode: '545432678'
city: Paris
state: PPP
country_code: GB
dob: '2023-02-28'
- beneficiary_id: '888888'
last_name: YYY
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '4657898'
city: London
state: XXX
country_code: GB
dob: '2022-02-28'
tax_identifier: '12345676'
economic_id: '2312345678'
- last_name: BBB
middle_name: JJJ
first_name: VVV
address: SAN STREET 666
zipcode: 09090909
city: Barbados
state: NJNJ
country_code: HK
dob: '2020-02-28'
tax_identifier: '12345676'
economic_id: '2312345678'
Unsupported-Media-Type-Example:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: Media type not supported
action: Please use valid content-type in the header.
code: CC00002
Assignee-ID-Update-Assignee-Push-Notification-Example:
value:
request_id: 9801bac6a4c74662ae78136bd4eba42
country_code: GB
action: UPDATE_ASSIGNEE_F
assignee_id: GB1234567890123456HK
assignee_id_status: DEACTIVATED
assignee_id_reason: Assignee ID xxx deactivated due to Compliance Review
status_code: PIAC
status_description: Updation Successful
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: 1234AOT
city: London
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- beneficiary_id: '123456'
last_name: YYY
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '9876567'
city: London
state: XXX
country_code: GB
dob: '2022-01-01'
tax_identifier: '12345676'
economic_id: '2312345678'
Internal-Server-Error-Example:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: Unable to serve your request at this moment
action: Please refer the prescribed action in error for a resolution of this error.
code: CC00004
Bad-Request-Example:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: country_code is mandatory and it cannot be empty
action: please provide valid value for property country_code.
code: VC00002
Payer-ID-Add-Remove-Update-Assignee-Push-Notification-Example:
value:
request_id: 9801bac6a4c74662ae78136bd4eba42
country_code: GB
action: UPDATE_ASSIGNEE_F
payerid_number: GB12345689856423
assignee_id: GB1234567890123456GB
assignee_id_status: DEACTIVATED
assignee_id_reason: Assignee ID xxx deactivated due to Compliance Review
status_code: PIAC
status_description: Updation Successful
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: 1234AOT
city: London
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- beneficiary_id: '123456'
last_name: YYY
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '9876567'
city: London
state: XXX
country_code: GB
dob: '2022-01-01'
tax_identifier: '12345676'
economic_id: '2312345678'
Assignee-ID-Update-Assignee-Push-Notification-Error-Example:
value:
request_id: 9801bac6a4c74662ae78136bd4eba42
country_code: GB
action: UPDATE_ASSIGNEE_F
assignee_id: GB1234567890123456HK
assignee_id_status: DEACTIVATED
assignee_id_reason: Assignee ID xxx deactivated due to Compliance Review
status_code: PIRJ
status_description: Updation Unsuccessful
party_type_details: C
merchant:
name_1: XXX
name_2: YYY
address: XXX, 123
zipcode: 1234AOT
city: London
state: XXX
country_code: GB
date: '2022-02-28'
tax_identifier: '12345678'
economic_id: '2312345678'
website: http://www.abc.com
beneficiary:
- last_name: YYY
beneficiary_id: '123456'
middle_name: ZZZ
first_name: AAA
address: SAN STREET 123
zipcode: '9876567'
city: London
state: XXX
country_code: GB
dob: '2022-01-01'
tax_identifier: '12345676'
economic_id: '2312345678'
errors:
- error_code: PI1008
error_description: Incoming Request Content validation failed
Unauthorized-Example:
value:
ref_id: ec689822-9864-4c4d-9d68-222467627902
error_details:
- issue: User not authorized for this functionality
action: Please use valid credentials to access this functionality.
code: CC00007
schemas:
Payer-ID-Error-Detail:
type: object
title: Payer-ID-Error-Detail
properties:
issue:
type: string
title: issue
description: More information about the issue.
maxLength: 150
action:
type: string
title: action
description: The corrective action to be taken to resolve the issue.
maxLength: 150
code:
type: string
title: code
description: Error category that provides more details on error types.
maxLength: 10
Merchant-Economic-Id:
title: Merchant-Economic-Id
minLength: 1
maxLength: 50
type: string
description: Merchant economic id based on the merchant's country.
Payer-ID-Add-Remove-Update-Assignee-Push-Notification:
required:
- request_id
- country_code
- action
- status_code
- status_description
type: object
title: Payer-ID-Add-Remove-Update-Assignee-Push-Notification
properties:
country_code:
title: country_code
type: string
maxLength: 2
pattern: ^[A-Z]{2}$
description: The country code.
action:
title: action
type: string
maxLength: 20
description: 'Indicates the action of the payer ID. Update push notification will the following values:
`UPDATE_ASSIGNEE_F`.'
request_id:
title: request_id
type: string
maxLength: 32
description: Auto-generated unique identifier assigned for the incoming request.
payerid_number:
title: payerid_number
type: string
maxLength: 35
description: Unique identification number assigned for payers and beneficiaries for incoming payments.
assignee_id:
type: string
title: assignee_id
minLength: 1
maxLength: 35
description: Unique identification number for sanction screening.
assignee_id_status:
$ref: '#/components/schemas/Assignee-Id-Status'
assignee_id_reason:
$ref: '#/components/schemas/Assignee-Id-Reason'
status_code:
title: status_code
minLength: 1
maxLength: 35
type: string
description: Status code sent in asynchronous push notification responses. Status code will have values such as
'PIRJ'
'PIAC'
'PIPND'.
status_description:
title: status_description
type: string
maxLength: 500
description: 'Detailed status description sent in asynchronous push notification responses. Status description will have the following values:
`PIRJ` - Payer Id Creation Rejected
`PIAC` - Payer ID Creation Successful
`PIPND` - Payer ID Activation In Progress`'
merchant:
$ref: '#/components/schemas/Merchant-Details'
beneficiary:
title: beneficiary
type: array
items:
$ref: '#/components/schemas/Beneficiary-Details'
errors:
title: errors
type: array
items:
$ref: '#/components/schemas/Errors'
Payer-ID-Address-Details:
type: object
title: Payer-ID-Address-Details
properties:
address:
minLength: 1
maxLength: 140
type: string
title: address
description: The merchant or beneficiary address.
zipcode:
minLength: 1
maxLength: 16
type: string
title: zipcode
description: The merchant or beneficiary zip code.
city:
minLength: 1
maxLength: 35
type: string
title: city
description: The merchant or beneficiary city.
state:
minLength: 1
maxLength: 35
type: string
title: state
description: The merchant or beneficiary state.
country_code:
title: Country-Code
type: string
pattern: ^[A-Z]{2}$
description: The ISO country code specifying which country where the account is held with. For example, if we receive a request for Germany, then the county code is 'DE', for France, the country code is 'FR'.
Assignee-Id-Reason:
type: string
title: Assignee-Id-Reason
minLength: 1
maxLength: 255
description: Specifies the reason for the deactivation of an assignee ID.
Beneficiary-Economic-Id:
title: Beneficiary-Economic-Id
minLength: 1
maxLength: 50
type: string
description: Beneficiary economic id based on the beneficiary's country.
Payer-ID-Errors:
type: object
title: Payer-ID-Errors
properties:
ref_id:
type: string
title: ref_id
description: Unique identifier which can be used to track your request.
error_details:
type: array
title: error_details
uniqueItems: true
items:
$ref: '#/components/schemas/Payer-ID-Error-Detail'
Country-Code:
title: Country-Code
type: string
pattern: ^[A-Z]{2}$
description: 'The ISO country code specifying which country where the account is held with. For example, if we receive a request for Germany, then the county code is ''DE'', for France, the country code is ''FR''. The list of allowed country codes are:
''DE'' - Germany
''FR'' - France
''GB'' - Great Britain
''IE'' - Ireland
''NL'' - Netherlands
''US'' - United States
''CA'' - Canada
''HK'' - Hong Kong
''SG'' - Singapore
''AU'' - Australia
''NZ'' - New Zealand
''LU'' - Luxembourg
''VN'' - Vietnam'
Payer-ID-Update-Assignee-Request:
required:
- country_code
- party_type_details
type: object
title: Payer-ID-Update-Assignee-Request
properties:
country_code:
$ref: '#/components/schemas/Country-Code'
assignee_id:
type: string
title: assignee_id
minLength: 1
maxLength: 35
description: Unique identification number for sanction screening. Either of payerid-number or assignee_id is mandatory.
party_type_details:
$ref: '#/components/schemas/Party-Type-Details'
merchant:
$ref: '#/components/schemas/Merchant-Details'
beneficiary:
title: beneficiaries
type: array
minItems: 1
items:
$ref: '#/components/schemas/Beneficiary-Details'
Merchant-Details:
title: Merchant-Details
allOf:
- $ref: '#/components/schemas/Payer-ID-Address-Details'
- type: object
title: allOf
properties:
name_1:
title: name_1
minLength: 1
maxLength: 140
type: string
description: The last name or company name. For 'sole trader', include the last name. For 'company', include the company name.
name_2:
title: name_2
minLength: 1
maxLength: 140
type: string
description: For 'sole trader', include the first name. For 'company', leave blank or include the second line of the company name.
date:
title: date
type: string
format: date
description: The sole trader's date of birth or the identification of the company's date of incorporation. This parameter follows the ISO format and is a fixed 10-digit format (YYYY-MM-DD).
tax_identifier:
title: tax_identifier
minLength: 1
maxLength: 35
type: string
description: The merchant's tax identifier based on country.
economic_id:
$ref: '#/components/schemas/Merchant-Economic-Id'
website:
title: website
minLength: 1
maxLength: 255
type: string
description: The merchant's profile, website, or storefront.
Assignee-Id-Status:
type: string
title: Assignee-Id-Status
minLength: 1
maxLength: 35
description: Specifies the status of assignee ID.
Errors:
required:
- error_code
- error_description
type: object
title: Errors
properties:
error_code:
title: error_code
minLength: 1
maxLength: 35
type: string
description: 'Specifies the error code for the rejected activation request sent in an asynchronous response. Error codes will have the following values: `V005`
`V002`
`PI1001`
`RR10`
`PI1003`
`PI1004`
`PI1005`
`PI1006`
`PI1007`
`AC04`
`AC06`
`MD07`
`BLKD`
`REST`'
error_description:
title: error_description
minLength: 1
maxLength: 500
type: string
description: Specifies the error description of the rejected activation request sent in an asynchronous response. Error description for each each error codes will have following descriptions as
`V005 - Invalid combination of input parameters {Country code}{Branch code}`
`V002 - Please provide valid value for {payerid_number} or Please provide valid value for Action`
`PI1001 - PYID is already active`
`RR10 - Invalid Character Set`
`PI1002 - PYID Activation request is already in progress`
`PI1003 - Payer ID XXXXXXXXX is being processed`
`PI1004 - Client account has not been onboarded`
`PI1005 - Payer ID XXXXXXXXX could not be activated. Please contact your Client Executive`
`PI1006 - Payer ID XXXXXXXXX is under compliance review and has been temporarily deactivated. Please contact your Client Executive for further assistance`
`PI1007 - Payer ID XXXXXXXXX could not be activated. Please contact your Client Executive`
`AC04 - ClosedAccountNumber`
`AC06 - BlockedAccount`
`MD07 - EndCustomerDeceased`
`BLKD - Blocked`
`REST - Restricted`
Beneficiary-Details:
title: Beneficiary-Details
allOf:
- $ref: '#/components/schemas/Payer-ID-Address-Details'
- type: object
title: allOf
properties:
beneficiary_id:
title: beneficiary_id
minLength: 1
maxLength: 35
type: string
description: Unique ID for a beneficiary.
last_name:
title: last_name
minLength: 1
maxLength: 140
type: string
description: The beneficiary owner's last name.
middle_name:
title: middle_name
minLength: 1
maxLength: 140
type: string
description: The beneficiary owner's middle name.
first_name:
title: first_name
minLength: 1
maxLength: 140
type: string
description: The beneficiary owner's first name.
dob:
title: dob
type: string
format: date
description: The beneficiary owner's date of birth. As per ISO format, this parameter is in a fixed 10-digit format (YYYY-MM-DD).
tax_identifier:
title: tax_identifier
minLength: 1
maxLength: 35
type: string
description: The beneficiary owner's tax identifier.
economic_id:
$ref: '#/components/schemas/Beneficiary-Economic-Id'
Payer-ID-Update-Assignee-Response:
required:
- status_code
- status_description
- request_id
type: object
title: Payer-ID-Update-Assignee-Response
properties:
status_code:
type: string
title: status_code
maxLength: 20
description: Status of the request sent as synchronous response to client. Status code will have value as `PIPND`.
status_description:
type: string
title: status_description
maxLength: 500
description: Incoming request acknowledgement message, example as `Payer ID Update assignee request is in-progress`.
request_id:
type: string
title: request_id
maxLength: 32
description: Auto-generated unique identifier assigned for the incoming request.
Party-Type-Details:
title: Party-Type-Details
type: string
enum:
- C
- S
description: Account party type details. Allowed account part type values are:
`S` - sole trader, which is an enterprise owned or run by a single person.
`C` - a company that is owned by an organization or business entity
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Errors'
examples:
UnauthorizedExample:
$ref: '#/components/examples/Unauthorized-Example'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Errors'
examples:
BadRequestExample:
$ref: '#/components/examples/Bad-Request-Example'
UnsupportedMediaTypeOrRequestedResourceNotFound:
description: Unsupported Media Type
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Errors'
examples:
UnsupportedMediaTypeExample:
$ref: '#/components/examples/Unsupported-Media-Type-Example'
RequestedResourceNotFound:
$ref: '#/components/examples/Requested-Resource-Not-Found'
OkResponseForUpdateAssignee:
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Update-Assignee-Response'
examples:
OkResponseExampleForUpdateAssigneedetails:
$ref: '#/components/examples/OK-Response-Update-Assignee-Success-Example'
MethodNotAllowed:
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Errors'
examples:
MethodNotAllowedExample:
$ref: '#/components/examples/Method-Not-Allowed-Example'
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Errors'
examples:
InternalServerErrorExample:
$ref: '#/components/examples/Internal-Server-Error-Example'
callbacks:
PayerIDAddRemoveUpdateAssigneePushNotification:
/asynchronous-update-assignee-push-notification-full:
put:
description: This callback describes asynchronous push notifications schema definition and examples for update accounts and currency.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Payer-ID-Add-Remove-Update-Assignee-Push-Notification'
examples:
OKPayerIDAddRemoveUpdateAssigneeResponseExample:
$ref: '#/components/examples/Payer-ID-Add-Remove-Update-Assignee-Push-Notification-Example'
NotOKPayerIDAddRemoveUpdateAssigneeResponseExample:
$ref: '#/components/examples/Payer-ID-Add-Remove-Update-Assignee-Push-Notification-Error-Example'
OKAssigneeIDAddRemoveUpdateAssigneeResponseExample:
$ref: '#/components/examples/Assignee-ID-Update-Assignee-Push-Notification-Example'
NotOKAssigneeIDAddRemoveUpdateAssigneeResponseExample:
$ref: '#/components/examples/Assignee-ID-Update-Assignee-Push-Notification-Error-Example'
responses:
'202':
description: Accepted
content:
application/json:
schema:
type: object
parameters:
ClientId:
name: client_id
in: query
description: This is your unique identifier shared during your CitiConnect API onboarding. This is the same `client_id` used for OAuth token generation.
required: true
schema:
type: string
example: 898918181818181aczta
securitySchemes:
oAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: authenticationservices/v3/oauth/token
scopes:
/authenticationservices/v1: Grant read-only access to receivable services