> This page is for Enterprise.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://citi-demo.ferndocs.com/enterprise/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://citi-demo.ferndocs.com/enterprise/_mcp/server.

# Inquire for the latest status of a transaction using UETR and Message Id.

GET https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/{uetr}/messages/{message_id}

Returns the status of a non-payment message initiated through the ``messages/POST`` endpoint. 
See Express Instant Payments Error Codes for a complete list of messages and their explanations.


Reference: https://citi-demo.ferndocs.com/enterprise/enterprises/api-reference/payment-services/instant-payments/express-instant-payments/get-message

## Authentication

- `Authorization` header (bearer token, required) — 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.

## Servers

- `https://b2b.api.icg.citi.com/citiconnect/prod` (production gateway url, default)
- `https://sandbox.b2b.api.icg.citi.com/citiconnect/sb` (sbox url )

## Request

### Path parameters

- `uetr` (string, required) — Unique end-to-end transaction reference
- `message_id` (string, required) — Unique message id

### Query parameters

- `client_id` (string, required) — Your unique identification, same as the identification you use for OAuth token generation, Citi shared with you during your CitiConnect API onboarding

## Response

### 200

OK

- `message_id` (string, required) — Message Identification
- `creation_date_time` (datetime, required) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time when a message was created
- `message_type` (enum, required) — Message Type as provided by the customer - RFR - Request for Refund (camt.056) - RRFR - Response to Request for Refund(camt.029) - PCR - Payment Confirmation Request - RPCR - Response to Payment Confirmation Request - RFP - Request for Payment (pain.013) - RRFP - Response to Request for Payment (pain.014) - RFICS - Request for Information Compliance - RRFICS - Response to Request for Information Compliance
  - Allowed values: `RFR`, `RRFR`, `PCR`, `RPCR`, `RFP`, `RRFP`, `RFICS`, `RRFICS`
- `original_payment` (FinalMessageResponseOriginalPayment, optional)
- `message` (FinalMessageResponseMessage, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `ref_id` (string, optional) — Unique ID for the Transaction
- `error_details` (list of Error-Detail, optional)

### 401 Unauthorized Error

Unauthorized

- `ref_id` (string, optional) — Unique ID for the Transaction
- `error_details` (list of Error-Detail, optional)

### 404 Not Found Error

Not Found

- `ref_id` (string, optional) — Unique ID for the Transaction
- `error_details` (list of Error-Detail, optional)

### 405 Method Not Allowed Error

Method Not Allowed

- `ref_id` (string, optional) — Unique ID for the Transaction
- `error_details` (list of Error-Detail, optional)

### 500 Internal Server Error

Internal Server Error

- `ref_id` (string, optional) — Unique ID for the Transaction
- `error_details` (list of Error-Detail, optional)

## Types

### FinalMessageResponseOriginalPayment

- `message_id` (string, optional) — Message Id of original payment
- `creation_date_time` (datetime, optional) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time when a original payment was created
- `instruction_id` (string, optional) — Instruction ID of Original Payment
- `end_to_end_id` (string, optional) — End to End ID of Original Payment
- `transaction_id` (string, optional) — Transaction ID of Original Payment
- `uetr` (string, optional) — UETR of Original payment
- `clearing_reference` (string, optional) — Clearing reference of Original Payment
- `instructed_amount` (double, optional) — Instructed amount of Original Payment
- `instructed_currency` (enum, optional) — Instructed currency of Original Payment
  - Allowed values: `USD`, `EUR`, `GBP`, `AUD`
- `value_date` (date, optional) — Date in local time zone (e.g., EST for a United States RTP network transaction) when Citi's transaction processing application starts processing a transaction.Format is YYYY-MM-DD
- `message_name_identification` (string, optional) — Clearing specific original message name
- `requested_execution_date` (date, optional) — Requested Execution Date of Original Request for Payment
- `requested_execution_date_time` (datetime, optional) — Requested Execution Date/ Time of Original Request for Payment
- `expiry_date` (date, optional) — Expiry Date of Original Request for Payment
- `expiry_date_time` (datetime, optional) — Expiry Date/Time of Original Request for Payment
- `payment_information_id` (string, optional) — Payment Information ID Original Request for Payment
- `category_purpose` (string, optional) — Category purpose of original payment
- `unstructured_remittance_info` (list of string, optional) — Unstructured remitance information of original payment
- `structured_remittance_info` (FinalMessageResponseOriginalPaymentStructuredRemittanceInfo, optional)
- `purpose` (string, optional) — Purpose of a transaction of original payment - CASH for cash management - CNFL for confidential - COST for payment for business expenses - GDDS for payment related to purchase or sale of goods - GDSV for payment related to purchase or sale of goods and services - GP2P for person-to-person payment - OTHR for other, if your payment doesn't fit any of the specific purpose codes - PAYR for payroll payment - RCPT for payment of a receipt - SALA for salary payment - SCVE for payment related to purchase or sale of services - SUPP for supplier payment - TREA for treasury payment - REFU for refund payment - CLPO for Claim Payouts - LODI for Loan Disbursals - TIPO for Tips Payout - GIEO for Gig economy - VEPO for Vendor Payouts - INPO for Incentive Payouts - ISPO for Insurance Payouts - MPPO for Merchant/Marketplace Payouts - TXPO for Tax Payments - RDPO for Rider payout
- `method` (FinalMessageResponseOriginalPaymentMethod, optional)
- `debtor` (Original-Debtor, optional)
- `creditor` (Original-Creditor, optional)
- `ultimate_debtor` (Original-Ultimate-Debtor, optional)
- `ultimate_creditor` (Original-Ultimate-Creditor, optional)

### FinalMessageResponseMessage

### Error-Detail

- `issue` (string, optional) — more details about the issue
- `action` (string, optional) — corrective action to be taken to resolve above issue
- `code` (string, optional) — unique code representing the issue

### FinalMessageResponseOriginalPaymentStructuredRemittanceInfo

- `creditor_reference_information_code` (string, optional) — Structured Creditor Reference Information Code of original payment
- `creditor_reference_issuer` (string, optional) — Structured Creditor Reference Issuer - For TH Instant payment transaction.structured_remittance_info.creditor_reference_issuer is not applicable - For US Instant payment transaction.structured_remittance_info.creditor_reference_issuer field is not applicable - For IN IMPS transaction.structured_remittance_info.creditor_reference_issuer is not applicable - For UK FPS Instant payment transaction.structured_remittance_info.creditor_reference_issuer is not applicable - For JP Instant payment transaction.structured_remittance_info.creditor_reference_issuer is not applicable - For IN UPI transaction.structured_remittance_info.creditor_reference_issuer is not applicable - For US WIRE,transaction.structured_remittance_info.creditor_reference_issuer field is not applicable - For US ACH CCD/PPD/IAT payment,transaction.structured_remittance_info.creditor_reference_issuer field is not applicable - For SEPA IDP transaction.structured_remittance_info.creditor_reference_issuer field is optional with max length 35 - For Japan Instant payment transaction.structured_remittance_info.creditor_reference_issuer field is not applicable - For SEPA, transaction.structured_remittance_info.creditor_reference_issuer field is optional field and allowed maxLength is 35
- `creditor_reference` (string, optional) — Structured Creditor Reference of original payment

### FinalMessageResponseOriginalPaymentMethod

- `network` (enum, optional) — Financial market infrastructure or clearing system (e.g., RTP Network in the United States) of original payment
  - Allowed values: `RTP`, `FDN`, `AUNPP`

### Original-Debtor

- `bank_id` (string, optional) — Debtor Bank ID of Original Payment
- `name` (string, optional) — Name of Debtor from Original Payment
- `street_name` (string, optional) — Street Name of Debtor address from Original Payment
- `building_number` (string, optional) — Debtor Building number of Original Payment
- `postal_code` (string, optional) — Debtor Postal code of Original Payment
- `city` (string, optional) — City of Debtor from Original Payment
- `state` (string, optional) — State of Debtor from Original Payment
- `country` (string, optional) — Country of Debtor from Original Payment
- `address_lines` (list of string, optional) — Debtor Address lines of Original Payment which is array of 7 lines and each line has maximum 70 characters
- `org_id` (string, optional) — Debtor Org ID of Original Payment
- `birth_date` (date, optional) — Debtor Birth date of Original Payment.Format is YYYY-MM-DD
- `birth_city` (string, optional) — Debtor Birth city of Original Payment
- `birth_country` (string, optional) — Debtor Birth country of Original Payment
- `proxy_id` (string, optional) — Debtor's proxy identification (e.g., email address) of original payment
- `proxy_type` (enum, optional) — Debtor's proxy type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification) of original payment
  - Allowed values: `BIID`, `EMAL`, `EWAL`, `MBNO`, `NIDN`
- `account` (string, optional) — Debtor's bank account of original payment
- `birth_province` (string, optional) — Debtor Province Of Birth of original payment
- `prvt_id` (string, optional) — Debtor's private id of original payment
- `department` (string, optional) — debtor Address Department of original payment
- `sub_department` (string, optional) — debtor Address Sub-Department of original payment
- `building_name` (string, optional) — debtor building name of original payment
- `floor` (string, optional) — debtor address floor of original payment
- `post_box` (string, optional) — debtor address post box of original payment
- `room` (string, optional) — debtor address room of original payment
- `town_location_name` (string, optional) — debtor address town location name of original payment
- `district_name` (string, optional) — debtor address district_name of original payment
- `anybic` (string, optional) — debtor BIC of original payment
- `lei` (string, optional) — Unique global identifier for legal entities participating in financial transactions of original payment
- `issuer` (string, optional) — debtor name that identifies an issuer of original payment
- `scheme_name` (string, optional) — Debtor's scheme name of original payment

### Original-Creditor

- `bank_id` (string, optional) — Bank Id of Creditor from original payment
- `name` (string, optional) — Name of Creditor from Original Payment
- `street_name` (string, optional) — Creditor Street name of Original Payment
- `building_number` (string, optional) — Creditor Building number of Original Payment
- `postal_code` (string, optional) — Creditor Postal code of Original Payment
- `city` (string, optional) — City of Creditor from Original Payment
- `state` (string, optional) — State of Creditor from Original Payment
- `country` (string, optional) — Country of Creditor from Original Payment
- `address_lines` (list of string, optional) — Creditor Address lines of Original Payment which is an array of 7 lines and each line has maximum 70 characters
- `org_id` (string, optional) — Creditor Org ID of Original Payment
- `birth_date` (date, optional) — Creditor Birth date of Original Payment.Format is YYYY-MM-DD
- `birth_city` (string, optional) — Creditor Birth city of Original Payment
- `birth_country` (string, optional) — Creditor Birth country of Original Payment
- `proxy_id` (string, optional) — Creditor's proxy identification (e.g., email address) of original payment
- `proxy_type` (enum, optional) — Creditor's proxy type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification) of original payment
  - Allowed values: `BIID`, `EMAL`, `EWAL`, `MBNO`, `NIDN`
- `account` (string, optional) — Creditor's bank account of original payment
- `prvt_id` (string, optional) — Creditor's prvt_id of original payment
- `birth_province` (string, optional) — Creditor's Province Of Birth of original payment
- `department` (string, optional) — creditor Address Department of original payment
- `sub_department` (string, optional) — creditor Address Sub-Department of original payment
- `building_name` (string, optional) — creditor building name of original payment
- `floor` (string, optional) — creditor address floor of original payment
- `post_box` (string, optional) — creditor address post box of original payment
- `room` (string, optional) — creditor address room of original payment
- `town_location_name` (string, optional) — creditor address town location name of original payment
- `district_name` (string, optional) — creditor address district_name of original payment
- `anybic` (string, optional) — creditor BIC of original payment
- `lei` (string, optional) — Unique global identifier for legal entities participating in financial transactions of original payment
- `issuer` (string, optional) — creditor name that identifies an issuer of original payment
- `scheme_name` (string, optional) — Creditor's scheme name of original payment

### Original-Ultimate-Debtor

- `name` (string, optional) — Ultimate Debtor's bank account name of original payment
- `org_id` (string, optional) — Ultimate Debtor's org_id of original payment
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), ultimate debtor's birth date of original payment
- `birth_city` (string, optional) — Ultimate debtor's birth city of original payment
- `birth_country` (string, optional) — Ultimate debtor's birth country of original payment
- `birth_province` (string, optional) — Ultimate Debtor Province Of Birth of original payment
- `prvt_id` (string, optional) — Ultimate Debtor's private id of original payment
- `anybic` (string, optional) — ultimate debtor's BIC of original payment
- `lei` (string, optional) — Unique global identifier for legal entities participating in financial transactions of original payment
- `issuer` (string, optional) — ultimate debtor's name that identifies an issuer of original payment
- `scheme_name` (string, optional) — Ultimate Debtor's scheme name of original payment

