Payments

payments

Methods

Create -> { paymentID }
post/payments
Enhanced Payment Status Inquiry ->
post/paymentservices/v3/payment/enhancedinquiry

This API allows clients to inquire details of their transactions for both Incoming and Outgoing payments based on various significant parameters.

Content-Type : Supports application/json and format PSRJ03 :
Authorization : The OAuth Token prefixed with ?Bearer? and space in between. :

Enhanced Inquiry Deprecated ->
post/payment/enhancedinquiry
Payment Initiation -> unknown
post/payment/initiation

Payment initiation



This service allows you to initiate new payments by accommodating different data attributes for all the available payment methods. After the initial API request call, user receive a response that denotes whether the payment has passed the basic validations.

Initiating a payment using the Payment Initiation API involves making a well-formed POST request to the CitiConnect API.

Supported ISO formats under Payment Initiation API



|Payment Nature| ISO XML format||--|--||Outgoing Payment| pain.001.001.03||Direct Debit Payment| pain.008.001.02|


How to initiate CitiConnect Payment


1. Authenticate to CitiConnect API (Go To Link)
2. Make an API call by specifying the Payment Initiation service URL.
3. Specify your request headers. (See Appendix D: Payment Initiation API Reference for sample requests.)
4. Specify all mandatory values in the ISOXML file at the minimum and encode the XML file with Base64 to place it in the tag. Then sign and encrypt the payload in the body of the request.
5. Review further status using ?Payment Status Inquiry? API.

Verb
Service URL
POST

https://tts.{env_name1}.apib2b.citi.com/citiconnect/{env_name2}/paymentservices/v1/payment/initiation?client_id={client_id}

CTE Environment
{env_name1} = sandbox , {env_name2} = sb
PROD Environment
{env_name1} = NO value , {env_name2} = prod
API Client
client_id = API client_id shared

Parameters



Headers



i.Content-Type( required)
ii.PayloadType(required)
iii.Authorization (required)

Body


Specify all mandatory values in the ISOXML V3 (pain.001.001.03) file at the minimum and encode the XML file with Base64 to place it in the tag.

Response Types



HTTP Status Code
Reason Phrase
200
OK
400
Bad request
401
OAuth header decryption failed! ? Invalid OAuth Token? Unauthorized
403
Forbidden
412
Precondition Failed
404
Service Not Found
405
Method Not Allowed
406
Duplicate Request Recieved
415
Unsupported Media Type
429
Too Many Requests
500
Internal Server Error

This API Allows You To Initiate Reconfirm Reject Fi Payments In Json And Xml Format ->
post/payments/reconfirmations

This API allows you to initiate reconfirm/reject FI payments in JSON and XML format.

This API Allows You To Initiate Stop Recall Fi Payments In Json And Xml Format ->
post/payments/stops

This API allows you to initiate stop/recall FI payments in JSON and XML format.

Domain types

PaymentCancellation = { transaction_status }
TransactionResponse = { created_date_time, transactions }
Payments

Inquiry

payments.inquiry

Methods

Payment Status Inquiry ->
post/payment/inquiry

Payment Status inquiry



This service allows you to access the status of your payments where it generates payment details with status of the payment transaction.

How to initiate to Payment Status Inquiry


To initiate status inquiry to CitiConnect API, you must perform the following tasks in your source code:

1. Authenticate to CitiConnect API (go To link)
2. Make an API call by specifying the Payment Status Inquiry service URL.
3. Specify your request headers.
4. Specify all mandatory values in the XML file at the minimum. Then sign and encrypt the payload in the body of the request with mandatory header values.
5. Review further status using ?Payment Status Inquiry? API.

Verb
Service URL
POST

https://tts.{env_name1}.apib2b.citi.com/citiconnect/{env_name2}/paymentservices/v1/payment/inquiry?client_id={client_id}

CTE Environment
{env_name1} = sandbox , {env_name2} = sb
PROD Environment
{env_name1} = NO value , {env_name2} = prod
API Client
client_id = API client_id shared

Parameters



Headers



i.Content-Type( required)
ii.Authorization ( required)

Body



i.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.

ii.CreDt:

Date when the payment initiation started. The date format is: YYYY-MM-DD.

iii.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.

iv. ReqdExctnDt :

Date that the initiating party requests that the clearing agent process the payment.

Response Types



HTTP Status Code
Reason Phrase
200
OK
400
Bad request
401
OAuth header decryption failed! ? Invalid OAuth Token? Unauthorized
403
Forbidden
412
Precondition Failed
404
Service Not Found
405
Method Not Allowed
406
Duplicate Request Recieved
415
Unsupported Media Type
429
Too Many Requests
500
Internal Server Error

Payment Status Inquiry ->
get/payment/inquiry

Payment Status inquiry- GET



This service allows you to access the status of your payments in an innovative way where it generates payment details with status of the payment transaction.

How to initiate to Payment Status Inquiry


To initiate status inquiry to CitiConnect API, you must perform the following tasks in your source code:

1. Authenticate to CitiConnect API
2. Make an API call by specifying the Payment Status Inquiry service (GET Verb) URL.
3. Specify your request headers.
4. Specify all mandatory values in the XML file at the minimum. Then sign and encrypt the payload in the body of the request with mandatory header values.
_5_. Review further status using ?Payment Status Inquiry(GET Verb)? API.

Verb
Service URL
GET

https://tts.{env_name1}.apib2b.citi.com/citiconnect/{env_name2}/paymentservices/v1/payment/inquiry?client_id={client_id}

CTE Environment
{env_name1} = sandbox , {env_name2} = sb
PROD Environment
{env_name1} = NO value , {env_name2} = prod
API Client
client_id = API client_id shared

Parameters



Headers



i.Content-Type( required)
ii.Authorization ( required)

Request Parameters



i.GlobalTranNo (required):

UETR number or the global Tran Number

ii.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.

iii.CreDt:

Date when the payment initiation started. The date format is: YYYY-MM-DD.

iv.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.

v. ReqdExctnDt:

Date that the initiating party requests that the clearing agent process the payment.

Response Types



HTTP Status Code
Reason Phrase
200
OK
400
Bad request
401
OAuth header decryption failed! ? Invalid OAuth Token? Unauthorized
403
Forbidden
412
Precondition Failed
404
Service Not Found
405
Method Not Allowed
406
Duplicate Request Recieved
415
Unsupported Media Type
429
Too Many Requests
500
Internal Server Error

Security
Parameters
amount?: string
creationDate?: string
directDebitInd?: string
endToEndId?: string
globalTranNo?: string
requiredExecutionDate?: string
Request example
Retrieve ->
get/payment/inquiry/{EndToEndId}