swagger: '2.0'
info:
title: Payment Services
description: >-
The Payment Reconfirmation for Financial Institutions endpoint is only
available if you are a Financial Institution reconfirming a previously
initiated payment using the Payment Initiation endpoint in the ISO XML
pacs.008.001.08 or pacs.009.001.08 formats and received a pacs.002.001.10
message with a status Pending reconfirmation.
You must specify the mandatory request elements at the very least, encrypt
and sign the payload before placing it in the header-populated request to
invoke the endpoint via your application. Please note the below rules
regarding the input parameters:
1. Either of the 32- character UETR OrgnlUETR (JSON:uetr) or the
32-character Citi Transaction Reference OrgnlClrSysRef (JSON:citi_reference)
or the 16-character Instruction ID OrgnlInstrID (JSON:end_to_end_id or
instruction_id) of the original transaction in the order of priority must be
specified in the request parameters.
2. If you specify either the 32- character Citi Transaction Reference or the
16-character Instruction ID, then the value date ReqdExctnDt
(JSON:interbank_settlement_date) of the original transaction must be
specified along with it.
3. The 4-character ISO reconfirmation code Cd (JSON:reason) is mandatory for
this endpoint. Below is the complete list of cancellation codes that you may
use:
4. For the reconfirmation code specified as MS03, please enter further
information on the reconfirmation reason in the RsnDesc (JSON: reason_desc)
CitiConnect will respond with a 4-character standard ISO status code txnSts
(JSON: transaction_status>status) along with additional information AddlInf
(JSON: transaction_status>type) informing you of the Accept or Reject status
of the reconfirmation request. Once reconfirmed, the payment will then
proceed with further execution.
Click to Download the Payment
Reconfirmation request.
Download our SDKs:
* [Python
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=python&apiTitle=all&isClientSecReq=true)
* [Java
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=java&apiTitle=all&isClientSecReq=true)
* [.Net
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=dotnet&apiTitle=all&isClientSecReq=true)
* [Ruby
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ruby&apiTitle=all&isClientSecReq=true)
* [NodeJS
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=nodejs&apiTitle=all&isClientSecReq=true)
* [Go
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=go&apiTitle=all&isClientSecReq=true)
* [CLI Tool
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ccapi-cli&apiTitle=all&isClientSecReq=true)
Note: You must be logged in to download the SDKs.
version: 3.0.0
x-ibm-name: paymentservices
security:
- clientCredentials: []
Client ID: []
servers:
- url: https://tts.apib2b.citi.com/citiconnect/prod/paymentservices/v3
description: production gateway URL
- url: https://tts.apib2b.citi.com/citiconnect/sb/paymentservices/v3
description: sandbox URL
x-ibm-configuration:
enforced: true
phase: realized
testable: true
cors:
enabled: true
properties:
FIPaymentsStops:
value: https://payments-dev-168554.nam.nsroot.net
description: ''
encoded: false
PaymentInitiationAkamai:
value: https://payments-inbound-168554.cloudgsl.nam.nsroot.net/v3/router
description: ''
encoded: false
Payments:
value: https://payments-inbound-168554.cloudgsl.nam.nsroot.net/v3/router
description: ''
encoded: false
FIPayments:
value: https://payments-168554.namicggtd12d.nam.nsroot.net
description: ''
encoded: false
PaymentInquiry-ECS:
value: https://payment-inquiry-168554.namicggtd12d.nam.nsroot.net
description: ''
encoded: false
PaymentInitiation:
value: https://payments-inbound-168554.cloudgsl.nam.nsroot.net/v3/router
description: ''
encoded: false
BE-EnquiriesService:
description: ''
encoded: false
value: >-
https://sit2citiconnectbeservices.nam.nsroot.net/citi-connect-war/services/CitiConnectInquiriesService
catalogs:
UAT1:
properties:
BE-EnquiriesService: >-
https://payment-inquiry-ms-uat-168554.namicgswd11u.nam.nsroot.net/paymentservices/v3/inquiry
PaymentInitiation: https://payments-inbound-uat-168554.nam.nsroot.net/v3/router
PaymentInquiry-ECS: https://payment-inquiry-uat-168554.namicgswd10u.nam.nsroot.net
FIPayments: https://payments-uat-168554.namicgswd10u.nam.nsroot.net
Payments: https://payments-inbound-uat-168554.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-uat-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-uat-168554.nam.nsroot.net
SIT5:
properties:
BE-EnquiriesService: >-
https://payment-inquiry-ms-168554.namicggtd10d.nam.nsroot.net/paymentservices/v3/inquiry
PaymentInitiation: https://payments-inbound-dev-168554.nam.nsroot.net/v3/router
PaymentInquiry-ECS: https://payment-inquiry-168554.namicggtd12d.nam.nsroot.net
FIPayments: https://payments-168554.namicggtd12d.nam.nsroot.net
Payments: https://payments-inbound-dev-168554.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-dev-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-dev-168554.nam.nsroot.net
Sandbox:
properties:
BE-EnquiriesService: >-
https://payment-inquiry-ms-168554.namicgswd11u.nam.nsroot.net/paymentservices/v3/inquiry
PaymentInitiation: https://payments-inbound-cte-168554.nam.nsroot.net/v3/router
PaymentInquiry-ECS: https://payment-inquiry-cte-168554.namicgswd12u.nam.nsroot.net
FIPayments: https://payments-cte-168554.namicgswd12u.nam.nsroot.net
Payments: https://payments-inbound-cte-168554.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-cte-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-cte-168554.nam.nsroot.net
PROD:
properties:
BE-EnquiriesService: >-
https://payment-inquiry-legacy-168554.cloudgsl.nam.nsroot.net/paymentservices/v3/inquiry
PaymentInitiation: https://payments-inbound-168554.cloudgsl.nam.nsroot.net/v3/router
PaymentInquiry-ECS: https://payment-inquiry-168554.cloudgsl.nam.nsroot.net
FIPayments: https://payments-168554.nam.nsroot.net
Payments: https://payments-inbound-168554.cloudgsl.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-168554.nam.nsroot.net
PTE:
properties:
BE-EnquiriesService: >-
https://payment-inquiry-ms-pte-168554.namicgswd12u.nam.nsroot.net/paymentservices/v3/inquiry
PaymentInitiation: >-
https://payments-inbound-pte-wip-168554.cloudgsl.nam.nsroot.net/v3/router
PaymentInquiry-ECS: https://payment-inquiry-pte-168554.namicgswd12u.nam.nsroot.net
FIPayments: https://payments-pte-168554.namicgswd12u.nam.nsroot.net
Payments: >-
https://payments-inbound-pte-wip-168554.cloudgsl.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-pte-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-pte-wip-168554.nam.nsroot.net
UAT2:
properties:
PaymentInquiry-ECS: https://payment-inquiry-uat-168554.namicgswd10u.nam.nsroot.net
FIPayments: https://payments-uat-168554.namicgswd10u.nam.nsroot.net
PaymentInitiation: https://payments-inbound-uat-168554.nam.nsroot.net/v3/router
PaymentInitiationAkamai: https://payments-inbound-uat-168554.wlb3.nam.nsroot.net/v3/router
FIPaymentsStops: https://payments-uat-168554.nam.nsroot.net
externalDocs: []
attachments: []
gateway: datapower-gateway
assembly:
execute:
- operation-switch:
title: operation-switch
case:
- operations:
- verb: post
path: /payments/reconfirmations
execute:
- proxy:
title: proxy
timeout: 60
verb: keep
cache-response: protocol
cache-ttl: 900
version: 1.0.0
tls-profile: citiconnect-ssl-profile
target-url: $(FIPayments)/v3/payments/reconfirmations
tags: []
securityDefinitions:
Client ID:
description: ''
in: query
name: client_id
type: apiKey
clientCredentials:
type: oauth2
flow: application
tokenUrl: /authenticationservices/v1/oauth/token
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.
x-scopeValidate:
tls-profile: citi-direct-ssl-profile
paths:
/payments/reconfirmations:
post:
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/definitions/fi_response'
application/xml:
schema:
$ref: '#/definitions/fi_response'
example: >-
RJCTTransaction
Not Found
'400':
description: Bad Request
examples:
application/json:
errors:
- action: >-
Please provide valid value for either uetr or
(citi_reference/instruction_id with
interbank_settlement_date).
issue: uetr/citi_reference/instruction_id cannot be null or empty.
http_code: 400
status: FAILED
application/xml:
errors:
- action: >-
Please provide valid value for either uetr or
(citi_reference/instruction_id with
interbank_settlement_date).
issue: uetr/citi_reference/instruction_id cannot be null or empty.
http_code: 400
status: FAILED
schema:
$ref: '#/definitions/error_response'
'401':
description: Unauthorized
examples:
application/json:
errors:
- action: Please try again with valid credentials.
issue: Authorization failed.
http_code: 401
status: FAILED
application/xml:
errors:
- action: Please try again with valid credentials.
issue: Authorization failed.
http_code: 401
status: FAILED
schema:
$ref: '#/definitions/error_response'
'405':
description: Method Not Allowed
examples:
application/json:
errors:
- action: Please use valid Http Verb.
issue: Method not allowed.
http_code: 405
status: FAILED
application/xml:
errors:
- action: Please use valid Http Verb.
issue: Method not allowed.
http_code: 405
status: FAILED
schema:
$ref: '#/definitions/error_response'
'415':
description: Unsupported Media Type
examples:
application/json:
errors:
- action: Resend request in valid format.
issue: provided content-type of the request is not valid.
http_code: 415
status: FAILED
application/xml:
errors:
- action: Resend request in valid format.
issue: provided content-type of the request is not valid.
http_code: 415
status: FAILED
schema:
$ref: '#/definitions/error_response'
'500':
description: Internal Server Error
examples:
application/json:
errors:
- action: Please try again after sometime.
issue: unable to process your request at this moment.
http_code: 500
status: FAILED
application/xml:
errors:
- action: Please try again after sometime.
issue: unable to process your request at this moment.
http_code: 500
status: FAILED
schema:
$ref: '#/definitions/error_response'
parameters:
- description: >-
This field used to identify request is for reconfirm/reject (Example
- RECNFRM / RJCTCNFRM) FI Payments.
in: header
maxLength: 12
name: request_type
required: true
type: string
- description: >-
Unique reference which was shared during CitiConnect API
on-boarding(client_id which used during oauth token generation)
in: query
name: client_id
required: true
type: string
- in: body
name: body
required: true
schema:
$ref: '#/definitions/fi_reconfirmation_request'
requestBody:
content:
application/json:
schema:
$ref: '#/definitions/fi_reconfirmation_request'
application/xml:
schema:
$ref: '#/definitions/fi_reconfirmation_request'
example: >-
20093605882020-09-25DUPL
required: true
operationId: fiPaymentReconfirmation
summary: Payment Reconfirmation
description: >-
This API allows you to initiate reconfirm/reject FI payments in JSON and
XML format.
definitions:
ErrorDetail:
properties:
action:
description: corrective action to be taken to resolve above issue
maxLength: 350
type: string
issue:
description: more details about the issue
maxLength: 200
type: string
type: object
xml:
name: error
error_response:
properties:
errors:
description: >-
Indicates actual error details with issues and corresponding actions
to resolve the issue
items:
$ref: '#/definitions/ErrorDetail'
xml:
wrapped: true
http_code:
description: Indicates http status code to specify http response status
format: int32
pattern: ^[0-9]{3}$
type: integer
status:
description: >-
This field indicates the status of the reconfirm/reject or
cancel/recall request with set of values. for example- FAILED
maxLength: 6
type: string
type: object
fi_cancellation_request:
properties:
citi_reference:
description: >-
This field specifies the Product processor Reference Number for the
transaction that needs to be cancelled or recalled. UETR or
citi_reference with interbank_settlement_date or end_to_end_id /
instruction_id with interbank_settlement_date is mandatory.
maxLength: 32
type: string
end_to_end_id:
description: >-
This is a unique end-to-end reference number that identifies a
transaction that needs to be cancelled. UETR or citi_reference with
interbank_settlement_date or end_to_end_id / instruction_id with
interbank_settlement_date is mandatory.
maxLength: 35
type: string
instruction_id:
description: >-
This is a unique end-to-end reference number that identifies a
transaction that needs to be cancelled. UETR or citi_reference with
interbank_settlement_date or end_to_end_id / instruction_id with
interbank_settlement_date is mandatory.
maxLength: 35
type: string
interbank_settlement_date:
description: >-
This field specifies the value date (yyyy-MM-dd) of the original
transaction that needs to be cancelled or recalled (the date on which
funds were credited to the account).
type: string
reason:
description: >-
This is the four digits cancellation code (Example - DUPL) which is
specified by the customer to request to cancel the transaction
maxLength: 4
type: string
reason_description:
description: >-
Further details on the request reason. Required for CUST and MS03
reason codes applicable to Stop and Reconfirmation services
respectively.
maxLength: 150
type: string
uetr:
description: >-
Unique End-to-end Transaction Reference (UETR) relating to a payment
has been identified as being associated with a Request for
Cancellation. it should follow UUID version 4 format. UETR or
citi_reference with interbank_settlement_date or end_to_end_id /
instruction_id with interbank_settlement_date is mandatory.
type: string
required:
- reason
type: object
fi_reconfirmation_request:
properties:
citi_reference:
description: >-
This field specifies the Product processor Reference Number for the
transaction that needs to be reconfirm/reject. UETR or citi_reference
with interbank_settlement_date or instruction_id with
interbank_settlement_date is mandatory.
maxLength: 32
type: string
xml:
name: ClrSysRef
instruction_id:
description: >-
This is a unique instrution id that identifies a transaction that
needs to be reconfirm/reject. UETR or citi_reference with
interbank_settlement_date or instruction_id with
interbank_settlement_date is mandatory.
maxLength: 35
type: string
xml:
name: InstrId
interbank_settlement_date:
description: >-
This field specifies the value date (yyyy-MM-dd) of the original
transaction that needs to be reconfirm/reject (the date on which funds
were credited to the account).
format: date
type: string
xml:
name: ReqdExctnDt
reason:
description: >-
This is the five digits reconfirm/reject code (Example DUPL) which is
specified by the customer to request to reconfirm/reject the
transaction
maxLength: 5
type: string
xml:
name: Rsn
uetr:
description: >-
Unique End-to-end Transaction Reference (UETR) relating to a payment
has been identified as being associated with a Request for
reconfirm/reject. It should follow UUID version 4 format. UETR or
citi_reference with interbank_settlement_date or instruction_id with
interbank_settlement_date is mandatory.
type: string
xml:
name: UETR
required:
- reason
type: object
xml:
name: TransacService
fi_response:
properties:
transaction_status:
$ref: '#/definitions/transaction_status_detail'
type: object
transaction_status_detail:
properties:
status:
description: >-
This field indicates the status of the reconfirm/reject or
cancel/recall request with set of values. for example- ACCP for
Accepted or RJCT for Rejected
maxLength: 4
type: string
xml:
name: TxSts
type:
description: >-
This field provides additional information of the transaction when it
is rejected/accepted.
maxLength: 500
type: string
xml:
name: AddtlInf
type: object
xml:
name: TxInfAndSts
payments_request:
properties:
paymentBase64:
description: Base64 encoded string of ISO XML payment initiation input xml
format: byte
type: string
required:
- paymentBase64
type: object
payments_response:
properties:
psrDocument:
description: Base64 encoded string of ISO XML payment initiation response xml
format: byte
type: string
required:
- psrDocument
type: object
payments_error_response:
properties:
correlationId:
description: input request tracking unique id
type: string
message:
description: message providing information about error
type: string
status:
description: error status code
type: string
type: object
x-components:
examples:
accpStatusXmlExample:
value:
status: ACCP
type: >-
Your request has been registered. We will notify you once the txn is
reconfirmed / rejected.
fi_cancellation:
value: >-
98a8011be00e406999d8822c0a25d4bed3a99efb5a8b45339829b4d620cc73cd
pacs.008.001.02eeea24a4-02ea-4fa9-b624-64647ddb4fbf
citi201endtoendid101
2020-09-25
DUPLDUPLDUPL
fi_cancellation_response:
value: >-
ACCPYour
request has been registered. We will notify you once the txn is
stopped/recalled.
rjctStatusXmlExample:
value:
status: RJCT
type: Transaction not found.
withCitiReference:
value:
citi_reference: KK14MY7FP3X7
interbank_settlement_date: '2020-09-25'
reason: DUPL
withEndToEndId:
value:
end_to_end_id: 2009360588
interbank_settlement_date: '2020-09-25'
reason: DUPL
withInstructionId:
value:
instruction_id: 2009360588
interbank_settlement_date: '2020-09-25'
reason: DUPL
withUETR:
value:
reason: DUPL
uetr: eb6305c9-1f7f-49de-aed0-16487c27b42d