### Original-Ultimate-Creditor

- `name` (string, optional) — Ultimate Creditor's bank account name of original payment
- `org_id` (string, optional) — Ultimate Creditor's org_id of original payment
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), ultimate creditor's birth date of original payment
- `birth_city` (string, optional) — Ultimate Creditor's birth city of original payment
- `birth_country` (string, optional) — Ultimate Creditor's birth country of original payment
- `birth_province` (string, optional) — Ultimate Creditor Province Of Birth of original payment
- `prvt_id` (string, optional) — Ultimate Creditor's private id of original payment
- `anybic` (string, optional) — ultimate Creditor's BIC of original payment
- `lei` (string, optional) — Unique global identifier for legal entities participating in financial transactions of original payment
- `issuer` (string, optional) — ultimate Creditor's name that identifies an issuer of original payment
- `scheme_name` (string, optional) — Ultimate Creditor's scheme name of original payment

### Request-For-Refund

Incoming/Outgoing Request For Refund

- `case_id` (string, required) — Case Id received from clearing
- `reasons` (RequestForRefundReasons, optional)
- `requestor_name` (string, optional) — Official name of the originator of Request For Refund
- `requestor_bank_id` (string, optional) — Bank ID of the originator FI requesting Request For Refund
- `requestor_issuer` (string, optional) — Originator Issuer
- `requestor_org_id` (string, optional) — Orginator Identification
- `requestor_lei` (string, optional) — LEI of the originator of RFR
- `status` (RequestForRefundStatus, optional)

### Final-Response-To-Request-For-Refund

Outgoing/Incoming Response to Request for Refund

- `case_id` (string, required) — Case Id received from clearing
- `decision_code` (enum, required) — Acceptance or Rejection of return of funds. Only the below 3 codes are applicable - IPAY - Acceptance to Return the payment - RJCR - Decline to Return the payment - PECR - Partially Executed Cancellation Return
  - Allowed values: `ACDA`, `ACNR`, `ACVA`, `CHRG`, `CNCL`, `CONF`, `CVAA`, `CWFW`, `FTNA`, `ICOV`, `IDUP`, `IPAY`, `IPYI`, `MCOV`, `MODI`, `MWFW`, `PDCR`, `PECR`, `PURP`, `RJCR`, `RJNR`, `RJVA`, `SMTC`, `SMTI`, `UWFW`, `BIAS`, `IDNE`, `IVCR`, `INFO`, `NINF`, `PDNG`
- `end_to_end_id` (string, required) — Unique end to end id on return payment initiation
- `reasons` (FinalResponseToRequestForRefundReasons, optional)
- `method` (enum, optional) — Method type - MPNS - for ACH payment - RTGS - for FedWire - RTNS - for CHIPS - RT1 - for SEPA IP payments
  - Allowed values: `MPNS`, `RTGS`, `RTNS`, `RT1`
- `interbank_settlement_date` (date, optional) — YYYY-MM-DD Intended interbank settlement date
- `instructed_amount` (double, optional) — Instructed amount for partial acceptance of return request - Mandatory for ResponseToRequest-For-Refund with decision code as PECR.
- `instructed_currency` (enum, optional) — Instructed currency for partial acceptance of return request - Mandatory for ResponseToRequest-For-Refund with decision code as PECR
  - Allowed values: `USD`, `EUR`, `AUD`
- `instruction_id` (string, optional) — Unique Instruction id on return payment initiation
- `country` (enum, optional, default: US) — ISO 3166 Alpha-2 code for the non pay message country. - This field is optional for US - This field is mandatory for SEPA
  - Allowed values: `US`, `IE`, `DE`, `AT`, `BE`, `FI`, `FR`, `GR`, `IT`, `LU`, `NL`, `PT`, `ES`, `SK`, `AU`
- `network` (enum, optional) — Financial market infrastructure or clearing system (e.g., RTP Network in the United States) - RTP for TCH - FDN for FedNow
  - Allowed values: `RTP`, `FDN`
- `debtor` (Debtor-Refund, optional)
- `ultimate_debtor` (Ultimate-Debtor-Refund, optional)
- `status` (FinalResponseToRequestForRefundStatus, optional)
- `return_id` (string, optional) — If other FI wants to return funds outside of RTP, the unique identifier of the transaction used to return the funds must be included in this field - If via ACH, Trace Number must be populated - If via FedWire -- IMAD must be populated - If via CHIPS -- System Sequence Number (SSN) must be populated

### Payment-Confirmation-Request

Incoming Payment Confirmation Request

- `debtor` (Message-Debtor-Status, optional)
- `ultimate_debtor` (Message-Ultimate-Debtor-Status, optional)
- `creditor` (Message-Creditor-Status, optional)
- `ultimate_creditor` (Message-Ultimate-Creditor-Status, optional)
- `method` (Message-Method-Status, optional)
- `transaction` (Message-Transaction-Status, optional)

### Response-To-Payment-Confirmation-Request

- `uetr` (string, optional) — UETR of Original payment
- `status` (ResponseToPaymentConfirmationRequestStatus, optional)

### Request-For-Payment

Request For Payment

- `debtor` (Message-Debtor-Request-For-Payment, required)
- `creditor` (Message-Creditor-Request-For-Payment, required)
- `method` (Message-Method-Request-For-Payment, required)
- `transaction` (Message-Transaction-Request-For-Payment, required)
- `ultimate_debtor` (Message-Ultimate-Debtor-Request-For-Payment, optional)
- `ultimate_creditor` (Message-Ultimate-Creditor-Status, optional)
- `response_rfp` (RequestForPaymentResponseRfp, optional)

### Response-To-Request-For-Payment

Response to Request for Payment

- `decision_code` (enum, required) — Acceptance or Rejection of request for payment - ACTC - Acceptance to make requested payment - RJCT - Decline to pay requested amount
  - Allowed values: `ACTC`, `RJCT`
- `end_to_end_id` (string, required) — Unique End to End ID of Response to Request for Payment
- `accepted_amount` (double, optional) — Amount to be paid from Request for Payment.Indicates if Instructed amount in Payment request will be paid, or different amount.If Different amount not allowed by Payment Request, this field must carry Instructed amount - Mandatory if message.decision_code = ACTC
- `accepted_currency` (enum, optional) — ISO 4217 code for the accepted currency - Mandatory if message.decision_code = ACTC
  - Allowed values: `USD`
- `scheduled_exec_date` (date, optional) — Date payment is expected to be made.Format is YYYY-MM-DD - Mandatory if message.decision_code = ACTC
- `reasons` (ResponseToRequestForPaymentReasons, optional)
- `debtor` (Debtor-Payment, optional)
- `ultimate_debtor` (Ultimate-Debtor-Payment, optional)
- `status` (ResponseToRequestForPaymentStatus, optional)

### Final-Request-For-Information-Compliance

Request For Information Compliance

- `transaction` (FinalRequestForInformationComplianceTransaction, optional)
- `rfics` (FinalRequestForInformationComplianceRfics, optional) — Request for Information Compliance

