swagger: '2.0' info: title: Payment Status Inquiry description: >- Using the Payment Status Inquiry endpoint, you may obtain the most up-to-date status of your payment. After making the payment using the Payment Initiation endpoint, you may then inquire to obtain the most recent status of your payment using the End-To-End-Id, Payment Creation Date, Instructed Amount and Currency, Required Execution Date. The request follows a custom schema formatting, and the response follows ISO XML (pain.002.001.03) standards. 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 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 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: /payment/initiation execute: - switch: title: switch case: - condition: >- apim.getvariable('request.headers.content-type')=='application/json' execute: - gatewayscript: title: gatewayscript version: 1.0.0 source: "apim.setvariable(\"request.headers.sourceContent\",\"json\");\r\napim.setvariable(\"message.headers.sourceContent\",\"json\");\r\napim.setvariable(\"request.headers.portalTraffic\",\"N\");\r\napim.setvariable(\"message.headers.portalTraffic\",\"N\");\r\napim.setvariable(\"request.headers.Content-Type\",\"application/json\");\r\napim.setvariable(\"message.headers.Content-Type\",\"application/json\");\r\n\r\nvar clientIp = apim.getvariable(\"request.headers.x-archived-client-ip\");\r\napim.setvariable(\"message.headers.clientIpAddress\",clientIp);\r\napim.setvariable(\"request.headers.clientIpAddress\",clientIp);\r\n\r\n\r\nvar appname = apim.getvariable(\"request.headers.clientapp_name\");\r\nif(\"ccapidevportal_internal\" == appname){\r\n\tapim.setvariable(\"request.headers.portalTraffic\",\"Y\");\r\n\tapim.setvariable(\"message.headers.portalTraffic\",\"Y\");\r\n}\r\n" - condition: >- apim.getvariable('request.headers.content-type')=='application/xml' execute: - gatewayscript: title: gatewayscript version: 1.0.0 source: "apim.setvariable(\"request.headers.sourceContent\",\"xml\");\r\napim.setvariable(\"message.headers.sourceContent\",\"xml\");\r\napim.setvariable(\"request.headers.portalTraffic\",\"N\");\r\napim.setvariable(\"message.headers.portalTraffic\",\"N\");\r\n\r\nvar clientIp = apim.getvariable(\"request.headers.x-archived-client-ip\");\r\napim.setvariable(\"message.headers.clientIpAddress\",clientIp);\r\napim.setvariable(\"request.headers.clientIpAddress\",clientIp);\r\n\r\n\r\nvar appname = apim.getvariable(\"request.headers.clientapp_name\");\r\nif(\"ccapidevportal_internal\" == appname){\r\n\tapim.setvariable(\"request.headers.portalTraffic\",\"Y\");\r\n\tapim.setvariable(\"message.headers.portalTraffic\",\"Y\");\r\n}" version: 1.0.0 - switch: title: switch case: - condition: >- apim.getvariable('request.headers.icg-akamai-b2b-flag')=='true' 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: $(PaymentInitiationAkamai) - otherwise: - proxy: title: proxy timeout: 60 verb: keep cache-response: protocol cache-ttl: 900 version: 1.0.0 tls-profile: citiconnect-ssl-profile target-url: $(PaymentInitiation) version: 1.0.0 - operations: - verb: post path: /payment/inquiry 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: $(BE-EnquiriesService) stop-on-error: [] - operations: - verb: get path: /payment/inquiry execute: - proxy: title: Invoke-PSIGET-GREENEndPt timeout: 60 verb: keep cache-response: protocol cache-ttl: 900 version: 1.0.0 tls-profile: citiconnect-ssl-profile target-url: $(BE-EnquiriesService) - activity-log: title: activity-log content: header error-content: header version: 1.0.0 catch: [] categories: - 'operation: Enhanced Payment Status Inquiry' - 'operation: Payment Status Inquiry' - 'operation: Payment Initiation' - 'operation: Push Notification' tags: [] securityDefinitions: Client ID: description: '' in: query name: client_id type: apiKey clientCredentials: type: oauth2 flow: application tokenUrl: $(catalog.url)/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: /payment/inquiry: post: responses: '200': description: >- OK - your request was received and acknowledged successfully. Check the response body for the transaction status. | Payment Status | Recommended Action | | -------------- | ----------------- | | Decrypted payload is unintelligible | Make a payment status inquiry every 5 minutes for 15 minutes. If you do not receive a response, contact Citi. | ACTC/ACCP - Accepted | Make a payment status inquiry every 5 minutes | | PDNG - Pending | Make a payment status inquiry every 60 minutes | | RJCT - Rejected | See the status reason for more information | | ACSP/ACSC - Payment successfully processed and cleared | No action required | content: application/xml: example: >- CITIBANK/20210311-PSR/10268343322021-03-11T17:30:29CITIUS33GBP161114694869pain.001.001.0314017498FundTransferDomesticCC21TPH3B8J8H2RACSPProcessedSettledatclearingSystem.Paymentsettledatclearingsystem1.002021-02-03TRFTR002638CITIBANKE-BUSINESSEURDUMDEMO12345678GBfakebic8010643122XXXXXXXXXXXXXXXXX12345678 summary: Payment Status Inquiry requestBody: description: >- EndToEndId (required) Unique identification assigned by the initiating party to clearly identify the transaction. This Identification is passed on, unchanged, throughout the entire end-to-end chain.
CreDt Date when the payment initiation started.
The date format is: YYYY-MM-DD. InstdAmt, Ccy Amount of money transferred between the debtor and the creditor before any deduction of charges is made. This is expressed in the currency that is specified by the initiating party. ReqdExctnDt Date that the initiating party requests that the clearing agent process the payment. content: application/xml: schema: object example: >- CC21TPH3B8J8H2R required: true get: responses: '200': description: 200 OK content: application/xml: example: >- CITIBANK/20210311-PSR/9813820592021-03-11T19:31:39CITIUS33GBP161114694869pain.001.001.0314017498 Fund Transfer DomesticCC21TPH3B8J8H2RACSPProcessed Settled at clearing System. Payment settled at clearing system1.002021-02-03TRFTR002638CITIBANK E-BUSINESS EUR DUM DEMO12345678GBfakebic8010643122X XXXXXXXXXXXXX XXX12345678 '400': description: Bad Request '401': description: Unauthorized; OAuth header decryption failed '403': description: Forbidden '404': description: Service Not Found '405': description: Method Not Allowed '406': description: Duplicate Request Received '412': description: Precondition Failed '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal Server Error summary: Payment Status Inquiry parameters: - name: endToEndId type: string required: false in: query - name: globalTranNo type: string required: false in: query - name: creationDate type: string required: false in: query - name: amount type: string required: false in: query - name: requiredExecutionDate type: string required: false in: query - name: directDebitInd type: string required: false in: query description: null security: - clientCredentials: [] Client ID: [] definitions: ErrorDetail: properties: action: description: Corrective action to be taken to resolve the 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 parameter 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 parameter 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 parameter 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 parameter 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 parameter 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 parameter 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 parameter 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 transaction 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