--- swagger: "2.0" info: title: In Principle Approvals description: This API is used to check the In Priniciple Approval eligiblity for the Customer. version: 1.0.0 x-ibm-name: in-principle-approvals schemes: - https basePath: /api produces: - application/json paths: /v1/emea/onboarding/applications/{applicationId}/inPrincipleApprovals: post: summary: Check In Principal approval eligiblity for a customer. description: This API is used to check In Principal approval eligiblity. tags: - In Principle Approvals parameters: - name: applicationId in: path description: the unique identifier of an application type: string required: true - name: client_id in: header description: The client ID you received while Onboarding with Citi to use these API's. This will be generated and shared while registring in the developer portal. type: string required: true - name: countryCode in: header description: Country code in 2 character ISO 3166 format. required: true type: string - name: Authorization in: header description: The Authorization Token. type: string required: true - name: uuid in: header description: A 128 bit universally unique identifier (UUID) that you generate for every request and is used for tracking. It is recommended to use the output from Java UUID class or an equivalent type: string required: true - name: Accept in: header description: Content-Types that are acceptable for the response. Currently we support application/json type: string required: true - name: Content-Type in: header description: The media type of the body of the request (used with POST and PUT requests) Currently we support application/json type: string required: true - name: clientDetails in: header description: Device and browser information. Refer the developer portal for more information. Please ensure the header is base64 encoded type: string required: false - name: InPrincipleApprovalRequest required: true in: body description: In principle approval request. schema: $ref: '#/definitions/InPrincipleApprovalRequest' responses: 200: description: The request has succeeded schema: $ref: '#/definitions/InPrincipleApprovalResponse' 400: description:
TypeCodeDetails
invalidinvalidRequestMissing or invalid Parameters
errorapplicationRejectedApplication Rejected.Cannot process further
errorapplicationNeedsManualReviewApplication needs manual review. IPA not applicable. Please fill all details and do final submission
errorawaitingBackgroundScreeningResultPlease trigger after sometime. Awaiting background screening response
errorperformBackgroundScreeningFirstPlease perform background screening first
errorinPrincipalApprovalAlreadyGivenInPrincipalApproval already given
invalidproductAgreementExpiredAgreement duration of this product is expired
errorinvalidRequestSequenceRequest sequence is not correct.
erroripaNotInitiatedIPA not initiated due to background screening failedscreening failed
erroripaFailedIPA failed
schema: $ref: '#/definitions/ErrorList' 401: description:
TypeCodeDetails
errorunAuthorizedAuthorization credentials are missing or invalid
schema: $ref: '#/definitions/ErrorList' 403: description:
TypeCodeDetails
invalidaccessNotConfiguredThe request operation is not configured to access this resource
schema: $ref: '#/definitions/ErrorList' 500: description:
TypeCodeDetails
fatalserverUnavailableThe request failed due to an internal error
schema: $ref: '#/definitions/ErrorList' definitions: InPrincipleApprovalRequest: properties: controlFlowId: description: Control flow id is used to control the flow for subsequent requests in the session.. type: string example: "2345" InPrincipleApprovalResponse: properties: applicationStage: description: Application Stage of an Application.Please use /utilities/referenceData/{applicationStage} resource to get valid values of this field with descriptions type: string example: BACKGROUND_SCREENING ipaExpiryDate: description: In principle approval expiration date in ISO 8601 date format YYYY-MM-DD type: string format: date example: "2016-09-15" kbaRequiredFlag: description: Flag to mark if KBA (Knowledge Base Assesment) is required.Possible values are true or false type: boolean example: "true" bureauPullExpiredFlag: description: Flag to indicate if the bureau pull data is expired or not.Possible values are true or false type: boolean example: "true" requestedProductDecision: type: array items: $ref: '#/definitions/RequestedProductDecision' counterOffers: type: array items: $ref: '#/definitions/CounterOffer' crossSellOffers: type: array items: $ref: '#/definitions/CrossSellOffer' suggestedOffers: type: array items: $ref: '#/definitions/SuggestedOffer' kbaQuestionnaire: $ref: '#/definitions/KbaQuestionnaire' RequestedProductDecision: properties: productCode: description: A unique code that identifies the product type: string example: VC830 organisationCode: description: Card issuing Organisation code type: string example: "888" sourceCode: description: A source code to identify the product type: string example: WW5ARCE1 creditDecision: description: 'Evaluated Applicant Credit Decision. Possible values: 000,002,003. 000 - APPROVED,003 - REJECTED,002 - REFERRED' type: string example: "000" offerProductCategory: description: Product category associated with the offer.AM - Loan,PC - cards type: string example: AM offerDocumentCriteria: description: 'Document category associated with the offer. Ex: WD(With Document),WO(Without Document)' type: string example: WD ipaRecommendation: description: 'IPA recommendation to the customer. Ex: 11 - PARTIAL,10 - FULL etc.Please use /utilities/referenceData/{ipaRecommendation} resource to get valid values of this field with descriptions.' type: string example: "99" offerSequenceId: description: Unique offer sequence id to identify an offer type: string example: "99" marketingOfferOriginatingBranchId: description: Originating branch id of the citi bank branch where the marketing offer was created. type: string example: "99" marketingOfferCampaignId: description: Campaign Id associated with the marketing offer. type: string example: CA13 marketingOfferWaveId: description: Wave id associated with the marketing offer type: string example: IE12 creditSpecificRecommendations: type: array items: $ref: '#/definitions/CreditSpecificRecommendations' loanSpecificRecommendations: type: array items: $ref: '#/definitions/LoanSpecificRecommendations' requiredDocuments: type: array items: $ref: '#/definitions/RequiredDocuments' CreditSpecificRecommendations: properties: recommendedCreditLimit: description: Eligible Credit limit type: number format: double example: "25000.00" btMaximumLoanPercentage: description: Balance transfer maximum loan percentage. Applicable to Counter and Cross-sell offers type: number format: double example: "5.00" btMonthlyInterestRate: description: Balance transfer monthly interest rate. Applicable to Counter and Cross-sell offers type: number format: double example: "500.00" eppMaximumLoanPercentage: description: Equal payment plan max loan percentage. Applicable to Counter and Cross-sell offers type: number format: double example: "5.00" eppMonthlyInterestRate: description: Equal payment plan monthly interest rate. Applicable to Counter and Cross-sell offers type: number format: double example: "5.00" btCampaignId: description: Balance transfer CampaignId. Applicable to Counter and Cross-sell offers. type: string example: "34543634" eppPromoId: description: PromoId of equal payment plan. Applicable for ready credit, Counter and Cross-sell offers type: string example: "34543634" effectiveInterestRate: description: The effective rate of interest applicable to product type: number format: double example: "5.00" annualPercentageRate: description: Applicable Annual Percentage Rate on the product type: number format: double example: "5.00" totalRepaymentAmount: description: Total repayment amount to be paid by the customer type: number format: double example: "34543634" dailyInterestAmount: description: Daily interest amount to be paid by the customer type: number format: double example: "256.36" annualFeeAmount: description: Annual fee amountis the amount paid by customer as the fixed processing charges every year. type: number format: double example: "256.36" creditApprovalExpiryDate: description: Credit Approval Expiry Date by CDE for credit specific recommendation type: string format: date example: "1972-09-15" creditApprovalExpiredFlag: description: Flag to indicate if the Credit Approval is expired.Valid values are true and false. type: boolean example: "true" LoanSpecificRecommendations: properties: loanAmount: description: Eligible Loan amount. type: number format: double example: "25000.00" tenor: description: Tenor for the loan repayment. This a reference data field. Please use /utilities/referenceData/{tenor} resource to get valid values of this field with descriptions. type: string example: "45" interestRate: description: Interest rate of the loan type: number format: double example: "5.00" handlingFee: description: Handling fee to be paid. type: number format: double example: "5.00" installmentAmount: description: Installment amount to be paid. This is calculated without the insurance amount.Insurance option is applicable for EMEA countries type: number format: double example: "500.00" installmentAmountWithInsurance: description: Installment amount to be paid. This is calculated with the insurance amount.Insurance option is applicable for EMEA countries type: number format: double example: "500.00" annualPercentageRate: description: Applicable Annual Percentage Rate type: number format: double example: "5.00" totalPrincipalAmount: description: Total principal to be paid by customer type: number format: double example: "5000.00" totalInterestAmount: description: Total interest to be paid by customer type: number format: double example: "500.00" totalInstallmentAmount: description: Total installment amount to be paid by customer type: number format: double example: "500.00" monthlyFeeAmount: description: Monthly fee amount is the amount paid by customer as the fixed processing charges every month type: number format: double example: "500.00" insurancePremiumAmount: description: Insurance premium amount is the i insurance amount paid by customer for availing the insurance product against the loan type: number format: double example: "500.00" pricingPlanId: description: Pricing plan id is the unique id of pricing plan which is selected by customer type: string example: "12354" totalRepaymentAmount: description: 'Total repayment amount to be paid by the customer. Formula for calculating the value: EMI + Monthly Fee' type: number format: double example: "500.00" grossLoanAmount: description: 'Gross loan amount is the total loan amount including upfront fee and the insurance(if availed by customer). Formula for calculating the value: Loan Amount + Upfront Fee (handling Fee) + Insurance' type: number format: double example: "500.00" totalCostOfCreditWithoutInsurance: description: 'Total Cost of credit without the insurance amount for the tenor selected. Formula for calculating the value: (InstallmtAmtWithoutIns + Monthly Fee) * Tenor - Loan Amount' type: number format: double example: "500.00" totalCostOfCreditWithInsurance: description: 'Total Cost of credit with the insurance amount for the tenor selected. Formula for calculating the value: (InstallmtAmtWithIns + Monthly Fee) * Tenor - Loan Amount' type: number format: double example: "500.00" aprRetentionFlag: description: Indicates if the loan is allowed for APR retention type: boolean example: "true" creditApprovalExpiryDate: description: Credit Approval Expiry Date by CDE for loan specific recommendation type: string format: date example: "1972-09-15" repaymentScheduleIssueDate: description: Repayment schedule start date in ISO 8601 date format YYYY-MM-DD type: string format: date example: "1972-09-15" repaymentSchedule: type: array items: $ref: '#/definitions/RepaymentSchedule' handlingFeePercentage: description: Handling fee percentage for the loan processing. Its represented as the percentage of the loan amount type: string example: "1" maximumInstallmentAmount: description: Maximum installment amount which can be selected by the customer to avail the loan type: number format: double example: "500.00" maximumTenor: description: Maximum tenor value which can be selected by the customer to avail the loan type: string example: "10" maximumLoanAmountWithDocument: description: Maximum Loan amount which can be selected by the customer with documents to avail the loan type: number format: double example: "23654" maximumLoanAmountWithoutDocument: description: Maximum Loan amount which can be selected by the customer without documents to avail the loan type: number format: double example: "21654" maximumLoanAmtWithoutSpouseConsent: description: Maximum loan amount which can be selected by the customer without his spouse consent to avail the loan type: number format: double example: "21654" topupLoanFlag: description: If existing CITI Customer would like to avail a top up to the existing CITI Bank loan then this flag would be set to true type: boolean example: "true" topupLoanExpiryDate: description: Topup expiry date is the date at which the top up loan option expires. After this date channel should reinitiate the IPA. Date is in ISO 8601 date format YYYY-MM-DD type: string format: date totalLoanAmountIncExistingLoanAmt: description: Total loan disbursement amount including the existing loan amount plus the new requested loan amount type: number format: double example: "2400.00" offeredFutureAnnualPercentageRate: description: Future Annual Percentage Rate offered in the case of an event like the employee(applicant) exits. type: number format: double example: "2.4" existingLoanDetails: type: array items: $ref: '#/definitions/ExistingLoanDetail' creditApprovalExpiredFlag: description: Flag to indicate if the Credit Approval is expired.Valid values are true and false. type: boolean example: "true" topupLoanExpiredFlag: description: Flag to indicate if the Top up loan is expired.Valid values are true and false. type: boolean example: "true" ExistingLoanDetail: properties: productCode: description: A unique code that identifies the existing loan product type: string example: VC830 organisationCode: description: Card issuing Organisation code associated with the existing loan type: string example: "888" sourceCode: description: A source code to identify the product associated with the existing loan type: string example: WW5ARCE1 requestedLoanAmount: description: Requested Loan Amount of existing loan availed by the customer type: number format: double example: "25000.00" outstandingLoanAmount: description: 'Outstanding Loan Amount for the existing loan availed by the customer ' type: number format: double example: "25000.00" loanPayoffAmount: description: 'Loan payoff amount for the existing CITI bank loan availed by the customer.It includes the overall prinicipal amount plus the interest amount and all other charges ' type: number format: double example: "25000.00" installmentAmount: description: Installment amount to be paid by customer for the existing CITI bank loan type: number format: double example: "500.00" annualPercentageRate: description: Applicable Annual Percentage Rate on the existing loan product type: number format: double example: "5.00" accountOpenedDate: description: Loan account opened date of the existing CITI Bank loan type: string format: date example: 12-10-2015 accountNumber: description: Account number of the existing CITI Bank loan type: string example: "1234567890" RepaymentSchedule: properties: tenorOccurence: description: Different tenor applicable for repayment type: string example: "10" paymentDueDate: description: Payment due date for each installment in ISO 8601 date format YYYY-MM-DD type: string format: date example: "1972-09-15" monthlyInstallmentAmount: description: Monthly installment amount for loan taken type: number format: double example: "500.00" principalAmount: description: Principal amount of installment type: number format: double example: "500.00" interestAmount: description: Interest amount of installment type: number format: double example: "500.00" remainingPrincipalAmount: description: Remaining Principal Amount after each installment has been paid by customer type: number format: double example: "500.00" RequiredDocuments: properties: documentId: description: Document ID for each proof. This a reference data field. Please use /utilities/referenceData/{documentId} resource to get valid values of this field with descriptions type: string example: IC documentStatus: description: Status of document proof.Possible values are 00001 PENDING,00002 PRINTED,00003 SIGNED,00004 SUBMITTED,,00005 VERIFIED,000006 RECEIVED,00007 WAIVED,00008 NOT APPLICABLE,00009 NOT REQUIRED,00010 RE-SUBMIT type: string example: "00001" documentType: description: Type of document. This a reference data field. Please use /utilities/referenceData/{proofType} resource to get possible values of this field with descriptions. You can use the fieldname as the referenceCode parameter to retrive the values. type: string example: NRIC applicantType: description: Applicant relationship with the Bank. Possible values are Primary - P.Credit Card - Co Applicant, S1 Supplementary 1,S2 Supplementary 2,Loan Co Applicant,S Spouse (Poland specific) type: string example: P documentInternalId: description: 'Document internal id is the id which is used as an identifier to link two document proofs. Ex: NRIC can be used for both address and id proof' type: string example: "123" CounterOffer: properties: offerProductCode: description: A unique code that identifies the offered product to applicant type: string example: VC830 offerProductOrganisationCode: description: offered card issuing organization name type: string example: "888" offerSourceCode: description: A source code to identify the product type: string example: WW5ARCE1 offerProductCategory: description: Product category associated with the offer type: string example: MF offerDocumentCriteria: description: 'Document category associated with the offer. Ex: WD(With Document),WO(Without Document)' type: string example: WD ipaRecommendation: description: 'IPA recommendation to the customer. Ex: 11 - PARTIAL,10 - FULL etc.Please use /utilities/referenceData/{ipaRecommendation} resource to get valid values of this field with descriptions.' type: string example: "99" offerSequenceId: description: Unique offer sequence id to identify an offer type: string example: "99" marketingOfferOriginatingBranchId: description: Originating branch id of the citi bank branch where the marketing offer was created. type: string example: "99" marketingOfferCampaignId: description: Campaign Id of the marketing offer. type: string example: CA13 marketingOfferWaveId: description: Wave id associated with the marketing offer type: string example: IE12 creditSpecificRecommendations: type: array items: $ref: '#/definitions/CreditSpecificRecommendations' loanSpecificRecommendations: type: array items: $ref: '#/definitions/LoanSpecificRecommendations' requiredDocuments: type: array items: $ref: '#/definitions/RequiredDocuments' CrossSellOffer: properties: offerProductCode: description: A unique code that identifies the offered product to applicant type: string example: VC830 offerProductOrganisationCode: description: offered card issuing organization name type: string example: "888" offerSourceCode: description: A source code to identify the product type: string example: WW5ARCE1 offerProductCategory: description: Product category associated with the offer type: string example: MF offerDocumentCriteria: description: 'Document category associated with the offer. Ex: WD(With Document),WO(Without Document)' type: string example: WD ipaRecommendation: description: 'IPA recommendation to the customer. Ex: 11 - PARTIAL,10 - FULL etc.Please use /utilities/referenceData/{ipaRecommendation} resource to get valid values of this field with descriptions.' type: string example: "99" offerSequenceId: description: Unique offer sequence id to identify an offer type: string example: "99" marketingOfferOriginatingBranchId: description: Originating branch id of the citi bank branch where the marketing offer was created. type: string example: "99" marketingOfferCampaignId: description: Campaign Id of the marketing offer. type: string example: CA13 marketingOfferWaveId: description: Wave id associated with the marketing offer type: string example: IE12 creditSpecificRecommendations: type: array items: $ref: '#/definitions/CreditSpecificRecommendations' loanSpecificRecommendations: type: array items: $ref: '#/definitions/LoanSpecificRecommendations' requiredDocuments: type: array items: $ref: '#/definitions/RequiredDocuments' SuggestedOffer: properties: offerProductCode: description: A unique code that identifies the offered product to applicant type: string example: VC830 offerProductOrganisationCode: description: offered card issuing organization code type: string example: "888" offerSourceCode: description: A source code to identify the product type: string example: WW5ARCE1 offerProductCategory: description: Product category associated with the offer type: string example: MF offerDocumentCriteria: description: 'Document category associated with the offer. Ex: WD(With Document),WO(Without Document)' type: string example: WD ipaRecommendation: description: 'IPA recommendation to the customer. Ex: 11 - PARTIAL,10 - FULL etc.Please use /utilities/referenceData/{ipaRecommendation} resource to get valid values of this field with descriptions.' type: string example: "99" offerSequenceId: description: Unique offer sequence id to identify an offer type: string example: "99" marketingOfferOriginatingBranchId: description: Originating branch id of the citi bank branch where the marketing offer was created. type: string example: "99" marketingOfferCampaignId: description: Campaign Id of the marketing offer. type: string example: CA13 marketingOfferWaveId: description: Wave id associated with the marketing offer type: string example: IE12 creditSpecificRecommendations: type: array items: $ref: '#/definitions/CreditSpecificRecommendations' loanSpecificRecommendations: type: array items: $ref: '#/definitions/LoanSpecificRecommendations' requiredDocuments: type: array items: $ref: '#/definitions/RequiredDocuments' KbaQuestionnaire: properties: vedaQuestionnaire: type: array description: Applicable for Australia items: $ref: '#/definitions/VedaQuestionnaire' tuQuestionnaire: type: array description: Applicable for Hong Kong items: $ref: '#/definitions/TuQuestionnaire' bureauRecommendedQuestionnaire: type: array description: KBA Questionnaire items: $ref: '#/definitions/BureauRecommendedQuestionnaire' BureauRecommendedQuestionnaire: properties: questionId: description: Identifier of the question from the question pool type: string example: "1" sequenceNumber: description: Bureau recommended question sequence number which is used in request to map a question to a given enquiry type: string example: "1" questionTextDetails: $ref: '#/definitions/QuestionTextDetails' questionType: description: Bureau recommended question type. Possible values are TEXT,NUMBER,AMOUNT,CHOICE and LIST.Both Choice and list will have options choice will have Y/N as options. type: string example: OPTIONS dependentQuestionDetails: $ref: '#/definitions/DependentQuestionDetails' bureauRecommendedResponseOptions: type: array items: $ref: '#/definitions/BureauRecommendedResponseOption' QuestionTextDetails: properties: englishQuestionText: description: Question text to be displayed to the applicant in English type: string example: Question? localLanguageQuestionText: description: Question text to be displayed to the applicant in local Language type: string example: Question? DependentQuestionDetails: properties: isDependentQuestion: description: Indicates if this question is a dependent question and is associated with any primary question type: boolean example: "true" primaryQuestionId: description: Primary question id to which the dependent question is tagged to. This is only applicable for dependent questions. type: string example: "1234" BureauRecommendedResponseOption: properties: optionKey: description: The key of Bureau recommended question type: string example: "1" optionText: description: The text associated with the Bureau recommended question type: string example: Answer. VedaQuestionnaire: properties: kbaInquiryId: description: Unique inquiry ID to validate the answers submitted type: string example: "1234" multipleChoiceQuestionnaire: type: array items: $ref: '#/definitions/MultipleChoiceQuestionnaire' trueOrFalseQuestionnaire: type: array items: $ref: '#/definitions/TrueOrFalseQuestionnaire' freeTextQuestionnaire: type: array items: $ref: '#/definitions/FreeTextQuestionnaire' MultipleChoiceQuestionnaire: properties: questionText: description: Question text to be displayed to the applicant type: string example: Question? sequenceNumber: description: Identifer used in request to map a question to a given enquiry type: string example: "1" responseOptions: type: array items: $ref: '#/definitions/ResponseOptions' ResponseOptions: properties: optionText: description: Response for each questionnaire type: string example: Answer. sequenceNumber: description: Identifer used in request to map a response to a given enquiry type: string example: "1" TrueOrFalseQuestionnaire: properties: questionText: description: Question text to be displayed to the end user type: string example: Question? sequenceNumber: description: Identifer used in request to map a question to a given enquiry type: string example: "1" responseOptions: type: array items: $ref: '#/definitions/ResponseOptions' FreeTextQuestionnaire: properties: questionText: description: Question text to be displayed to the end user type: string example: Question? sequenceNumber: description: Identifer used in request to map a question to a given enquiry type: string example: "1" responseOptions: type: array items: $ref: '#/definitions/ResponseOptions' TuQuestionnaire: properties: authenticationToken: description: token to authenticate the answer submitted type: string example: wer523twed235 tuApplicationId: description: Appliation ID from TU system type: string example: "23453265376" queue: description: queue type: string example: "2" examDetails: type: array items: $ref: '#/definitions/ExamDetails' ExamDetails: properties: key: description: 'Key attribute of the TU questionnaire ' type: string example: "2" title: description: Exam Title of the TU questionnaire type: string example: KBA languageCode: description: Language code attribute of the TU questionnaire.This a reference data field. Please use /utilities/referenceData/{languageCode} resource to get valid values of this field with descriptions. You can use the fieldname as the referenceCode parameter to retrieve the values type: string example: EN matchKeyId: description: Language code attribute of the TU questionnaire type: string example: "2" errorGeneratingQa: description: Error generating Question and answers attribute of the TU Questionnaire type: string example: "2" timeTakenToAnswer: description: Time taken to answer for the TU questionnaire type: string example: "2" questions: type: array items: $ref: '#/definitions/Questions' Questions: properties: tuQuestionId: description: Unique Identifier for the question instance type: string example: "1" questionId: description: Identifier of the question from the question pool type: string example: "1" questionText: description: TU question text type: string example: Question? questionType: description: TU question type type: string example: Choice dummyQuestionFlag: description: Flag to identify question if it based on existing applicant information type: boolean example: "True" multipleChoiceQuestionFlag: description: Flag to mark if question has multiple choice for answer type: boolean example: "True" listAnswerIndex: description: Index for the list answer type question type: string example: "1" expirationTime: description: Expiration time of the TU question type: string format: date-time example: "2015-02-02 00:26:13" timeTakenToAnswer: description: Time taken to answer this question by customer type: string example: "2" answers: type: array items: $ref: '#/definitions/Answers' Answers: properties: key: description: Attributes of the TU KBA request type: string example: "2" answerSelected: description: Answer selected by the customer type: string example: "2" ErrorList: properties: errors: type: array description: List of one or more errors items: $ref: '#/definitions/ErrorResponse' ErrorResponse: properties: type: description: Invalid - Request did not confirm to the specification and was unprocessed and rejected. Please fix the value and try again enum: - error - warn - invalid - fatal type: string code: description: Error code which qualifies the error type: string details: description: Human readable explanation specific to the occurrence of the problem type: string location: description: The name of the field that resulted in the error type: string moreInfo: description: URI to human readable documentation of the error type: object required: - type - code x-ibm-configuration: enforced: true testable: true phase: realized securityDefinitions: API Key(Query): type: apiKey description: "" in: query name: client_id API Key: type: apiKey description: "" in: header name: X-IBM-Client-Id security: - API Key: [] - API Key(Query): [] x-ibm-endpoints: - endpointUrl: https://emea.sandbox.api.citi.com/gcb description: Custom Gateway API Endpoint type: - production - development ...