openapi: 3.0.1
info:
title: WorldLink
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.
**A note on 24X7 availability of the CitiConnect API Services**
Although Citi strives to make all APIs 24X7 available wherever possible,
there may still be downtimes albeit at a much reduced frequency and with
shortened windows.
Citi's Service representatives will send information about any near-term
planned downtimes 3-4 business days in advance to valid email address so
that you can plan your business activities related
to your API interface to minimize any possible impact to your business and
customers.
Download our SDKs:
* [Python
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=python&apiTitle=all&isClientSecReq=true)
* [Java
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=java&apiTitle=all&isClientSecReq=true)
* [.Net
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=dotnet&apiTitle=all&isClientSecReq=true)
* [Ruby
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ruby&apiTitle=all&isClientSecReq=true)
* [NodeJS
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=nodejs&apiTitle=all&isClientSecReq=true)
* [Go
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=go&apiTitle=all&isClientSecReq=true)
* [CLI Tool
SDK](https://developer.citi.com/sandboxApi/admin/v1/downloadZipFile?language=ccapi-cli&apiTitle=all&isClientSecReq=true)
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:
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'
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'
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
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: {}
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'