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

# Validating the beneficiary/bank details

POST https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations
Content-Type: application/json

This endpoint allows you to validate beneficiary/bank details with the use of combination of parameters

Reference: https://citi-demo.ferndocs.com/enterprise/enterprises/api-reference/additional-services/ccapi-payments-json/validation-services/express-beneficiary-validation

## 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

### 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

### Headers

- `Idempotency-Id` (string, required) — Your unique identification for a POST request - Maximum length is 128. - CitiConnect API responds with an error (HTTP status 4XX) if your POST request idempotency identification value is a duplicate across a recent history of idempotency identifications in Citi's database. - If you don't receive any response (HTTP status 2XX, 4XX or 5XX) from Citi to your POST request and you wish to retry, reinitiate your request with the same idempotency identification to prevent accidental duplicate payment.

### Body (application/json)

This endpoint expects a Validation-Request.

- `method` (ValidationRequestMethod, required)
- `uetr` (string, optional) — UUID v4 format unique end-to-end transaction reference
- `end_to_end_id` (string, optional) — Client provided reference number. - For Single Euro Payments Area Verification of Payee (SEPA VoP), this parameter is mandatory with max length 35 if method.penny_test = PENNY - For UK bank availability/reachability, this parameter is not applicable - For US Early Warning System (EWS), this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `debtor` (ValidationRequestDebtor, optional)
- `creditor` (ValidationRequestCreditor, optional)

## Response

### 200

OK

- `uetr` (string, required) — UUID v4 format unique end-to-end transaction reference
- `method` (ValidationResponseMethod, required)
- `status` (ValidationResponseStatus, required)
- `end_to_end_id` (string, optional) — Client provided reference number. - For SEPA VoP, this parameter is optional with max length 35 - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For Global Mastercard validation, this parameter is not applicable
- `debtor` (ValidationResponseDebtor, optional)
- `creditor` (ValidationResponseCreditor, optional)
- `reasons` (ValidationResponseReasons, optional)
- `response` (ValidationResponseResponse, 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)

### 409 Conflict Error

Conflict

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

### 415 Unsupported Media Type Error

Unsupported Media Type

