openapi: 3.2.0
info:
title: WorldLink Cancel FX API
description: 'WorldLink is a complete cross-border payment and Foreign-Exchange (FX)
service that allows you to perform payments in 135 currencies without having the need to maintain local currency accounts for each of them.'
contact:
name: Standards & Developer Hub
url: https://tts.sandbox.developer.citi.com/citiconnect/
email: developer-support@citi.com
version: 1.0.0
servers:
- url: https://tts.apib2b.citi.com/citiconnect/prod/worldlinkservices
description: production gateway url
- url: https://tts.sandbox.apib2b.citi.com/citiconnect/sb/worldlinkservices
description: sandbox url
security:
- clientCredentials: []
tags:
- name: WorldLink Cancel FX
paths:
/v1/fx/cancelfx:
post:
tags:
- WorldLink Cancel FX
summary: WorldLink Cancel
description: 'The WorldLink FX Cancel API has the ability to cancel a previously booked FX deal.
Users can cancel the booked FX deal using the _Deal ID_ from the booking.
Upon successful cancellation of the deal you will receive notification with the _Cancel Deal Sequence ID_ and _Exchange Rate_.
This API is currently available in JSON & XML format.'
operationId: cancelFx
parameters:
- name: client_id
in: query
description: This is your unique identifier shared during your CitiConnect API onboarding. This is the same `client_id` used for oauth token generation
required: true
schema:
type: string
- name: Content-Type
in: header
description: Supports \"application/xml\" and \"application/json\".
required: true
schema:
type: string
- name: Authorization
in: header
description: The OAuth Token prefixed with "Bearer" and space in between.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FXP586Operation'
examples:
Cancel-API-Request-Example:
$ref: '#/components/examples/FXP586Operation-Request'
application/xml:
schema:
$ref: '#/components/schemas/FXP586Operation'
example: APIMFXCANCELREQ583700001CR3378-TEST-00012020-03-11-07.53.00XML10N3401EUR87.16USD100.002020-07-14
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FXP586OperationResponse'
examples:
Cancel-API-Response-Example:
$ref: '#/components/examples/FXP586Operation-Response'
application/xml:
schema:
$ref: '#/components/schemas/FXP586OperationResponse'
example: APIMFXCANCELRES0000123450001CR3378-TEST-000101000Request has been processed successfullyAA5410008799048AH5662008799050USD155.87AUD233.00
'400':
description: Bad Request
content:
application/xml:
schema:
$ref: '#/components/schemas/Response'
example: 400Mismatch of WorldLink Client ID or Client ID not maintainedq2te~8b8b4912-1b37-449a-9e1a-3401d7ab7d8312198
application/json:
schema:
$ref: '#/components/schemas/Response'
example:
correlationId: q2te~bd8e9b8f-d8e5-4a48-ad13-5d1ec8bb32e815587
message: Mismatch of WorldLink client ID or client ID is not maintained.
status: '400'
'401':
description: Unauthorized
content:
application/xml:
schema:
$ref: '#/components/schemas/Error-Response'
example: 401Invalid OAuth TokenPlease use valid OAuth Token
application/json:
schema:
$ref: '#/components/schemas/Error-Response'
example:
httpMessage: Unauthorized
httpCode: '401'
moreInformation: This server could not verify that you are authorized to access the URL
'404':
description: Not found
content:
application/xml:
schema:
$ref: '#/components/schemas/Error-Response'
example: 404Not FoundNo resources match requested URI
application/json:
schema:
$ref: '#/components/schemas/Error-Response'
example:
httpMessage: Not Found
httpCode: '404'
moreInformation: No resources match requested URI
'405':
description: Method Not Allowed
content:
application/xml:
schema:
$ref: '#/components/schemas/Error-Response'
example: 405Method Not AllowedThe method is not allowed for the requested URL
application/json:
schema:
$ref: '#/components/schemas/Error-Response'
example:
httpMessage: Method Not Allowed
httpCode: '405'
moreInformation: The method is not allowed for the requested URL
'415':
description: Unsupported Media Type
content:
application/xml:
schema:
$ref: '#/components/schemas/Error-Response'
example: 415Unsupported Media TypeUnsupported Content-Type
application/json:
schema:
$ref: '#/components/schemas/Error-Response'
example:
httpMessage: Unsupported Media Type
httpCode: '415'
moreInformation: Unsupported Content-Type
'500':
description: Internal Server Error
content:
application/xml:
schema:
$ref: '#/components/schemas/Response'
example: 500Unable to process your requestq2te~8b8b4912-1b37-449a-9e1a-3401d7ab7d8312352
application/json:
schema:
$ref: '#/components/schemas/Response'
example:
message: Unable to process your request
status: '500'
correlationId: q2te~8b8b4912-1b37-449a-9e1a-3401d7ab7d8312352
components:
examples:
FXP586Operation-Request:
value:
Source: APIM
ReqType: FXCANCELREQ
ClntNo: '000012345'
BrNo: '0001'
TRefNo: CR3378-TEST-0001
ReqTime: 2020-03-11-07.53.00
UserId: XML5CDSK
ReqCount: '01'
DealSeqNo: AA5410008799048
IssueCcy: NOK
IssueCcyAmt: '1394.120'
RemitCcy: CAD
RemitCcyAmt: '200.000'
BookDate: '2025-12-17'
FXP586Operation-Response:
value:
Source: APIM
ReqType: FXCANCELRES
ClntNo: '000012345'
BrNo: '0001'
TRefNo: CR3378-TEST-0001
ReqCount: '01'
ErrCode: '000'
ErrMsg: '000: Request has been processed successfully'
DealSeqNo: AA5410008799048
CanDealSeq: AH5662008799050
IssueCcy: USD
IssueCcyAmt: '155.87'
RemitCcy: AUD
RemitCcyAmt: '233.00'
schemas:
FXP586Operation:
required:
- DealSeqNo
- Source
- ReqType
- ClntNo
- BrNo
properties:
Source:
maxLength: 4
minLength: 4
type: string
description: Requesting Channel name - 'APIM', for all external clients connecting via APIm channel. - 'XXXX', for Citi internal applications. Where XXXX is WorldLink defined application short name.
example: APIM
ReqType:
maxLength: 15
type: string
description: Type of FX Request
example: FXCANCELREQ
ClntNo:
maxLength: 9
minLength: 9
type: string
description: WorldLink Client Number
example: '000012345'
BrNo:
maxLength: 4
type: string
description: WorldLink Branch Number. If the client has the Branch Id, this parameter should be populated with 4-digit numeric value. If the client doesn't have the Branch Id, it can be as follows: - Parameter provided with 4 spaces - Parameter provided as empty tag - Parameter not provided
example: '0001'
TRefNo:
maxLength: 16
type: string
description: Customer generated transaction reference number. If the request is received via API, this parameter can be optional.
example: '1234567890123456'
ReqTime:
maxLength: 19
type: string
description: 'Date and Time when the Request is placed. Format: ''YYYY-MM-DD-HH.MM.SS'''
example: 2019-12-20-03:12:22
UserId:
maxLength: 8
type: string
description: Unique User ID through which the Original deal was booked.
example: ABCD1234
ReqCount:
maxLength: 2
type: string
description: Number of Currency pair requests
example: '01'
DealSeqNo:
maxLength: 15
type: string
description: Deal Number. This field is mandatory to initiate cancel fx request.
example: AA1234123456789
IssueCcy:
maxLength: 3
type: string
description: Payment Currency
example: INR
IssueCcyAmt:
maxLength: 16
type: string
description: Payment Currency Amount
example: '1234567890123.12'
RemitCcy:
maxLength: 3
type: string
description: Funding account currency
example: USD
RemitCcyAmt:
maxLength: 16
type: string
description: Funding account currency Amount
example: '1234567890123.12'
BookDate:
maxLength: 10
type: string
description: 'Deal book date. Format: "YYYY-MM-DD"'
example: '2020-03-12'
Response:
properties:
correlationId:
type: string
message:
type: string
status:
maxLength: 3
type: string
description: Error response code
Error-Response:
properties:
httpMessage:
type: string
httpCode:
type: string
moreInformation:
type: string
FXP586OperationResponse:
required:
- DealSeqNo
properties:
Source:
maxLength: 4
type: string
description: Requesting Channel name - Same source name will be populated as received in the request. Always populated.
example: APIM
ReqType:
maxLength: 15
type: string
description: Type of FX Response. Always populated.
example: FXCANCELRES
ClntNo:
maxLength: 9
minLength: 9
type: string
description: WorldLink Client Number. If coming in the request, map as it is or else it will be blank
example: '000012345'
BrNo:
maxLength: 4
type: string
description: WorldLink Branch Number. If Branch Id (4 Numeric) provided by the client in the Request, then it will be populated else it will always going to be empty tag.
example: '0001'
TRefNo:
maxLength: 16
type: string
description: Customer generated transaction reference number. If provided in the cancel request, it will be populated else it will be blank.
example: '1234567890123456'
UserId:
maxLength: 8
type: string
description: Same User ID will be populated as received in the request. If provided in the cancel request, it will be populated else it will be blank.
example: ABCD1234
ReqCount:
maxLength: 2
type: string
description: Number of Currency pair requests. Same as received in the request. Based on what is received in the request else if not present in the request then it will be hardcoded in 1.
example: '1'
ErrCode:
maxLength: 3
type: string
description: '"000" for successful processing of the FX Cancel Request, or an error code in case of failures. This field is always populated.'
example: '000'
ErrMsg:
maxLength: 255
type: string
description: '"Request has been processed successfully" for successful processing of the FX Cancel Request, or an error message in case of failures. This field is always populated.'
example: Request has been processed successfully
DealSeqNo:
maxLength: 15
type: string
description: Original Deal Sequence Number.
example: AA1234123456789
CanDealSeq:
maxLength: 15
type: string
description: Cancelled Deal Sequence Number. If processed successfully, it will be populated, else it will be blank.
example: AH1234123456789
IssueCcy:
maxLength: 3
type: string
description: Payment Currency. It will have the reverse payment Currency if applicable else it will be blank.
example: USD
IssueCcyAmt:
maxLength: 16
type: string
description: Payment Currency Amount. It will have the reverse payment Amount if applicable else it will be blank.
example: '1234567890123.12'
RemitCcy:
maxLength: 3
type: string
description: Funding account currency. It will have the reverse FX Currency if applicable else it will be blank.
example: AUD
RemitCcyAmt:
maxLength: 16
type: string
description: Funding account currency Amount. It will have the reverse FX Amount if applicable else it will be blank.
example: '1234567890123.12'
securitySchemes:
clientCredentials:
type: oauth2
description: 'All CitiConnect APIs use the oAuth2 authentication scheme, which requires a bearer token to authenticate your API call. The Token URL includes the version of authentication used by this API. See the Citi Authentication API reference for information on requesting a token.
'
flows:
clientCredentials:
tokenUrl: /authenticationservices/v3/oauth/token
scopes: {}