### Response-To-Request-For-Information-Compliance

Response to Request for Information Compliance

- `rrfics` (ResponseToRequestForInformationComplianceRrfics, optional) — Response to Request for Information Compliance

### RequestForRefundReasons

- `code` (string, required) — Code of Transaction reasons.Either ISO code or proprietary code should be present in this field
- `description` (string, optional) — Description of Transaction reasons

### RequestForRefundStatus

- `date_time` (datetime, required) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Status change date time
- `code` (enum, required) — ISO 20022 message status code
  - Allowed values: `RCVD`, `RJCT`, `PDNG`
- `description` (string, required) — Status code description - RJCT - Rejected - RCVD - Received - PDNG - Pending
- `reasons` (RequestForRefundStatusReasons, optional)

### FinalResponseToRequestForRefundReasons

- `code` (enum, optional) — Code of Transaction reasons - If decision_code = RJCR,reasons.code is mandatory for ResponseToRequest-For-Refund
  - Allowed values: `AC04`, `ADAC`, `AGNT`, `AM04`, `ARDT`, `ARPL`, `CUST`, `LEGL`, `NARR`, `NOAS`, `NOOR`, `PTNA`, `RQDA`, `WSEQ`, `IDMN`, `ACLR`, `AEXR`, `ARFR`, `ARJR`, `PATE`, `RR04`, `RCAR`, `RCNR`, `RCPR`, `URTP`
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.). - For reasons.code = NARR this field is mandatory

### Debtor-Refund

- `name` (string, optional) — Name of Debtor to be passed for Refund payment - For United States debtor.name field is mandatory for decision code IPAY and PECR - For Thailand debtor.name field is not applicable - For Brazil debtor.name field is not applicable - For SEPA debtor.name field is not applicable
- `street_name` (string, optional) — Street Name of Debtor to be passed for Refund payment - For United States debtor.street_name field is optional - For Thailand debtor.street_name field is not applicable - For Brazil debtor.street_name field is not applicable - For SEPA debtor.street_name field is not applicable
- `building_number` (string, optional) — Building number of Debtor to be passed for Refund payment - For United States debtor.building_number field is optional - For Thailand debtor.building_number field is not applicable - For Brazil debtor.building_number field is not applicable - For SEPA debtor.building_number field is not applicable
- `postal_code` (string, optional) — Postal code of Debtor to be passed for Refund payment - For United States debtor.postal_code field is optional - For Thailand debtor.postal_code field is not applicable - For Brazil debtor.postal_code field is not applicable - For SEPA debtor.postal_code field is not applicable
- `city` (string, optional) — City of Debtor to be passed for Refund payment - For United States debtor.city field is optional - For Thailand debtor.city field is not applicable - For Brazil debtor.city field is not applicable - For SEPA debtor.city field is not applicable
- `state` (string, optional) — State of Debtor to be passed for Refund payment - For United States debtor.state field is optional - For Thailand debtor.state field is not applicable - For Brazil debtor.state field is not applicable - For SEPA debtor.state field is not applicable
- `country` (string, optional) — Country of Debtor to be passed for Refund payment - For United States debtor.country field is optional - For Thailand debtor.country field is not applicable - For Brazil debtor.country field is not applicable - For SEPA debtor.country field is not applicable
- `address_lines` (list of string, optional) — Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which is to be passed for Refund payment - For United States debtor.address_lines field is optional - For Thailand debtor.address_lines field is not applicable - For Brazil debtor.address_lines field is not applicable - For SEPA debtor.address_lines field is not applicable

### Ultimate-Debtor-Refund

- `name` (string, optional) — Name of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.name field is optional - For Thailand ultimatedebtor.name field is not applicable - For Brazil ultimatedebtor.name field is not applicable - For SEPA ultimate_debtor.name field is not applicable
- `street_name` (string, optional) — Street Name of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.street_name field is optional - For Thailand ultimatedebtor.street_name field is not applicable - For Brazil ultimatedebtor.street_name field is not applicable - For SEPA ultimate_debtor.street_name field is not applicable
- `building_number` (string, optional) — Building number of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.building_number field is optional - For Thailand ultimatedebtor.building_number field is not applicable - For Brazil ultimatedebtor.building_number field is not applicable - For SEPA ultimate_debtor.building_number field is not applicable
- `postal_code` (string, optional) — Postal code of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.postal_code field is optional - For Thailand ultimatedebtor.postal_code field is not applicable - For Brazil ultimatedebtor.postal_code field is not applicable - For SEPA ultimate_debtor.postal_code field is not applicable
- `city` (string, optional) — City of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.city field is optional - For Thailand ultimatedebtor.city field is not applicable - For Brazil ultimatedebtor.city field is not applicable - For SEPA ultimate_debtor.city field is not applicable
- `state` (string, optional) — State of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.state field is optional - For Thailand ultimatedebtor.state field is not applicable - For Brazil ultimatedebtor.state field is not applicable - For SEPA ultimate_debtor.state field is not applicable
- `country` (string, optional) — Country of Ultimate Debtor to be passed for Refund payment - For United States ultimate_debtor.country field is optional - For Thailand ultimatedebtor.country field is not applicable - For Brazil ultimatedebtor.country field is not applicable - For SEPA ultimate_debtor.country field is not applicable
- `address_lines` (list of string, optional) — Ultimate Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which is to be passed for Refund payment - For United States ultimate_debtor.address_lines field is optional - For Thailand ultimatedebtor.address_lines field is not applicable - For Brazil ultimatedebtor.address_lines field is not applicable - For SEPA ultimate_debtor.address_lines field is not applicable

### FinalResponseToRequestForRefundStatus

- `date_time` (datetime, required) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time, -, status change date time
- `code` (enum, required) — ISO 20022 message status code
  - Allowed values: `RCVD`, `RJCT`, `PDNG`
- `description` (string, required) — Status code description - RJCT - Rejected - RCVD - Received - PDNG - Pending
- `reasons` (FinalResponseToRequestForRefundStatusReasons, optional)

### Message-Debtor-Status

- `proxy_id` (string, optional) — Debtor's proxy identification (e.g., email address) - For US debtor.proxy_id field is not applicable
- `proxy_type` (enum, optional) — Debtor's proxy type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification) - For US debtor.proxy_type is not applicable
  - Allowed values: `BIID`, `EMAL`, `EWAL`, `MBNO`, `NIDN`
- `tax_id` (string, optional) — Debtor's tax identification - For US debtor.tax_id is not applicable
- `account` (string, optional) — Debtor's bank account
- `account_name` (string, optional) — Debtor Account name, different from the Debtor Name
- `virtual_account` (string, optional) — Debtor's virtual account - For US debtor.virtual_account field is not applicable
- `name` (string, optional) — Debtor's bank account name
- `address_lines` (list of string, optional) — Debtor's address_lines
- `street_name` (string, optional) — Debtor's street_name
- `building_number` (string, optional) — Debtor's building_number
- `postal_code` (string, optional) — Debtor's postal_code
- `city` (string, optional) — Debtor's City
- `state` (string, optional) — Debtor's State
- `country` (string, optional) — Debtor's Country
- `org_id` (string, optional) — Debtor's org_id
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Debtor's birth_date
- `birth_city` (string, optional) — Debtor's birth_city
- `birth_country` (string, optional) — Debtor's birth_country
- `bank_id` (string, optional) — Instructing Agent member Identification ID of a clearing system
- `bank_branch_id` (string, optional) — Debtor Bank branch ID

### Message-Ultimate-Debtor-Status

- `name` (string, optional) — Name of the ultimate debtor
- `address_lines` (list of string, optional) — Ultimate Debtor's address_lines
- `street_name` (string, optional) — Ultimate Debtor's street_name
- `building_number` (string, optional) — Ultimate Debtor's building_number
- `postal_code` (string, optional) — Ultimate Debtor's postal_code
- `city` (string, optional) — Ultimate Debtor's city
- `state` (string, optional) — Ultimate Debtor's state
- `country` (string, optional) — Ultimate Debtor's country

### Message-Creditor-Status

- `proxy_id` (string, optional) — Creditor's proxy identification (e.g., email address) - For US creditor.proxy_id field is not applicable
- `proxy_type` (enum, optional) — Creditor's proxy type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification) - For US creditor.proxy_type field is not applicable
  - Allowed values: `BIID`, `EMAL`, `EWAL`, `MBNO`, `NIDN`
- `tax_id` (string, optional) — Creditor's tax identification - For US creditor.tax_id field is not applicable
- `account` (string, optional) — Creditor's bank account
- `account_name` (string, optional) — Creditor Account name, different from the Creditor Name
- `virtual_account` (string, optional) — Creditor's virtual account (also kown as PAYER ID) - For US creditor.virtual_account field is not applicable
- `name` (string, optional) — Creditor's name
- `address_lines` (list of string, optional) — Creditor's address_lines
- `street_name` (string, optional) — Creditor's street_name
- `building_number` (string, optional) — Creditor's building_number
- `postal_code` (string, optional) — Creditor's postal_code
- `city` (string, optional) — Creditor's city
- `state` (string, optional) — Creditor's state
- `country` (string, optional) — Creditor's country
- `org_id` (string, optional) — Creditor's org_id
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Creditor's birth_date
- `birth_city` (string, optional) — Creditor's birth_city
- `birth_country` (string, optional) — Creditor's birth_country
- `bank_id` (string, optional) — Creditor Bank ID
- `bank_branch_id` (string, optional) — Creditor Bank Branch ID

### Message-Ultimate-Creditor-Status

- `name` (string, optional) — Ultimate Creditor's bank account name
- `address_lines` (list of string, optional) — Ultimate Creditor's address_lines
- `street_name` (string, optional) — Ultimate Creditor's street_name
- `building_number` (string, optional) — Ultimate Creditor's building_number
- `postal_code` (string, optional) — Ultimate Creditor's postal_code
- `city` (string, optional) — Ultimate Creditor's city
- `state` (string, optional) — Ultimate Creditor's state
- `country` (string, optional) — Ultimate Creditor's country

