Citi WorldLink Cancel FX API

The WorldLink Cancel FX API from Citi — 1 operation(s) for worldlink cancel fx.

Operations 1

POST /v1/fx/cancelfx WorldLink Cancel #

Documentation

📖
Documentation
https://developer.citi.com/apidocs/authentication/authentication-only-guide
📖
APIReference
https://developer.citi.com/apidocs/authentication/authentication-api-reference
📖
Authentication
https://raw.githubusercontent.com/api-evangelist/citi/refs/heads/main/authentication/citi-authentication.yml
📖
Documentation
https://developer.citi.com/apidocs/account-reporting/balances/balances-overview
📖
APIReference
https://developer.citi.com/apidocs/account-reporting/balances/balances-api-reference
📖
Documentation
https://developer.citi.com/apidocs/outgoing-payments/payments/payments-overview
📖
APIReference
https://developer.citi.com/apidocs/outgoing-payments/payments/payments-api-reference
📖
Documentation
https://developer.citi.com/apidocs/accept-payments/online-payment-acceptance/online-payment-acceptance-overview
📖
APIReference
https://developer.citi.com/apidocs/accept-payments/online-payment-acceptance/online-payment-acceptance-api-reference
📖
Documentation
https://developer.citi.com/apidocs/commercial-cards/virtual-cards/commercial-cards-overview
📖
APIReference
https://developer.citi.com/apidocs/commercial-cards/virtual-cards/virtual-cards-api-reference
📖
Documentation
https://developer.citi.com/apidocs/fx/gateway/citifx-gateway-overview
📖
APIReference
https://developer.citi.com/apidocs/fx/instant-fx/instant-fx-overview
📖
Documentation
https://developer.citi.com/apidocs/custody/accounts/accounts-overview
📖
APIReference
https://developer.citi.com/apidocs/custody/safekeeping-positions/safekeeping-positions-api-reference
📖
Documentation
https://developer.citi.com/apidocs/transfer-agency/accounts/accounts-overview
📖
APIReference
https://developer.citi.com/apidocs/transfer-agency/accounts/accounts-api-reference
📖
Documentation
https://developer.citi.com/apidocs/open-banking/ukraine-open-banking/ukraine-open-banking-overview
📖
APIReference
https://developer.citi.com/apidocs/open-banking/ukraine-open-banking/ukraine-bank-data-sharing-api-reference
📖
Documentation
https://developer.citi.com/apidocs/trade/standby-letters-of-credit/trade-overview
📖
APIReference
https://developer.citi.com/apidocs/trade/standby-letters-of-credit/trade-api-reference
📖
Documentation
https://developer.citi.com/apidocs/gateway-services/gateway-services-user-guide
📖
APIReference
https://developer.citi.com/apidocs/gateway-services/gateway-services-api-reference
📖
Documentation
https://developer.citi.com/apidocs/additional-payment-services/additional-payment-services/additional-payment-services-overview
📖
APIReference
https://developer.citi.com/apidocs/additional-payment-services/additional-payment-services/additional-payment-services-api-reference

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/citi-worldlink-cancel-fx-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

citi-worldlink-cancel-fx-api-openapi.yml Raw ↑
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: <?xml version="1.0" encoding="UTF-8" ?><FXP586Operation><Source>APIM</Source><ReqType>FXCANCELREQ</ReqType><ClntNo>58370</ClntNo><BrNo>0001</BrNo><TRefNo>CR3378-TEST-0001</TRefNo><ReqTime>2020-03-11-07.53.00</ReqTime><UserId>XML10N34</UserId><ReqCount>01</ReqCount><IssueCcy>EUR</IssueCcy><IssueCcyAmt>87.16</IssueCcyAmt><RemitCcy>USD</RemitCcy><RemitCcyAmt>100.00</RemitCcyAmt><BookDate>2020-07-14</BookDate></FXP586Operation>
        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: <?xml version="1.0" encoding="UTF-8"?><FXP586OperationResponse><Source>APIM</Source><ReqType>FXCANCELRES</ReqType><ClntNo>000012345</ClntNo><BrNo>0001</BrNo><TRefNo>CR3378-TEST-0001</TRefNo><ReqCount>01</ReqCount><ErrCode>000</ErrCode><ErrMsg>Request has been processed successfully</ErrMsg><DealSeqNo>AA5410008799048</DealSeqNo><CanDealSeq>AH5662008799050</CanDealSeq><IssueCcy>USD</IssueCcy><IssueCcyAmt>155.87</IssueCcyAmt><RemitCcy>AUD</RemitCcy><RemitCcyAmt>233.00</RemitCcyAmt></FXP586OperationResponse>
        '400':
          description: Bad Request
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
              example: <response><status>400</status><message>Mismatch of WorldLink Client ID or Client ID not maintained</message><correlationId>q2te~8b8b4912-1b37-449a-9e1a-3401d7ab7d8312198</correlationId></response>
            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: <errormessage><httpCode>401</httpCode><httpMessage>Invalid OAuth Token</httpMessage><moreInformation>Please use valid OAuth Token</moreInformation></errormessage>
            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: <errormessage><httpCode>404</httpCode><httpMessage>Not Found</httpMessage><moreInformation>No resources match requested URI</moreInformation></errormessage>
            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: <errormessage><httpCode>405</httpCode><httpMessage>Method Not Allowed</httpMessage><moreInformation>The method is not allowed for the requested URL</moreInformation></errormessage>
            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: <errormessage><httpCode>415</httpCode><httpMessage>Unsupported Media Type</httpMessage><moreInformation>Unsupported Content-Type</moreInformation></errormessage>
            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: <Response><status>500</status><message>Unable to process your request</message><correlationId>q2te~8b8b4912-1b37-449a-9e1a-3401d7ab7d8312352</correlationId></Response>
            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:
    FXP586OperationResponse:
      required:
      - DealSeqNo
      properties:
        Source:
          maxLength: 4
          type: string
          description: Requesting Channel name<br> - 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
    FXP586Operation:
      required:
      - DealSeqNo
      - Source
      - ReqType
      - ClntNo
      - BrNo
      properties:
        Source:
          maxLength: 4
          minLength: 4
          type: string
          description: Requesting Channel name<br> - 'APIM', for all external clients connecting via APIm channel.<br> - 'XXXX', for Citi internal applications. <br> 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:<br> - Parameter provided with 4 spaces<br> - Parameter provided as empty tag<br> - 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'
  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'
  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 <a href="../../authentication/authentication-api-reference/" target="_blank">the Citi Authentication API reference</a> for information on requesting a token.


        '
      flows:
        clientCredentials:
          tokenUrl: /authenticationservices/v3/oauth/token
          scopes: {}