- `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

### ValidationRequestMethod

- `method` (enum, required) — Method specified by the debtor for the validation
  - Allowed values: `IBAN`, `SORTCODE`, `NC`, `BIC`, `BANKACCOUNT`, `CARD`, `PAYMENTID`, `ID`
- `type` (enum, required) — Message type (e.g., CT for credit transfer, AER for Account Enquiry Request) - For US EWS, this parameter is mandatory - For UK, this parameter is mandatory - For SEPA VoP, this parameter is mandatory - For Global Mastercard Validation, this parameter is mandatory - Ownership - Account ownership is limited to validation of correct owner, hence the account number or equivalent (i.e Virtual account) and Name - Attributes - Attributes define the properties of the object, for an account the properties should include Status, type of account, status of account, the address of the account etc. - Structure - Structure refers to the mod 97 and the length as per the country of IBAN - TAXID - Validation of individual or corporate tax id/tax documentation - REACHABILITY - Bank is reachable on a given network - AVAILABILITY - Availability of a bank to receive a particular credit
  - Allowed values: `REACHABILITY`, `AVAILABILITY`, `Structure`, `Ownership`, `Attributes`, `TAXID`
- `country` (enum, optional) — ISO 3166 Alpha-2 code for the transaction country - For UK bank availability/reachability, this parameter is Mandatory with enum Value GB - For US EWS, this parameter is Mandatory with enum Value US - For UK, this parameter is Mandatory with enum Value GB - For IN PAN, this parameter is Mandatory with enum Value IN - For SEPA VoP, this parameter is Mandatory with enum Value - For Global Mastercard Validation, the method.country parameter is optional for World link clients when sending card validation request to CCAPI. if the method.method parameter is classified as card, its is treated as Mastercard Validation by default and the validation logic is applied globally it not restricted to any specific country or region
  - Allowed values: `GB`, `US`, `IN`, `AT`, `BE`, `FI`, `FR`, `DE`, `GR`, `IE`, `IT`, `LU`, `NL`, `PT`, `SK`, `ES`, `BG`, `CZ`, `DK`, `HU`, `NO`, `PL`, `RO`, `SE`
- `scheme` (enum, optional) — Scheme that is a part of validation - For UK bank availability/reachability, this parameter is mandatory with value FPS - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard validation, this parameter is not applicable
  - Allowed values: `FPS`, `IP`, `ACH`, `RTGS`
- `penny_test` (enum, optional) — This parameter enables selection of penny or non penny validations - Optional for SEPA VoP
  - Allowed values: `NONPENNY`, `PENNY`

### ValidationRequestDebtor

- `account` (string, optional) — Bank account held with CITI - For UK bank availability/reachability, this parameter is mandatory and max length is 40 - For US EWS, this parameter is mandatory and max length is 40 - For UK, this parameter is mandatory and max length is 40 - For IN PAN, this parameter is mandatory and max length is 40 - For SEPA VoP, this parameter is mandatory and max length is 40 - For Global Mastercard Validation this parameter is not applicable
- `name` (string, optional) — Debtor Account Name. - For UK bank availability/reachability, this parameter is optional and max length is 140 - For US EWS, this parameter is optional and max length is 140 - For UK, this parameter is optional and max length is 140 - For IN PAN, this parameter is optional and max length is 140 - For Global Mastercard Validation this parameter is not applicable - For SEPA VoP, this parameter is optional and max length is 140
- `id` (string, optional) — Debtor ID - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is Mandatory and max length is 40 and for Global Mastercard Validation CCAPI will pass the world link client id under the id parameter

### ValidationRequestCreditor

- `bank_id` (string, optional) — Receiving Financial Institution BIC. - For UK bank availability/reachability, this parameter is conditional and the condition is if method.method= NC, SORTCODE, BIC then this parameter should be present. If method.method = NC/SORTCODE, then length should be exactly 6. If method.method = BIC, then length should be 8 or 11 - For US EWS, this parameter is mandatory and length should be 9 if routing/clearing code is populated - For UK, this parameter is mandatory and length should be exactly 6 or 8 or 11 characters - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `iban` (string, optional) — Creditor IBAN number - For UK bank availability/reachability, this parameter is conditional with max length 22.Condition is if method.method= IBAN then this parameter should be present - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 22.Condition is if method.method= IBAN then this parameter should be present.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is mandatory and max length is 40 - For Global Mastercard Validation this parameter is not applicable
- `account` (string, optional) — Creditor Account Number. - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional and max length is 17.Condition is if method.method= BANKACCOUNT then this parameter should be present - For UK, this parameter is conditional and max length is 17.Condition is if method.method= BANKACCOUNT then this parameter should be present.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `name` (string, optional) — Creditor Account Name. - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is mandatory and max length is 87. Please provide first middle(if any) last name in this sequence with spaces - For UK, this parameter is mandatory and max length is 140. Please provide first middle(if any) last name in this sequence with spaces - For IN PAN, this parameter is mandatory and max length is 85. Please provide first middle(if any) last name in this sequence with spaces - For Global Mastercard Validation this parameter is not applicable - For SEPA VoP, this parameter is mandatory and max length is 70. Please provide first middle(if any) last name in this sequence with spaces
- `father_name` (string, optional) — Creditor' Father's Name - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is optional and max length is 75. Please provide first middle(if any) last name in this sequence with spaces - For Global Mastercard Validation this parameter is not applicable - For SEPA VoP, this parameter is not applicable
- `proxy_id` (string, optional) — Creditor Proxy ID - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 17.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `wallet` (string, optional) — Creditor wallet details - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 17.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `address_lines` (list of string, optional) — Creditor's address lines - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional and allowed 2 lines with each line max length of 40 - For UK, this parameter is optional and allowed 2 lines with each line max length of 40 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `street_name` (string, optional) — Creditor's street_name - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 70 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `building_number` (string, optional) — Creditor's building_number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 16 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `postal_code` (string, optional) — Creditor's postal_code - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 16 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard validation, this parameter is not applicable
- `city` (string, optional) — Creditor's city - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 25 - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `state` (string, optional) — Creditor's state - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 2 - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `country` (string, optional) — Creditor's country - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 2 - For UK, this parameter is optional with max length 2 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Creditor's birth date - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional - For UK, this parameter is optional - For IN PAN, this parameter is mandatory - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `home_phone_number` (string, optional) — Creditor's home phone number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 34 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `work_phone_number` (string, optional) — Creditor's work phone number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 34 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation this parameter is not applicable
- `document` (ValidationRequestCreditorDocument, optional)
- `card` (ValidationRequestCreditorCard, optional)
- `national_id` (string, optional) — Creditor's national identification - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is optional,numeric and with length equal to 4 - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable

### ValidationResponseMethod

- `method` (enum, required) — Method specified by the debtor for the validation
  - Allowed values: `IBAN`, `SORTCODE`, `NC`, `BIC`, `BANKACCOUNT`, `CARD`, `PAYMENTID`, `ID`
- `type` (enum, required) — Message type (e.g., CT for credit transfer, AER for Account Enquiry Request) - For US EWS, this parameter is mandatory - For UK, this parameter is mandatory - For SEPA VoP, this parameter is mandatory - For Global Mastercard Validation, this parameter is not applicable - Ownership - Account ownership is limited to validation of correct owner, hence the account number or equivalent (i.e Virtual account) and Name - Attributes - Attributes define the properties of the object, for an account the properties should include Status, type of account, status of account, the address of the account etc. - Structure - Structure refers to the mod 97 and the length as per the country of IBAN - TAXID - Validation of individual or corporate tax id/tax documentation - REACHABILITY - Bank is reachable on a given network - AVAILABILITY - Availability of a bank to receive a particular credit
  - Allowed values: `REACHABILITY`, `AVAILABILITY`, `Structure`, `Ownership`, `Attributes`, `TAXID`
- `country` (enum, optional) — ISO 3166 Alpha-2 code for the transaction country - For UK bank availability/reachability, this parameter is Mandatory with enum Value GB - For US EWS, this parameter is Mandatory with enum Value US - For UK, this parameter is Mandatory with enum Value GB - For IN PAN, this parameter is Mandatory with enum Value IN - For SEPA VoP, parameter is Mandatory with enum Value - For Global Mastercard Validation, the method.country parameter is optional for World link clients when sending card validation request to CCAPI. if the method.method parameter is classified as card, its is treated as Mastercard Validation by default and the validation logic is applied globally it not restricted to any specific country or region
  - Allowed values: `GB`, `US`, `IN`, `AT`, `BE`, `FI`, `FR`, `DE`, `GR`, `IE`, `IT`, `LU`, `NL`, `PT`, `SK`, `ES`, `BG`, `CZ`, `DK`, `HU`, `NO`, `PL`, `RO`, `SE`
- `scheme` (enum, optional) — Scheme that is a part of validation - For UK bank availability/reachability, this parameter is mandatory with value FPS - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `FPS`, `IP`, `ACH`, `RTGS`
- `penny_test` (enum, optional) — This parameter enables selection of penny or non penny validations - Optional for SEPA VoP - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `NONPENNY`, `PENNY`

### ValidationResponseStatus

- `date_time` (datetime, required) — UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - Date time of transaction status
- `code` (enum, required) — ISO 20022 acknowledgement status code
  - Allowed values: `ACCC`, `RJCT`
- `description` (string, required) — Status code description - ACCC - Completed - RJCT - Rejected

### ValidationResponseDebtor

- `account` (string, optional) — Bank account held with CITI - For UK bank availability/reachability, this parameter is optional and max length is 40 - For US EWS, this parameter is optional and max length is 40 - For UK, this parameter is optional and max length is 40 - For IN PAN, this parameter is optional and max length is 40 - For SEPA VoP, this parameter is optional and max length is 40 - For Global Mastercard Validation this parameter is not applicable
- `name` (string, optional) — Debtor Account Name. - For UK bank availability/reachability, this parameter is optional and max length is 140 - For US EWS, this parameter is optional and max length is 140 - For UK, this parameter is optional and max length is 140 - For IN PAN, this parameter is optional and max length is 140 - For SEPA VoP, this parameter is optional and max length is 140 - For Global Mastercard Validation, this parameter is not applicable

### ValidationResponseCreditor

- `bank_id` (string, optional) — Receiving Financial Institution BIC. - For UK bank availability/reachability, this parameter is conditional and the condition is if method.method= NC, SORTCODE, BIC then this parameter should be present. If method.method = NC/SORTCODE, then length should be exactly 6. If method.method = BIC, then length should be 8 or 11 - For US EWS, this parameter is mandatory and length should be 9 if routing/clearing code is populated - For UK, this parameter is mandatory and length should be exactly 6 or 8 or 11 characters - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `iban` (string, optional) — Creditor IBAN number - For UK bank availability/reachability, this parameter is conditional with max length 22.Condition is if method.method= IBAN then this parameter should be present - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 22.Condition is if method.method= IBAN then this parameter should be present.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is mandatory and max length is 40 - For Global Mastercard Validation, this parameter is not applicable
- `account` (string, optional) — Creditor Account Number. - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional and max length is 17.Condition is if method.method= BANKACCOUNT then this parameter should be present.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For UK, this parameter is conditional and max length is 17.Condition is if method.method= BANKACCOUNT then this parameter should be present.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `name` (string, optional) — Creditor Account Name. - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is mandatory and max length is 87. Please provide first middle(if any) last name in this sequence with spaces - For UK, this parameter is optional and max length is 140. Please provide first middle(if any) last name in this sequence with spaces - For IN PAN, this parameter is mandatory and max length is 85. Please provide first middle(if any) last name in this sequence with spaces - For SEPA VoP, this parameter is mandatory and max length is 70. - For Global Mastercard Validation, this parameter is not applicable
- `father_name` (string, optional) — Creditor' Father's Name. - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is optional and max length is 75. Please provide first middle(if any) last name in this sequence with spaces - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `proxy_id` (string, optional) — Creditor Proxy ID - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 17.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `wallet` (string, optional) — Creditor wallet details - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is conditional and max length is 17.Either creditor.account or creditor.proxy_id or creditor.wallet or creditor.IBAN should be passed by client - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `address_lines` (list of string, optional) — Creditor's address lines - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional and allowed 2 lines with each line max length of 40 - For UK, this parameter is optional and allowed 2 lines with each line max length of 40 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `street_name` (string, optional) — Creditor's street_name - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 70 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `building_number` (string, optional) — Creditor's building_number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 16 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `postal_code` (string, optional) — Creditor's postal_code - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 16 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `city` (string, optional) — Creditor's city - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 25 - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `state` (string, optional) — Creditor's state - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 2 - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `country` (string, optional) — Creditor's country - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 2 - For UK, this parameter is optional with max length 2 - For SEPA VoP, this parameter is not applicable - For IN PAN, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `birth_date` (date, optional) — ISO 8601 (YYYY-MM-DD), Creditor's birth date - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional - For UK, this parameter is optional - For IN PAN, this parameter is optional - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `home_phone_number` (string, optional) — Creditor's home phone number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 34 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `work_phone_number` (string, optional) — Creditor's work phone number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is optional with max length 10 - For UK, this parameter is optional with max length 34 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `document` (ValidationResponseCreditorDocument, optional)
- `card` (ValidationResponseCreditorCard, optional)

### ValidationResponseReasons

- `code` (string, optional) — Reason code
- `description` (string, optional) — Reason code description

### ValidationResponseResponse

- `data_date_time` (datetime, optional) — Contains the provider datetime else current Datetime in UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) - For UK bank availability/reachability, this parameter is mandatory - For US EWS, this parameter is mandatory - For UK, this parameter is mandatory - For IN PAN, this parameter is mandatory - For SEPA VoP, this parameter is mandatory - for Mastercard validation this parameter is mandatory
- `type` (enum, optional) — Validation based on historic or real time data - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is mandatory - For UK, this parameter is mandatory - For IN PAN, this parameter is mandatory - For SEPA VoP, this parameter is mandatory - HR - Validation based on Historic Data in case there is no real time data - RT - Validation based on real time data and data source is present - ERROR - Erroneous issue - For Mastercard validation, this parameter is mandatory
  - Allowed values: `HR`, `RT`, `ERROR`
- `validation_risk_score` (enum, optional) — Risk appetite of utilizing this account. This parameter will be populated only in case of response.type = HR - For UK bank availability/reachability, this parameter is not applicable - For US, this parameter is conditional - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is optional - HIGH - There is high risk the data subject to validations is inaccurate as per the source. - MEDIUM - There is moderate risk the data subject to validations is inaccurate as per the source. - LOW- There is Low risk the data subject to validations is inaccurate as per the source. - UNKNOWN- The risk is unknown - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `HIGH`, `MEDIUM`, `LOW`, `UNKNOWN`, `NA`
- `account` (ValidationResponseResponseAccount, optional)
- `iban` (ValidationResponseResponseIban, optional)
- `txid` (ValidationResponseResponseTxid, optional)
- `bank` (ValidationResponseResponseBank, optional)
- `card` (ValidationResponseResponseCard, optional)

### 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

### ValidationRequestCreditorDocument

- `entity` (enum, optional) — Whether the document belongs to Business or Individual - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - If method.country= GB and method.method = BANKACCOUNT then creditor.document.entity is mandatory parameter - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `BUSINESS`, `PERSONAL`
- `type` (enum, optional) — Whether the document belongs to Business or Individual - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional - For IN PAN, this parameter is mandatory with applicable value TXID - Personal Code values - ARNU - AlienRegistrationNumber - CCPT - PassportNumber - CUST - CustomerIdentificationNumber - DRLC - DriversLicenseNumber - EMPL - EmployeeIdentificationNumber - NIDN - NationalIdentityNumber - SOSE - SocialSecurityNumber - TELE - TelephoneNumber - TXID - TaxIdentificationNumber - POID - PersonCommercialIdentification - Corporate Code values - BANK - BankPartyIdentification - CBID - Central Bank Identification Number - CHID - Clearing Identification Number - COID - CountryIdentificationCode - CUST - CustomerNumber - DUNS - Data Universal Numbering System - EMPL - EmployerIdentificationNumber - GS1G - GS1GLNIdentifier - SREN - SIREN - SRET - SIRET - TXID - Tax Identification Number - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `ARNU`, `CCPT`, `CUST`, `DRLC`, `EMPL`, `NIDN`, `SOSE`, `TELE`, `TXID`, `POID`, `BANK`, `CBID`, `CHID`, `COID`, `DUNS`, `GS1G`, `SREN`, `SRET`
- `number` (string, optional) — Creditor's document number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is mandatory with max length 10 - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `state` (string, optional) — Creditor's document state - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable

### ValidationRequestCreditorCard

- `number` (string, optional) — Creditor's card number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is mandatory with max length 34
- `currency` (string, optional) — Creditor's card currency - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is conditional with max length 3 when creditor.card.number is populated

### ValidationResponseCreditorDocument

- `entity` (enum, optional) — Whether the document belongs to Business or Individual - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `BUSINESS`, `PERSONAL`
- `type` (enum, optional) — Whether the document belongs to Business or Individual - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional - For SEPA VoP, this parameter is not applicable - For IN PAN, this parameter is optional - Personal Code values - ARNU - AlienRegistrationNumber - CCPT - PassportNumber - CUST - CustomerIdentificationNumber - DRLC - DriversLicenseNumber - EMPL - EmployeeIdentificationNumber - NIDN - NationalIdentityNumber - SOSE - SocialSecurityNumber - TELE - TelephoneNumber - TXID - TaxIdentificationNumber - POID - PersonCommercialIdentification - Corporate Code values - BANK - BankPartyIdentification - CBID - Central Bank Identification Number - CHID - Clearing Identification Number - COID - CountryIdentificationCode - CUST - CustomerNumber - DUNS - Data Universal Numbering System - EMPL - EmployerIdentificationNumber - GS1G - GS1GLNIdentifier - SREN - SIREN - SRET - SIRET - TXID - Tax Identification Number - For Global Mastercard Validation, this parameter is not applicable
  - Allowed values: `ARNU`, `CCPT`, `CUST`, `DRLC`, `EMPL`, `NIDN`, `SOSE`, `TELE`, `TXID`, `POID`, `BANK`, `CBID`, `CHID`, `COID`, `DUNS`, `GS1G`, `SREN`, `SRET`
- `number` (string, optional) — Creditor's document number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is optional with max length 10 - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable
- `state` (string, optional) — Creditor's document state - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is optional with max length 35 - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is not applicable

### ValidationResponseCreditorCard

- `number` (string, optional) — Creditor's card number - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard Validation, this parameter is mandatory with max length 34

### ValidationResponseResponseAccount

- `number_validation` (enum, optional) — Account validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is mandatory - MATCH - Validation based on account is a match - MISMATCH - Validation based on account is a mismatch - NA - Validation is not applicable - For Global Mastercard validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `name_validation` (enum, optional) — Name validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is mandatory - MATCH - Validation based on name is a match - MISMATCH - Validation based on name is a mismatch - PARTIALMATCH - Validation based on name is a partial match - NOTCHECKED - Validation not checked - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `PARTIALMATCH`, `NA`, `NOTCHECKED`
- `address_validation` (enum, optional) — Address validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on address is a match - MISMATCH - Validation based on address is a mismatch - PARTIALMATCH - Validation based on address is a partial match - NOTCHECKED - Validation not checked - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `PARTIALMATCH`, `NA`, `NOTCHECKED`
- `phone_validation` (enum, optional) — Phone number validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is conditional - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on phone number is a match - MISMATCH - Validation based on phone number is a mismatch - PARTIALMATCH - Validation based on phone number is a partial match - NOTCHECKED - Validation not checked - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `PARTIALMATCH`, `NA`, `NOTCHECKED`

### ValidationResponseResponseIban

- `structure_validation` (enum, optional) — IBAN mod 97 structure validation - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is conditional - For IN PAN, this parameter is not applicable - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on mod 97 is a match - MISMATCH - Validation based on mod 97 is a mismatch - NOTCHECKED - Validation not checked - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`, `NOTCHECKED`

