Skip to navigation

Reserve Virtual Accounts

View as Markdown

The virtual account creation is a 2-step process (using the reservation and activation services), you can use POST and PUT endpoints one after another.
Contact your citi representative for the number of accounts you can request for reservation per API.

Use POST verb for Reservation action
- The API support XML and JSON formats.
- The reservation/activation functionality is identified based on the request payload (action).
- You specify values for input parameters in the body of your XML/JSON document.
- You encrypt the payload, place it in your request and send it with your application.

<font size=‘2’>Content-Type: Supports application/xml and application/json.
Authorization: The OAuth Token prefixed with bearer and a space in between.

Allowed characters: A-Z, a-z, 0-9, Space
Allowed punctuation marks: ’ ( ) * - , . / : ; _ & $ # @ [ ]

Authentication

AuthorizationBearer

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.

Headers

Idempotency-IdstringRequired<=128 characters

Your unique identification for a POST request
- Maximum length is 128.
- CitiConnect API responds with an error (HTTP status 4XX) if your POST request idempotency identification value is a duplicate across a recent history of idempotency identifications in Citi’s database
- If you don’t receive any response (HTTP status 2XX, 4XX or 5XX) from Citi to your POST request and you wish to retry, re-initiate your request with the same idempotency identification to prevent an accidental duplicate payment.

Query parameters

client_idstringRequired<=40 characters

Unique reference shared during CitiConnect API onboarding (client_id used during OAuth token generation).

Request

Describes the virtual account creation APIs request body parameters.
actionenumRequired

Action is a request type.
- Choose the action value as ”RESERVATION”, if you want to reserve virtual accounts for the previous virtual header account.

Allowed values:
header_accountobjectOptional
number_of_accounts_requiredintegerOptional1-50000

Required parameter only if the value of the action parameter is ‘RESERVATION’.

This parameter specifies the number of virtual accounts requested to be reserved. Minimum account that can be requested/supported under one API call is 1. Contact your Citi representative for the number of accounts you are allowed to request per API call.

purposeenumOptional

Thsi parameter specifies the purpose for the creation of the virtual account. This is a required parameter for both the action parameters, ‘RESERVATION’ and ‘ACTIVATION’.
Allowed value is ‘C’.
- ‘C’ - Client’s Customer

Allowed values:

Response headers

DeprecationstringOptional

The date when this API was stopped or will be stopped by the system owner. ISO 8601-1:2019 format.

SunsetstringOptional

The date when this API will no longer be Supported by the system owner. The API will no longer be responsive and all REQUESTS will generate an error. ISO 8601-1:2019 format.

RateLimit-LimitstringOptional
The rate limit ceiling for that given request measured in a 24 hour cycle.
RateLimit-RemainingstringOptional
The number of requests left in a 15 minute window.
RateLimit-ResetstringOptional

The remaining window before the rate limit resets. ISO 8601-1:2019.

Response

Accepted
request_idstringOptional1-40 characters

Auto-generated unique identification assigned for the request.

statusstringOptional1-20 characters

Status of the request.
Possible statuses are
SUCCESS
REJECTED
PENDING

messagestringOptional1-400 characters
Detailed response for the particular request.
actionstringOptional

Action of the given request.
- ”RESERVATION”
- ”ACTIVATION”.

branch_codestringOptional3-4 characters
Citi's bank code associated with given a header account number.
error_detailslist of objectsOptional
accountlist of objectsOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
405
Method Not Allowed Error
409
Conflict Error
415
Unsupported Media Type Error
429
Too Many Requests Error
500
Internal Server Error