---
title: "Create Financing Application"
method: POST
path: "/financing_applications"
tags: ["Financing Applications"]
---

# Create Financing Application

`POST /financing_applications`

## Request

- Base URL: `https://api.whop.com/api/v1`
- URL: `https://api.whop.com/api/v1/financing_applications`
- Auth: HTTP bearer

Starts an application for payment-financing approval, or returns the account's open one: an application in `awaiting_review` takes precedence over one in `requires_collection`, and the open application is reused across different `Idempotency-Key` values. Creating an application does not submit it for review. The account must have a Whop balance set up, and accounts in restricted industries cannot apply. Once an application closes, the account can apply again.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `account_id` string: The account applying, prefixed `biz_`. Defaults to the account behind an account credential; required with a user credential.

## Response `200`

Open application reused

- FinancingApplication
  - `account_id` string, required: The ID of the merchant account applying for payment financing, starting with biz_.
  - `created_at` string, required: When the application was created, as an ISO 8601 timestamp.
  - `feedback` string, nullable: Public review feedback when more information is requested or the application is denied. Internal notes are never included.
  - `id` string, required: The financing application ID, starting with inrq_.
  - `requirements` FinancingRequirement[]
    - `accepted_file_formats` string[], required
    - `field` string, required: The information requested, such as business_description or processing_statements.
    - `file_collection_type` 'none' | 'single' | 'multi', required: Whether the requirement accepts no file, one file, or multiple files.
    - `files` File[], required
      - `blurhash` string, nullable, required: BlurHash placeholder for an image or video. Null when unavailable or removed by moderation.
      - `content_type` string, nullable, required: The original file's MIME type, preserved when removed by moderation, e.g. `application/pdf`.
      - `created_at` string, required: When the file was created, as an ISO 8601 timestamp.
      - `duration_seconds` number, nullable, required: Audio or video duration in seconds. Null when unavailable or removed by moderation.
      - `filename` string, nullable, required: The original filename, including its extension.
      - `height` integer, nullable, required: Image or video height in pixels. Null when unavailable or removed by moderation.
      - `id` string, required: The file's ID, prefixed `file_`.
      - `multipart_chunk_size` integer, nullable: The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
      - `multipart_upload_id` string, nullable: The ID of the multipart upload, passed back to `complete`. Present only on create, and only for multipart uploads.
      - `multipart_upload_urls` FileMultipartUrl[], nullable
        - `part_number` integer, required: The 1-based index of this part within the multipart upload.
        - `url` string, required: The presigned URL to PUT this part's bytes to.
      - `object` string, required: The type of this object, always `file`.
      - `removed_by_moderation` boolean, required: Whether moderation removed the file. When true, `url` serves a replacement image; filename, size, and content type still describe the original file.
      - `size` integer, nullable, required: The file size in bytes. `null` until the upload has finished.
      - `upload_headers` object: Headers to send with the upload PUT. Present only on create.
      - `upload_status` 'pending' | 'processing' | 'ready' | 'failed', required: Where the file is in its upload lifecycle.
      - `upload_url` string, nullable: Presigned URL to PUT the file's bytes to. Present only on create, and only for single-part uploads.
      - `url` string, nullable, required: A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. Null until the upload has finished; a replacement image URL when removed by moderation.
      - `visibility` 'public' | 'private', required: `public` files are served via an unsigned CDN URL; `private` files via a signed, expiring URL.
      - `waveform_url` string, nullable, required: Audio waveform URL. Null when unavailable or removed by moderation.
      - `width` integer, nullable, required: Image or video width in pixels. Null when unavailable or removed by moderation.
    - `id` string, required: Requirement ID to use when updating this application's answers.
    - `max_file_size` integer, required: Maximum size in bytes for each uploaded document.
    - `minimum_length` integer, nullable, required: Minimum characters per text answer, when specified.
    - `money` Money, required
      - `amount` string, required: The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required: Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required: How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required: How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `options` string[], required
    - `required` boolean, required: Whether this requirement must be completed before submission.
    - `text_collection_type` 'none' | 'single' | 'multi', required: Whether the requirement accepts no text, one value, or multiple values.
    - `text_format` 'plain' | 'url' | 'email' | 'phone' | 'number' | 'checkbox' | 'dropdown', required: Expected text format. max_product_price uses money instead of values.
    - `values` string[], required
  - `status` 'requires_collection' | 'awaiting_review' | 'completed' | 'approved' | 'denied', required: The application's review state. Approval does not by itself indicate that financing payment methods are enabled on the account.
  - `terms` FinancingTerms
    - `content` string, required: The exact plain-text contract snapshot covered by this version. Present this content, the policies, and the disclosure before collecting acceptance.
    - `disclosure` string, required: Affirmative acceptance statement to present to the merchant.
    - `fees_url` string, required: Additional financing fee information.
    - `policies` string[], required
    - `url` string, required: Source URL for the Splitit contract snapshot.
    - `version` string, required: Content fingerprint to pass as merchant_acceptance.terms_version when submitting.
  - `updated_at` string, required: When the application was last updated, as an ISO 8601 timestamp.

## Other responses

- `201`: Application created
- `400`: Invalid Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Resource not found
- `409`: Conflict

## Changes

> 124 revisions in range; 1 not diffed.

- **2026-10-20** `05dbb87e155a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/whop/apis/whop-api/changes/financing_applications/post.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/99c00dbdc4d0?raw)