### ValidationResponseResponseTxid

- `number_validation` (enum, optional) — Document number validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on document number is a match - MISMATCH - Validation based on document number is a mismatch - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `name_validation` (enum, optional) — Document name validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on document name is a match - MISMATCH - Validation based on document name is a mismatch - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `father_name_validation` (enum, optional) — Document father's name validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on document father's name is a match - MISMATCH - Validation based on document father's name is a mismatch - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `date_of_birth_validation` (enum, optional) — Date of birth validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on date of birth is a match - MISMATCH - Validation based on date of birth is a mismatch - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `status` (enum, optional) — Status of the tax id document - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - E- EXISTING AND VALID - F - Marked as Fake - X - Marked as Deactivated - D - Deleted - N - Record (PAN) Not Found in Income Tax Department (ITD) Database/Invalid PAN - EA - Existing and Valid but event marked as Amalgamation in ITD database - EC - Existing and Valid but event marked as Acquisition in ITD database - ED - Existing and Valid but event marked as Death in ITD database - EI - Existing and Valid but event marked as Dissolution in ITD database - EL - Existing and Valid but event marked as Liquidated in ITD database - EM - Existing and Valid but event marked as Merger in ITD database - EP - Existing and Valid but event marked as Partition in ITD database - ES - Existing and Valid but event marked as Split in ITD database - EU - Existing and Valid but event marked as Under Liquidation in ITD database - NA - Validation is not applicable - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `E`, `F`, `X`, `D`, `N`, `EA`, `EC`, `ED`, `EI`, `EL`, `EM`, `EP`, `ES`, `EU`, `NA`
- `seeding_status` (enum, optional) — Seeding status from underlying services - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - Y – Operative PAN - R - Inoperative PAN - NA -For all non-Individual PAN - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `Y`, `R`, `NA`
- `national_id_validation` (enum, optional) — National identification validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is conditional - For SEPA VoP, this parameter is not applicable - MATCH - Validation based on aadhar digits matched - MISMATCH - Validation based on if aadhar digits is a mismatch - NA - Aadhar digits were not received in response from tech backend - For Global Mastercard Validations, this parameter is not applicable
  - Allowed values: `MATCH`, `MISMATCH`, `NA`