### Message-Method-Status

- `country` (enum, required) — ISO 3166 Alpha-2 code for the transaction country
  - Allowed values: `US`
- `instructed_currency` (enum, required) — ISO 4217 code for the transaction instructed amount currency
  - Allowed values: `USD`, `EUR`
- `method` (enum, required) — Method specified by the debtor for the transaction \n- Provide IP for instant payment
  - Allowed values: `IP`
- `type` (enum, required) — Transaction message type (e.g., CT for credit transfer. RF for Refund) - CT - Credit Transfer - RF - Return payment - BK_CT - Book to Book Credit Transfer - BK_RF - Book to Book Return Payment
  - Allowed values: `CT`, `RF`, `BK_CT`, `BK_RF`
- `network` (enum, optional) — Financial market infrastructure or clearing system (e.g., RTP Network in the United States) - RTP for TCH - FDN for FedNow
  - Allowed values: `RTP`, `ZELLE`, `FDN`

### Message-Transaction-Status

- `uetr` (string, required) — UUID v4 format unique end-to-end transaction reference
- `type` (enum, required) — Transaction Type - Debit or Credit
  - Allowed values: `credit`, `debit`
- `creation_date_time` (datetime, required) — GMT (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Instant Payment (Debit) - Date time, generated by CitiConnect API, when CitiConnect API accepted a payment initiation after validation - Instant Payment (Credit) - Date time, either provided by the debtor bank or generated by Citi's transaction processing application, when a transaction was created
- `value_date` (date, required) — YYYY-MM-DD Date in local time zone (e.g., EST for a United States RTP ) when Citi's transaction processing application starts processing a transaction
- `instructed_amount` (double, required) — Amount instructed by client for a transaction
- `settlement_currency` (string, required) — ISO 4217 code for the transaction settlement amount currency
- `settlement_amount` (double, required) — Settlement amount (e.g., after any currency exchange or charge on the instructed amount)
- `end_to_end_id` (string, optional) — Specifies a character string with a maximum length of 35 characters
- `instruction_id` (string, optional) — Instruction Id
- `network_id` (string, optional) — Transaction identification generated for or by the network
- `local_reference` (string, optional) — This is a Citi generated payment reference which is included in the ‘Bank Reference’ field of bank statement posting for itemized transaction
- `batch_id` (string, optional) — Identification for the bulk debit or credit posting to Citi account - For SEPA, transaction.batch_id field is optional and allwed maxLength is 35
- `bill_id_1` (string, optional) — Bill identification for a bill payment - For US transaction.bill_id_1 field is not applicable
- `bill_id_2` (string, optional) — Bill identification for a bill payment - For US transaction.bill_id_2 field is not applicable
- `bill_id_3` (string, optional) — Bill identification for a bill payment - For US transaction.bill_id_3 field is not applicable
- `purpose` (enum, optional) — Purpose of a transaction - CASH for cash management - CNFL for confidential - COST for payment for business expenses - GDDS for payment related to purchase or sale of goods - GDSV for payment related to purchase or sale of goods and services - GP2P for person-to-person payment - OTHR for other, if your payment doesn't fit any of the specific purpose codes - PAYR for payroll payment - RCPT for payment of a receipt - SALA for salary payment - SCVE for payment related to purchase or sale of services - SUPP for supplier payment - TREA for treasury payment - REFU for refund payment
  - Allowed values: `CNFL`, `PAYR`, `OTHR`, `CASH`, `GP2P`, `SCVE`, `GDDS`, `GDSV`, `SALA`, `SUPP`, `RCPT`, `COST`, `TREA`, `REFU`
- `tax_code` (enum, optional) — Tax code - For US transaction.tax_code field is not applicable
  - Allowed values: `0`, `1`
- `wht_code` (enum, optional) — Withholding tax (WHT) code - For US transaction.wht_code field is not applicable
  - Allowed values: `A`, `S`, `B`
- `income_type` (string, optional) — Income type - For US transaction.income_type field is not applicable
- `vat_rate` (double, optional) — Value-added tax (VAT) rate - For US transaction.vat_rate field is not applicable
- `vat_amount` (double, optional) — Value-added tax (VAT) amount - For US transaction.vat_amount field is not applicable
- `wht_rate` (double, optional) — Withholding tax (WHT) rate (0 - 99.99) - For US transaction.wht_rate field is not applicable
- `wht_amount` (double, optional) — Withholding tax (WHT) amount - For US transaction.wht_amount field is not applicable
- `bill_due_date` (date, optional) — ISO 8601 (YYYY-MM-DD) bill due date - For US transaction.bill_due_date field is not applicable
- `interbank_settlement_date` (date, optional) — Interbank settlement Date received from clearing (TCH) Format is YYYY-MM-DD
- `unstructured_remittance_info` (list of string, optional) — Unstructured remitance information - For US transaction.unstructured_remittance_info field maximum length is 140 and unlimited line is allowed - For SEPA, transaction.unstructured_remittance_info field is optional and maxLength is 140
- `advice_id` (string, optional) — Remittance identifier
- `advice_type` (enum, optional) — Method use to deliver the remittance advice information
  - Allowed values: `EMAL`, `FAXI`, `SMSM`, `URID`
- `advice_address` (string, optional) — Address to send remittance details
- `category` (string, optional) — Specifies the high level purpose of the instruction - For US TCH - CONUSMER, BUSINESS - For US Fednow - CONS, BIZZ,GOVT - CONS for credit transfers initiated by a consumer - BIZZ for credit transfers initiated by a business entity - GOVT for credit transfers initiated by a government agency
- `original_amount` (double, optional) — Amount that was originally sent by our client. - For Thailand PromptPay transaction.original_amount field is not applicable - For United States transaction.original_amount field is optional - For IN IMPS transaction.original_amount field is not applicable - For UK FPS Instant payment transaction.original_amount field is not applicable
- `full_amount` (double, optional) — Amount that is the gross amount payable to our client. If populated, transaction.discount_amount must also be populated - For Thailand PromptPay transaction.full_amount field is not applicable - For United States transaction.full_amount field is optional - For IN IMPS transaction.full_amount field is not applicable - For UK FPS Instant payment transaction.full_amount field is not applicable
- `discount_amount` (double, optional) — Amount that is the discount from the gross amount. If populated, transaction.full_amount must also be popluated - For Thailand PromptPay transaction.discount_amount field is not applicable - For United States transaction.discount_amount field is optional - For IN IMPS transaction.discount_amount field is not applicable - For UK FPS Instant payment transaction.discount_amount field is not applicable

### ResponseToPaymentConfirmationRequestStatus

- `date_time` (datetime, optional) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time, -, status change date time
- `code` (enum, optional) — ISO 20022 message status code
  - Allowed values: `PDNG`, `RJCT`
- `description` (string, optional) — Status code description - PDNG - Pending - RJCT - Rejected
- `reasons` (ResponseToPaymentConfirmationRequestStatusReasons, optional)

### Message-Debtor-Request-For-Payment

- `account` (string, required) — Debtor Account ID
- `name` (string, required) — Debtor Name
- `bank_id` (string, required) — Instructing Agent member Identification ID of a clearing system
- `account_name` (string, optional) — Debit Account name, different from the Debtor Name
- `address_lines` (list of string, optional) — Debtor's address_lines
- `street_name` (string, optional) — Debtor's street_name
- `building_number` (string, optional) — Debtor's building_number
- `postal_code` (string, optional) — Debtor's postal_code
- `city` (string, optional) — Debtor's City
- `state` (string, optional) — Debtor's State
- `country` (string, optional) — Debtor's Country
- `org_id` (string, optional) — Debtor's org_id
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Debtor's birth_date
- `birth_city` (string, optional) — Debtor's birth_city
- `birth_country` (string, optional) — Debtor's birth_country

### Message-Creditor-Request-For-Payment

- `account` (string, required) — Creditor Account ID
- `name` (string, required) — Creditor Name
- `bank_id` (string, required) — Beneficiary Bank Clearing Id
- `account_name` (string, optional) — Creditor Account Name
- `address_lines` (list of string, optional) — Creditor's address_lines
- `street_name` (string, optional) — Creditor's street_name
- `building_number` (string, optional) — Creditor's building_number
- `postal_code` (string, optional) — Creditor's postal_code
- `city` (string, optional) — Creditor's city
- `state` (string, optional) — Creditor's state
- `country` (string, optional) — Creditor's country
- `org_id` (string, optional) — Creditor's org_id
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Creditor's birth_date
- `birth_city` (string, optional) — Creditor's birth_city
- `birth_country` (string, optional) — Creditor's birth_country
- `phone_number` (string, optional) — Creditor's phone number

### Message-Method-Request-For-Payment

- `country` (enum, required) — ISO 3166 Alpha-2 code for the transaction country
  - Allowed values: `US`
- `instructed_currency` (enum, required) — ISO 4217 code for the transaction instructed amount currency
  - Allowed values: `USD`
- `method` (enum, required) — Method specified by the debtor for the transaction - Provide IP for instant payment
  - Allowed values: `IP`
- `network` (enum, optional) — Financial market infrastructure or clearing system (e.g., RTP Network in the United States)
  - Allowed values: `RTP`, `ZELLE`

### Message-Transaction-Request-For-Payment

- `end_to_end_id` (string, required) — Client provided reference number
- `payment_information_id` (string, required) — Payment Information ID
- `uetr` (string, required) — UUID v4 format unique end-to-end transaction reference
- `type` (enum, required) — Transaction Type - Debit or Credit
  - Allowed values: `credit`, `debit`
- `creation_date_time` (datetime, required) — GMT (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Instant Payment (Debit) - Date time, generated by CitiConnect API, when CitiConnect API accepted a payment initiation after validation - Instant Payment (Credit) - Date time, either provided by the debtor bank or generated by Citi's transaction processing application, when a transaction was created
- `instructed_amount` (double, required) — Amount instructed by client for a transaction
- `settlement_currency` (string, required) — ISO 4217 code for the transaction settlement amount currency
- `category` (enum, required) — Specifies the high level purpose of the instruction
  - Allowed values: `BUSINESS`, `CONSUMER`
- `instruction_id` (string, optional) — Instruction Id
- `local_reference` (string, optional) — This is a Citi generated payment reference which is included in the ‘Bank Reference’ field of bank statement posting for itemized transaction
- `unstructured_remittance_info` (list of string, optional) — Unstructured remitance information - For US transaction.unstructured_remittance_info field maximum length is 140 and unlimited line is allowed
- `requested_execution_date` (date, optional) — Requested Execution Date Format is YYYY-MM-DD. - Either Requested Execution Date or Requested Execution Date Time must be present
- `requested_execution_date_time` (datetime, optional) — Requested Execution Date/Time UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - - Either Requested Execution Date or Requested Execution Date Time must be present
- `expiry_date` (date, optional) — Expiry Date Format is YYYY-MM-DD - Either Expiry Date or Expiry Date Time must be present
- `expiry_date_time` (datetime, optional) — Expiry Date/Time GMT (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Either Expiry Date or Expiry Date Time must be present
- `amt_mod_allowed` (boolean, optional, default: true) — Indicator by customer if the debtor (RFP recipient) can modify over/under the instructed amount - true - Amount may be modified by the Debtor - false - Amount of payment must equal the Instructed Amount
- `full_amount` (double, optional) — Amount that is the gross amount payable by client - If populated, message.transaction.discount_amount must also be populated
- `discount_amount` (double, optional) — Amount that is the discount from the gross amount - If populated, message.transaction.full_amount must also be popluated
- `purpose` (string, optional) — Purpose of a transaction - GDDS for payment related to purchase or sale of goods - SCVE for payment related to purchase or sale of services - PAYR for payroll payment - NOWS for Not Otherwise Specified - INVS for Invoice Signed - INSC for Payment Of Insurance Claim - INSM for Installment - PDEP for Property Deposit - UBIL for Utilities Subscription Identification - ACCT for Account Management - CBLK for Bulk card transactions - MP2P for Mobile P2P Payment
- `status` (MessageTransactionRequestForPaymentStatus, optional)
- `reasons` (MessageTransactionRequestForPaymentReasons, optional)

### Message-Ultimate-Debtor-Request-For-Payment

- `name` (string, optional) — Name of the ultimate debtor
- `address_lines` (list of string, optional) — Ultimate Debtor's address_lines
- `street_name` (string, optional) — Ultimate Debtor's street_name
- `building_number` (string, optional) — Ultimate Debtor's building_number
- `postal_code` (string, optional) — Ultimate Debtor's postal_code
- `city` (string, optional) — Ultimate Debtor's city
- `state` (string, optional) — Ultimate Debtor's state
- `country` (string, optional) — Ultimate Debtor's country
- `org_id` (string, optional) — Ultimate Debtor's org_id
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), ultimate debtor's birth date
- `birth_city` (string, optional) — Ultimate debtor's birth city
- `birth_country` (string, optional) — Ultimate debtor's birth country

### RequestForPaymentResponseRfp

- `message_id` (string, optional) — Message Identification of Response to Request For Payment - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.
- `creation_date_time` (datetime, optional) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) Date time when a message was created for Response to Request For Payment. - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.
- `end_to_end_id` (string, optional) — Unique End to end id of Response to Request for Payment - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.
- `accepted_amount` (double, optional) — Amount to be paid from Request for Payment. - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.
- `accepted_currency` (enum, optional) — ISO 4217 code for the accepted currency - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.
  - Allowed values: `USD`
- `scheduled_exec_date` (date, optional) — Date payment is expected to be made.Format is YYYY-MM-DD - Mandatory only if message.transaction.status.code = ACSP - Conditional if message.transaction.status.code = ACCC. The condition is -: If a RRFP was initiated , this field is mandatory; if RRFP was not initiated, this field must not be present.

### ResponseToRequestForPaymentReasons

- `code` (enum, optional) — Code of Transaction reasons - Mandatory if message.decision_code = RJCT
  - Allowed values: `AC06`, `AG01`, `AG03`, `AM09`, `AM14`, `BE04`, `BE07`, `CH11`, `CUST`, `DS04`, `MD07`, `NARR`, `SL12`
- `description` (string, optional) — Description of Transaction reasons - Mandatory if message.reasons.code = NARR

### Debtor-Payment

- `name` (string, optional) — Name of Debtor that may be passed for payment initiation
- `street_name` (string, optional) — Street Name of Debtor that may be passed for payment initiation
- `building_number` (string, optional) — Building number of Debtor that may be passed for payment initiation
- `postal_code` (string, optional) — Postal code of Debtor that may be passed for payment initiation
- `city` (string, optional) — City of Debtor that may be passed for payment initiation
- `state` (string, optional) — State of Debtor that may be passed for payment initiation
- `country` (string, optional) — Country of Debtor that may be passed for payment initiation
- `address_lines` (list of string, optional) — Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation

### Ultimate-Debtor-Payment

- `name` (string, optional) — Name of Ultimate Debtor that may be passed for payment initiation
- `street_name` (string, optional) — Street Name of Ultimate Debtor that may be passed for payment initiation
- `building_number` (string, optional) — Building number of Ultimate Debtor that may be passed for payment initiation
- `postal_code` (string, optional) — Postal code of Ultimate Debtor that may be passed for payment initiation
- `city` (string, optional) — City of Ultimate Debtor that may be passed for payment initiation
- `state` (string, optional) — State of Ultimate Debtor that may be passed for payment initiation
- `country` (string, optional) — Country of Ultimate Debtor that may be passed for payment initiation
- `address_lines` (list of string, optional) — Ultimate Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation

### ResponseToRequestForPaymentStatus

- `date_time` (datetime, required) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Status change date time
- `code` (enum, required) — ISO 20022 message status code
  - Allowed values: `RCVD`, `RJCT`, `PDNG`
- `description` (string, required) — Status code description - RCVD - Received - RJCT - Rejected - PDNG - Pending
- `reasons` (ResponseToRequestForPaymentStatusReasons, optional)

### FinalRequestForInformationComplianceTransaction

- `end_to_end_id` (string, required) — End to End ID of Original Payment for which RFI is requested
- `uetr` (string, required) — UETR of Original payment for which RFI is requested
- `status` (FinalRequestForInformationComplianceTransactionStatus, optional)
- `reasons` (FinalRequestForInformationComplianceTransactionReasons, optional)

### FinalRequestForInformationComplianceRfics

Request for Information Compliance

- `alert_id` (string, required) — RFI Alert ID
- `request_id` (string, required) — RFI Request ID
- `request_date_time` (datetime, required) — RFI Request Date Time. - Date when RFI request is initiated.
- `purpose_of_transaction_required` (enum, required) — Purpose Of Transaction
  - Allowed values: `Y`, `N`
- `additional_details_requested` (string, optional) — Additional Details
- `fieldlevel_requests` (list of Field-level-Requests-For-RFICS, optional) — Field level requests for which response is requested

### ResponseToRequestForInformationComplianceRrfics

Response to Request for Information Compliance

- `alert_id` (string, required) — RFI Alert ID.
- `request_id` (string, required) — RFI Request ID.
- `response_date_time` (datetime, required) — RFI Response Date Time.
- `purpose_of_transaction` (string, optional) — Purpose Of Transaction.
- `additional_details` (string, optional) — Additional Details.
- `fieldlevel_responses` (list of Field-level-Responses-For-RRFICS, optional) — This block will contain 3 fields (id, name,value) and at least 1 field from the input type for which response is provided.

### RequestForRefundStatusReasons

- `code` (string, optional) — Reason code (applicable when message is rejected)
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.)

