---
title: "Create an account"
method: POST
path: "/v0/accounts"
tags: ["Compliance"]
---

# Create an account

`POST /v0/accounts`

Creates a new account.

## Business Rules
- Status is set to `active` by default on creation
- Maximum 20 entities per relationship type
- Cannot mix individual and business/sole_prop entities in account_holders
- Authorized signers required for business/sole_prop account holders
- application_id is required for credit accounts

## 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

- CreateAccountRequest — Request body for creating a new account
  - `application_id` string — Unique identifier for the application. Prefixed with `application_`.
  - `capabilities` AccountCapability[], required — List of items that inform Lead how the Account will be used
  - `entities` CreateAccountEntities, required — Entity relationships for the account (POST request only). Maximum 20 entities per relationship type. Cannot mix individual and business/sole_prop entities in account_holders. Authorized signers required for business/sole_prop account holders.
    - `account_holders` EntityID[], required — Account holders (min 1, max 20)
    - `authorized_signers` EntityID[] — Authorized signers on the account (required with min 1 if business/sole_prop account holders)
    - `authorized_users` EntityID[] — Authorized users on the account
  - `details` CreateAccountDetails, required — Details for creating an account
    - `product_name` string, required — Partner's name for their product
    - `credit` CreateAccountCredit — Details specific to credit-based accounts (for POST - all fields required)
      - `is_secured` boolean, required — Indicates if this is a secured credit/deposit product
      - `is_mla` boolean, required — Indicates if this account is considered a Military Lending Act account
      - `underwriting_grade` string, required — Grade given to the customer based on underwriting
      - `currency` string, required — The currency for the account (3-letter ISO code)
      - `available_credit` integer, required — Available credit for the customer to draw (in minor units)
      - `limit` integer, required — Current credit limit (in minor units)
      - `max_limit` integer, required — Maximum credit limit approved in underwriting (in minor units)
      - `scra` Scra — SCRA (Servicemembers Civil Relief Act) details
        - `start_date` string, date, required — Start date for SCRA protections
        - `end_date` string, date — End date for SCRA protections
      - `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`.
  - `metadata` Metadata — A set of key-value pairs that can be used to store additional information related to this object.
  - `documents` CreateComplianceDocument[], required — Array of associated legal or informational documents
    - 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.

## Response `200`

Account created successfully.

- Account — An account object
  - `id` string — The ID of the Account object.
  - `created_at` string, date-time — Creation timestamp
  - `updated_at` string, date-time — Last update timestamp
  - `application_id` string — Unique identifier for the application. Prefixed with `application_`.
  - `status` 'active' | 'inactive' | 'closed' — Current state of the account
  - `status_reason` 'client_closed' | 'entity_closed' | 'frozen' | 'dormant' | 'active' | 'paid_off' | 'charged_off' | 'canceled' | 'other' — Machine-readable reason for the current status
  - `capabilities` AccountCapability[] — List of items that inform Lead how the Account will be used
  - `entities` AccountEntities — Entity relationships associated with the account (response only)
    - `account_holder_type` 'consumer' | 'commercial' — Derived from the type of the entity referenced in account_holders
  - `details` AccountDetails — Core details of the account
    - `product_name` string — Partner's name for their product
    - `closed_at` string, date-time — Timestamp when the account was closed. Updated by /close endpoint.
    - `credit` AccountCredit — Details specific to credit-based accounts
      - `is_secured` boolean — Indicates if this is a secured credit/deposit product
      - `is_mla` boolean — Indicates if this account is considered a Military Lending Act account
      - `underwriting_grade` string — Grade given to the customer based on underwriting
      - `currency` string — The currency for the account (3-letter ISO code)
      - `available_credit` integer — Available credit for the customer to draw (in minor units)
      - `limit` integer — Current credit limit (in minor units)
      - `max_limit` integer — Maximum credit limit approved in underwriting (in minor units)
      - `scra` Scra — SCRA (Servicemembers Civil Relief Act) details
        - `start_date` string, date, required — Start date for SCRA protections
        - `end_date` string, date — End date for SCRA protections
      - `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`.
  - `metadata` Metadata — A set of key-value pairs that can be used to store additional information related to this object.
  - `documents` ComplianceDocument[] — Array of associated legal or informational documents
    - `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.
  - `client_account_id` string — Client-provided identifier for the account. Optional: present only for accounts created via file upload, and omitted for accounts created through the API, which are identified solely by their server-generated ID.

## 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.
- `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)