### ValidationResponseResponseBank

- `is_reachable` (enum, optional) — Whether the bank is a part of the scheme (reachable) or not - Y - Bank is reachable - N - Bank is not reachable/not checked
  - Allowed values: `Y`, `N`
- `is_available` (enum, optional) — Whether the bank is a current online (available) or not - Y - Bank is available - N - Bank is not available/ not checked
  - Allowed values: `Y`, `N`
- `reachability_data_type` (enum, optional, default: HR) — Validation based on historic or real time data - HR - Validation based on Historic Data in case there is no real time data - RT - Validation based on real time data and data source is present - ERROR - Erroneous issue
  - Allowed values: `HR`, `RT`, `ERROR`
- `availability_data_type` (enum, optional, default: RT) — Validation based on historic or real time data - HR - Validation based on Historic Data in case there is no real time data - RT - Validation based on real time data and data source is present - ERROR - Erroneous issue
  - Allowed values: `HR`, `RT`, `ERROR`

### ValidationResponseResponseCard

- `number_validation` (enum, optional) — Card number validation result - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - MATCH - Validation based on card number is a match - MISMATCH - Validation based on card number is a mismatch - NA - Validation is not applicable - For SEPA VoP, this parameter is not applicable - For Global Mastercard validations, this parameter is mandatory
  - Allowed values: `MATCH`, `MISMATCH`, `NA`
- `receiving_eligibility` (enum, optional) — Whether the Creditor Mastercard is eligible to received funds before initiating the payment - Y - The creditor Mastercard is eligible to receive the payment - N - The creditor Mastercard is not eligible to receive the payment - For UK bank availability/reachability, this parameter is not applicable - For US EWS, this parameter is not applicable - For UK, this parameter is not applicable - For IN PAN, this parameter is not applicable - For Global Mastercard Validation this parameter is Mandatory with enum Y/N - For SEPA VoP, this parameter is not applicable
  - Allowed values: `Y`, `N`

## Examples

