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'