### FinalResponseToRequestForRefundStatusReasons

- `code` (string, optional) — Reason code (applicable when message is rejected)
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.)

### ResponseToPaymentConfirmationRequestStatusReasons

- `code` (string, optional) — Reason code (applicable when message is rejected)
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.)

### MessageTransactionRequestForPaymentStatus

- `date_time` (datetime, required) — GMT (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time of transaction status
- `code` (enum, required) — ISO 20022 message status code
  - Allowed values: `PRES`, `ACSP`, `ACCC`, `RJCT`
- `description` (string, required) — Status code description - RJCT - Rejected - PRES - Request For Payment has been presented to the Debtor - ACSP- Accepted Settlement In Process - ACCC - Accepted Settlement Completed

### MessageTransactionRequestForPaymentReasons

- `code` (string, optional) — Reason code (applicable when message is rejected)
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.)
- `isproprietary` (enum, optional) — Flag to indicate the Rejection code is ISO Standard or Proprietary - 0 For ISO Code - 1 For Proprietary
  - Allowed values: `0`, `1`

### ResponseToRequestForPaymentStatusReasons

- `code` (string, optional) — Reason code (applicable when message is rejected)
- `description` (string, optional) — Reason code description (e.g., Debtor account is invalid.)

### FinalRequestForInformationComplianceTransactionStatus

- `date_time` (datetime, required) — Status Date Time - UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Status change date time.
- `code` (enum, optional) — ISO 20022 message status code. - PDNG - Pending
  - Allowed values: `PDNG`
- `description` (string, optional) — Status code description. - PDNG - Pending

### FinalRequestForInformationComplianceTransactionReasons

- `code` (enum, optional) — Reason code corresponding to the transaction status. - RECI - ReceiverCustomerInformation.
  - Allowed values: `RECI`
- `description` (string, optional) — Reason code description. - Transaction is in compliance review request for further information

### Field-level-Requests-For-RFICS

“FieldlevelRequestsForRFICS”