### UK Bank Availability Success Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python UK Bank Availability Success Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Bank Availability Success Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Bank Availability Success Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Bank Availability Success Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Bank Availability Success Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Bank Availability Success Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Availability Success Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Bank Availability Success Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Bank Availability Reject Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "RJCT",
    "description": "Rejected"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "reasons": {
    "code": "CNOR",
    "description": "Creditor bank is not registered under this BIC in the CSM"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "N",
      "is_available": "N",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python UK Bank Availability Reject Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Bank Availability Reject Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Bank Availability Reject Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Bank Availability Reject Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Bank Availability Reject Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Bank Availability Reject Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Availability Reject Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Bank Availability Reject Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Bank Reachability Success Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "REACHABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "reachability_data_type": "HR"
    }
  }
}
```

**SDK Code**

```python UK Bank Reachability Success Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Bank Reachability Success Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Bank Reachability Success Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Bank Reachability Success Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Bank Reachability Success Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Bank Reachability Success Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Reachability Success Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Bank Reachability Success Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Bank Reachability Reject Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "REACHABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "RJCT",
    "description": "Rejected"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "reasons": {
    "code": "CNOR",
    "description": "Creditor bank is not registered under this BIC in the CSM"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "N",
      "reachability_data_type": "HR"
    }
  }
}
```

**SDK Code**

```python UK Bank Reachability Reject Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Bank Reachability Reject Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Bank Reachability Reject Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Bank Reachability Reject Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Bank Reachability Reject Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Bank Reachability Reject Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Reachability Reject Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Bank Reachability Reject Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Final Beneficiary Validation Positive Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "GB"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "FGHJ0989",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "ABCD#WERT"
    ],
    "street_name": "1515 3rd Street",
    "building_number": "A1234",
    "postal_code": "94158",
    "city": "Manchester",
    "state": "Leeds",
    "country": "GB",
    "birth_date": "1950-09-26",
    "home_phone_number": "92-80808009",
    "document": {
      "entity": "PERSONAL",
      "type": "CCPT",
      "number": "M7891234",
      "state": "Dublin"
    }
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "HR",
    "validation_risk_score": "HIGH",
    "account": {
      "number_validation": "MATCH",
      "name_validation": "MATCH"
    }
  }
}
```

**SDK Code**

```python UK Final Beneficiary Validation Positive Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Final Beneficiary Validation Positive Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Final Beneficiary Validation Positive Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Final Beneficiary Validation Positive Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Final Beneficiary Validation Positive Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Final Beneficiary Validation Positive Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Final Beneficiary Validation Positive Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Final Beneficiary Validation Positive Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Final Beneficiary Validation Negative Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "GB"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "RJCT",
    "description": "Rejected"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "FGHJ0989",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "ABCD#WERT"
    ],
    "street_name": "1515 3rd Street",
    "building_number": "A1234",
    "postal_code": "94158",
    "city": "Manchester",
    "state": "Leeds",
    "country": "GB",
    "birth_date": "1950-09-26",
    "home_phone_number": "92-80808009",
    "document": {
      "entity": "PERSONAL",
      "type": "CCPT",
      "number": "M7891234",
      "state": "Dublin"
    }
  },
  "reasons": {
    "code": "AG01",
    "description": "Account Transaction Forbidden"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "HR",
    "validation_risk_score": "HIGH",
    "account": {
      "number_validation": "MATCH",
      "name_validation": "MISMATCH"
    }
  }
}
```

**SDK Code**

```python UK Final Beneficiary Validation Negative Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript UK Final Beneficiary Validation Negative Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go UK Final Beneficiary Validation Negative Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 UK Final Beneficiary Validation Negative Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java UK Final Beneficiary Validation Negative Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php UK Final Beneficiary Validation Negative Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Final Beneficiary Validation Negative Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift UK Final Beneficiary Validation Negative Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### SEPA VoP Validation Success Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "IBAN",
    "type": "Ownership",
    "country": "IE",
    "penny_test": "PENNY"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "end_to_end_id": "r/434SKtUcdGT",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "iban": "IE29AIBK93189078345678",
    "name": "Leo Shir"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "RT",
    "validation_risk_score": "UNKNOWN",
    "account": {
      "number_validation": "MATCH",
      "name_validation": "MATCH"
    }
  }
}
```

**SDK Code**

```python SEPA VoP Validation Success Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript SEPA VoP Validation Success Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go SEPA VoP Validation Success Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 SEPA VoP Validation Success Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java SEPA VoP Validation Success Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php SEPA VoP Validation Success Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp SEPA VoP Validation Success Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift SEPA VoP Validation Success Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### SEPA VoP Validation Reject Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "IBAN",
    "type": "Ownership",
    "country": "IE",
    "penny_test": "PENNY"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "RJCT",
    "description": "Rejected"
  },
  "end_to_end_id": "r/434SKtUcdGT",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "iban": "IE29AIBK93189078345678",
    "name": "Leo Shir"
  },
  "reasons": {
    "code": "AC01",
    "description": "Invalid Account Number"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "RT",
    "validation_risk_score": "HIGH",
    "account": {
      "number_validation": "MISMATCH",
      "name_validation": "MATCH"
    }
  }
}
```

**SDK Code**

```python SEPA VoP Validation Reject Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript SEPA VoP Validation Reject Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go SEPA VoP Validation Reject Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 SEPA VoP Validation Reject Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java SEPA VoP Validation Reject Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php SEPA VoP Validation Reject Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp SEPA VoP Validation Reject Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift SEPA VoP Validation Reject Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### US EWS Final Beneficiary Validation Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "US"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "098908979",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "ABCD#WERT"
    ],
    "postal_code": "94158",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "birth_date": "1950-09-26",
    "home_phone_number": "+928080807"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "HR",
    "validation_risk_score": "UNKNOWN",
    "account": {
      "number_validation": "MATCH",
      "name_validation": "MATCH"
    }
  }
}
```

**SDK Code**

```python US EWS Final Beneficiary Validation Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript US EWS Final Beneficiary Validation Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go US EWS Final Beneficiary Validation Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 US EWS Final Beneficiary Validation Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java US EWS Final Beneficiary Validation Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php US EWS Final Beneficiary Validation Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp US EWS Final Beneficiary Validation Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift US EWS Final Beneficiary Validation Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### IN PAN Final Validation Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "method": {
    "method": "ID",
    "type": "TAXID"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed",
    "creation_date_time": "2023-05-02T08:23:49.554Z"
  },
  "creditor": {
    "document": {
      "number": "WERHJ9012B"
    }
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "type": "HR",
    "txid": {
      "number_validation": "MATCH",
      "name_validation": "MATCH",
      "father_name_validation": "MATCH",
      "date_of_birth_validation": "MATCH",
      "status": "E",
      "seeding_status": "Y"
    }
  }
}
```

**SDK Code**

```python IN PAN Final Validation Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript IN PAN Final Validation Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go IN PAN Final Validation Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 IN PAN Final Validation Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java IN PAN Final Validation Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php IN PAN Final Validation Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp IN PAN Final Validation Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift IN PAN Final Validation Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### IN AADHAR Validation

**Request**

```json
{
  "method": {
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": {
      "type": "TXID",
      "number": "WERHJ9012B"
    }
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "method": {
    "method": "ID",
    "type": "TAXID",
    "country": "IN",
    "reasons": {
      "code": 1,
      "description": "EXISTING AND VALID"
    },
    "response": {
      "data_date_time": "2023-09-10T08:23:49.112Z",
      "txid": {
        "date_of_birth_validation": "MATCH",
        "father_name_validation": "MATCH",
        "name_validation": "MATCH",
        "national_id_validation": "MATCH",
        "number_validation": "MATCH",
        "seeding_status": "Y",
        "status": "E"
      },
      "type": "HR"
    }
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "31216787",
    "name": "RAM"
  },
  "creditor": {
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": {
      "type": "TXID",
      "number": "WERHJ9012B"
    },
    "national_id": 1236
  }
}
```

**SDK Code**

```python IN AADHAR Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "ID",
        "type": "TAXID",
        "country": "IN"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667624c",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": {
        "name": "Leo",
        "father_name": "Moss",
        "birth_date": "1950-09-26",
        "document": {
            "type": "TXID",
            "number": "WERHJ9012B"
        }
    }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript IN AADHAR Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"ID","type":"TAXID","country":"IN"},"uetr":"921a9445-97df-4118-9a55-68d14667624c","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"name":"Leo","father_name":"Moss","birth_date":"1950-09-26","document":{"type":"TXID","number":"WERHJ9012B"}}}'
};

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

```go IN AADHAR Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby IN AADHAR Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}"

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

```java IN AADHAR Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}")
  .asString();
```

