---
title: "Create an application"
method: POST
path: "/v0/applications"
tags: ["Compliance"]
---

# Create an application

`POST /v0/applications`

Creates a new credit application in terminal status.

## Business Rules
- Applications MUST be created in terminal status (approved, declined, canceled)
- Maximum 20 entities per relationship type
- Credit fields required for all applications
- Adverse action notice required for declined applications
- Authorized signers required for commercial account holders
- client_application_id cannot start with reserved prefix 'application_'
- credit.limit cannot exceed credit.max_limit

## Idempotency
The Idempotency-Key header is required. Reusing a key with a different request
body will return a 422 error.

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateApplicationRequest — Request body for creating a new application in terminal status
  - `status` 'approved' | 'declined' | 'canceled', required — Terminal state of the application. Possible values: `approved`, `declined`, `canceled`.
  - `entities` CreateApplicationEntities, required — Entity relationships for the application. Maximum 20 entities per relationship type. Authorized signers required for commercial account holders.
    - `account_holders` EntityID[], required — List of entity IDs that are account holders
    - `authorized_signers` EntityID[] — List of entity IDs that are authorized signers (required for commercial)
    - `authorized_users` EntityID[] — List of entity IDs that are authorized users
  - `details` CreateApplicationDetails, required — Details for creating an application
    - `product_name` string, required — Your internal product name. This tells Lead's Due Diligence team which product this application, if approved, would open an account for.
    - `credit` CreateApplicationCredit, required — Credit details for creating an application
      - `is_secured` boolean, required — Indicates if this is a secured credit/deposit product. `true` if the product is secured (collateral attached); `false` otherwise.
      - `is_mla` boolean, required — `true` if the applicant is subject to the Military Lending Act; `false` otherwise.
      - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GGP' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'IMP' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JEP' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XCG' | 'XMW' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWG', required — A three-letter currency code as defined in ISO 4217
      - `underwriting_grade` string — Your internal underwriting grade for the applicant. Accepts any string mapped to your specific scoring framework.
      - `limit` integer — The credit limit assigned to the applicant, in minor units (e.g., cents).
      - `max_limit` integer — The maximum credit limit the applicant was approved for based on original underwriting, in minor units (e.g., cents).
      - `report` CreditReport — Credit report information. Exactly one of `score` or `non_score_value` must be provided; `pulled_at` and `source` are always required when a credit report is supplied.
        - `score` integer — Credit score returned by the bureau. Supported range is 300-850. Mutually exclusive with `non_score_value`.
        - `non_score_value` 'unestablished' | 'frozen' — Indicates the state of a credit file when a numeric score is not available. Mutually exclusive with `score`.
        - `pulled_at` string, date-time, required — ISO 8601 timestamp when the credit report was pulled.
        - `source` 'equifax' | 'transunion' | 'experian', required — Credit bureau that issued the report. Possible values: `equifax`, `experian`, `transunion`.
    - `adverse_action_notice` AdverseActionNotice — Adverse action notice information
      - `delivered_at` string, date-time, required — ISO 8601 timestamp when the adverse action notice was sent to the applicant.
      - `reason` string, required — The reason stated in the adverse action notice.
      - `delivery_method` 'email' | 'text' | 'other', required — How the notice was delivered to the applicant. Possible values: `email`, `text`, `other`.
  - `decision` Decision, required — Decision-related information for the application
    - `decided_at` string, date-time, required — ISO 8601 timestamp when the underwriting decision was made.
    - `reason` string, required — The reason for the decision.
    - `exception_approval_reason` string — This should only be provided if the decision was made as an exception to underwriting criteria. Reason for exception approval, if this decision was made as an exception to the traditional underwriting process.
  - `documents` CreateComplianceDocument[], required — Documents associated with the application
    - union — Document reference for creating applications and accounts. One of `displayed_at` or `consented_at` is required depending on document type: - `displayed_at`: Required for aan, loan_agreement, loc_agreement, truth_in_lending_document, ach_authorization, notice_of_incompleteness, credit_score_notice, offer_summary, personal_guarantee, consumer_credit_auth, partner_privacy_policy, lead_privacy_policy, terms_of_use, fcra_notice, tcpa_consent, patriot_act_notice, mla_notice, pre_approval_terms, eft_authorization, prohibited_industry_certification, decision_maker_document, bo_certification, missed_payments_policy, lead_funds_transfer_agreement - `consented_at`: Required for esign_agreement, credit_pull_consent, consent_to_link_account, consent_to_link_hsa, negative_option_consent
      - object — Disclosure document — `displayed_at` is required.
        - `document_id` string, required — Unique identifier for the document being referenced. Please use the file name of the file delivered to Lead's `/documents` SFTP directory.
        - `type` 'aan' | 'loan_agreement' | 'loc_agreement' | 'truth_in_lending_document' | 'ach_authorization' | 'notice_of_incompleteness' | 'credit_score_notice' | 'offer_summary' | 'personal_guarantee' | 'consumer_credit_auth' | 'partner_privacy_policy' | 'lead_privacy_policy' | 'terms_of_use' | 'fcra_notice' | 'tcpa_consent' | 'patriot_act_notice' | 'mla_notice' | 'pre_approval_terms' | 'eft_authorization' | 'prohibited_industry_certification' | 'decision_maker_document' | 'bo_certification' | 'missed_payments_policy' | 'lead_funds_transfer_agreement', required — Type of document associated with an application
        - `displayed_at` string, date-time, required — ISO 8601 timestamp when the document was displayed to the applicant. Present on disclosure documents.
        - `consented_at` string, date-time — ISO 8601 timestamp when the applicant consented to the document. Present on consent documents.
        - `version` string — It is recommended to use this for static documents uploaded once and uploaded for many users. Uploads with a new version should have a different document_id as well.
      - object — Consent document — `consented_at` is required.
        - `document_id` string, required — Unique identifier for the document being referenced. Please use the file name of the file delivered to Lead's `/documents` SFTP directory.
        - `type` 'esign_agreement' | 'credit_pull_consent' | 'consent_to_link_account' | 'consent_to_link_hsa' | 'negative_option_consent', required — Type of document associated with an application
        - `displayed_at` string, date-time — ISO 8601 timestamp when the document was displayed to the applicant. Present on disclosure documents.
        - `consented_at` string, date-time, required — ISO 8601 timestamp when the applicant consented to the document. Present on consent documents.
        - `version` string — It is recommended to use this for static documents uploaded once and uploaded for many users. Uploads with a new version should have a different document_id as well.
  - `metadata` object — Arbitrary metadata associated with the application