- `field_id` (string, required) — Field ID.
- `field_name` (string, required) — Field name.
- `field_value` (string, required) — Field value.
- `input_type` (string, required) — The Input type or template to provide the response against the field. It will be one the following - individual / entity / aircraft / vessel / unknown. If requested input type is unknown, populate fields from any of the other 4 input types in the response.

### Field-level-Responses-For-RRFICS

“FieldlevelResponsesForRRFICS”

- `field_id` (string, optional) — Field ID.
- `field_name` (string, optional) — Field name.
- `field_value` (string, optional) — Field value.
- `individual` (FieldLevelResponsesForRrficsIndividual, optional) — Input type selected as Individual. When individual is selected any one of the fields displayed under individual object are mandatory
- `entity` (FieldLevelResponsesForRrficsEntity, optional) — Input type selected as Entity. When Entity is selected any one of the fields displayed under entity object are mandatory
- `vessel` (FieldLevelResponsesForRrficsVessel, optional) — Input type selected as vessel. When vessel is selected any one of the fields displayed under vessel object are mandatory
- `aircraft` (FieldLevelResponsesForRrficsAircraft, optional) — Input type selected as aircraft. When aircraft is selected any one of the fields displayed under aircraft object are mandatory

### FieldLevelResponsesForRrficsIndividual

Input type selected as Individual. When individual is selected any one of the fields displayed under individual object are mandatory

- `name` (string, optional) — Name of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `street_name` (string, optional) — Street Name of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `building_number` (string, optional) — Building Number of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `postal_code` (string, optional) — Postal Code of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `city` (string, optional) — City of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `state` (string, optional) — State of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `country` (string, optional) — Country of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `birth_date` (date, optional) — Birth Date of individual Format is YYYY-MM-DD. If selected input type = individual, at least 1 field from individual object must be provided.
- `city_of_birth` (string, optional) — City Of Birth of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `country_of_birth` (string, optional) — Country Of Birth of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `nationality` (string, optional) — Nationality of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `occupation` (string, optional) — Occupation of individual. If selected input type = individual, at least 1 field from individual object must be provided.
- `country_of_residence` (string, optional) — Country of Residence of individual. If selected input type = individual, at least 1 field from individual object must be provided.

### FieldLevelResponsesForRrficsEntity

Input type selected as Entity. When Entity is selected any one of the fields displayed under entity object are mandatory

- `name` (string, optional) — Name of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `street_name` (string, optional) — Street Name of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `building_number` (string, optional) — Building Number of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `postal_code` (string, optional) — Postal Code of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `city` (string, optional) — City of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `state` (string, optional) — State of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `country` (string, optional) — Country of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `line_of_business` (string, optional) — Line of business of Entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `ownership_details` (string, optional) — Ownership Details of entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `global_presence` (string, optional) — Global Presence of entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `website` (string, optional) — Website of entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `registration_number` (string, optional) — Registration Number of entity. If selected input type = entity, at least 1 field from entity object must be provided.
- `country_of_incorporation` (string, optional) — Country of incorporation of entity. If selected input type = entity, at least 1 field from entity object must be provided.

### FieldLevelResponsesForRrficsVessel

Input type selected as vessel. When vessel is selected any one of the fields displayed under vessel object are mandatory

- `name` (string, optional) — Name of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.
- `flag` (string, optional) — Flag of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.
- `ownership_details` (string, optional) — Ownership Details of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.
- `imo_number` (string, optional) — Imo Number of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.
- `gross_registered_tonnage` (string, optional) — Gross registered tonnage of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.
- `vessel_type` (string, optional) — Type of vessel. If selected input type = vessel, at least 1 field from vessel object must be provided.

### FieldLevelResponsesForRrficsAircraft

Input type selected as aircraft. When aircraft is selected any one of the fields displayed under aircraft object are mandatory

- `call_sign` (string, optional) — Call Sign of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.
- `flag` (string, optional) — Flag of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.
- `ownership_details` (string, optional) — Ownership Details of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.
- `msn_number` (string, optional) — Msn Number of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.
- `model` (string, optional) — Model of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.
- `operator` (string, optional) — Operator of aircraft. If selected input type = aircraft, at least 1 field from aircraft object must be provided.

## Examples