```php IN AADHAR Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": {
      "type": "TXID",
      "number": "WERHJ9012B"
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp IN AADHAR Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift IN AADHAR Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": [
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": [
      "type": "TXID",
      "number": "WERHJ9012B"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### Card validation Success Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "method": {
    "method": "CARD",
    "type": "AVAILABILITY"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "creditor": {
    "card": {
      "number": "5000333641352301"
    }
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "card": {
      "number_validation": "MATCH",
      "receiving_eligibility": "Y"
    },
    "Type": "HR"
  }
}
```

**SDK Code**

```python Card validation Success Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript Card validation Success Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go Card validation Success Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 Card validation Success Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java Card validation Success Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Card validation Success Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp Card validation Success Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Card validation Success Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### Card validation Currency Reject Response

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "method": {
    "method": "CARD",
    "type": "AVAILABILITY"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "RJCT",
    "description": "Rejected"
  },
  "creditor": {
    "card": {
      "number": "5000333641352301"
    }
  },
  "reasons": {
    "code": "CURRENCY_NOT_SUPPORTED",
    "description": "Currency is not supported for the account"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "card": {
      "number_validation": "MATCH",
      "receiving_eligibility": "N"
    },
    "Type": "HR"
  }
}
```

**SDK Code**

```python Card validation Currency Reject Response
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript Card validation Currency Reject Response
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>'
  }
};

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

```go Card validation Currency Reject Response
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

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

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	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 Card validation Currency Reject Response
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'

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

```java Card validation Currency Reject Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Card validation Currency Reject Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp Card validation Currency Reject Response
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Card validation Currency Reject Response
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

### UK Bank Availability Validation

**Request**

```json
{
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python UK Bank Availability Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "BIC",
        "type": "AVAILABILITY",
        "country": "GB",
        "scheme": "FPS"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667656f",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": { "bank_id": "12345678" }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript UK Bank Availability Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"BIC","type":"AVAILABILITY","country":"GB","scheme":"FPS"},"uetr":"921a9445-97df-4118-9a55-68d14667656f","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"bank_id":"12345678"}}'
};

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

```go UK Bank Availability Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"AVAILABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby UK Bank Availability Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"AVAILABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}"

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

```java UK Bank Availability Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"AVAILABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}")
  .asString();
```

```php UK Bank Availability Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Availability Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"AVAILABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift UK Bank Availability Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": ["bank_id": "12345678"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### UK Bank Reachability Validation

**Request**

```json
{
  "method": {
    "method": "BIC",
    "type": "REACHABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python UK Bank Reachability Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "BIC",
        "type": "REACHABILITY",
        "country": "GB",
        "scheme": "FPS"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667656f",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": { "bank_id": "12345678" }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript UK Bank Reachability Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"BIC","type":"REACHABILITY","country":"GB","scheme":"FPS"},"uetr":"921a9445-97df-4118-9a55-68d14667656f","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"bank_id":"12345678"}}'
};

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

```go UK Bank Reachability Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"REACHABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby UK Bank Reachability Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"REACHABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}"

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

```java UK Bank Reachability Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"REACHABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}")
  .asString();
```

```php UK Bank Reachability Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "BIC",
    "type": "REACHABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Bank Reachability Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"BIC\",\n    \"type\": \"REACHABILITY\",\n    \"country\": \"GB\",\n    \"scheme\": \"FPS\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"12345678\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift UK Bank Reachability Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "BIC",
    "type": "REACHABILITY",
    "country": "GB",
    "scheme": "FPS"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": ["bank_id": "12345678"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### UK Beneficiary Validation

**Request**

```json
{
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "GB"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "FGHJ0989",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "ABCD#WERT"
    ],
    "street_name": "1515 3rd Street",
    "building_number": "A1234",
    "postal_code": "94158",
    "city": "Manchester",
    "state": "Leeds",
    "country": "GB",
    "birth_date": "1950-09-26",
    "home_phone_number": "92-80808009",
    "document": {
      "entity": "PERSONAL",
      "type": "CCPT",
      "number": "M7891234",
      "state": "Dublin"
    }
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python UK Beneficiary Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "BANKACCOUNT",
        "type": "Ownership",
        "country": "GB"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667656f",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": {
        "bank_id": "FGHJ0989",
        "account": "927393445",
        "name": "Leo",
        "address_lines": ["ABCD#WERT"],
        "street_name": "1515 3rd Street",
        "building_number": "A1234",
        "postal_code": "94158",
        "city": "Manchester",
        "state": "Leeds",
        "country": "GB",
        "birth_date": "1950-09-26",
        "home_phone_number": "92-80808009",
        "document": {
            "entity": "PERSONAL",
            "type": "CCPT",
            "number": "M7891234",
            "state": "Dublin"
        }
    }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript UK Beneficiary Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"BANKACCOUNT","type":"Ownership","country":"GB"},"uetr":"921a9445-97df-4118-9a55-68d14667656f","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"bank_id":"FGHJ0989","account":"927393445","name":"Leo","address_lines":["ABCD#WERT"],"street_name":"1515 3rd Street","building_number":"A1234","postal_code":"94158","city":"Manchester","state":"Leeds","country":"GB","birth_date":"1950-09-26","home_phone_number":"92-80808009","document":{"entity":"PERSONAL","type":"CCPT","number":"M7891234","state":"Dublin"}}}'
};

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

```go UK Beneficiary Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"GB\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"FGHJ0989\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"ABCD#WERT\"\n    ],\n    \"street_name\": \"1515 3rd Street\",\n    \"building_number\": \"A1234\",\n    \"postal_code\": \"94158\",\n    \"city\": \"Manchester\",\n    \"state\": \"Leeds\",\n    \"country\": \"GB\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"92-80808009\",\n    \"document\": {\n      \"entity\": \"PERSONAL\",\n      \"type\": \"CCPT\",\n      \"number\": \"M7891234\",\n      \"state\": \"Dublin\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby UK Beneficiary Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"GB\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"FGHJ0989\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"ABCD#WERT\"\n    ],\n    \"street_name\": \"1515 3rd Street\",\n    \"building_number\": \"A1234\",\n    \"postal_code\": \"94158\",\n    \"city\": \"Manchester\",\n    \"state\": \"Leeds\",\n    \"country\": \"GB\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"92-80808009\",\n    \"document\": {\n      \"entity\": \"PERSONAL\",\n      \"type\": \"CCPT\",\n      \"number\": \"M7891234\",\n      \"state\": \"Dublin\"\n    }\n  }\n}"

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

```java UK Beneficiary Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"GB\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"FGHJ0989\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"ABCD#WERT\"\n    ],\n    \"street_name\": \"1515 3rd Street\",\n    \"building_number\": \"A1234\",\n    \"postal_code\": \"94158\",\n    \"city\": \"Manchester\",\n    \"state\": \"Leeds\",\n    \"country\": \"GB\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"92-80808009\",\n    \"document\": {\n      \"entity\": \"PERSONAL\",\n      \"type\": \"CCPT\",\n      \"number\": \"M7891234\",\n      \"state\": \"Dublin\"\n    }\n  }\n}")
  .asString();
