The Money Movement API lets you move money in the market of the account of the Citi customer who authorized your app. Transfers can be made between the customer's own accounts or to external accounts that they have previously set up. Transfers can be made between Citi accounts or from a Citi account to an account at another bank.

In addition to transfers, the API allows you to pay bills in the market of the Citi customer who authorized your app holds an account in.

Personal refers to moving money between customer’s own Citi accounts in the same market.

Internal transfer refers to moving money to other customer Citi accounts in the same market.

External transfer refer to moving money to other bank accounts in the same market.

 

Note: The Developer Hub Sandbox is a test environment that allows you to make API calls that are the same in form and function to our production environments. It contains mock test data so that you can prototype your application as if it were the real thing. When you’re finished testing, contact sales to request production access.

 

,

Note: Skip this step if you already created an app and have a pair of Client ID and Client Secret.

  1. Sign in to developer.citi.com
  2. Select My Applications tab.
  3. Click Register a New App
     

a. Fill out the required details

b. Upload an icon for your app (optional)

c. Click Submit

d. You will receive a pair of Client ID and Client Secret. Store this information securely. Use the Show button/checkbox to see your Client ID and Client Secret.

Note: Client secret is shown only once, so make sure you save this information. If in any case you lose your credential set, you can use the Regenerate button to get a new set of Client ID & Client Secret.

,

An access token is required to call all functional APIs. To retrieve your access token, visit your market’s Authorize guide.

,

Returns valid combinations of destination and source accounts of all payment types for an authenticated Citi Customer. This information can be used to prepare a valid source list for a selected destination, or vice versa.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

paymentType:ALL

nextStartIndex:

,

Returns a list of payees (active and inactive) or destination accounts for the customer who authorized your app.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

paymentType:ALL

nextStartIndex:

,

 Returns the valid combinations of personal domestic transfer destination and source accounts. This information may be used to prepare a valid source list for a selected destination, or vice versa.

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

,

 Creates a new personal domestic transfer and verifys that there are no errors. The response from this resource should be used to construct a pre-confirmation page so the customer can review the transaction before confirming.

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

PreprocessFundTransferRequest

{"sourceAccountId":"3739334c4d3463614356474f6d7650667a737656664652677747796855646c5552745a43346d37423653553d","transactionAmount":100,"transferCurrencyIndicator":"SOURCE_ACCOUNT_CURRENCY","destinationAccountId":"57706472614c786a31716f5855743050597473703259494179505959776a377370614b364167516a57336b3d","chargeBearer":"BENEFICIARY","fxDealReferenceNumber":"1232143","remarks":"Fund Transfer"}

 

Content-Type :application/json

,

Confirms the personal transfer. It should be called after successfully creating the personal transfer. If successful, it will return a confirmation number that should be displayed and stored.

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

PersonalDomesticTransferRequest:

{"controlFlowId":"73304f7071314f4d6a53444a764c752b753649594b326e7a6376366f51304b677677597258306c7847324d3d"}

Content-Type :application/json

,

Returns the valid combinations of the internal domestic transfer destination and source accounts. This information may be used to prepare a valid source list for a selected destination, or vice versa.

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

nextStartIndex:

,

Creates a new Internal domestic transfer and verifys that there are no errors. The response from this resource should be used to construct a pre-confirmation page so the customer can review the transaction before confirming.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

PreprocessFundTransferRequest:

{"sourceAccountId":"3739334c4d3463614356474f6d7650667a737656664652677747796855646c5552745a43346d37423653553d","transactionAmount":50,"transferCurrencyIndicator":"SOURCE_ACCOUNT_CURRENCY","payeeId":"6a563747494e793478424a5a6e575a524e3831435977386d4767345a363837324b5a4a56514f54714f32413d","chargeBearer":"BENEFICIARY","fxDealReferenceNumber":"12345","remarks":"Fund Transfer","transferPurpose":"MEDICAL_SERVICES"}

,

Confirms the internal domestic transfer. It should be called after successfully creating the internal transfer. If successful, it will return a confirmation number that should be displayed and stored.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

InternalDomesticTransfer Request:

{"controlFlowId":"394a793774446a42316e4646637559574b6e673264324d626c4832794e4f5a746172326c3173516a7648673d"}

Content-Type :application/json

,

Returns the valid combinations of external domestic transfer destination and source accounts.This information may be used to prepare a valid source list for a selected destination, or vice versa.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

nextStartIndex:

,

Creates a new external domestic transfer and verifys that there are no errors. The response from this resource should be used to construct a pre-confirmation page so the customer can review the transaction before confirming.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

PreprocessFundTransferRequest:

{"sourceAccountId":"3739334c4d3463614356474f6d7650667a737656664652677747796855646c5552745a43346d37423653553d","transactionAmount":100,"transferCurrencyIndicator":"SOURCE_ACCOUNT_CURRENCY","payeeId":"4d416c58664747352b7178514c314139584c546a4d7163685849497165654a4b2f6d4836754153694e55413d","chargeBearer":"BENEFICIARY","paymentMethod":"GIRO","fxDealReferenceNumber":"","remarks":"Fund Transfer","transferPurpose":"CREDIT_CARD_PAYMENT"}

,

Confirms the external  domestic transfer. It should be called after successfully creating the external domestic transfer. If successful, it will return a confirmation number that should be displayed and stored.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

ExternalDomesticTransferRequest:

{"controlFlowId":"4155666c543878674c3546427075516d425449787a51746630717479482f565171612b434e52423947366f3d"}

,

Returns the valid combinations of domestic bill pay destination and source accounts.This information may be used to prepare a valid source list for a selected destination, or vice versa.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

nextStartIndex:

,

Creates a new domestic bill payment and verifies that there are no errors. The response from this resource should be used to construct a pre-confirmation page so the customer can review the transaction before confirming.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

BillPaymentsPreprocessRequest:

{"sourceAccountId":"3739334c4d3463614356474f6d7650667a737656664652677747796855646c5552745a43346d37423653553d","transactionAmount":100,"transferCurrencyIndicator":"SOURCE_ACCOUNT_CURRENCY","payeeId":"C$0000172391$SG$XX$01000223000009","remarks":"Payment Transfer"}

Content-Type :application/json

,

Confirms the domestic bill payment. It should be called after successfully creating an domestic bill payment. If successful, it will return a confirmation number that should be displayed and stored.

 

Sample Request:

Authorization: Bearer <<Authorization Token>>

uuid: 8120e2d6-0381-4e52-9d90-a5bf771ff243

Accept: application/json

Client_ID: e5245bed-daaf-4eac-867b-57a564604fda

Content-Type :application/json

BillPaymentsRequest:

{"controlFlowId":"7a46733532505072322b4c686a37703767644c695575443944744779325744373249416132537a59396b413d"}

 

Content-Type :application/json