openapi: 3.0.0
info:
description: >-
Retrieve VCA program details necessary to submit a request for a VCA.
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)
Note: You must be logged in to download the SDKs.
version: 1.0.0
title: VCA ID Provisioning
contact:
name: Global CitiConnect Support
email: citiconnectsupport@citi.com
servers:
- url: https://tts.apib2b.citi.com/tts/cards/
description: production gateway URL
- url: https://tts.sandbox.apib2b.citi.com/tts/cards/
description: sandbox URL
security:
- clientCredentials: []
paths:
/vca/programdtls/v1/idprov:
post:
tags: []
summary: ID Provisioning
description:
operationId: generateAuthReport_2
parameters:
- name: Content-Type
in: header
description: Supports 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
- name: Country
in: header
description: >-
Three-character length country code used during onboarding into
Citi.
required: true
schema:
type: string
- name: Region
in: header
description: >-
This value will be used by APIm to route to the respective Citi
backend instance.
required: true
schema:
type: string
requestBody:
description: GenerateIdProvisioningRequest
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IdProvRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IdProvResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnAuthorizedResponse'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/MethodNotAllowedResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/TechIssueResponse'
components:
securitySchemes:
clientCredentials:
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
type: oauth2
flows:
clientCredentials:
scopes:
/api: ''
tokenUrl: https://tts.apib2b.citi.com/tts/cards/api/oauth2/token
schemas:
BadRequestResponse:
type: object
properties:
messageId:
type: string
example: '1234'
description: >-
The requested `messageId` will be provided back in response. The ID
can be `used for investigation and troubleshooting`.
provisioningStatus:
type: string
description: The status of the provisioning made
enum:
- FAILED
errors:
type: array
items:
$ref: '#/components/schemas/Errors'
Errors:
type: object
properties:
errorCode:
type: string
description: The error code displayed while retrieving the transaction.
enum:
- ERC0001
- ERS0007
- ERS0064
- ERS0065
- ERS0066
- ERS0076
- ERC0002
- ERC0003
- MS0003
- MS0004
- MS0005
- MS0006
- GRC0002
- GRC0003
- GRC0004
- GRC0007
- GRC0011
- GRC0012
- GRC0013
example: GRC0003
errorDescription:
type: string
description: >-
The error description that corresponds to error code when there is
any error occurred while retrieving the
transaction.
message:
* `ERC0001` - No ID Provisioning
data was found for the given Program Name: `{programName}`
*
`ERS0007` - Invalid Message ID format
* `ERS0064` - No ID
Provisioning data was found for the given Program Name:
`{programName}`
* `ERS0065` - The required Program Name Field
was empty
* `ERS0066` - The required Program Name Field count
exceeds the maximum limit
* `ERS0076` - Client ID and/or
Program names are missing in Client Onboard Configuration setup.
Contact Citi support .
* `ERC0002` - We have encountered an
error and couldn't receive your request. Please try again, or
contact Citi support if you have any further questions or
comments
* `ERC0003` - We have encountered an error and
couldn't receive your request. Please try again, or contact Citi
support if you have any further questions or comments
*
`MS0003` - There was a problem retrieving the funding source data
for Program Name: `{programName}`
* `MS0004` - There was a
problem retrieving ID provisioning data for Program Name:
`{programName}`
* `MS0005` - There was a problem retrieving the
supplier data for the given Program Name: `{programName}`
*
`MS0006` - Invalid vcaId value.
* `GRC0002` - Client ID is
missing in the request header
* `GRC0003` - Country code
is not available in the request
* `GRC0004` - Region ID
is not available in the request
* `GRC0007` - Client
requested MediaType is not supported.
* `GRC0011` -
Client ID and/or Country and/or region id is missing in Client
Onboard Configuration setup. Contact Citi support.
*
`GRC0012` - Necessary header value is missing
*
`GRC0013` - Invalid JSON Input
example: Country code is not available in the request
IdProvRequest:
type: object
properties:
programName:
type: array
description: '`Company Name` as defined in the virtual cards system'
items:
type: string
maxItems: 5
minItems: 1
example:
- CITIBANK NA SINGAPORE VCN
messageId:
type: string
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
integration.
`Rules:`
* Position 1- 4: Always
"CITI"
* Position 5-8 : unique identifier for the client.
This 4 character to be decided by Citi during client
integration
* Position 9 - 24: Timestamp including
milliseconds
* Position 25 - 28: Randomly generated value
from the client
* Position 29 - 36: To be reserved for future
use
minLength: 28
maxLength: 36
example: KN98420IdProvIDKNAM1647511593723
IdProvResponse:
type: object
properties:
messageId:
type: string
example: '1234'
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
integration.
provisioningStatus:
type: string
description: |2-
The status of your provisioning request.
**Note:** a response of ``200: OK`` indicates only that your request is properly formed and has been successfully received. It is possible to receive a response of ``200: OK`` without successfully completing the provisioning.
See ``provisioningStatus`` for more information.
enum:
- COMPLETED
- PARTIALLY COMPLETED
- FAILED
example: COMPLETED
warningMessage:
type: string
description: >-
Citi API Platform onboarding was not successful.
Please retry once. If you continue to receive this message please\
contact Citi Support for assistance.
**Note:** You will receive this message only if the provisionStatus
is ``Partially Completed`` or ``Failed``.
example: >-
Citi API Platform onboarding was not successful. Please retry once.
If you continue to receive this message please contact Citi Support
for assistance.
programDetails:
type: array
items:
$ref: '#/components/schemas/ProgramDetails'
FundingSourceDetails:
type: object
properties:
fundingSourceId:
type: integer
format: int64
description: >-
Unique identifier of the funding source to which the virtual card
rolls up.
example: 15510
fundingSourceName:
type: string
description: >-
Descriptive name of the real card to which the virtual card rolls
up.
example: APAC UAT GRACE TEST1
PaymentBeneficiaryDetails:
type: object
properties:
paymentBeneficiaryId:
type: integer
format: int64
description: >-
Uniquely identifies the payment beneficiary id for which the virtual
card is created.
example: 20122
paymentBeneficiaryName:
type: string
description: >-
Uniquely identifies the payment beneficiary name for which the
virtual card is created.
example: Test Company Supplier 2
ProgramDetails:
type: object
properties:
programName:
type: string
description: Company Name as defined in the virtual cards system.
example: INDRALOK INFOWAY
programId:
type: string
description: Unique ID of the company record defined in the virtual cards system.
example: '433161'
status:
type: string
description: >-
Defines the status of the data that was requested whether the
request has been processed or not.
enum:
- COMPLETED
- FAILED
example: COMPLETED
fundingSourceDetails:
type: array
items:
$ref: '#/components/schemas/FundingSourceDetails'
purchaseTemplates:
type: array
items:
$ref: '#/components/schemas/PurchaseTemplates'
paymentBeneficiaryDetails:
type: array
items:
$ref: '#/components/schemas/PaymentBeneficiaryDetails'
error:
$ref: '#/components/schemas/Errors'
PurchaseTemplates:
type: object
properties:
templateId:
type: integer
format: int64
description: >-
Identifies the template id that was setup in the VCA system and that
should be used for this virtual card.
example: 24694
templateName:
type: string
description: >-
Identifies the template name that was setup in the VCA system and
that should be used for this virtual card.
example: GRACE Test Template 2
templateDescription:
type: string
description: >-
Identifies the template description that was setup in the VCA system
and that should be used for this virtual card.
example: GRACE Test Template 2
MethodNotAllowedResponse:
type: object
properties:
path:
type: string
description: Requested resource path is available
error:
type: string
description: Method Not Allowed
message:
type: string
description: Detail error message with HTTP request operation type
timestamp:
type: string
description: Citi rejected timestamp
status:
type: string
description: '405'
UnAuthorizedResponse:
type: object
properties:
httpCode:
type: string
description: '401'
httpMessage:
type: string
description: Unauthorized
moreInformation:
type: string
description: >-
Client ID and/or Country and/or region id is missing in Client
Onboard Configuration setup. Contact Citi support.
TechIssueResponse:
type: object
properties:
messageId:
type: string
description: >-
The requested `messageId` will be provided back in response. The ID
can be `used for investigation and troubleshooting`.
provisioningStatus:
type: string
description: The status of the provisioning made
enum:
- FAILED
errors:
type: array
items:
$ref: '#/components/schemas/TechErrors'
TechErrors:
type: object
properties:
errorCode:
type: string
description: >-
The error code if there is any error occurred while technical issue
is occurred in system
enum:
- ERC0002
- ERS0049
- GRC0001
- GRC0005
- GRC0006
- GRC0009
- GRC0014
errorDescription:
type: string
description: >-
The error description that corresponds to error code when there is
any error occurred while retrieving the transaction.
*
`ERC0002` - We have encountered an error and couldn't receive your
request. Please try again, or contact Citi support if you have any
further questions or comments
* `ERS0049` - We have
encountered an error and couldn't receive your request. Please try
again, or contact Citi support if you have any further questions or
comments
* `GRC0001` - We have encountered an error and
couldn't receive your request. Please try again, or contact Citi
support if you have any further questions or comments
*
`GRC0005` - We have encountered an error and couldn't 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 couldn't 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
couldn't 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 couldn't receive your
request. Please try again, or contact Citi support if you have any
further questions or comments