### Status - ValidRequest-For-Refund

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af90g5",
  "creation_date_time": "2023-01-10T07:45:10.489Z",
  "message_type": "RFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "clearing_reference": "7634an78543",
    "instructed_amount": 144.56,
    "instructed_currency": "USD",
    "value_date": "2023-01-01",
    "message_name_identification": "123456BKLO",
    "debtor": {
      "bank_id": "021000089",
      "name": "John M",
      "street_name": "1515 3rd Street",
      "building_number": "A1234",
      "postal_code": "94158",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "org_id": "12333333",
      "birth_date": "1950-09-26",
      "birth_city": "San Francisco",
      "birth_country": "US"
    },
    "creditor": {
      "bank_id": "000000010",
      "name": "BeakalWoldemariam",
      "street_name": "5th Street",
      "building_number": "123444",
      "postal_code": "22079",
      "city": "Lorton",
      "state": "CA",
      "country": "US",
      "org_id": "6563",
      "birth_date": "1967-11-27",
      "birth_city": "San Francisco",
      "birth_country": "US"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "country": "US",
    "reasons": {
      "code": "AC03",
      "description": "InvalidCreditorAccountNumber"
    },
    "requestor_bank_id": "0027849",
    "requestor_name": "Khalq",
    "status": {
      "code": "RCVD",
      "date_time": "2023-01-10T08:59:10.489Z",
      "description": "Received"
    }
  }
}
```

**SDK Code**

```python Status - ValidRequest-For-Refund
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidRequest-For-Refund
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidRequest-For-Refund
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidRequest-For-Refund
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidRequest-For-Refund
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidRequest-For-Refund
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidRequest-For-Refund
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidRequest-For-Refund
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidRequest-For-Refund-SEPA

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af90g5",
  "creation_date_time": "2023-01-10T07:45:10.489Z",
  "message_type": "RFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "instructed_amount": 144.56,
    "instructed_currency": "EUR",
    "value_date": "2023-01-01",
    "category_purpose": "YUOP",
    "unstructured_remittance_info": [
      "More details of transaction"
    ],
    "structured_remittance_info": {
      "creditor_reference_information_code": "RADM",
      "creditor_reference": "More details"
    },
    "purpose": "PAYR",
    "debtor": {
      "bank_id": "CITI0000027",
      "name": "Chris Topher",
      "street_name": "123 street",
      "building_number": "67",
      "postal_code": "196278",
      "city": "Belfast",
      "state": "California",
      "country": "IE",
      "address_lines": [
        "ABC#GFD"
      ],
      "org_id": "HIDC3344",
      "proxy_id": "a93d@gmail.com",
      "account": "520993444",
      "department": "Loan",
      "sub_department": "Personal",
      "building_name": "Bird View",
      "floor": "3rd",
      "post_box": "Bhesil Dist",
      "room": "234",
      "town_location_name": "Belfast",
      "district_name": "Belfast",
      "anybic": "ABCDIE20",
      "lei": "ABCDIE20XXX",
      "issuer": "ABC pvt ltd"
    },
    "creditor": {
      "bank_id": "TYEG6758",
      "name": "Retin Sew",
      "street_name": "4th Street",
      "building_number": "29",
      "postal_code": "901223",
      "city": "New Ark",
      "state": "California",
      "country": "IE",
      "address_lines": [
        "ABC#TEG"
      ],
      "proxy_id": "qwerty@kmail",
      "account": "5589076",
      "prvt_id": "HJK876",
      "birth_province": "California",
      "department": "Mortgage",
      "sub_department": "Car",
      "building_name": "Antella",
      "floor": "9th",
      "post_box": "Calst",
      "room": "999",
      "town_location_name": "New Ark",
      "district_name": "New Ark",
      "anybic": "POLVIE20",
      "lei": "POLVIE20XXX",
      "issuer": "QRS pvt ltd"
    },
    "ultimate_debtor": {
      "name": "Heri Tig",
      "birth_date": "1989-09-08",
      "birth_city": "New Jersey",
      "birth_country": "IE",
      "birth_province": "Cali",
      "anybic": "ABKLIE20",
      "lei": "ABKLIE20XXX",
      "issuer": "JKL pvt ltd"
    },
    "ultimate_creditor": {
      "name": "Karl Lewis",
      "org_id": "55879VB",
      "birth_province": "Cali",
      "anybic": "ABCJIE20",
      "lei": "ABCJIE20XXX",
      "issuer": "VBH pvt ltd"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "reasons": {
      "code": "AC03",
      "description": "InvalidCreditorAccountNumber"
    },
    "requestor_bank_id": "0027849",
    "requestor_issuer": "ABCDFHGY765432",
    "requestor_lei": "ABCDEFGH123",
    "requestor_name": "Khalq",
    "requestor_org_id": "1234567",
    "status": {
      "code": "RCVD",
      "date_time": "2023-01-10T08:59:10.489Z",
      "description": "Received"
    }
  }
}
```

**SDK Code**

```python Status - ValidRequest-For-Refund-SEPA
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidRequest-For-Refund-SEPA
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidRequest-For-Refund-SEPA
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidRequest-For-Refund-SEPA
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidRequest-For-Refund-SEPA
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidRequest-For-Refund-SEPA
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidRequest-For-Refund-SEPA
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidRequest-For-Refund-SEPA
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidResponsetoRequest-For-Refund

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af54y8",
  "creation_date_time": "2023-01-10T08:50:10.489Z",
  "message_type": "RRFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "clearing_reference": "7634an78543",
    "instructed_amount": 144.56,
    "instructed_currency": "USD",
    "value_date": "2023-01-01",
    "debtor": {
      "bank_id": "021000089",
      "name": "John M",
      "street_name": "1515 3rd Street",
      "building_number": "A1234",
      "postal_code": "94158",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "org_id": "12333333",
      "birth_date": "1950-09-26",
      "birth_city": "San Francisco",
      "birth_country": "US"
    },
    "creditor": {
      "bank_id": "000000010",
      "name": "BeakalWoldemariam",
      "street_name": "5th Street",
      "building_number": "123444",
      "postal_code": "22079",
      "city": "Lorton",
      "state": "CA",
      "country": "US",
      "org_id": "6563",
      "birth_date": "1967-11-27",
      "birth_city": "San Francisco",
      "birth_country": "US"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "decision_code": "IPAY",
    "instructed_amount": 144.56,
    "instructed_currency": "USD",
    "interbank_settlement_date": "2023-01-01",
    "method": "RTGS",
    "status": {
      "code": "RCVD",
      "date_time": "2023-01-10T08:59:10.489Z",
      "description": "Received"
    }
  }
}
```

**SDK Code**

```python Status - ValidResponsetoRequest-For-Refund
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidResponsetoRequest-For-Refund
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidResponsetoRequest-For-Refund
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidResponsetoRequest-For-Refund
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidResponsetoRequest-For-Refund
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidResponsetoRequest-For-Refund
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidResponsetoRequest-For-Refund
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidResponsetoRequest-For-Refund
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidResponsetoRequest-For-Refund-SEPA

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af54y8",
  "creation_date_time": "2023-01-10T08:50:10.489Z",
  "message_type": "RRFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "instructed_amount": 144.56,
    "instructed_currency": "EUR",
    "value_date": "2023-01-01",
    "message_name_identification": "",
    "category_purpose": "YUOP",
    "unstructured_remittance_info": [
      "More details of transaction"
    ],
    "structured_remittance_info": {
      "creditor_reference_information_code": "RADM",
      "creditor_reference": "More details"
    },
    "debtor": {
      "bank_id": "CITI0000027",
      "name": "Chris Topher",
      "street_name": "123 street",
      "building_number": "67",
      "postal_code": "196278",
      "city": "Belfast",
      "state": "California",
      "country": "IE",
      "address_lines": [
        "ABC#GFD"
      ],
      "org_id": "HIDC3344",
      "proxy_id": "a93d@gmail.com",
      "account": "520993444",
      "department": "Loan",
      "sub_department": "Personal",
      "building_name": "Bird View",
      "floor": "3rd",
      "post_box": "Bhesil Dist",
      "room": "234",
      "town_location_name": "Belfast",
      "district_name": "Belfast",
      "anybic": "ABCDIE20",
      "lei": "ABCDIE20XXX",
      "issuer": "ABC pvt ltd"
    },
    "creditor": {
      "bank_id": "TYEG6758",
      "name": "Retin Sew",
      "street_name": "4th Street",
      "building_number": "29",
      "postal_code": "901223",
      "city": "New Ark",
      "state": "California",
      "country": "IE",
      "address_lines": [
        "ABC#TEG"
      ],
      "proxy_id": "qwerty@kmail",
      "account": "5589076",
      "prvt_id": "HJK876",
      "birth_province": "California",
      "department": "Mortgage",
      "sub_department": "Car",
      "building_name": "Antella",
      "floor": "9th",
      "post_box": "Calst",
      "room": "999",
      "town_location_name": "New Ark",
      "district_name": "New Ark",
      "anybic": "POLVIE20",
      "lei": "POLVIE20XXX",
      "issuer": "QRS pvt ltd",
      "message_name_identification": "ABCD12345",
      "purpose": "SALA"
    },
    "ultimate_debtor": {
      "name": "Heri Tig",
      "birth_date": "1989-09-08",
      "birth_city": "New Jersey",
      "birth_country": "IE",
      "birth_province": "Cali",
      "prvt_id": "hdhfhahah",
      "anybic": "ABKLIE20",
      "lei": "ABKLIE20XXX",
      "issuer": "JKL pvt ltd"
    },
    "ultimate_creditor": {
      "name": "Karl Lewis",
      "org_id": "55879VB",
      "birth_province": "Cali",
      "anybic": "ABCJIE20",
      "lei": "ABCJIE20XXX",
      "issuer": "VBH pvt ltd"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "decision_code": "RJCR",
    "method": "RT1",
    "reasons": {
      "code": "AM04"
    },
    "status": {
      "code": "RCVD",
      "date_time": "2023-01-10T08:59:10.489Z",
      "description": "Received"
    }
  }
}
```

**SDK Code**

```python Status - ValidResponsetoRequest-For-Refund-SEPA
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidResponsetoRequest-For-Refund-SEPA
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidResponsetoRequest-For-Refund-SEPA
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidResponsetoRequest-For-Refund-SEPA
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidResponsetoRequest-For-Refund-SEPA
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidResponsetoRequest-For-Refund-SEPA
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidResponsetoRequest-For-Refund-SEPA
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidResponsetoRequest-For-Refund-SEPA
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - InvalidResponsetoRequest-For-Refund

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af54y8",
  "creation_date_time": "2023-01-10T07:56:11.489Z",
  "message_type": "RRFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "clearing_reference": "7634an78543",
    "instructed_amount": 231.54,
    "instructed_currency": "USD",
    "value_date": "2023-01-02",
    "debtor": {
      "bank_id": "021000089",
      "name": "John M",
      "street_name": "1515 3rd Street",
      "building_number": "A1234",
      "postal_code": "94158",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "org_id": "12333333",
      "birth_date": "1950-09-26",
      "birth_city": "San Francisco",
      "birth_country": "US"
    },
    "creditor": {
      "bank_id": "000000033",
      "name": "BeakalWoldemariam",
      "street_name": "5th Street",
      "building_number": "123576",
      "postal_code": "22089",
      "city": "Lorton",
      "state": "CA",
      "country": "US",
      "org_id": "6561",
      "birth_date": "1967-11-27",
      "birth_city": "San Francisco",
      "birth_country": "US"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "decision_code": "RJCR",
    "instructed_amount": 144.56,
    "instructed_currency": "USD",
    "interbank_settlement_date": "2023-01-01",
    "reasons": {
      "code": "AM04"
    },
    "status": {
      "code": "RJCT",
      "date_time": "2023-01-10T07:50:10.489Z",
      "description": "Rejected",
      "reasons": {
        "code": "AC03",
        "description": "Creditor account number invalid or missing"
      }
    }
  }
}
```

**SDK Code**

```python Status - InvalidResponsetoRequest-For-Refund
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - InvalidResponsetoRequest-For-Refund
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - InvalidResponsetoRequest-For-Refund
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - InvalidResponsetoRequest-For-Refund
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - InvalidResponsetoRequest-For-Refund
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - InvalidResponsetoRequest-For-Refund
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - InvalidResponsetoRequest-For-Refund
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - InvalidResponsetoRequest-For-Refund
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidPayment-Confirmation-Request

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af89j4",
  "creation_date_time": "2023-01-10T07:45:10.489Z",
  "message_type": "PCR",
  "original_payment": {
    "instruction_id": "2017111202120020101BSTRF00000000011"
  },
  "message": {
    "creditor": {
      "account": "900900981",
      "bank_id": "89332",
      "birth_city": "New Ark",
      "birth_country": "US",
      "birth_date": "2023-01-03",
      "building_number": "V7839",
      "city": "New York",
      "country": "US",
      "name": "Yokal",
      "org_id": "AS2345",
      "postal_code": "50098",
      "state": "CA",
      "street_name": "1212 7th Street"
    },
    "debtor": {
      "account": "98078",
      "bank_branch_id": "BAC456",
      "bank_id": "099289",
      "birth_city": "New York",
      "birth_country": "US",
      "birth_date": "2023-01-02",
      "building_number": "A6378",
      "city": "San Francisco",
      "country": "US",
      "name": "Karl",
      "org_id": "GH4657",
      "postal_code": "94158",
      "state": "CA",
      "street_name": "1212 4th Street"
    },
    "method": {
      "country": "US",
      "instructed_currency": "USD",
      "method": "IP",
      "network": "RTP",
      "type": "CT"
    },
    "transaction": {
      "advice_address": "mat@qmail.com",
      "advice_id": "234",
      "advice_type": "EMAL",
      "category": "CONSUMER",
      "creation_date_time": "2023-01-10T07:45:10.489Z",
      "end_to_end_id": "r/434SKtUcdGT",
      "instructed_amount": 192.33,
      "instruction_id": "2017111202120020101BSTRF00000000011",
      "interbank_settlement_date": "2022-09-13",
      "network_id": "889923283934",
      "purpose": "PAYR",
      "settlement_amount": 132.45,
      "settlement_currency": "USD",
      "type": "credit",
      "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af87p5",
      "unstructured_remittance_info": [
        "This is example"
      ],
      "value_date": "1992-07-16"
    },
    "ultimate_debtor": {
      "building_number": "B5829",
      "city": "Vegas",
      "country": "US",
      "name": "Himan",
      "postal_code": "89934",
      "state": "CA",
      "street_name": "1345 4th Street"
    },
    "ultmate_creditor": {
      "building_number": "G6178",
      "city": "New York",
      "country": "US",
      "name": "Pits",
      "postal_code": "90213",
      "state": "CA",
      "street_name": "4th Avenue"
    }
  }
}
```

**SDK Code**

```python Status - ValidPayment-Confirmation-Request
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidPayment-Confirmation-Request
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidPayment-Confirmation-Request
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidPayment-Confirmation-Request
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidPayment-Confirmation-Request
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidPayment-Confirmation-Request
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidPayment-Confirmation-Request
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidPayment-Confirmation-Request
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidPending-Payment-Confirmation-Request

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af89j4",
  "creation_date_time": "2023-02-10T07:45:10.489Z",
  "message_type": "RPCR",
  "message": {
    "status": {
      "code": "PDNG",
      "date_time": "2023-01-10T07:57:10.489Z",
      "description": "Pending"
    },
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7"
  }
}
```

**SDK Code**

```python Status - ValidPending-Payment-Confirmation-Request
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidPending-Payment-Confirmation-Request
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidPending-Payment-Confirmation-Request
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidPending-Payment-Confirmation-Request
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidPending-Payment-Confirmation-Request
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidPending-Payment-Confirmation-Request
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidPending-Payment-Confirmation-Request
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidPending-Payment-Confirmation-Request
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidRequest-For-Payment

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af89j4",
  "creation_date_time": "2023-02-10T07:45:10.489Z",
  "message_type": "RFP",
  "message": {
    "creditor": {
      "account": "900900981",
      "account_name": "Mike",
      "bank_id": "89332",
      "birth_city": "New Ark",
      "birth_country": "US",
      "birth_date": "2023-01-03",
      "building_number": "V7839",
      "city": "New York",
      "country": "US",
      "name": "Yokal",
      "org_id": "AS2345",
      "phone_number": "+1-555-123-4567",
      "postal_code": "50098",
      "state": "CA",
      "street_name": "1212 7th Street"
    },
    "debtor": {
      "account": "98078",
      "account_name": "Yuzi",
      "bank_id": "099289",
      "birth_city": "New York",
      "birth_country": "US",
      "birth_date": "2023-01-02",
      "building_number": "A6378",
      "city": "San Francisco",
      "country": "US",
      "name": "Karl",
      "org_id": "GH4657",
      "postal_code": "94158",
      "state": "CA",
      "street_name": "1212 4th Street"
    },
    "method": {
      "country": "US",
      "instructed_currency": "USD",
      "method": "IP",
      "network": "RTP"
    },
    "transaction": {
      "amt_mod_allowed": true,
      "category": "CONSUMER",
      "creation_date_time": "2023-01-10T07:45:10.489Z",
      "discount_amount": 0,
      "end_to_end_id": "r/434SKtUcdGT",
      "expiry_date": "1992-07-18",
      "expiry_date_time": "2023-01-12T07:45:10.489Z",
      "full_amount": 192.33,
      "instructed_amount": 192.33,
      "instruction_id": "2017111202120020101BSTRF00000000011",
      "local_reference": "7634an78543",
      "payment_information_id": "2023111202120020101BSRFP00000000013",
      "purpose": "INVS",
      "requested execution_date": "1992-07-17",
      "requested execution_date_time": "2023-01-11T07:45:11.489Z",
      "settlement_currency": "USD",
      "status": {
        "code": "PRES",
        "date_time": "2023-01-10T08:59:10.487Z",
        "description": "Request For Payment has been presented to the Debtor"
      },
      "type": "debit",
      "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af87p5",
      "unstructured_remittance_info": [
        "This is example"
      ]
    },
    "ultimate_debtor": {
      "building_number": "B5829",
      "city": "Vegas",
      "country": "US",
      "name": "Himan",
      "postal_code": "89934",
      "state": "CA",
      "street_name": "1345 4th Street"
    },
    "ultmate_creditor": {
      "building_number": "G6178",
      "city": "New York",
      "country": "US",
      "name": "Pits",
      "postal_code": "90213",
      "state": "CA",
      "street_name": "4th Avenue"
    }
  }
}
```

**SDK Code**

```python Status - ValidRequest-For-Payment
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidRequest-For-Payment
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidRequest-For-Payment
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidRequest-For-Payment
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidRequest-For-Payment
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidRequest-For-Payment
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidRequest-For-Payment
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidRequest-For-Payment
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidRequest-for-Information-Compliance