```

```php UK Beneficiary Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "GB"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "FGHJ0989",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "ABCD#WERT"
    ],
    "street_name": "1515 3rd Street",
    "building_number": "A1234",
    "postal_code": "94158",
    "city": "Manchester",
    "state": "Leeds",
    "country": "GB",
    "birth_date": "1950-09-26",
    "home_phone_number": "92-80808009",
    "document": {
      "entity": "PERSONAL",
      "type": "CCPT",
      "number": "M7891234",
      "state": "Dublin"
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp UK Beneficiary Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"GB\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"FGHJ0989\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"ABCD#WERT\"\n    ],\n    \"street_name\": \"1515 3rd Street\",\n    \"building_number\": \"A1234\",\n    \"postal_code\": \"94158\",\n    \"city\": \"Manchester\",\n    \"state\": \"Leeds\",\n    \"country\": \"GB\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"92-80808009\",\n    \"document\": {\n      \"entity\": \"PERSONAL\",\n      \"type\": \"CCPT\",\n      \"number\": \"M7891234\",\n      \"state\": \"Dublin\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift UK Beneficiary Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "GB"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": [
    "bank_id": "FGHJ0989",
    "account": "927393445",
    "name": "Leo",
    "address_lines": ["ABCD#WERT"],
    "street_name": "1515 3rd Street",
    "building_number": "A1234",
    "postal_code": "94158",
    "city": "Manchester",
    "state": "Leeds",
    "country": "GB",
    "birth_date": "1950-09-26",
    "home_phone_number": "92-80808009",
    "document": [
      "entity": "PERSONAL",
      "type": "CCPT",
      "number": "M7891234",
      "state": "Dublin"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### SEPA VoP Beneficiary Validation

**Request**

```json
{
  "method": {
    "method": "IBAN",
    "type": "Ownership",
    "country": "IE",
    "penny_test": "PENNY"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "end_to_end_id": "r/434SKtUcdGT",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "iban": "IE29AIBK93189078345678",
    "name": "Leo Shir"
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python SEPA VoP Beneficiary Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "IBAN",
        "type": "Ownership",
        "country": "IE",
        "penny_test": "PENNY"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667656f",
    "end_to_end_id": "r/434SKtUcdGT",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": {
        "iban": "IE29AIBK93189078345678",
        "name": "Leo Shir"
    }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript SEPA VoP Beneficiary Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"IBAN","type":"Ownership","country":"IE","penny_test":"PENNY"},"uetr":"921a9445-97df-4118-9a55-68d14667656f","end_to_end_id":"r/434SKtUcdGT","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"iban":"IE29AIBK93189078345678","name":"Leo Shir"}}'
};

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

```go SEPA VoP Beneficiary Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"IBAN\",\n    \"type\": \"Ownership\",\n    \"country\": \"IE\",\n    \"penny_test\": \"PENNY\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"end_to_end_id\": \"r/434SKtUcdGT\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"iban\": \"IE29AIBK93189078345678\",\n    \"name\": \"Leo Shir\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby SEPA VoP Beneficiary Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"IBAN\",\n    \"type\": \"Ownership\",\n    \"country\": \"IE\",\n    \"penny_test\": \"PENNY\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"end_to_end_id\": \"r/434SKtUcdGT\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"iban\": \"IE29AIBK93189078345678\",\n    \"name\": \"Leo Shir\"\n  }\n}"

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

```java SEPA VoP Beneficiary Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"IBAN\",\n    \"type\": \"Ownership\",\n    \"country\": \"IE\",\n    \"penny_test\": \"PENNY\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"end_to_end_id\": \"r/434SKtUcdGT\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"iban\": \"IE29AIBK93189078345678\",\n    \"name\": \"Leo Shir\"\n  }\n}")
  .asString();
```

```php SEPA VoP Beneficiary Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "IBAN",
    "type": "Ownership",
    "country": "IE",
    "penny_test": "PENNY"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "end_to_end_id": "r/434SKtUcdGT",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "iban": "IE29AIBK93189078345678",
    "name": "Leo Shir"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp SEPA VoP Beneficiary Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"IBAN\",\n    \"type\": \"Ownership\",\n    \"country\": \"IE\",\n    \"penny_test\": \"PENNY\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"end_to_end_id\": \"r/434SKtUcdGT\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"iban\": \"IE29AIBK93189078345678\",\n    \"name\": \"Leo Shir\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift SEPA VoP Beneficiary Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "IBAN",
    "type": "Ownership",
    "country": "IE",
    "penny_test": "PENNY"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "end_to_end_id": "r/434SKtUcdGT",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": [
    "iban": "IE29AIBK93189078345678",
    "name": "Leo Shir"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### US EWS Beneficiary Validation

**Request**

```json
{
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "US"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "098908979",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "CD#WERT"
    ],
    "postal_code": "94158",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "birth_date": "1950-09-26",
    "home_phone_number": "+928080807"
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python US EWS Beneficiary Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "BANKACCOUNT",
        "type": "Ownership",
        "country": "US"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667624c",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": {
        "bank_id": "098908979",
        "account": "927393445",
        "name": "Leo",
        "address_lines": ["CD#WERT"],
        "postal_code": "94158",
        "city": "San Francisco",
        "state": "CA",
        "country": "US",
        "birth_date": "1950-09-26",
        "home_phone_number": "+928080807"
    }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript US EWS Beneficiary Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"BANKACCOUNT","type":"Ownership","country":"US"},"uetr":"921a9445-97df-4118-9a55-68d14667624c","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"bank_id":"098908979","account":"927393445","name":"Leo","address_lines":["CD#WERT"],"postal_code":"94158","city":"San Francisco","state":"CA","country":"US","birth_date":"1950-09-26","home_phone_number":"+928080807"}}'
};

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

```go US EWS Beneficiary Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"US\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"098908979\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"CD#WERT\"\n    ],\n    \"postal_code\": \"94158\",\n    \"city\": \"San Francisco\",\n    \"state\": \"CA\",\n    \"country\": \"US\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"+928080807\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby US EWS Beneficiary Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"US\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"098908979\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"CD#WERT\"\n    ],\n    \"postal_code\": \"94158\",\n    \"city\": \"San Francisco\",\n    \"state\": \"CA\",\n    \"country\": \"US\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"+928080807\"\n  }\n}"

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

```java US EWS Beneficiary Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"US\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"098908979\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"CD#WERT\"\n    ],\n    \"postal_code\": \"94158\",\n    \"city\": \"San Francisco\",\n    \"state\": \"CA\",\n    \"country\": \"US\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"+928080807\"\n  }\n}")
  .asString();
