---
title: "Submit a completed application for decisioning"
method: POST
path: "/posfinancing/rest/v2/applications/{applicationId}/finance-accounts"
tags: ["Application"]
---

# Submit a completed application for decisioning

`POST /posfinancing/rest/v2/applications/{applicationId}/finance-accounts`

Submit Application

## Path parameters

- `applicationId` string, uuid, required

## Request body

- UndefinedSubmitApplicationInput
  - `prequalificationId` string, required — The ID of the prequalification to use for decisioning. This holds the offer and category information.

## Response `201`

Resource created successfully.

- SchemaObject9
  - `payload` object, required — The response data.
    - `financeAccountId` string, required — The human-readable identifier of the finance account.
    - `financeType` 'loan' | 'lease' | 'ppa' | 'ppav' | 'e-heloc', required — The finance type.
    - `offerId` string, required — The unique identifier of the offer.
    - `categoryCode` 'Solar_TPO' | 'HVAC_LEASE' | 'BATTERY_LEASE' | 'HELOC', required — The code of the offer category.
    - `categoryId` string, required — The unique identifier of the offer category.
    - `createdAt` string, date-time, required — The date and time when the finance account was created.
    - `expiresAt` string, date-time, required — The date and time when credit expires.
    - `tags` string[], required — Optional user-defined tags added to the application.
    - `status` 'APPROVED' | 'APPROVED_WITH_STIPS' | 'DECLINED' | 'PENDING' | 'CANCELED', required — The status of the application.
    - `reason` string, required — The reason the application was declined or approved with stips.
    - `type` 'SINGLE' | 'COMBINED' | 'PRIMARY' | 'SECONDARY', required — The decision type.
    - `applicants` UndefinedApplicationApplicantOutput[], required — The applicants on the application, projected to the fields needed by the decision screen.
      - `role` 'APPLICANT' | 'COAPPLICANT', required — The applicant's role on the application.
      - `firstName` string, required — The applicant's first name.
      - `lastName` string, required — The applicant's last name.
      - `email` string, required — The applicant's email address.
      - `dropped` boolean, required — Whether the applicant was dropped from the application — either because underwriting excluded them so the other applicant could proceed, or because the application as a whole was Declined.
    - `cases` UndefinedApplicationPendingCaseOutput[] — Borrower-facing cases (e.g. document upload stips) that must be resolved before the account can progress.
      - `id` string, required — The unique identifier of the case in UUID v4 format.
      - `name` string, required — The name of the case.
      - `description` string, required — A description of the case.
      - `reasonCodes` string[], required — The key of the case.
      - `status` string, required — The status of the current step.
      - `type` string, required — The type of the case.
      - `attachments` UndefinedCaseAttachment[], required — An array of attachments associated with the case.
        - `id` string, required — The unique identifier of the attachment in UUID v4 format.
        - `extension` string, required — The extension of the attachment.
        - `type` string, required — The type of the attachment.
        - `name` string, required — The name of the attachment.
        - `label` string, required — A label for the attachment.
        - `groupId` string, required — Group identifier used to combine multiple uploads.
        - `status` string, required — The status of the attachment.
      - `domain` string, required — The actor that has to act on the case.
      - `deferred` boolean, required — Whether this case blocks NTP.
      - `createdAt` string, date-time, required — The date and time when the case was created.
      - `updatedAt` string, date-time, required — The date and time when the case was last updated.
      - `updatedBy` string, required — The identity that last updated the case.
      - `appliesTo` string, required — The subject of the case.
      - `documentsToClear` UndefinedDocumentToClear[], required — The documents to clear.
        - `type` string — The document type.
        - `name` string, required — The document name.
        - `description` string, required — A description of the document to clear.
    - `borrowerActionableUrl` string — A URL the borrower can visit to take action on outstanding cases.
    - `decisionExplanation` UndefinedDecisionExplanation
      - `reapply` UndefinedReapply
        - `encouraged` boolean, required — If true, reapplying is encouraged because there are actions the applicant can take to potentially change the decision when they reapply. If false, reapplying is not encouraged for the applicant.
        - `actions` UndefinedReapplyAction[], nullable, required — If `encouraged` is `true`, this will be an array of actions the applicant should take before reapplying. If `encouraged` is `false`, this will be `null` because there are no actions to take.
          - `description` string, required — The description of the action.
          - `type` string, required — The type of action.
      - `reasons` UndefinedDecisionExplanationReason[] — The list of reasons for the decision.
        - `reasonCode` string, required — The non-user-friendly code for the reason.
        - `title` string, required — The title of the reason explanation.
        - `description` string, required — The description of the reason explanation.
    - `creditLine` UndefinedCreditLineDto
      - `verified` number — The verified credit line after underwriting. Populated after the income/CFA case resolves.
      - `adjusted` number — Borrower-requested reduction below the UW ceiling. Sticky — never auto-cleared by offer or underwriting changes; only updated when the borrower explicitly submits a CREDIT_LINE change.
      - `max` number, required — The maximum credit line sourced from the offer's `maxAmount`. Updated on offer changes.
      - `effective` number, required — The effective credit line — the smallest of max, verified (if set), and adjusted (if set). The single value downstream consumers should read.
    - `availableOffers` UndefinedPrequalificationOfferOutputDto[] — The offers available under the prequalification. Populated for HELOC submissions only.
      - `id` string, required — The unique identifier of the offer.
      - `estimatedMonthlyPaymentWithAutopay` number, nullable, required — The estimated monthly payment calculated using the autopay interest rate. Null for D2C (homeowner-initiated) HELOC prequalifications, which have no project cost to compute payments against.
      - `estimatedMonthlyPaymentWithoutAutopay` number, nullable, required — The estimated monthly payment calculated without the autopay discount. Null for D2C (homeowner-initiated) HELOC prequalifications, which have no project cost to compute payments against.
      - `ratesWithAutopay` UndefinedPrequalificationOfferRateDto, required
        - `minimum` number, required — The minimum rate.
        - `maximum` number, required — The maximum rate.
      - `ratesWithoutAutopay` UndefinedPrequalificationOfferRateDto, required
        - `minimum` number, required — The minimum rate.
        - `maximum` number, required — The maximum rate.
      - `term` number, required — The term of the offer in years.
      - `maxAmount` number, required — The maximum amount for the offer.
      - `featured` boolean, required — Indicates whether this offer is featured.
      - `margins` UndefinedMarginsDto
        - `installment` number, required — The margin rate applied to the installment portion of the loan.
        - `revolving` number, required — The margin rate applied to the revolving portion of the loan.
      - `dealerFee` UndefinedDealerFeeDto
        - `percent` number, required — The dealer fee expressed as a percentage of project cost (e.g. 5 for 5%).
      - `projectCostLimits` UndefinedNumberRangeDto, required
        - `minimum` number, required — The inclusive lower bound of the range.
        - `maximum` number, required — The inclusive upper bound of the range.
    - `projectReserveLimit` number, nullable — The total project reserve limit (project cost + reserve buffer). Populated for HELOC submissions only. Null for D2C (homeowner-initiated) HELOC finance accounts, which have no associated project cost.
    - `estimatedMonthlyPayment` number, nullable — The estimated monthly payment based on the selected offer and autopay enrollment. Populated for HELOC submissions only. Null for D2C (homeowner-initiated) HELOC finance accounts, which have no associated project cost.
    - `autopayEnrolled` boolean — Whether the borrower enrolled in autopay at submission time. Populated for HELOC submissions only.

## Other responses

- `400` — The request cannot be processed due to malformed data.
- `401` — Unauthorized access to the requested resource.
- `403` — Access to the requested resource is forbidden.
- `404` — The resource was not found.
- `409` — The request cannot be processed due to a conflict with the current state of the resource.
- `422` — The server understood the request but it was unable to process the contained instructions.

---

[API](https://skmtc.net/goodleap/apis/developer-api.md) · [All operations](https://skmtc.net/goodleap/apis/developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/goodleap/developer-api/revisions/0ba836de8da3/schema)
