Skip to content

POST   /applications/{applicationId}/requirements

Create a new requirement

Create a new requirement for an application. Requirements can be either:

  • document: Request for document upload (e.g., bank statements, tax returns)
  • field_update: Request for changes to existing application fields

Requires writeApplications permission.

Authentication Required

Authorization: Bearer {token}   header string

This header is required to access this endpoint

Required Parameters

x-account-id   header string

Account ID for the request

applicationId   path string

The unique ID of the application

Request Body

null

Try it out

Loading...

Output:

Responses

Description

Requirement created successfully

{
"id": 0,
"applicationId": 0,
"type": "string",
"documentKey": "string",
"customDocumentName": "string",
"documentDescription": "string",
"forOwner": false,
"ownerUniqueId": "string",
"fieldSection": "string",
"fieldPath": "string",
"fieldLabel": "string",
"currentValue": "string",
"reason": "string",
"priority": "string",
"status": "string",
"requestedBy": 0,
"requestedAt": "string",
"resolvedBy": 0,
"resolvedAt": "string",
"underwriterNotes": "string",
"applicantNotes": "string",
"rejectionReason": "string",
"createdAt": "string",
"updatedAt": "string",
"requestedByUser": {
"id": 0,
"name": "string",
"email": "string"
}
}

References

#/components/parameters/xAccountIdHeader

in: header
name: x-account-id
schema:
type: string
description: Account ID for the request
required: true
example: "2311"

#/components/parameters/applicationIdPath

name: applicationId
in: path
required: true
schema:
type: string
description: The unique ID of the application

#/components/schemas/CreateDocumentRequirement

type: object
description: Input for creating a document requirement
required:
- type
- reason
properties:
type:
type: string
enum:
- document
description: Must be "document" for document requirements
documentKey:
type: string
description: >
Predefined document key. One of: driver-license, corporation-documents,
voided-check, bank-statement, processing-statement,
processing-statement-3-months,
tax-returns, financial-statements, p_l_statement, balance_sheet, pci,
mail_phone_document, fulfillment-agreement, office_inventory_photos,
ein-letter, business-license, other
customDocumentName:
type: string
maxLength: 255
description: Custom document name (required if documentKey not provided)
documentDescription:
type: string
maxLength: 1000
description: Additional description for the request
forOwner:
type: boolean
default: false
description: Whether this document is for a specific business owner
ownerUniqueId:
type: string
description: Required when forOwner is true
reason:
type: string
maxLength: 1000
description: Why this document is needed
priority:
type: string
enum:
- required
- recommended
default: required
description: Priority level
underwriterNotes:
type: string
maxLength: 2000
description: Internal notes

#/components/schemas/CreateFieldUpdateRequirement

type: object
description: Input for creating a field update requirement
required:
- type
- fieldSection
- fieldPath
- fieldLabel
- reason
properties:
type:
type: string
enum:
- field_update
description: Must be "field_update" for field update requirements
fieldSection:
type: string
description: |
Section containing the field. One of: basics, businessDetails,
businessHistory, businessBanking, businessBuilding, businessInventory,
orderProcessing, scheduleABasics, businessOwners
fieldPath:
type: string
maxLength: 255
description: Path to the field (e.g., "dbaPhone", "homeAddress")
fieldLabel:
type: string
maxLength: 255
description: Human-readable field name (e.g., "Business Phone Number")
currentValue:
type: string
maxLength: 1000
description: Current value for reference
reason:
type: string
maxLength: 1000
description: Why this field needs to be updated
priority:
type: string
enum:
- required
- recommended
default: required
description: Priority level
underwriterNotes:
type: string
maxLength: 2000
description: Internal notes

#/components/schemas/Requirement

type: object
description: A requirement requested by an underwriter
properties:
id:
type: integer
description: Unique identifier for the requirement
applicationId:
type: integer
description: ID of the associated application
type:
type: string
enum:
- document
- field_update
description: Type of requirement
documentKey:
type: string
nullable: true
description: >
Predefined document key for standard document types.
Valid keys: driver-license, corporation-documents, voided-check,
bank-statement,
processing-statement, processing-statement-3-months, tax-returns,
financial-statements,
p_l_statement, balance_sheet, pci, mail_phone_document,
fulfillment-agreement,
office_inventory_photos, ein-letter, business-license, other
customDocumentName:
type: string
nullable: true
description: Custom name for ad-hoc document requests
documentDescription:
type: string
nullable: true
description: Additional description for the document request
forOwner:
type: boolean
description: Whether the document is required for a specific business owner
ownerUniqueId:
type: string
nullable: true
description: Unique ID of the owner if forOwner is true
fieldSection:
type: string
nullable: true
description: >
Section of the application for field updates.
Valid sections: basics, businessDetails, businessHistory, businessBanking,
businessBuilding, businessInventory, orderProcessing, scheduleABasics,
businessOwners
fieldPath:
type: string
nullable: true
description: Path to the field within the section (e.g., "dbaPhone", "homeAddress")
fieldLabel:
type: string
nullable: true
description: Human-readable label for the field
currentValue:
type: string
nullable: true
description: Current value of the field for reference
reason:
type: string
description: Explanation of why this requirement is needed
priority:
type: string
enum:
- required
- recommended
description: Priority level of the requirement
status:
type: string
enum:
- pending
- submitted
- approved
- rejected
- waived
description: Current status of the requirement
requestedBy:
type: integer
description: User ID of the underwriter who requested this
requestedAt:
type: string
format: date-time
description: When the requirement was created
resolvedBy:
type: integer
nullable: true
description: User ID of who resolved the requirement
resolvedAt:
type: string
format: date-time
nullable: true
description: When the requirement was resolved
underwriterNotes:
type: string
nullable: true
description: Internal notes from the underwriter
applicantNotes:
type: string
nullable: true
description: Notes from the applicant
rejectionReason:
type: string
nullable: true
description: Reason for rejection if status is rejected
createdAt:
type: string
format: date-time
description: Record creation timestamp
updatedAt:
type: string
format: date-time
description: Record last update timestamp
requestedByUser:
type: object
nullable: true
description: Details of the user who requested this requirement
properties:
id:
type: integer
name:
type: string
nullable: true
email:
type: string

#/components/schemas/Error

type: object
properties:
error:
type: string
description: Error message
status:
type: integer
description: HTTP status code
message:
type: string
description: Detailed error message
description: Error response object
required:
- error

Route Source Code

Check out the source code for this route entrypoint here: /applications/[applicationId]/requirements/route.ts

Or the swagger.yaml spec this documentation was generated from: /applications/[applicationId]/requirements/swagger.yaml