```

```php US EWS Beneficiary Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "US"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "098908979",
    "account": "927393445",
    "name": "Leo",
    "address_lines": [
      "CD#WERT"
    ],
    "postal_code": "94158",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "birth_date": "1950-09-26",
    "home_phone_number": "+928080807"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp US EWS Beneficiary Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"BANKACCOUNT\",\n    \"type\": \"Ownership\",\n    \"country\": \"US\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"bank_id\": \"098908979\",\n    \"account\": \"927393445\",\n    \"name\": \"Leo\",\n    \"address_lines\": [\n      \"CD#WERT\"\n    ],\n    \"postal_code\": \"94158\",\n    \"city\": \"San Francisco\",\n    \"state\": \"CA\",\n    \"country\": \"US\",\n    \"birth_date\": \"1950-09-26\",\n    \"home_phone_number\": \"+928080807\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift US EWS Beneficiary Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "BANKACCOUNT",
    "type": "Ownership",
    "country": "US"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": [
    "bank_id": "098908979",
    "account": "927393445",
    "name": "Leo",
    "address_lines": ["CD#WERT"],
    "postal_code": "94158",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "birth_date": "1950-09-26",
    "home_phone_number": "+928080807"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### IN PAN Validation

**Request**

```json
{
  "method": {
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": {
      "type": "TXID",
      "number": "WERHJ9012B"
    }
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python IN PAN Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "ID",
        "type": "TAXID",
        "country": "IN"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667624c",
    "debtor": {
        "account": "927393890",
        "name": "Hopkin"
    },
    "creditor": {
        "name": "Leo",
        "father_name": "Moss",
        "birth_date": "1950-09-26",
        "document": {
            "type": "TXID",
            "number": "WERHJ9012B"
        }
    }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript IN PAN Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"ID","type":"TAXID","country":"IN"},"uetr":"921a9445-97df-4118-9a55-68d14667624c","debtor":{"account":"927393890","name":"Hopkin"},"creditor":{"name":"Leo","father_name":"Moss","birth_date":"1950-09-26","document":{"type":"TXID","number":"WERHJ9012B"}}}'
};

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

```go IN PAN Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby IN PAN Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}"

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

```java IN PAN Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}")
  .asString();
```

```php IN PAN Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": {
      "type": "TXID",
      "number": "WERHJ9012B"
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp IN PAN Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"ID\",\n    \"type\": \"TAXID\",\n    \"country\": \"IN\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667624c\",\n  \"debtor\": {\n    \"account\": \"927393890\",\n    \"name\": \"Hopkin\"\n  },\n  \"creditor\": {\n    \"name\": \"Leo\",\n    \"father_name\": \"Moss\",\n    \"birth_date\": \"1950-09-26\",\n    \"document\": {\n      \"type\": \"TXID\",\n      \"number\": \"WERHJ9012B\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift IN PAN Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "ID",
    "type": "TAXID",
    "country": "IN"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667624c",
  "debtor": [
    "account": "927393890",
    "name": "Hopkin"
  ],
  "creditor": [
    "name": "Leo",
    "father_name": "Moss",
    "birth_date": "1950-09-26",
    "document": [
      "type": "TXID",
      "number": "WERHJ9012B"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### Card Validation

**Request**

```json
{
  "method": {
    "method": "CARD",
    "type": "Ownership"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "id": "100360001"
  },
  "creditor": {
    "card": {
      "number": "5000333641352301",
      "currency": "USD"
    }
  }
}
```

**Response**

```json
{
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "method": {
    "method": "BIC",
    "type": "AVAILABILITY",
    "country": "GB",
    "scheme": "FPS"
  },
  "status": {
    "date_time": "2024-09-10T08:23:49.112Z",
    "code": "ACCC",
    "description": "Completed"
  },
  "debtor": {
    "account": "927393890",
    "name": "Hopkin"
  },
  "creditor": {
    "bank_id": "12345678"
  },
  "response": {
    "data_date_time": "2023-09-10T08:23:49.112Z",
    "bank": {
      "is_reachable": "Y",
      "is_available": "Y",
      "reachability_data_type": "HR",
      "availability_data_type": "RT"
    }
  }
}
```

**SDK Code**

```python Card Validation
import requests

url = "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations"

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

payload = {
    "method": {
        "method": "CARD",
        "type": "Ownership"
    },
    "uetr": "921a9445-97df-4118-9a55-68d14667656f",
    "debtor": { "id": "100360001" },
    "creditor": { "card": {
            "number": "5000333641352301",
            "currency": "USD"
        } }
}
headers = {
    "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript Card Validation
const url = 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Id': 'a44cbb606de4edb9a7a123414bba3bb',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"method":{"method":"CARD","type":"Ownership"},"uetr":"921a9445-97df-4118-9a55-68d14667656f","debtor":{"id":"100360001"},"creditor":{"card":{"number":"5000333641352301","currency":"USD"}}}'
};

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

```go Card Validation
package main

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

func main() {

	url := "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31"

	payload := strings.NewReader("{\n  \"method\": {\n    \"method\": \"CARD\",\n    \"type\": \"Ownership\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"id\": \"100360001\"\n  },\n  \"creditor\": {\n    \"card\": {\n      \"number\": \"5000333641352301\",\n      \"currency\": \"USD\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby Card Validation
require 'uri'
require 'net/http'

url = URI("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")

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

request = Net::HTTP::Post.new(url)
request["Idempotency-Id"] = 'a44cbb606de4edb9a7a123414bba3bb'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"method\": {\n    \"method\": \"CARD\",\n    \"type\": \"Ownership\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"id\": \"100360001\"\n  },\n  \"creditor\": {\n    \"card\": {\n      \"number\": \"5000333641352301\",\n      \"currency\": \"USD\"\n    }\n  }\n}"

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

```java Card Validation
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")
  .header("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"method\": {\n    \"method\": \"CARD\",\n    \"type\": \"Ownership\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"id\": \"100360001\"\n  },\n  \"creditor\": {\n    \"card\": {\n      \"number\": \"5000333641352301\",\n      \"currency\": \"USD\"\n    }\n  }\n}")
  .asString();
```

```php Card Validation
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31', [
  'body' => '{
  "method": {
    "method": "CARD",
    "type": "Ownership"
  },
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": {
    "id": "100360001"
  },
  "creditor": {
    "card": {
      "number": "5000333641352301",
      "currency": "USD"
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Id' => 'a44cbb606de4edb9a7a123414bba3bb',
  ],
]);

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

```csharp Card Validation
using RestSharp;

var client = new RestClient("https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Id", "a44cbb606de4edb9a7a123414bba3bb");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"method\": {\n    \"method\": \"CARD\",\n    \"type\": \"Ownership\"\n  },\n  \"uetr\": \"921a9445-97df-4118-9a55-68d14667656f\",\n  \"debtor\": {\n    \"id\": \"100360001\"\n  },\n  \"creditor\": {\n    \"card\": {\n      \"number\": \"5000333641352301\",\n      \"currency\": \"USD\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Card Validation
import Foundation

let headers = [
  "Idempotency-Id": "a44cbb606de4edb9a7a123414bba3bb",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "method": [
    "method": "CARD",
    "type": "Ownership"
  ],
  "uetr": "921a9445-97df-4118-9a55-68d14667656f",
  "debtor": ["id": "100360001"],
  "creditor": ["card": [
      "number": "5000333641352301",
      "currency": "USD"
    ]]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://b2b.api.icg.citi.com/citiconnect/prod/addonservices/v1/validations?client_id=6d3cf821-db6d-496d-bec0-064a362e9c31")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```