"openapi: 3.0.2\ninfo:\n title: Integration API\n description: \"This API collection represents the integration APIs LendKey offers for 3rd party dependencies/integrations, and is for dev/qa use only. External connections are not prohibited following this document.\"\n termsOfService: 'http://www.lendkey.com'\n license:\n name: Lendkey License\n url: 'http://www.lendkey.com'\n version: 1.0.0\n contact:\n name: \"LendKey Product Operations Team\"\n url: \"http://www.lendkey.com\"\n email: \"HIL_product_team@lendkey.com\"\nservers:\n - url: 'https://proxy.kong.lkeyprod.com/integration/'\n description: \"This is the production host for our API endpoints.\"\n - url: 'https://proxy.kong.lkeystaging.com/integration/'\n description: \"This is the staging host for our API endpoints. Please note that the ability to create a soft-pull is disabled in this environment. If credit pull testing in this environment is needed, please reach out to coordinate that.\"\n - url: 'https://proxy.kong.eks-1.use-1.lkeyqa.com/integration/integration-api-spring-boot-main/'\n description: \"This is the QA host for our API endpoints. Please use this for all development and testing purposes.\"\n - url: '{protocol}://{env}-integration-api-spring-boot.ci.lkeyqa.com:{port}/{basePath}'\n description: \"The testing API server\"\n variables:\n protocol:\n enum:\n - \"http\"\n - \"https\"\n default: \"https\"\n env:\n default: \"staging\"\n description: \"This value is related to the environment you are running. ie: PR-1112, develop\"\n port:\n enum:\n - \"8443\"\n - \"443\"\n default: \"8443\"\n basePath:\n description: \"Version path. ie: v1\"\n default: \"\"\n - url: 'http://localhost:{port}/{basePath}'\n description: \"The local development server\"\n variables:\n protocol:\n enum:\n - http\n - https\n default: https\n env:\n default: \"develop\"\n description: \"this value is related to the environment you are running. ie: PR-1112, develop\"\n port:\n default: '8080'\n basePath:\n description: \"Version path. ie: v1\"\n default: \"\"\npaths:\n /v1/oauth2/token:\n post:\n tags:\n - auth\n summary: \"Obtain an authorization token\"\n description: \"Performs client credentials authentication and returns an access token that is valid for 60 minutes.\"\n parameters:\n - in: header\n name: Authorization\n schema:\n type: string\n description: \"The word basic followed by a space and a base64-encoded string of clientId:clientSecret\"\n required: true\n requestBody:\n required: true\n content:\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties:\n grant_type:\n type: string\n description: \"Value should be 'client_credentials'\"\n required:\n - grant_type\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/authenticationResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/application/status:\n post:\n tags:\n - applications\n summary: \"Retrieve the current status of one or more applications\"\n description: \"Provide your requester identification UUID and a set of application/loan reference keys to get an up-to-date status on them.\"\n requestBody:\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/applicationStatusRequest\"\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/applicationStatusResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/credit/soft_pull:\n post:\n tags:\n - Credit Risk\n summary: \"Performs a soft credit pull\"\n description: \"Performs a soft credit pull for the given applicant, and returns their credit profile.\"\n requestBody:\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/softCreditRequest'\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/softCreditResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/credit/combined_monthly_debt:\n post:\n tags:\n - Credit Risk\n summary: \"Calculates the combined monthly debt between two credit profiles\"\n description: \"Given two credit profile IDs, calculates the monthly debt between the two profiles.\"\n requestBody:\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/combinedMonthlyDebtRequest'\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/combinedMonthlyDebtResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/credit/resolve_attributes:\n post:\n tags:\n - Credit Risk\n summary: \"Resolves the values for all credit attributes passed.\"\n description: \"Given a credit profile ID, calculates/resolves all the values for the attributes requested.\"\n requestBody:\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/resolveCreditAttributesRequest'\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/resolvedAttributesResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/scoring/score:\n post:\n tags:\n - Credit Risk\n summary: \"Score a given set of attributes against a PMML model\"\n description: \"Calls the scoring engine to evaluate the given set of attributes against the given PMML model UUID.\"\n requestBody:\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/scoringRequest\"\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n oneOf:\n - $ref: '#/components/schemas/scoringResponsePass'\n - $ref: '#/components/schemas/scoringResponseFail'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/leads/create:\n post:\n tags:\n - leads\n summary: \"Creates a new lead to represent a potential customer\"\n description: \"Creates a lead record in the Greenhouse LOS to capture information about potential customers and where their traffic was driven in from.\"\n requestBody:\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/createLeadRequest\"\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/leadResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/notifications/emails:\n summary: \"Endpoints for all things email related.\"\n post:\n tags:\n - email\n summary: \"Send An Email Notification\"\n description: \"Sends an email notification.\"\n requestBody:\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/emailRecordRequestPayload\"\n responses:\n 202:\n description: OK\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/emailRecord\"\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/notifications/emails/templates:\n get:\n tags:\n - email\n summary: \"Returns a list of ALL email templates available for use via notifier-api.\"\n description: \"Lists out ALL email templates known to this service, regardless of their provider (i.e. SendGrid).\"\n responses:\n 200:\n description: OK\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/emailTemplateList\"\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\n /v1/onboarding/onboard:\n post:\n tags:\n - onboarding\n summary: \"Submits an application LendKey for boarding.\"\n description: \"Includes all application information as well as accepted loan offer information to board the application as a loan within LendKeys LOS.\"\n requestBody:\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/boardApplicationRequest\"\n responses:\n 200:\n description: \"OK\"\n content:\n application/hal+json:\n schema:\n $ref: '#/components/schemas/boardApplicationResponse'\n 400:\n $ref: \"#/components/responses/BadRequest\"\n 500:\n $ref: \"#/components/responses/UnexpectedError\"\ncomponents:\n parameters:\n page:\n in: query\n name: page\n description: \"Number of the page to be requested.\"\n schema:\n type: integer\n minimum: 1\n size:\n in: query\n name: size\n description: \"Number of registers in the page to be requested.\"\n schema:\n type: integer\n minimum: 1\n sort:\n in: query\n name: sort\n description: \"Sort instruction in the form of {attribute_name},{direction}. Default direction is ascending. examples: sort=name: will sort by name with ascending order. sort=name,desc: will sort by name with descending order. You can send several sort params to apply combined sorting.\"\n schema:\n type: string\n filter:\n in: query\n name: filter\n schema:\n type: object\n style: deepObject\n explode: true\n description: \"Options for filtering the results\"\n required: false\n responses:\n Forbidden:\n description: \"Forbidden\"\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/error\"\n example:\n id: \"b6c52a48-551a-42ef-b361-f642d25cfeb7\"\n status: \"403\"\n timestamp: \"2019-10-21 14:07:59\"\n message: \"Forbidden.\"\n debugMessage: null\n NotFound:\n description: \"Not Found\"\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/error\"\n example:\n id: \"b6c52a48-551a-42ef-b361-f642d25cfeb7\"\n status: \"NOT_FOUND\"\n timestamp: \"2019-10-21 14:07:59\"\n message: \"Not found\"\n debugMessage: null\n BadRequest:\n description: \"Invalid request, unable to process the request with the information provided.\"\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/error\"\n example:\n id: \"b6c52a48-551a-42ef-b361-f642d25cfeb7\"\n status: \"BAD_REQUEST\"\n timestamp: \"2019-10-21 14:07:59\"\n message: \"Describes what was invalid about the request, if possible.\"\n debugMessage: null\n UnexpectedError:\n description: \"An unexpected server error occurred.\"\n content:\n application/hal+json:\n schema:\n $ref: \"#/components/schemas/error\"\n example:\n id: \"b6c52a48-551a-42ef-b361-f642d25cfeb7\"\n status: \"INTERNAL_SERVER_ERROR\"\n timestamp: \"2019-10-21 14:07:59\"\n message: \"An internal issue occurred. Please try again shortly. If the issue persists, contact us with all of the data in this error message.\"\n debugMessage: null\n schemas:\n authenticationResponse:\n type: object\n properties:\n expires_in:\n type: integer\n description: \"The number of milliseconds the access token will expire in.\"\n example: 3600\n token_type:\n type: string\n description: \"The type of authentication token returned\"\n example: \"bearer\"\n access_token:\n type: string\n description: \"The access token to use\"\n example: \"A3IaUdTbwrZcYjeKKKgTsUDgrsmwbTRx\"\n applicationStatusRequest:\n type: object\n required:\n - referenceKeys\n - requester\n properties:\n referenceKeys:\n type: array\n items:\n allOf:\n - type: string\n example:\n - \"HIL-12345\"\n - \"HIL-98765\"\n requester:\n type: object\n allOf:\n - $ref: \"#/components/schemas/requester\"\n applicationStatusResponse:\n type: object\n properties:\n applications:\n type: array\n items:\n allOf:\n - $ref: \"#/components/schemas/applicationStatus\"\n errors:\n type: array\n items:\n allOf:\n - type: string\n example: \"String reference key of unretrievable application.\"\n applicationStatus:\n type: object\n properties:\n loanStatus:\n type: string\n description: \"What stage the application/loan is on within the LendKey system.\"\n loanKey:\n type: string\n description: \"Unique identifier for application/loan\"\n example: \"HIL-12345\"\n loanAmount:\n type: number\n description: \"The loan amount for the application/loan - this is not the current balance for the account.\"\n example: 50000.00\n blockages:\n type: array\n items:\n allOf:\n - type: string\n description: \"A set of text describing what may be preventing the application/loan from advancing.\"\n example:\n - \"Waiting for contractor to submit a disbursement request.\"\n requester:\n type: object\n properties:\n uuid:\n type: string\n format: uuid\n example: \"40121260-4082-4c22-b70c-b5be137bf2a0\"\n softCreditRequest:\n type: object\n required:\n - firstName\n - lastName\n - ssn\n - street\n - city\n - state\n - zipCode\n - creditBureauName\n - creditRiskModel\n - preamble\n - subCode\n properties:\n firstName:\n type: string\n description: The full first name should be entered when available. The minimum entry is the first name initial. Blanks and special characters (except dash) are not allowed. Compound names should contain a dash (e.g., Billy-Bob)\n example: \"John\"\n lastName:\n type: string\n description: The full applicant’s surname is required. If the surname contains two surnames, then split the surnames with a hyphen (e.g., Smith-Jones). The surname can also be input with an apostrophe (e.g., O’Brien), although apostrophe usage is limited to the letters D, L, and O.\n example: \"Doe\"\n ssn:\n type: string\n description: Full Social Security number should be entered. The social may be input with or without hyphens (e.g., 123456789 or 123-45-6789).\n example: \"999-99-9999\"\n street:\n type: string\n description: Include the house number, directional, street name, street type, and street suffix data (Apt #, Building #, Suite #, etc.) as part of the address if available.\n example: \"9999 Carver Road Suite 400\"\n city:\n type: string\n example: \"Cincinnati\"\n state:\n type: string\n description: The 2-letter state abbreviation\n example: \"OH\"\n zipCode:\n type: string\n description: ZIP code designation. It may be 9 characters and may contain a hyphen to separate the first 5 digits from the last 4 digits. It is required on all current address data. Canadian zip codes (6 digits), Mexican and Canadian country codes are allowed.\n example: \"45242\"\n creditBureauName:\n type: string\n description: Only \"Experian\" is currently supported.\n example: Experian\n creditRiskModel:\n type: string\n description: FICOv3, FICOv8, and FICOv9 are supported. Which one to use is defined by the program.\n example: FICOv8\n preamble:\n type: string\n description: Varies by lender.\n example: TBD2\n subCode:\n type: string\n description: Varies by lender.\n example: 1928032\n softCreditResponse:\n type: object\n properties:\n id:\n type: integer\n example: 1234\n leadResponse:\n type: object\n properties:\n id:\n type: integer\n uuid:\n type: string\n format: uuid\n email:\n type: string\n firstName:\n type: string\n lastName:\n type: string\n createdAt:\n type: string\n format: date\n updatedAt:\n type: string\n format: date\n source:\n type: string\n sourceKey:\n type: string\n sourceApplicationId:\n type: string\n creditRiskModel:\n type: string\n example:\n id: 1\n uuid: \"3441eb74-e5e6-483a-bb53-4201edf7210e\"\n email: \"no-reply@lendkey.com\"\n firstName: \"John\"\n lastName: \"Doe\"\n createdAt: \"2021-09-21T19:21:53.726626200Z\"\n updatedAt: \"2021-09-21T19:21:53.726626200Z\"\n source: \"unqork\"\n sourceKey: \"8f8898ae-dda1-4bde-a627-44d6fb5977dd\"\n sourceApplicationId: \"null\"\n creditRiskModel: \"0f2f1ce6-7bed-4df4-8b04-aff593dd4d23\"\n createLeadRequest:\n type: object\n properties:\n email:\n type: string\n firstName:\n type: string\n lastName:\n type: string\n source:\n type: string\n sourceKey:\n type: string\n sourceApplicationId:\n type: string\n creditRiskModel:\n type: string\n example:\n email: \"no-reply@lendkey.com\"\n firstName: \"John\"\n lastName: \"Doe\"\n source: \"unqork\"\n sourceKey: \"8f8898ae-dda1-4bde-a627-44d6fb5977dd\"\n sourceApplicationId: \"null\"\n creditRiskModel: \"0f2f1ce6-7bed-4df4-8b04-aff593dd4d23\"\n scoringRequest:\n type: object\n properties:\n attributes:\n type: object\n description: \"The scoring attributes to use\"\n properties:\n modelId:\n type: string\n description: \"The scoring model UUID to use to score the given arguments against.\"\n example: \"3f77a5a0-9662-4cd9-93e8-881ba87a204f\"\n arguments:\n type: object\n additionalProperties:\n type: string\n description: \"The attributes to provide to the scoring model\"\n example:\n bor_score_max: 720\n cob_score_max: 820\n bor_trlines_mortg_delinq_ls24m_count: 0\n cob_trlines_mortg_delinq_ls24m_count: 0\n bor_pbrecrds_judgements_ls60m_count: 0\n cob_pbrecrds_judgements_ls60m_count: 0\n bor_pbrecrds_repossessions_ls60m_count: 0\n cob_pbrecrds_repossessions_ls60m_count: 0\n bor_pbrecrds_chargeoffs_ls60m_count: 0\n cob_pbrecrds_chargeoffs_ls60m_count: 0\n bor_pbrecrds_collections_cumulative: 0\n cob_pbrecrds_collections_cumulative: 0\n bor_trlines_foreclosures_count: 0\n cob_trlines_foreclosures_count: 0\n bor_person_bankruptcies_count: 0\n cob_person_bankruptcies_count: 0\n bor_yearly_income_gross: 72000.00\n cob_yearly_income_gross: 120000.00\n cosigner: true\n prescreen: true\n requested_amount: 24000.00\n stated_housing_expenses: 1200,\n bor_reported_housing_expenses: 1245.00\n cob_reported_housing_expenses: 814.00\n bor_monthly_debt_excluding_housing_and_education: 1782.23\n cob_monthly_debt_excluding_housing_and_education: 1689.51\n bor_monthly_education_debt: 0\n cob_monthly_education_debt: 256.32\n bcob_joint_monthly_debt: 764.90\n longest_qualified_term: 180\n rate_for_longest_qualified_term: 5.24\n scoringResponsePass:\n type: object\n properties:\n id:\n type: string\n description: \"A reference UUID to retrieve this score result later if needed.\"\n example: \"3fec06c7-2a21-4f83-b100-5425fc5e035e\"\n type:\n type: string\n description: \"The type of score that was evaluated\"\n example: \"insight\"\n attributes:\n type: object\n description: \"The scoring attributes to use\"\n properties:\n created:\n type: string\n description: \"Timestamp of when the scoring model was created.\"\n example: \"2022-03-07T14:39:57Z\"\n arguments:\n type: object\n additionalProperties:\n type: string\n description: \"The attributes to provide to the scoring model\"\n example:\n bor_score_max: 720\n cob_score_max: 820\n bor_trlines_mortg_delinq_ls24m_count: 0\n cob_trlines_mortg_delinq_ls24m_count: 0\n bor_pbrecrds_judgements_ls60m_count: 0\n cob_pbrecrds_judgements_ls60m_count: 0\n bor_pbrecrds_repossessions_ls60m_count: 0\n cob_pbrecrds_repossessions_ls60m_count: 0\n bor_pbrecrds_chargeoffs_ls60m_count: 0\n cob_pbrecrds_chargeoffs_ls60m_count: 0\n bor_pbrecrds_collections_cumulative: 0\n cob_pbrecrds_collections_cumulative: 0\n bor_trlines_foreclosures_count: 0\n cob_trlines_foreclosures_count: 0\n bor_person_bankruptcies_count: 0\n cob_person_bankruptcies_count: 0\n bor_yearly_income_gross: 72000.00\n cob_yearly_income_gross: 120000.00\n cosigner: true\n prescreen: true\n requested_amount: 24000.00\n stated_housing_expenses: 1200,\n bor_reported_housing_expenses: 1245.00\n cob_reported_housing_expenses: 814.00\n bor_monthly_debt_excluding_housing_and_education: 1782.23\n cob_monthly_debt_excluding_housing_and_education: 1689.51\n bor_monthly_education_debt: 0\n cob_monthly_education_debt: 256.32\n bcob_joint_monthly_debt: 764.90\n longest_qualified_term: 180\n rate_for_longest_qualified_term: 5.24\n results:\n type: object\n additionalProperties:\n type: string\n description: \"This is a dynamic KVM that contains the results of the scoring model.\"\n example:\n Reason Code 09: null\n Reason Code 12: null\n Reason Code 13: null\n Reason Code 14: null\n joint_dti_percentage: \"39.24929967889547\"\n Reason Code 15: null\n Reason Code 16: null\n Reason Code 17: null\n Reason Code 18: null\n Reason Code 19: null\n Reason Code 30: null\n Reason Code 31: null\n Reason Code 10: null\n Reason Code 32: null\n Reason Code 11: null\n Reason Code 33: null\n insightResult: \"pass\"\n overallScore: \"0.0\"\n Decision: \"pass\"\n Reason Code 01: null\n Reason Code 23: null\n Reason Code 02: null\n Reason Code 24: null\n Reason Code 03: null\n Reason Code 25: null\n Reason Code 04: null\n Reason Code 26: null\n Reason Code 05: null\n Reason Code 27: null\n Reason Code 06: null\n Reason Code 28: null\n Reason Code 07: null\n Reason Code 29: null\n Reason Code 08: null\n Reason Code 20: null\n Reason Code 21: null\n Reason Code 22: null\n scoringResponseFail:\n type: object\n properties:\n id:\n type: string\n description: \"A reference UUID to retrieve this score result later if needed.\"\n example: \"3fec06c7-2a21-4f83-b100-5425fc5e035e\"\n type:\n type: string\n description: \"The type of score that was evaluated\"\n example: \"insight\"\n attributes:\n type: object\n description: \"The scoring attributes to use\"\n properties:\n modelId:\n type: string\n description: \"The scoring model UUID to use to score the given arguments against.\"\n example: \"da3965d9-8d89-4415-84b4-e34c869dfb96\"\n arguments:\n type: object\n additionalProperties:\n type: string\n description: \"The attributes to provide to the scoring model\"\n example:\n bor_dti: \"0.1486\"\n bor_mnthlyincome_gros\": \"5666.666666666667\"\n bor_person_bkrupt_ls60m_count: \"0\"\n bor_score_max: \"649\"\n bor_trlines_ageold: \"67\"\n bor_trlines_crunion_default_count: \"0\"\n bor_trlines_delinq_ls24m_count: \"0\"\n bor_trlines_frclose_ls60m_count: \"0\"\n bor_trlines_negatives_ls24m_agg: \"0.0\"\n bor_trlines_nodeferstu_open_count: \"6\"\n bor_trlines_opendue\": \"0\"\n bor_trlines_stu_default_count: \"0\"\n cob_dti: \"0.0154\"\n cob_mnthlyincome_gross: \"13182.666666666666\"\n cob_person_bkrupt_ls60m_count: \"0\"\n cob_score_max: \"707\"\n cob_trlines_ageold: \"213\"\n cob_trlines_crunion_default_count: \"0\"\n cob_trlines_delinq_ls24m_count: \"0\"\n cob_trlines_frclose_ls60m_count: \"0\"\n cob_trlines_negatives_ls24m_agg: \"0.0\"\n cob_trlines_nodeferstu_open_count: \"1\"\n cob_trlines_opendue: \"0\"\n cob_trlines_stu_default_count: \"0\"\n cosigner: \"true\"\n prescreen: \"false\"\n results:\n type: object\n additionalProperties:\n type: string\n description: \"This is a dynamic KVM that contains the results of the scoring model.\"\n example:\n Decision: \"fail\"\n insightResult: \"fail\"\n overallScore: \"2.0\"\n Reason Code 01: \"bor_credit_score\"\n Reason Code 02: \"cob_count_of_open_trades_except_deferred_student_loans\"\n Reason Code 03: null\n Reason Code 04: null\n Reason Code 05: null\n Reason Code 06: null\n Reason Code 07: null\n Reason Code 08: null\n Reason Code 09: null\n Reason Code 10: null\n Reason Code 11: null\n Reason Code 12: null\n Reason Code 13: null\n Reason Code 14: null\n Reason Code 15: null\n Reason Code 16: null\n Reason Code 17: null\n Reason Code 18: null\n Reason Code 19: null\n Reason Code 20: null\n Reason Code 21: null\n Reason Code 22: null\n Reason Code 23: null\n Reason Code 24: null\n Reason Code 25: null\n Reason Code 26: null\n Reason Code 27: null\n Reason Code 28: null\n Reason Code 29: null\n Reason Code 30: null\n Reason Code 31: null\n Reason Code 32: null\n Reason Code 33: null\n combinedMonthlyDebtRequest:\n type: object\n properties:\n creditProfileA:\n type: integer\n description: \"The credit profile ID for the first credit profile to include in the calculation.\"\n example: 32423\n creditProfileB:\n description: \"The credit profile ID for the second credit profile to include in the calculation.\"\n example: 92343\n combinedMonthlyDebtResponse:\n type: object\n properties:\n amount:\n type: integer\n description: \"The combined total monthly debt for the two given credit profiles.\"\n example: 2423\n resolveCreditAttributesRequest:\n type: object\n properties:\n creditProfileId:\n type: integer\n description: \"The credit profile ID for the credit profile to resolve the attributes for.\"\n creditAttributes:\n type: array\n items:\n type: string\n description: \"The properties to resolve the values for.\"\n example:\n creditProfileId: 32423\n creditAttributes:\n - attribute_one_tbd\n - attribute_two_tbd\n - attribute_three_tbd\n - attribute_four_tbd\n - attribute_five_tbd\n - attribute_six_tbd\n resolvedAttributesResponse:\n type: object\n additionalProperties:\n anyOf:\n - type: string\n - type: boolean\n - type: integer\n - type: number\n - type: array\n example:\n attribute_one_tbd: \"some string value\"\n attribute_two_tbd: true\n attribute_three_tbd: 132\n attribute_four_tbd: 32000.12\n attribute_five_tbd: 00.00249\n attribute_six_tbd: [ \"could be array of strings or numbers\" ]\n boardApplicationRequest:\n type: object\n required:\n - submissionUuid\n - applicants\n - project\n - consentOfDisclosures\n - contractorId\n - requestedLoanAmount\n - selectedOffer\n properties:\n submissionUuid:\n type: string\n format: uuid\n description: \"A unique identifying UUID that will be used to correlate this application to the loan it is transforming into.\"\n example: \"40121260-4082-4c22-b70c-b5be137bf2a0\"\n applicants:\n type: array\n items:\n anyOf:\n - $ref: \"#/components/schemas/applicant\"\n project:\n type: object\n allOf:\n - $ref: \"#/components/schemas/project\"\n authorizedUser:\n type: object\n allOf:\n - $ref: \"#/components/schemas/authorizedUser\"\n consentOfDisclosures:\n type: boolean\n example: true\n contractorNetworkId:\n type: string\n contractorId:\n type: integer\n requestedLoanAmount:\n type: number\n selectedOffer:\n type: object\n allOf:\n - $ref: \"#/components/schemas/selectedOffer\"\n merchantUseOnly:\n type: string\n example: \"\"\n promoCode:\n type: string\n example: null\n applicationType:\n type: string\n example: null\n preferredLanguage:\n type: string\n example: \"english\"\n referenceNumber:\n type: string\n example: \"\"\n applicant:\n type: object\n required:\n - role\n - firstName\n - lastName\n - dob\n - ssn\n - email\n - totalAnnualIncome\n - monthlyHousingExpense\n - eligibility\n - employer\n properties:\n returningApplicantId:\n type: integer\n description: \"Optional - provide when an applicant is being onboarded with their 2nd+ offer to avoid locking them out.\"\n role:\n type: string\n description: The role of the applicant. Valid values are primaryApplicant, coborrower\n example: \"primaryApplicant\"\n name:\n type: object\n allOf:\n - $ref: \"#/components/schemas/name\"\n dob:\n type: string\n example: \"11-22-1990\"\n ssn:\n type: string\n example: \"123456789\"\n driversLicense:\n type: object\n allOf:\n - $ref: \"#/components/schemas/driversLicense\"\n isMarried:\n type: boolean\n example: true\n militaryStatus:\n type: string\n example: \"Active Duty\"\n email:\n type: string\n example: \"test@email.com\"\n employer:\n type: string\n example: \"Company A\"\n employerPhone:\n type: string\n example: \"360-901-9917\"\n phoneNumbers:\n type: array\n items:\n $ref: \"#/components/schemas/phoneNumber\"\n preferredPhone:\n type: string\n description: The preferred phone number. The only valid values are Home, Cell, and Work.\n example: \"Cell\"\n smsAllowed:\n type: boolean\n example: true\n consentToContact:\n type: boolean\n example: true\n address:\n type: object\n allOf:\n - $ref: \"#/components/schemas/address\"\n totalAnnualIncome:\n type: number\n example: 130000\n otherIncome:\n type: number\n example: 5000\n monthlyHousingExpense:\n type: number\n example: 2100\n eligibility:\n type: object\n allOf:\n - $ref: \"#/components/schemas/eligibility\"\n relationship:\n type: string\n description: Required for coApplicant. Valid values are Parent, Spouse, Relative, Friend, Other\n example: \"Relative\"\n address:\n type: object\n required:\n - addressLineOne\n - city\n - state\n - zipCode\n properties:\n addressLineOne:\n type: string\n addressLineTwo:\n type: string\n city:\n type: string\n state:\n type: string\n zipCode:\n type: string\n country:\n type: string\n township:\n type: string\n example:\n addressLineOne: \"500 Main Street\"\n addressLineTwo: \"\"\n city: \"PORTLAND\"\n state: \"OR\"\n zipCode: \"97209\"\n country: null\n township: null\n authorizedUser:\n type: object\n required:\n - name\n - email\n - relationship\n properties:\n name:\n type: object\n allOf:\n - $ref: \"#/components/schemas/name\"\n phoneNumber:\n type: string\n example: \"8005882300\"\n email:\n type: string\n example: \"j.doe@gmail.com\"\n relationship:\n type: string\n example: \"Father\"\n project:\n type: object\n required:\n - projectCost\n - projectAddress\n - addressLineOne\n - city\n - state\n - zipCode\n properties:\n projectCost:\n type: number\n projectAddress:\n type: string\n addressLineOne:\n type: string\n addressLineTwo:\n type: string\n city:\n type: string\n state:\n type: string\n zipCode:\n type: string\n isSameAsPrimaryResidence:\n type: boolean\n yearOfHomePurchase:\n type: string\n housingStatus:\n type: string\n applicantsOnDeedOrTitle:\n type: boolean\n currentHomeValue:\n type: number\n mortgageBalance:\n type: number\n monthlyHousingPayments:\n type: number\n projectType:\n type: string\n projectDescription:\n type: string\n projectExpectedDuration:\n type: string\n projectStatus:\n type: string\n termsRequested:\n type: string\n example:\n projectCost: 500000\n projectAddress: \"500 Main Street, PORTLAND, OR 97209\"\n addressLineOne: \"500 Main Street\"\n addressLineTwo: null\n city: \"PORTLAND\"\n state: \"OR\"\n zipCode: \"97209\"\n isSameAsPrimaryResidence: null\n yearOfHomePurchase: null\n housingStatus: null\n applicantsOnDeedOrTitle: null\n currentHomeValue: null\n mortgageBalance: null\n monthlyHousingPayments: null\n projectType: null\n projectDescription: null\n projectExpectedDuration: null\n projectStatus: null\n termsRequested: null\n phoneNumber:\n type: object\n required:\n - type\n - phoneNumber\n properties:\n type:\n type: string\n description: The type of phone number. Only valid values are Cell, Home, Work\n phoneNumber:\n type: string\n example:\n type: \"Cell\"\n phoneNumber: \"8005882300\"\n eligibility:\n type: object\n required:\n - primaryResidence\n - propertyOwnership\n - citizenship\n properties:\n primaryResidence:\n type: boolean\n propertyOwnership:\n type: boolean\n citizenship:\n type: string\n description: One of US, permanentResident, non-US\n example:\n primaryResidence: true\n propertyOwnership: true\n citizenship: \"US\"\n name:\n type: object\n properties:\n firstName:\n type: string\n middleName:\n type: string\n lastName:\n type: string\n suffix:\n type: string\n description: Valid values are Jr. Sr. II III IV V\n example:\n firstName: \"John\"\n middleName: \"M\"\n lastName: \"Doe\"\n suffix: \"Jr.\"\n driversLicense:\n type: object\n required:\n - number\n - state\n - expirationDate\n properties:\n number:\n type: string\n state:\n type: string\n expirationDate:\n type: string\n example:\n number: \"TA923290\"\n state: \"OH\"\n expirationDate: \"11-22-2023\"\n selectedOffer:\n type: object\n required:\n - programId\n - termInMonths\n - loanRate\n - rateIndex\n - maximumLoanAmount\n properties:\n programId:\n type: integer\n fomQueryId:\n type: integer\n termInMonths:\n type: integer\n loanRate:\n type: number\n rateIndex:\n type: string\n maximumLoanAmount:\n type: number\n example:\n program_id: 1473\n fom_query_id: 4146689\n loanRate: 1.5\n rateIndex: \"prime\"\n termInMonths: 120\n maximumLoanAmount: 85000\n boardApplicationResponse:\n type: object\n required:\n - loanId\n - loanKey\n - url\n - applicants\n properties:\n applicantId:\n type: integer\n coApplicantId:\n type: integer\n loanId:\n type: integer\n loanKey:\n type: string\n url:\n type: string\n example:\n loanId: 9323\n loanKey: \"HIL-615486020\"\n url: \"http://homeImprovement-apply.lvh.me/access/HIL-615486020/by_token?auth=a7127e56d48a6cd5cc4054451c26530b67813c3a0f754d4f502037db96a199b71b26a1c404c30bc2834451a7c1b2be9a2c5c4bbd61567f1d91b71e89b0\"\n \"applicants\": [\n {\n \"role\": \"primaryApplicant\",\n \"returningApplicantId\": 593093\n },\n {\n \"role\": \"coborrower\",\n \"returningApplicantId\": 593094\n }\n ]\n error:\n type: object\n properties:\n id:\n type: string\n format: uuid\n status:\n type: string\n timestamp:\n type: string\n message:\n type: string\n debugMessage:\n type: string\n subErrors:\n type: array\n items:\n $ref: \"#/components/schemas/suberror\"\n example:\n id:\n status: \"BAD_REQUEST\"\n timestamp: \"2019-10-21 14:07:59\"\n message: \"Validation error\"\n debugMessage: null\n subErrors:\n - object: \"Resource\"\n field: \"name\"\n rejectedValue: null\n message: \"must not be null\"\n suberror:\n type: object\n properties:\n object:\n type: string\n field:\n type: string\n rejectedValue:\n type: string\n message:\n type: string\n example:\n object: \"Resource\"\n field: \"name\"\n rejectedValue: null\n message: \"must not be null\"\n successMsg:\n type: object\n properties:\n successMessage:\n type: string\n link:\n type: object\n properties:\n href:\n type: string\n page:\n type: object\n properties:\n size:\n type: integer\n totalElements:\n type: integer\n totalPages:\n type: integer\n number:\n type: integer\n emailRecordRequestPayload:\n type: object\n required:\n - provider\n - paylaod\n properties:\n provider:\n type: string\n description: \"The email service provider to use when sending this email.\"\n example: \"SENDGRID\"\n payload:\n type: object\n anyOf:\n - $ref: \"#/components/schemas/emailRecordDto\"\n emailRecordDto:\n type: object\n required:\n - fromName\n - contentType\n properties:\n emailTemplate:\n type: string\n description: \"Optional. Specifies which email template should be used - uses a default template with no handlebar tags if one is not provided.\"\n example: \"HIL_Application_Invitation\"\n fromAddress:\n type: string\n description: \"Required. Specifies who the recipient will see the email is from.\"\n example: \"john.doe@test.com\"\n fromName:\n type: string\n description: \"Required. Specifies the name the recipient will see the email is from.\"\n example: \"John Doe\"\n to:\n type: array\n items:\n anyOf:\n - $ref: \"#/components/schemas/recipient\"\n description: \"Optional, if at least one bcc recipient is provided - otherwise at least one required. The Recipient(s) of the email.\"\n bcc:\n type: array\n items:\n anyOf:\n - $ref: \"#/components/schemas/recipient\"\n description: \"Optional, if at least one to recipient is provided - otherwise at least one required. The BCC Recipient(s) of the email.\"\n subject:\n type: string\n description: \"Optional - however certain templates may not support overriding the subject contents.\"\n example: \"Your Attention Required!\"\n body:\n type: string\n description: \"Optional - however certain templates may not support overriding the body contents.\"\n example: \"We need more information from you before we can proceed with your application. Please call us!\"\n contentType:\n type: string\n description: \"Required if body is provided. The content type of the email.\"\n example: \"text/plain\"\n personalizations:\n type: object\n description: \"Optional. Required only if a template is specified that contains handlebar tags.\"\n additionalProperties:\n type: object\n properties:\n personalizationTagKeyName:\n type: string\n description: \"The handlebar tag name, as specified in the email template, which is to be overridden with the corresponding value.\"\n personalizaitonTagValue:\n type: string\n description: \"The value to be inserted for the given handlebar tag in the specified email template.\"\n example:\n dealName: \"Example\"\n clientName: \"Some Credit Union\"\n subject: \"Boarding File Success\"\n firstName: \"John\"\n lastName: \"Doe\"\n body: \"We've received your document.\"\n recipient:\n type: object\n required:\n - recipientAddress\n - recipientName\n properties:\n recipientAddress:\n type: string\n recipientName:\n type: string\n example:\n recipientName: \"John Doe\"\n recipientAddress: \"doe.john@gmali.com\"\n emailRecord:\n type: object\n properties:\n emailTemplate:\n type: string\n description: \"Optional. Specifies which email template should be used - uses a default template with no handlebar tags if one is not provided.\"\n example: \"DEFAULT\"\n fromAddress:\n type: string\n description: \"Required. Specifies who the recipient will see the 'from' email address is.\"\n fromName:\n type: string\n description: \"Required. Specifies who the recipient will see the email is from.\"\n to:\n type: array\n items:\n anyOf:\n - $ref: \"#/components/schemas/recipient\"\n description: \"Optional, if at least one bcc recipient is provided - otherwise at least one required. The Recipient(s) of the email.\"\n bcc:\n type: array\n items:\n anyOf:\n - $ref: \"#/components/schemas/recipient\"\n description: \"Optional, if at least one to recipient is provided - otherwise at least one required. The BCC Recipient(s) of the email.\"\n subject:\n type: string\n description: \"Required - however certain templates may not support overriding the subject contents.\"\n body:\n type: string\n description: \"Optional. The content body of the email, if present.\"\n contentType:\n type: string\n description: \"Required if body is provided. The content type of the email.\"\n sentAt:\n type: string\n format: date-time\n description: \"When the email was sent.\"\n responseReceivedAt:\n type: string\n format: date-time\n description: \"Tracks when this emails response was received.\"\n responseStatusCode:\n type: integer\n description: \"Tracks the response code to this email.\"\n responseBody:\n type: string\n description: \"Tracks the response body of this email.\"\n clientApplication:\n type: string\n description: \"Specifies which client application requested this email be sent.\"\n clientApplicationUser:\n type: string\n description: \"Specifies the user of the client application that requested the email be sent, or the system user.\"\n personalizations:\n type: object\n description: \"Optional. Required only if a template is specified that contains handlebar tags.\"\n additionalProperties:\n type: object\n properties:\n personalizationTagKeyName:\n type: string\n description: \"The handlebar tag name, as specified in the email template, which is to be overridden with the corresponding value.\"\n personalizaitonTagValue:\n type: string\n description: \"The value to be inserted for the given handlebar tag in the specified email template.\"\n example:\n dealName: \"Example\"\n clientName: \"Some Credit Union\"\n subject: \"Boarding File Success\"\n firstName: \"John\"\n lastName: \"Doe\"\n body: \"We've received your document.\"\n example:\n emailTemplate: \"xx-sasdgkji2h3sdsfs\"\n fromName: \"LendKey\"\n fromAddress: \"something@lendkey.com\"\n to:\n - recipientName: \"John Doe\"\n recipientAddress: \"doe.john@gmali.com\"\n bcc:\n - recipientName: \"Jane Doe\"\n recipientAddress: \"doe.jane@gmali.com\"\n subject: \"Test\"\n body: \"Test\"\n contentType: \"text/plain\"\n sentAt: \"2021-08-1310:39:59\"\n responseReceivedAt: \"2021-08-1310:40:03\"\n responseStatusCode: \"202\"\n responseBody: \"Example body\"\n clientApplication: \"DSP\"\n clientApplicationUser: \"john.doe@lendkey.com\"\n personalizations:\n dealName: \"Example\"\n clientName: \"Some Credit Union\"\n subject: \"Boarding File Success\"\n firstName: \"John\"\n lastName: \"Doe\"\n body: \"We've received your document.\"\n emailSubstitution:\n type: object\n properties:\n id:\n type: integer\n tag:\n type: string\n example:\n id: 2\n tag: \"clientName\"\n emailTemplate:\n type: object\n properties:\n keyName:\n type: string\n externalTemplateProvider:\n type: string\n externalTemplateId:\n type: string\n emailSubstitutions:\n type: array\n items:\n $ref: \"#/components/schemas/emailSubstitution\"\n example:\n keyName: \"HIL_Application_Invitation\"\n externalTemplateProvider: \"SendGrid\"\n externalTemplateId: \"\"\n emailSubstitutions:\n - $ref: \"#/components/schemas/emailSubstitution\"\n emailTemplateList:\n type: object\n properties:\n _embedded:\n type: object\n properties:\n emailTemplates:\n type: array\n items:\n $ref: \"#/components/schemas/emailTemplate\"\n _links:\n type: object\n properties:\n self:\n $ref: \"#/components/schemas/link\"\n page:\n $ref: \"#/components/schemas/page\"\n example:\n _embedded:\n emailTemplates:\n - keyName: \"HIL_Application_Invitation\"\n externalTemplateProvider: \"SendGrid\"\n externalTemplateId: \"\"\n emailSubstitutions:\n - id: 2\n tag: \"clientName\"\n - id: 1\n tag: \"dealName\"\n _links:\n self:\n href: \"http://localhost:8080/v1/emailTemplates?page=0&size=20\"\n first:\n href: \"http://localhost:8080/v1/emailTemplates?page=0&size=20\"\n next:\n href: \"http://localhost:8080/v1/emailTemplates?page=1&size=20\"\n last:\n href: \"http://localhost:8080/v1/emailTemplates?page=1&size=20\"\n page:\n size: 20\n totalElements: 1\n totalPages: 1\n number: 0\n emailRecordList:\n type: object\n properties:\n _embedded:\n type: object\n properties:\n emailRecords:\n type: array\n items:\n $ref: \"#/components/schemas/emailRecord\"\n _links:\n type: object\n properties:\n self:\n $ref: \"#/components/schemas/link\"\n page:\n $ref: \"#/components/schemas/page\"\n example:\n _embedded:\n emailRecords:\n - emailTemplate: \"xx-sasdgkji2h3sdsfs\"\n fromName: \"LendKey\"\n fromAddress: \"something@lendkey.com\"\n to:\n - recipientName: \"John Doe\"\n recipientAddress: \"doe.john@gmali.com\"\n bcc:\n - recipientName: \"Jane Doe\"\n recipientAddress: \"doe.jane@gmali.com\"\n subject: \"Test\"\n body: \"Test\"\n contentType: \"text/plain\"\n sentAt: \"2021-08-1310:39:59\"\n responseReceivedAt: \"2021-08-1310:40:03\"\n responseStatusCode: \"202\"\n responseBody: \"Example body\"\n clientApplication: \"DSP\"\n clientApplicationUser: \"john.doe@lendkey.com\"\n personalizations:\n dealName: \"Example\"\n clientName: \"Some Credit Union\"\n subject: \"Boarding File Success\"\n firstName: \"John\"\n lastName: \"Doe\"\n body: \"We've received your document.\"\n _links:\n self:\n href: \"http://localhost:8080/v1/emails?page=0&size=20\"\n first:\n href: \"http://localhost:8080/v1/emails?page=0&size=20\"\n next:\n href: \"http://localhost:8080/v1/emails?page=1&size=20\"\n last:\n href: \"http://localhost:8080/v1/emails?page=1&size=20\"\n page:\n size: 20\n totalElements: 1\n totalPages: 1\n number: 0\n"
{}