openapi: 3.2.0 info: title: PayerID Management Services Payer ID Update Accountsand… 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: PayerIdUpdateAccountsandCurrencies description: PayerID Update accounts and currencies API has an ability to update accounts and currency details of the given Payer ID. paths: /receivablesservices/v1/payerids/{payerid-number}/accounts: put: tags: - PayerIdUpdateAccountsandCurrencies summary: Update Account/Instruction Currency Values description: This endpoint can update accounts and currency details of a particular Payer ID. operationId: payerIdUpdateAccount servers: - url: https://tts.apib2b.citi.com/citiconnect/prod description: production gateway url parameters: - in: path name: payerid-number required: true description: Unique identification number assigned to payers and beneficiaries for incoming payments. schema: type: string minLength: 1 maxLength: 35 - $ref: '#/components/parameters/ClientId' requestBody: description: Describes the payer ID account details to be updated. content: application/json: schema: $ref: '#/components/schemas/Payer-ID-Update-Accounts-Request' examples: PayerIDUpdateAccountRequestExample: $ref: '#/components/examples/Payer-ID-Update-Accounts-Request-Example' responses: '202': $ref: '#/components/responses/OKResponseForUpdateAccount' '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-accounts-currency-update-push-notification: $ref: '#/components/callbacks/PayerIdAccountsAndCurrencyUpdatePushNotification' 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 Payer-ID-Update-Accounts-Request-Example: value: country_code: HK accounts: - client_account: '10953312' branch_code: '600' instruction_currencies: - GBP - INR - client_account: '10823200' branch_code: '600' instruction_currencies: - ANY 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 Payer-ID-Update-Accounts-Push-Notification-Example: value: country_code: GB payerid_number: GB06CITI18500870909337 action: UPDATE_ACCOUNTS request_id: eec8de9d-f6c5-4af2-89c2-f9b3erX7 accounts: - client_account: '77777' branch_code: '600' instruction_currencies: - HKD - EUR - GBP - client_account: '45678' branch_code: '600' instruction_currencies: - KWD - USD - client_account: '66666' branch_code: '600' instruction_currencies: - JPY - BHD status_code: PIAC status_description: Updation Successful OK-Response-Deactivation-Success-Example: value: status_code: PIPND status_description: Payer ID maintenance request is in progress. request_id: 9801bac6a4c74662ae78136bd4eba422 Payer-ID-Update-Partial-Accounts-Error-Push-Notification-Example: value: country_code: GB payerid_number: GB06CITI18500870909337 action: UPDATE_ACCOUNTS request_id: eec8de9d-f6c5-4af2-89c2-f9b3erX7 accounts: - client_account: '77777' branch_code: '600' instruction_currencies: - HKD - EUR - GBP - client_account: '45678' branch_code: '600' instruction_currencies: - KWD - USD - client_account: '66666' branch_code: '600' instruction_currencies: - JPY - BHD status_code: PIRJ status_description: Updation UnSuccessful errors: - error_code: PI1009 error_description: Dormant Account 77777 - error_code: REST error_description: Restricted account 45678 - error_code: AC06 error_description: 'Blocked Account 66666 ' OK-Response-Activation-Success-Example: value: status_code: PIPND status_description: PayerID maintenance request is In progress. request_id: 9801bac6a4c74662ae78136bd4eba422 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 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 Instruction-Currency: type: string title: Instruction-Currency pattern: ^[A-Z]{3}$ description: The 3-character ISO currency code. It is a payment currency, for example, 'EUR' or 'GBP'. 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' Payer-ID-Update-Accounts-Request: required: - country_code - accounts type: object title: Payer-ID-Update-Accounts-Request properties: country_code: type: string title: country_code pattern: ^[A-Z]{2}$ description: 'The ISO country code specifying which country 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' accounts: type: array title: accounts minItems: 1 maxItems: 30 description: Identification of account parameter under which client account, branch code, or instruction currency to be displayed. Instruction currency cannot be same for different client account numbers in a single request. items: $ref: '#/components/schemas/Payer-ID-Account' 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` Payer-ID-Account: required: - client_account - branch_code - instruction_currencies type: object title: Payer-ID-Account properties: client_account: type: string title: client_account minLength: 1 maxLength: 35 description: The client's account. branch_code: type: string title: branch_code minLength: 3 maxLength: 4 description: Citi's Internal branch code. instruction_currencies: type: array title: instruction_currencies uniqueItems: true minItems: 1 maxItems: 30 description: The 3-character ISO currency code. It is a payment currency, for example, 'EUR' or 'GBP'. items: $ref: '#/components/schemas/Instruction-Currency' Payer-ID-Update-Account-Response: required: - status_code - status_description - request_id type: object title: Payer-ID-Update-Account-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, an example is, `Payer ID Maintenance request is in-progress.` request_id: type: string title: request_id maxLength: 32 description: Auto-generated unique identification assigned to the incoming request. Payer-ID-Update-Accounts-Push-Notification: required: - country_code - request_id - payerid_number - status_code - status_description type: object title: Payer-ID-Update-Accounts-Push-Notification properties: country_code: title: country_code type: string maxLength: 2 pattern: ^[A-Z]{2}$ description: The ISO country code. action: title: action type: string maxLength: 20 description: Indicates the action of the payer ID. Possible value is 'UPDATE_ACCOUNTS'. request_id: title: request_id type: string maxLength: 32 description: Auto-generated unique identification 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. 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`' accounts: title: accounts type: array minItems: 1 maxItems: 30 description: The account parameter under which client account, branch code, or instruction currency is to be displayed. Instruction currency cannot be same for different client account numbers in a single request. items: $ref: '#/components/schemas/Payer-ID-Account' errors: title: errors type: array items: $ref: '#/components/schemas/Errors' responses: Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Payer-ID-Errors' examples: UnauthorizedExample: $ref: '#/components/examples/Unauthorized-Example' OKResponseForUpdateAccount: description: Accepted content: application/json: schema: $ref: '#/components/schemas/Payer-ID-Update-Account-Response' examples: OKResponseExampleForActivation: $ref: '#/components/examples/OK-Response-Activation-Success-Example' OKResponseExampleForDeactivation: $ref: '#/components/examples/OK-Response-Deactivation-Success-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' 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: PayerIdAccountsAndCurrencyUpdatePushNotification: /asynchronous-accounts-currency-update-push-notification: patch: summary: Asynchronous Accounts Currency Update Push Notification 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-Update-Accounts-Push-Notification' examples: OKUpdateAccountsResponseExample: $ref: '#/components/examples/Payer-ID-Update-Accounts-Push-Notification-Example' NotOKUpdateAccountsResponseExample: $ref: '#/components/examples/Payer-ID-Update-Partial-Accounts-Error-Push-Notification-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