openapi: 3.0.0 info: description: >- Returns identification parameters and controls sets on the virtual card account.

Note: For Visa, the authorization controls that were set on the virtual card will only be returned in the Get VCA Details API response when today's date is within the validity period. If today's date is before the validity period start date, or if today's date is after the validity period end date, then the authorization controls that were set on the virtual card will not be returned in the Get VCA Details API response version: 2.0.0 title: get-vca-details contact: name: Global CitiConnect Support email: citiconnectsupport@citi.com x-ibm-name: get-vca-details servers: - url: https://tts.apib2b.citi.com/tts/cards/vca/v2/reports paths: /details: post: summary: >- Returns account balance, identification parameters, and controls sets on the virtual card account description: >- Returns account balance, identification parameters and controls sets on the virtual card account operationId: getVcaDetails tags: - GetVcaDetails parameters: - name: Content-Type in: header description: Supports application/json required: true schema: type: string - name: Authorization in: header description: >- Oauth token included by the external client to APIm. APIm will external the client ID and pass it to GRACE required: true schema: type: string - name: Country in: header description: >- Three character length country code used during onboarding into GRACE required: true schema: type: string - name: Region in: header description: >- This value will be used by APIm to route to the respective GRACE backend instance required: true schema: type: string - name: Req-Sys-Id in: header description: >- Unique ID of the API message sent. This ID will be provided back in the corresponding response. The ID can be used for investigation and troubleshooting. The ID must be unique per request. required: false schema: type: string requestBody: description: GetVcaDetailsInboundRequest required: true content: application/json: schema: $ref: '#/components/schemas/GetVcaDetailsInboundRequest' examples: Mastercard: summary: Get VCA Details - Mastercard Sample Request value: vcaId: '17896177' programId: '431341' messageId: CITI00000GetVCADetails20260521195320 Visa: summary: Get VCA Details - Visa Sample Request value: vcaId: '2026052114225155307' programId: '918' messageId: CITI00000GetVCADetails20260521195321 virtualCardAccountNumber: '4715380372289458' Idempotency: summary: Get VCA Details - Card Creation Status Check value: programId: '918' messageId: CITI00000GetVCADetails20260521195321 originalCreateMessageId: CITI00000CreateRequest20260521195310 responses: '200': description: >-
CodeDetails
GetVcaDetailsInboundResponsesuccess
content: application/json: schema: $ref: '#/components/schemas/GetVcaDetailsInboundResponse' examples: Mastercard: summary: Get VCA Details - Mastercard Sample Response value: vcaId: '7890123456789' virtualCardAccountNumber: '5412345678901234' messageId: 908c090d1995490eb3b431a1f37356df programId: '431341' securityCode: '123' templateId: '23358' requestStatus: Approved expiryDate: '112026' timeZone: UTC+10:00 currencyCode: '008' currencyType: B paymentBeneficiaryId: '19180' paymentBeneficiaryEmails: - abcd@citi.com cardImage: >-
  • Value "M" stands for Merchant Currency which indicates that Merchant transactions are limited to the VCA currency provided in the currencyCode field.

  • Visa - The only valid value is "M", which stands for Merchant Currency and indicates that merchant transactions are limited to the VCA currency specified in the currencyCode field. If a currencyType is not provided, then the VCA can be used for any merchant transaction currency. type: string format: alphanumeric example: B maxLength: 1 paymentBeneficiaryId: description: >- Uniquely identifies the payment beneficiary for which the virtual card is created.
    Mastercard - Required
    Visa - Not applicable type: string format: long example: '1133' maxLength: 19 paymentBeneficiaryEmails: description: >- Lists of up to 5 email addresses separated by semicolon to which the virtual card details should be sent to. In order for emails to get delivered, the following two settings must be enabled in the VCA system:
    1. Allow VCN details to be emailed to this supplier
    2. Allow VCN requestor to manually enter a new email address when requesting a VCN

    Mastercard - Optopnal
    Visa - Not applicable type: array items: type: string format: alphanumeric example: - abc@host.com cardImage: description: >- A visual representation of the virtual card account front and back.

    Mastercard - Optional
    Visa - Not applicable type: string format: alphanumeric example: string mccGrouping: description: >- Limits authorizations to defined Merchant Category Codes. Cannot be used in conjunction with the mccRange field

    Mastercard - This the name of the Purchase Type that's been configured on the Purchase Template on Mastercard's VCA platform. The Purchase Type value is returned in the Purchase Template Details API

    Visa - pass a list of MCCGs defined by Visa to allow or block VCA transactions for the specified MCCGs.

    Visa Possible values:

    "ATM" - Block ATM cash withdrawals.

    "ECOM" - Block all Internet-based transactions.

    "CNP" - Block all transactions made over the Internet, phone or mail order.

    "NOC" - Block all other cash access. This includes non-ATM transactions such as cash advances and purchase with cashback.

    "ADT" - Block purchases at adult-themed merchants.

    "FUEL" - Block purchases conducted at fuel/driver merchants (including gas stations, car washes, parking lots and tolls).

    "HOT" - All purchases made at hotel merchants will be declined.

    "AUTO" - All purchases made at auto-rental merchants will be declined.

    "AIR" - All purchases made at airline merchants will be declined.

    "REST"- All purchases made at restaurants will be declined.

    "JEWL"- All purchases made at jewelry store locations will be declined

    "ELEC" - All purchases conducted at electronics themed-merchants will be declined.

    "ALC" - All purchases conducted at alcohol and tobacco merchants will be declined.

    "GTM" - All purchases conducted at ground transportation merchants will be declined (includes taxis, trains, and bridge tolls).

    "OSS" - All purchases conducted at office supply merchants will be declined.

    "GROC" - All purchases conducted at grocery store and pharmacy merchants will be declined.

    "ENT" - All purchases conducted at entertainment and sports merchants will be declined (includes movie theaters, music stores and sporting goods stores).

    "UTIL" - All purchases conducted at utilities will be declined (includes cable, phone and electric companies).

    "CLOTH" - All purchases conducted at clothing and general retail merchants will be declined (includes department stores, shoe stores and book stores).

    "MED" - All purchases made at medical merchants will be declined. type: array items: type: string format: alphanumeric example: - All MCCs mccgAllowed: description: >- Returned if the mccGrouping field is populated or if the mccRange field is populated.
    Specifies whether the mccGrouping are allowed or disallowed.
    If true is passed, the mccGrouping or mccRange is allowed.
    If false is passed, then the mccGrouping or mccRange is disallowed.
    Mastercard - Not applicable
    Visa - Optional type: string format: boolean example: 'true' mccRange: description: >- Limits authorizations to a defined range of Merchant Category Codes.(eg: [0001-9999, 2000-2999]). Cannot be used in conjunction with the mccGrouping field
    Mastercard - Not Applicable
    Visa - Optional type: array items: type: string format: alphanumeric example: - 0000-9999 cumulativeSpendLimit: description: >- Limits the overall amount that can be spent on the virtual card account. This field is associated to the Aging Velocity Control
    Mastercard - Optional. Max character length - 14 digits (12 digits to the left of the decimal and 2 digits to the right of the decimal)
    Visa - Not applicable type: string format: BigDecimal example: '10000.00' maxLength: 14 authorizationHoldDays: description: >- Identifies the number of days after which an authorization gets aged off if no matching clearing record was received. This field is associated to the Aging Velocity Control
    Mastercard - Optional
    Visa - Not applicable type: string format: long example: '21' maxLength: 19 availableBalance: description: >- Specifies the remaining balance available to spend on the virtual card. In response to a VCA creation API request, this value will typically be equal to the cumulativeSpendLimit since no transactions were made on the card yet. This field is associated to the Aging Velocity Control
    Mastercard - Optional
    Visa - Not applicable type: string format: BigDecimal example: '10000.00' spendVelocity: type: array items: $ref: '#/components/schemas/SpendVelocity' amountLimit: description: >- Identifies the maximum allowed transaction amount, associated to the transaction limit control. type: string format: BigDecimal example: '100000.00' maxLength: 14 minAmount: description: >- Identifies the minimum allowed transaction amount, associated to the amount range control. type: string format: BigDecimal example: '11000.00' maxLength: 14 maxAmount: description: >- Identifies the maximum allowed transaction amount, associated to the amount range control. type: string format: BigDecimal example: '50000.00' maxLength: 14 validityStartDate: description: >- Identifies the date from which the virtual card account can be used for transactions.
    The Start Date must be prior to the End Date.
    `Format:` YYYY-MM-DD type: string format: alphanumeric example: '2023-01-01' maxLength: 10 validityEndDate: description: >- Identifies the date until which the virtual card account can be used for transactions.
    The Start Date must be prior to the End Date.
    `Format:` YYYY-MM-DD type: string format: alphanumeric example: '2024-01-01' maxLength: 10 curfewTime: $ref: '#/components/schemas/CurfewTime' timeOfDay: type: array items: $ref: '#/components/schemas/TimeOfDay' countryCodes: description: Defines the merchant country in which the VCA can or cannot be used. type: array items: type: string format: alphanumeric example: - AFG allowed: description: >- Indicate whether the values in countryCode are allowed or disallowed.
    True = values provided in countryCode are allowed
    False = values provided in countryCode are not allowed type: string format: boolean example: 'true' merchantInfo: $ref: '#/components/schemas/MerchantInfo' customReference: description: Array of custom refernce lable & value pairs type: array items: $ref: '#/components/schemas/CustomReference' required: - vcaId - virtualCardAccountNumber - messageId - programId - expiryDate - timeZone SpendVelocity: properties: cumulativeSpendLimit: description: >- Limits the overall amount that can be spent on the virtual card account.
    Mastercard - Allows a maximumm of 14 digits (12 digits to the left of the decimal and 2 digits to the right of the decimal)
    Visa - Allows a maximumm of 12 digits (10 digits to the left of the decimal and 2 digits to the right of the decimal) type: string format: BigDecimal example: '10000.00' maxLength: 14 maxAuth: description: >- Limits the number of authorizations that can be made with a VCA. Mastercard: If set to 0, unlimited authorizations are allowed on the VCA. (0 is not applicable for Visa) type: string format: long example: '5' maxLength: 19 periodType: description: >- Period for which the control values are valid before they reset.

    Mastercard:
    D = Daily
    The balances of control parameters enabled for a VCA are reset with their original values every day at 00:00:00.

    M = Monthly
    The balances of control parameters enabled for a VCA are reset with their original values at the start of every month.

    W = Weekly
    The balances of control parameters enabled for a VCA are reset with their original values every Monday at 00:00:00.

    Q = Quarterly
    The balances of control parameters enabled for a VCA are reset with their original values on the first day of every quarter at 00:00:00.
    Quarter 1: January 01 - March 31.
    Quarter 2: April 01 - June 30.
    Quarter 3: July 01 - September 30.
    Quarter 4: October 01 - December 31.

    Y = Annually
    The balances of control parameters enabled for a VCA are reset with their original values every year on January 1st at 00:00:00.

    C = Continuous
    The balances of control parameters enabled for a VCA are retained continuously for the validity period defined. Balances do not reset with their original values throughout the validity period.

    Visa:
    1 = Recurring
    The balances of control parameters enabled for a VCA are reset with their original values on a specified recurring day for every month.

    If you select this periodType, you must also specify the resetDay field.

    2 = Monthly
    The balances of control parameters enabled for a VCA are reset with their original values at the start of every month.

    3 = Date Range
    The balances of control parameters enabled for a VCA are retained continuously for the validity period defined. Balances do not reset with their original values throughout the validity period.

    If you select this periodType, you must also specify the validityStartDate and validityEndDate fields. type: string format: alphanumeric example: D maxLength: 1 periodEndDate: description: >- End date of the current period based on the periodType selected.

    Mastercard - Optional
    Visa - Not applicable type: string format: alphanumeric example: '2020-11-27' maxLength: 10 availableBalance: description: Remaining available amount balance on the VCA type: string format: BigDecimal example: '5000.00' resetDay: description: >- The day of each month when the control parameter balances should reset to their original value.
    Mastercard - Not applicable
    Visa - Optional type: string format: long example: '5' maxLength: 19 consumedAmount: description: >- The amount consumed on the VCA
    Mastercard - Not applicable
    Visa - Required type: string format: BigDecimal example: '1100.00' availableCountBalance: description: >- Remaining available authorization count balance on the VCA
    Mastercard - Not applicable
    Visa - Required type: string format: long example: '1235' maxLength: 19 consumedCount: description: >- The number of authorizations consumed on the VCA
    Mastercard - Not applicable
    Visa - Required type: string format: long example: '1222' maxLength: 19 CurfewTime: properties: startTime: description: >- Specifies the start time from when the card can be used each of the specified days.

    Mastercard - Optional
    Visa - Not applicaable

    `Format:` hh:mm type: string format: alphanumeric example: '01:00' maxLength: 5 endTime: description: >- Specifies the end time until which the card can be used each of the specified days.

    Mastercard - Optional
    Visa - Not applicaable

    `Format:` hh:mm type: string format: alphanumeric example: '22:00' maxLength: 5 weekdaysEffective: description: >- Listing of days to which the time curfew applies.

    Mastercard - Optional
    Visa - Not applicaable

    Possible Values:

    MON
    TUE
    WED
    THU
    FRI
    SAT
    SUN
    type: array items: type: string format: alphanumeric example: - MON - TUE TimeOfDay: properties: startTime: description: >- Specifies the start time from when the card can be used each of the specified days.t

    Mastercard - Optional
    Visa - Optional. The minutes digit must be populated with zero only

    `Format:` hh:mm type: string format: alphanumeric example: '01:00' maxLength: 5 endTime: description: >- Specifies the end time until which the card can be used each of the specified days.

    Mastercard - Optional
    Visa - Optional. The minutes digit must be populated with zero only

    `Format:` hh:mm type: string format: alphanumeric example: '22:00' maxLength: 5 weekdayEffective: description: >- Specifies the day applicable to the start and end times defined.
    Mastercard - Optional
    Visa - Optional

    Possible Values:

    MON
    TUE
    WED
    THU
    FRI
    SAT
    SUN
    type: string format: alphanumeric example: WED maxLength: 3 MerchantInfo: properties: allowed: description: >- Indicate whether the values in merchantId and acquirerId are allowed or disallowed.
    True = values provided in merchantId and acquirerId are allowed
    False = values provided in merchantId and acquirerId are not allowed type: string format: boolean example: 'true' merchantIds: type: array items: $ref: '#/components/schemas/MerchantId' MerchantId: properties: merchantId: description: >- Specifies the Merchant ID that should be allowed / disallowed when transacting with the virtual card.
    Mastercard - Optional
    Visa - Not applicable type: string format: alphanumeric example: '0009876' maxLength: 15 acquirerId: description: >- Specifies the Acquirer ID that should be allowed / disallowed when transacting with the virtual card.
    Mastercard - Optional
    Visa - Optional type: string format: long example: '123456' maxLength: 6 cardAcceptorId: description: >- Specifies the Card Acceptor ID that should be allowed / disallowed when transacting with the virtual card.
    Mastercard - Not applicable
    Visa - Optional type: string format: alphanumeric example: '123456' maxLength: 15 CustomReference: properties: customReferenceLabel: description: Specifies the label of a custom reference field. type: string format: alphanumeric example: Purchase Type maxLength: 50 customReferenceValue: description: >- Specifies the value of a custom reference field.

    Mastercard - Max Length - 80 characters
    Visa - Max Length - 100 characters' type: string format: alphanumeric example: Airlines maxLength: 100 GetVcaDetailsInboundErrorResponse: properties: errorMessage: type: array items: $ref: '#/components/schemas/ErrorResponseCode' ErrorResponseCode: properties: code: description: which indicates the error code type: string format: alphanumeric enum: - ERS0001 - ERS0007 - ERS0060 - ERS0061 - ERS0068 - ERS0069 - ERS0070 - ERS0071 - ERS0085 - ERS0086 - ERS0088 - ERS0089 - GRC0002 - GRC0003 - GRC0004 - GRC0011 - GRC0016 - VSN0020 - VSN0021 - VSN0022 - VSN0023 - VSN0024 - VSN0025 - VSN0026 - VSN0027 - VSN0028 - VSN0029 - VSN0030 - VSN0031 - VSN0032 - VSN0033 - VSN0034 - VSN0035 - VSN0036 - VSN0037 - VSN0038 - VSN0039 - VSN0040 - VSN0041 - VSN0042 - VSN0043 - GRC0001 - GRC0006 - GRC0009 - GRC0014 description: description: >- " The error description that corresponds to error code when there is any
    error occurred while retrieving the trsansaction.
    * `ERS0001` - Invalid Virtual Card Account Number format
    * `ERS0007` - Invalid Message ID format
    * `ERS0060` - Client ID and/or Program Id is missing in Client Onboard Configuration setup. Contact Citi support.
    * `ERS0061` - VCA ID is not present in our system
    * `ERS0068` - Program Id is Mandatory.
    * `ERS0069` - Vca Id is Mandatory.
    * `ERS0070` - Message Id is Mandatory.
    * `ERS0071` - Virtual Card Account Number is Mandatory.
    * `ERS0085` - No VCA data was found for original create message id: {originalCreateMessageId}. Please send a new create VCA request.
    * `ERS0086` - Card details not available. Please retry after 30 sec with original create message id: {originalCreateMessageId}.
    * `ERS0088` - originalCreateMessageId size must be between 28 and 36 character
    * `ERS0089` - originalCreateMessageId should be alphanumeric without special characters
    * `GRC0002` - Client ID is missing in the request header
    * `GRC0003` - Invalid JSON Input
    * `GRC0004` - Region ID is not available in the request
    * `GRC0011` - Client ID and/or Country and/or region id is missing in Client Onboard Configuration setup. Contact Citi support.
    * `GRC0016` - Country code is not available in the request

    * `VSN0020` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0021` - messageId cannot be null
    * `VSN0022` - Invalid Message ID format
    * `VSN0023` - Message ID already exists.
    * `VSN0024` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0025` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0026` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0027` - Program ID is mandatory.
    * `VSN0028` - Invalid Program ID format
    * `VSN0029` - Invalid Program ID format
    * `VSN0030` - Client ID and/or Program Id is missing in Client Onboard Configuration setup. Contact Citi support.
    * `VSN0031` - The required Virtual Card Account Number Field was empty
    * `VSN0032` - Invalid Virtual Card Account Number format
    * `VSN0033` - Invalid Virtual Card Account Number format
    * `VSN0034` - Invalid Virtual Card Account Number format
    * `VSN0035` - VCA details could not be found for the given Virtual Card Account Number.
    * `VSN0036` - VCA details could not be found for the given Virtual Card Account Number.
    * `VSN0037` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0038` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0039` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.
    * `VSN0040` - VCA details could not be found for the given Virtual Card Account Number.
    * `VSN0041` - We were unable to process your request. Please try again, or contact Citi support if you have any further questions or comments.

    * `VSN0042` - VCA ID is not present with Master card
    * `VSN0043` - VCA ID is not present with Master card

    * `GRC0001` - We have encountered an error and couldnt receive your request. Please try again, or contact Citi support if you have any further questions or comments
    * `GRC0006` - We have encountered an error and couldnt receive your request. Please try again, or contact Citi support if you have any further questions or comments
    * `GRC0009` - We have encountered an error and couldnt receive your request. Please try again, or contact Citi support if you have any further questions or comments
    * `GRC0014` - We have encountered an error and couldnt receive your request. Please try again, or contact Citi support if you have any further questions or comments type: string format: alphanumeric ResponseCodes400: properties: errors: type: array items: $ref: '#/components/schemas/ResponseCodes' vcaId: description: >- A reference number that uniquely identifies the virtual card account. type: string format: long example: '900497' maxLength: 19 virtualCardAccountNumber: description: The virtual card account number to use for transactions. type: string format: alphanumeric example: '5555000075555000' maxLength: 19 messageId: description: >- Unique ID of the API message sent. The messageId will be provided back in the corresponding response. The ID can be used for investigation and troubleshooting. The ID must be unique per request. type: string format: alphanumeric example: CITI00002022122818090320221228180903 maxLength: 36 programId: description: Returned based on what client passes in the request type: string format: long example: '233191' maxLength: 19 ResponseCodes: properties: errorCode: description: which indicates the error code type: string format: alphanumeric example: ERS0061 maxLength: 30 errorDescription: description: which indicates the error description type: string format: alphanumeric example: VCA ID is not present in our system maxLength: 300 required: - errorCode - errorDescription ResponseCode500: properties: errors: type: array items: $ref: '#/components/schemas/ResponseCode' ResponseCode: properties: errorCode: description: which indicates the error code type: string example: GRC0014 errorDescription: description: which indicates the error description type: string example: >- We have encountered an error and couldnot receive your request. Please try again, or contact Citi support if you have any further questions or comments 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.

    Sandbox Token URL: https://tts.sandbox.apib2b.citi.com/tts/api/oauth2/token
    flows: clientCredentials: scopes: /api: '' tokenUrl: https://tts.apib2b.citi.com/tts/cards/api/oauth2/token security: - clientCredentials: - /api x-ibm-configuration: enforced: true testable: true phase: realized cors: enabled: false properties: hostName: value: >- https://base-b-grace-engine-dev-icg-tts-grace-173707.apps.namicggtd29d.ecs.dyn.nsroot.net/api/tts/cards description: '' encoded: false catalogs: External: properties: hostName: >- https://base-b-grace-engine-dev-icg-tts-grace-173707.apps.namicggtd29d.ecs.dyn.nsroot.net/api/tts/cards UAT: properties: hostName: >- https://base-b-grace-engine-uat-icg-tts-grace-173707.apps.namicgswd40u.ecs.dyn.nsroot.net/api/tts/cards assembly: execute: - gatewayscript: title: gatewayscript version: 1.0.0 source: "var hm = require('header-metadata');\r\nvar client_id = apim.getvariable('client.app.id');\r\napim.setvariable('message.headers.x-citiportal-apim-client-id',client_id);\r\nif(apim.getvariable('oauth.miscinfo') !=null){\r\nvar oauthmiscinfo = apim.getvariable('oauth.miscinfo');\r\napim.setvariable(\"message.headers.ssoId\",oauthmiscinfo.substring(2));\r\nconsole.error(\"vminfo API failed with return code=\" + oauthmiscinfo.substring(2) );\r\napim.setvariable('message.headers.x-citiportal-apim-client-id',client_id);\r\napim.setvariable(\"message.headers.x-citiportal-loginid\",oauthmiscinfo.substring(2)); \r\n}" - proxy: title: proxy timeout: 60 verb: keep cache-response: protocol cache-ttl: 900 version: 1.0.0 tls-profile: icg-tts-ic target-url: $(hostName)$(request.path) - activity-log: title: activity-log content: header error-content: header version: 1.0.0 catch: [] x-apigee-configuration: lob: tts basepath: /tts/cards/vca/v2/reports org: external eSSL: mtls tlsprofile: smb-ext-egress-tls ingressSecurity: oauth egressSecurityJWT: 'false' jwtHeader: '' jwtSubject: '' spikeEnabled: 'true' quotaEnabled: 'true' oauthProduct: oauth2-tts-api-authentication_1-0-0_ttsapiauthentication30mins tokenURL: /tts/api/v1/oauth2/token scope: /api targethost: >- base-b-grace-engine-uat-cte-icg-tts-grace-173707.apps.namicgswd43u.ecs.dyn.nsroot.net targetpath: /api/tts/cards/vca/v2/reports setPortalHeaders: '' csiId: 173707 apiproxyname: get-vca-details_2-0-0 email: pk85409@citi.com