**Response**

```json
{
  "message_id": "7f0aa5afdf7c4850b2823b7eae259450",
  "creation_date_time": "2024-10-16T14:13:10.953Z",
  "message_type": "RFICS",
  "original_payment": {
    "end_to_end_id": "CCAPI0603180692",
    "uetr": "5e9058c5-ef9e-40c9-aff4-f14bd8af6ae0"
  },
  "message": {
    "rfics": {
      "additional_details_requested": "Please provide additional details for this transaction",
      "alert_id": "209339209123",
      "fieldlevel_requests": [
        {
          "field_id": "M12345",
          "field_name": "UltimateCreditor.name",
          "field_value": "Mohammed",
          "input_type": "individual"
        },
        {
          "field_id": "M12346",
          "field_name": "UltimateDebtor.name",
          "field_value": "Jesus",
          "input_type": "entity"
        }
      ],
      "purpose_of_transaction_required": "Y",
      "request_date_time": "2023-01-10T07:45:10.489Z",
      "request_id": "123546"
    },
    "transaction": {
      "end_to_end_id": "30820231",
      "reasons": {
        "code": "RECI",
        "description": "Transaction is in compliance review request for further information"
      },
      "status": {
        "code": "PDNG",
        "date_time": "2023-08-30T15:59:41.048Z",
        "description": "Pending"
      },
      "uetr": "5671c145-df7c-47df-b949-8824ddd776a7"
    }
  }
}
```

**SDK Code**

```python Status - ValidRequest-for-Information-Compliance
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidRequest-for-Information-Compliance
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidRequest-for-Information-Compliance
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidRequest-for-Information-Compliance
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidRequest-for-Information-Compliance
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidRequest-for-Information-Compliance
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidRequest-for-Information-Compliance
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidRequest-for-Information-Compliance
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidResponsetoRequest-For-Information-Compliance

**Response**

```json
{
  "message_id": "7f0aa5afdf7c4850b2823b7eae259450",
  "creation_date_time": "2024-10-16T14:13:10.953Z",
  "message_type": "RRFICS",
  "original_payment": {
    "end_to_end_id": "CCAPI0603180692",
    "uetr": "5e9058c5-ef9e-40c9-aff4-f14bd8af6ae0"
  },
  "message": {
    "rrfics": {
      "additional_details": "Payment was sent to vendor ABC for order number 12345",
      "alert_id": "209339209123",
      "fieldlevel_responses": [
        {
          "field_id": "M12345",
          "field_name": "UltimateCreditor.name",
          "field_value": "Mohammed",
          "individual": {
            "birth_date": "1967-11-27",
            "building_number": "24324",
            "city": "Lorton",
            "city_of_birth": "San Francisco",
            "country": "US",
            "country_of_birth": "US",
            "country_of_residence": "US",
            "name": "John Terry Weiss",
            "nationality": "American",
            "occupation": "occupation",
            "postal_code": "22079",
            "state": "VA",
            "street_name": "BeakalWoldemariam"
          }
        },
        {
          "entity": {
            "building_number": "324324",
            "city": "Lorton",
            "country": "US",
            "country_of_incorporation": "US",
            "global_presence": "Thailand, India, Japan",
            "line_of_business": "Transportation",
            "name": "Drivers4Hire",
            "ownership_details": "Uber US LLC",
            "postal_code": "22079",
            "registration_number": "US1234",
            "state": "VA",
            "street_name": "BeakalWoldemariam",
            "website": "www.Drivers4Hire.com"
          },
          "field_id": "M12346",
          "field_name": "UltimateDebtor.name",
          "field_value": "Jesus"
        }
      ],
      "purpose_of_transaction": "This payment is for order number 12345",
      "request_id": "123456",
      "response_date_time": "2023-01-10T08:45:10.489Z"
    }
  }
}
```

**SDK Code**

```python Status - ValidResponsetoRequest-For-Information-Compliance
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidResponsetoRequest-For-Information-Compliance
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidResponsetoRequest-For-Information-Compliance
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidResponsetoRequest-For-Information-Compliance
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidResponsetoRequest-For-Information-Compliance
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidResponsetoRequest-For-Information-Compliance
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidResponsetoRequest-For-Information-Compliance
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidResponsetoRequest-For-Information-Compliance
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Status - ValidRequest-For-Refund-Uk

**Response**

```json
{
  "message_id": "bea176bf1d5d48cc88fb1d0e06af90g5",
  "creation_date_time": "2023-01-10T07:45:10.489Z",
  "message_type": "RFR",
  "original_payment": {
    "message_id": "M2017111202120020101BTRF00000000011",
    "creation_date_time": "2023-01-01T17:06:49.712Z",
    "instruction_id": "2017111202120020101BSTRF00000000011",
    "end_to_end_id": "I364836174511668",
    "transaction_id": "20230411021000089T1BXPAY09462848400",
    "uetr": "bea176bf-1d5d-48cc-88fb-1d0e06af43e7",
    "instructed_amount": 144.56,
    "instructed_currency": "GBP",
    "value_date": "2023-01-01",
    "category_purpose": "YUOP",
    "unstructured_remittance_info": [
      "More details of transaction"
    ],
    "structured_remittance_info": {
      "creditor_reference": "More details"
    },
    "purpose": "PAYR",
    "debtor": {
      "bank_id": "CITI0000027",
      "account": "520993444"
    },
    "creditor": {
      "bank_id": "TYEG6758",
      "account": "5589076",
      "prvt_id": "HJK876"
    }
  },
  "message": {
    "case_id": "M20230411021000089T1BXPY09462848401",
    "reasons": {
      "code": "AC03",
      "description": "InvalidCreditorAccountNumber"
    },
    "requestor_name": "Khalq",
    "status": {
      "code": "RCVD",
      "date_time": "2023-01-10T08:59:10.489Z",
      "description": "Received"
    }
  }
}
```

**SDK Code**

```python Status - ValidRequest-For-Refund-Uk
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a"

querystring = {"client_id":"6d3cf821-db6d-496d-bec0-064a362e9c31"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Status - ValidRequest-For-Refund-Uk
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Status - ValidRequest-For-Refund-Uk
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Status - ValidRequest-For-Refund-Uk
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Status - ValidRequest-For-Refund-Uk
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Status - ValidRequest-For-Refund-Uk
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Status - ValidRequest-For-Refund-Uk
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Status - ValidRequest-For-Refund-Uk
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/paymentservices/v1/payments/uetr/messages/0c4fb98bd77a446896bb0c88b3b8f75a?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```