{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-card-enrollment-partial-success-response-schema.json",
  "title": "CardEnrollmentPartialSuccessResponse",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citi-mvca-api-openapi.yml#/components/schemas/CardEnrollmentPartialSuccessResponse",
  "properties": {
    "cardHolderUserId": {
      "description": "Unique ID to be generated & sent by Citi clients to identify user profile.",
      "type": "string",
      "format": "alphanumeric [a-zA-Z0-9]",
      "maxLength": 20,
      "minLength": 1
    },
    "countryOfIssuance": {
      "description": "Country in which the VCA program is issued out of.",
      "type": "string",
      "format": "alphabets [a-zA-Z]",
      "maxLength": 3,
      "minLength": 3
    },
    "screeningInfo": {
      "description": "Screening status after performing customer screening.",
      "type": "object",
      "format": "object",
      "$ref": "#/$defs/ScreeningInfo"
    },
    "cardPartialSuccessInfo": {
      "description": "Screening status after performing customer screening.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/ValidationErrorResponseDetails"
      }
    }
  },
  "$defs": {
    "EnrollErrorMessage": {
      "required": [
        "errorCode",
        "errorDescription"
      ],
      "type": "object",
      "description": "List of error code and description to be sent to the Client",
      "properties": {
        "errorCode": {
          "maxLength": 10,
          "minLength": 1,
          "type": "string",
          "description": "error code to be sent to the Client",
          "format": "alphanumeric [a-zA-Z0-9]"
        },
        "errorDescription": {
          "description": "The error description that corresponds to error code when there is any  error occurred while retrieving the trsansaction.<br>            * `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 <br>            * `GRC0002` - Client ID is missing in the request header <br>            * `GRC0003` - Contry code is not available in the request <br>            * `GRC0004` - Region ID is not available in the request <br>            * `GRC0005` - 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 <br>            * `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 <br>            * `GRC0007` - Client requested MediaType is not supported. <br>            * `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 <br>            * `GRC0011` - Client ID and/or Country and/or region id is missing in Client Onboard Configuration setup. Contact Citi support. <br>            * `GRC0012` - Necessary header value is missing <br>            * `GRC0003` - Invalid JSON Input <br>            * `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 <br>           * `EVB1245` - First Name is mandatory and should not be null or empty <br>            * `EVB1246` - Last Name is mandatory and should not be null or empty <br>            * `EVB1247` - Line 1 of address is mandatory and should not be null or empty <br>            * `EVB1248` - City is mandatory and should not be null or empty <br>            * `EVB1249` - State is mandatory and should not be null or empty <br>            * `EVB1250` - Zip code is mandatory and should not be null or empty <br>            * `EVB1251` - Country is mandatory and should not be null or empty <br>            * `EVB1252` - Date of Birth is mandatory and should not be null or empty <br>            * `EVB1253` - Country is mandatory and should not be null or empty <br>            * `EVB1254` - Nationality is mandatory and should not be null or empty <br>            * `EVB1257` - Document(s) is mandatory and should not be null or empty and should be one of the required documents<br>           * `EVB1258` - countryOfIssuance is mandatory<br>           * `EVB1150` - cardHolderUserId is mandatory<br>           * `EVB1152` cardHolderUserId must be plain text<br>           * `EVB1151` - cardHolderUserId size must be between 1 and 20 characters<br>           * `EVB1259` - countryOfIssuance must be exactly 3 characters<br>           * `EVB1260` - countryOfIssuance must be only in upper case<br> * `EVB0017` - vcaGuid is empty or null<br> * `EVB0014` - vcaGuid value must be a numeric <br> * `EVB0010` - vcaGuid size must be between 1 and 19 digits<br> * `EVB0033` - fundingSourceId is mandatory<br> * `EVB0032` - fundingSourceId value must be numeric<br> * `EVB0352` - FundingSourceId is Invalid. FundingSourceId value should be a valid long value and size must be between 1 and 19 digits<br> * `EVB0042` - fundingSourceName is mandatory<br> * `EVB0041` - fundingSourceName must have minimum of 1 and maximum of 100 characters<br> * `EVB0271` - expiryDate is mandatory<br> * `EVB0061` - expiryDate length exceeds max length allowed of: 6 characters<br> * `EVB0259` - expiryDate must have format: MMYYYY<br> * `EVB0219` - expiryDate month and year cannot be a past or current date<br> * `EVB0626` - expiryDate cannot be more than 24 months into the future<br> * `EVB0265` - mccGrouping cannot be null or empty<br> * `EVB0254` - mccGrouping should not contain multiple values<br> * `EVB0062` - TimeZone is mandatory<br> * `EVB0063` - timeZone field has an invalid UTC offset time zone format. Valid format is UTC+/-HH:MM<br> * `EVB0615` - No time zone found for UTC value provided in timeZone field<br> * `EVB0071` - templateId is mandatory<br> * `EVB0014` - templateId should be numeric<br> * `EVB0010` - templateId should have minimum of 1 & maximum of 19 characters<br> * `EVB0071` - virtualCardAccountNumber is mandatory<br> * `EVB0010` - virtualCardAccountNumber must have exactly 16 characters<br> * `EVB0502` - virtualCardAccountNumber is Invalid<br> * `EVB0255` - customReference list should have minimum of 1 & maximum of 29 items<br> * `EVB504` - templateCustomField.customFieldName is mandatory<br> * `EVB0258` - customReferenceLabel should have minimum of 1 & maximum of 50 characters<br> * `EVB0505` - templateCustomField.customFieldValue is mandatory<br> * `EVB0353` - customReferenceValue should have minimum of 1 & maximum of 80 characters<br> * `EVB0136` - currencyType is mandatory<br> * `EVB0162` - currencyType must have value which matches regex: M|B|m|b<br> * `EVB0130` - currencyType length exceed max length allowed is:  1 characters<br> * `EVB0065` - currencyCode is mandatory<br> * `EVB0245` - currencyCode value must be numeric [0-9]<br> * `EVB0099` - currencyCode length allowed is: 3 digits<br> * `EVB0624` - The currencyCode value provided is invalid. Please update the currencyCode value and retry your request<br> * `EVB0272` - Both Aging and Spend Velocity Control cannot be enabled<br> * `EVB0273` - Either Aging or Spend Velocity Control should be enabled<br> * `EVB0903` - Atleast one Spend velocity control is required, When enableSpendVelocity is true<br> * `EVB503` - SpendVelocity size should not exceed 6<br> * `EVB0137` - spendVelocityControl-cumulativeSpendLimit is mandatory<br> * `EVB0625` - cumulativeSpendLimit max field length is 14 digits with 12 digits to the left of the decimal and 2 digits to the right of the decimal<br> * `EVB0365` - periodType is mandatory if enableSpendVelocity is true<br> * `EVB0140` - periodType length exceeds max length allowed of: 1 character<br> * `EVB0610` - Invalid periodType value. periodType can contain a value of either D, M, W, Q, Y, or C<br> * `EVB0904` - Invalid request. Duplicate periodType values cannot be included when setting the Spend Velocity Control<br> * `EVB0231` - maxAuth is mandatory if enableSpendVelocityControl is set to True<br> * `EVB0362` - Invalid maxAuth format. maxAuth value cannot exceed 8 digits<br> * `EVB0163` - authorizationHoldDays is mandatory if agingVelocityControl is true<br> * `EVB0621` - authorizationHoldDays must be positive long value with a maximum of 4 digits<br> * `EVB0369` - cumulativeSpendLimit is mandatory if Aging Velocity Control is set to true<br> * `EVB0625` - cumulativeSpendLimit max field length is 14 digits with 12 digits to the left of the decimal and 2 digits to the right of the decimal<br> * `EVB0378` - isMerchantIdAllowed is mandatory if MerchantIdControl is enabled<br> * `EVB0371` - isCountryallowed is mandatory if GeographyControl is enabled<br> * `EVB0370` - countryCodes is required if Geography Control is set to true<br> * `EVB0236` - Invalid countryCode, countryCode doesn't exist.<br> * `EVB0367` - startTime is mandatory if Time Of Day Control is true<br> * `EVB0233` - endTime is mandatory if Time Of Day Control is true<br> * `EVB0110` - startTime value must have valid format: HH:MM - H (0,1,2) | H (0-9) : M (0-5) | M (0-9)<br> * `EVB0112` - endTime value must have valid format: HH:MM - H (0,1,2) | H (0-9) : M (0-5) | M (0-9)<br> * `EVB0622` - startTime cannot be equal to endTime<br> * `EVB0235` - startTime value cannot exceed the requested endTime value<br> * `EVB0232` - weekdayEffective is mandatory if Time Of Day Control is true<br> * `EVB0368` - weekdayEffective must have value which matches regex: SUN|MON|TUE|WED|THU|FRI|SAT<br> * `EVB0623` - timeOfDayControl cannot have duplicate weekdayEffective values<br> * `EVB0113` - startTime is mandatory if CurfewControl is true<br> * `EVB0110` - startTime value must have valid format: HH:MM - H (0,1,2) | H (0-9) : M (0-5) | M (0-9)<br> * `EVB0114` - endTime is mandatory if CurfewControl is true<br> * `EVB0112` - endTime value must have valid format: HH:MM - H (0,1,2) | H (0-9) : M (0-5) | M (0-9)<br> * `EVB0622` - startTime cannot be equal to endTime<br> * `EVB0235` - startTime value cannot exceed the requested endTime value<br> * `EVB0262` - weekdayEffective is mandatory if enableCurfewControl is true<br> * `EVB0263` - CurfewControl-weekdayEffective must have value which matches regex: ((?i)(SUN|MON|TUE|WED|THU|FRI|SAT))(,(?i)(SUN|MON|TUE|WED|THU|FRI|SAT))*<br> * `EVB0106` - minAmount is mandatory if enableAmountRangeControl is true<br> * `EVB0354` - AmountRangeControl-minAmount length exceed max length allowed is:  14 characters<br> * `EVB0107` - maxAmount is mandatory if enableAmountRangeControl is true<br> * `EVB0355` - AmountRangeControl-maxAmount length exceed max length allowed is:  14 characters<br> * `EVB0381` - AmountRangeControl-minAmount is greater than maxAmount<br> * `EVB0170` - amountLimit is mandatory if TransactionLimitControl is true<br> * `EVB0364` - transactionlimitcontrol-amount value must be a numeric positive value with a maximum of 10 digits to the left and 2 digits to the right of the decimal<br> * `EVB0125` - validityStartDate is mandatory if ValidityPeriodControl is true<br> * `EVB0121` - validityStartDate value must have valid format: YYYY-MM-DD<br> * `EVB0211` - validityStartDate invalid format. MM value must be less than or equal to 12 and DD value must be less than or equal to 31<br> * `EVB0238` - The date specified in validityStartDate does not exist<br> * `EVB0217` - validityStartDate cannot be a past date<br> * `EVB0126` - validityEndDate is mandatory if ValidityPeriodControl is true<br> * `EVB0120` - validityEndDate value must have valid format: YYYY-MM-DD<br> * `EVB0211` - validityEndDate invalid format. MM value must be less than or equal to 12 and DD value must be less than or equal to 31<br> * `EVB0237` - The date specified in validityEndDate does not exist<br> * `EVB0218` - validityEndDate cannot be a past date<br> * `EVB0600` - validityStartDate should be before validityEndDate<br> * `EVB0215` - Validity Period Control must be set to true and validityStartDate and validityEndDate are mandatory if periodType = C<br> * `EVB1153` - vcaRequestor.requestorType is mandatory and can be either 'INDIVIDUAL' or 'ORG'<br> * `EVB1154` - vcaRequestor.id is mandatory<br> * `EVB1155` - vcaRequestor.firstName is mandatory<br> * `EVB1156` - vcaRequestor.lastName is mandatory<br> * `EVB1157` - vcaRequestor.middleName is mandatory<br> * `EVB1158` - vcaRequestor.orgName is mandatory<br> * `EVB1161` - vcaUser.emailId is mandatory<br> * `EVB1162` - vcaUser.emailId format is invalid<br> * `EVB1163` - vcaUser.mobileNumber is mandatory<br> * `EVB1164` - vcaUser.mobileNumber should be numeric<br> * `EVB1165` - vcaUser.mobileCountryCode is mandatory<br>",
          "type": "string",
          "format": "alphanumeric [a-zA-Z0-9]"
        }
      }
    },
    "ScreeningInfo": {
      "properties": {
        "status": {
          "description": "Final status of Enrollment process.",
          "type": "string",
          "format": "alphabets[a-zA-Z]",
          "enum": [
            "APPROVED",
            "UNDER CITI REVIEW",
            "DECLINED"
          ]
        },
        "description": {
          "description": "Description of final status after performing customer screening.",
          "type": "string",
          "format": "alphabets[a-zA-Z]"
        }
      }
    },
    "ValidationErrorResponseDetails": {
      "properties": {
        "vcaRequestId": {
          "description": "Unique reference Id generated by Citi for MASTER network.",
          "type": "string",
          "format": "alphanumeric [a-zA-Z0-9-]",
          "maxLength": 20
        },
        "vcaGuid": {
          "description": "Unique Id to refer Virtual Card Account.",
          "type": "integer",
          "format": "int64",
          "maxLength": 19,
          "minLength": 1
        },
        "cardDataErrors": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EnrollErrorMessage"
          }
        },
        "userId": {
          "description": "Unique ID to be generated & sent by Citi clients to identify user profile.",
          "type": "string",
          "format": "alphanumeric [a-zA-Z0-9//s]",
          "maxLength": 20,
          "minLength": 1
        },
        "userDataErrors": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EnrollErrorMessage"
          }
        }
      }
    }
  }
}