## Response `200`

Application created successfully.

- Application — An application object representing a credit application
  - `id` string — Unique identifier for the application. Prefixed with `application_`.
  - `client_application_id` string — Client-provided identifier for the application. Optional: present only for applications created via file upload, and omitted for applications created through the API, which are identified solely by their server-generated ID.
  - `created_at` string, date-time — Lead server-generated ISO 8601 timestamp when the application was created.
  - `updated_at` string, date-time — Lead server-generated ISO 8601 timestamp when the application was last updated.
  - `status` 'approved' | 'declined' | 'canceled' — Terminal state of the application. Possible values: `approved`, `declined`, `canceled`.
  - `entities` ApplicationEntities — Entity relationships associated with the application (response only)
    - `account_holder_type` 'consumer' | 'commercial' — Denotes whether the application is for a consumer or commercial account. `consumer` if all account holders are individuals; `commercial` if all account holders are businesses or sole proprietors.
    - `account_holders` EntityID[] — List of entity IDs that are account holders
    - `authorized_signers` EntityID[] — List of entity IDs that are authorized signers
  - `details` ApplicationDetails — Application details (response, all properties optional)
    - `product_name` string — Your internal product name. This tells Lead's Due Diligence team which product this application, if approved, would open an account for.
    - `credit` ApplicationCredit — Credit details for an application (response, all properties optional)
      - `is_secured` boolean — Indicates if this is a secured credit/deposit product. `true` if the product is secured (collateral attached); `false` otherwise.
      - `is_mla` boolean — `true` if the applicant is subject to the Military Lending Act; `false` otherwise.
      - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GGP' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'IMP' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JEP' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XCG' | 'XMW' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWG' — A three-letter currency code as defined in ISO 4217
      - `underwriting_grade` string — Your internal underwriting grade for the applicant. Accepts any string mapped to your specific scoring framework.
      - `limit` integer — The credit limit assigned to the applicant, in minor units (e.g., cents).
      - `max_limit` integer — The maximum credit limit the applicant was approved for based on original underwriting, in minor units (e.g., cents).
      - `report` ApplicationCreditReport — Credit report information (response, all properties optional)
        - `score` integer — Credit score returned by the bureau. Supported range is 300-850. Mutually exclusive with `non_score_value`.
        - `non_score_value` 'unestablished' | 'frozen' — Indicates the state of a credit file when a numeric score is not available. Mutually exclusive with `score`.
        - `pulled_at` string, date-time — ISO 8601 timestamp when the credit report was pulled.
        - `source` 'equifax' | 'transunion' | 'experian' — Credit bureau that issued the report. Possible values: `equifax`, `experian`, `transunion`.
    - `adverse_action_notice` ApplicationAdverseActionNotice — Adverse action notice information (response, all properties optional)
      - `delivered_at` string, date-time — ISO 8601 timestamp when the adverse action notice was sent to the applicant.
      - `reason` string — The reason stated in the adverse action notice.
      - `delivery_method` 'email' | 'text' | 'other' — How the notice was delivered to the applicant. Possible values: `email`, `text`, `other`.
  - `decision` ApplicationDecision — Decision-related information (response, all properties optional)
    - `decided_at` string, date-time — ISO 8601 timestamp when the underwriting decision was made.
    - `reason` string — The reason for the decision.
    - `exception_approval_reason` string — This should only be provided if the decision was made as an exception to underwriting criteria. Reason for exception approval, if this decision was made as an exception to the traditional underwriting process.
  - `documents` ApplicationComplianceDocument[] — Documents associated with the application
    - `document_id` string — Unique identifier for the document being referenced. Please use the file name of the file delivered to Lead's `/documents` SFTP directory.
    - `type` 'aan' | 'loan_agreement' | 'loc_agreement' | 'truth_in_lending_document' | 'ach_authorization' | 'notice_of_incompleteness' | 'credit_score_notice' | 'offer_summary' | 'personal_guarantee' | 'consumer_credit_auth' | 'partner_privacy_policy' | 'lead_privacy_policy' | 'terms_of_use' | 'esign_agreement' | 'credit_pull_consent' | 'fcra_notice' | 'tcpa_consent' | 'patriot_act_notice' | 'mla_notice' | 'pre_approval_terms' | 'eft_authorization' | 'prohibited_industry_certification' | 'decision_maker_document' | 'bo_certification' | 'missed_payments_policy' | 'consent_to_link_account' | 'consent_to_link_hsa' | 'negative_option_consent' | 'lead_funds_transfer_agreement' — Type of document associated with an application
    - `displayed_at` string, date-time — ISO 8601 timestamp when the document was displayed to the applicant. Present on disclosure documents.
    - `consented_at` string, date-time — ISO 8601 timestamp when the applicant consented to the document. Present on consent documents.
    - `version` string — It is recommended to use this for static documents uploaded once and uploaded for many users. Uploads with a new version should have a different document_id as well.
  - `metadata` object — Arbitrary metadata associated with the application

## Other responses

- `400` — Malformed request or missing required header.
- `401` — Valid access token was not used to call the API.
- `403` — Valid access token lacks the proper scopes.
- `409` — An application with the same data already exists.
- `422` — Request validation failed.
- `429` — Rate limit exceeded.
- `500` — Server error. Please try your request again.

---

[API](https://skmtc.net/lead/apis/lead-bank.md) · [All operations](https://skmtc.net/lead/apis/lead-bank/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lead/lead-bank/versions/25c2a92d55e2/schema)
