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{ "type": "document", "documentKey": "bank-statement", "reason": "Need 3 months of bank statements to verify cash flow", "priority": "required", "underwriterNotes": "High volume merchant, need to verify deposits"}{ "type": "document", "customDocumentName": "Supplier Agreement", "documentDescription": "Copy of agreement with primary supplier", "reason": "Need to verify supplier relationship for inventory", "priority": "recommended"}{ "type": "document", "documentKey": "driver-license", "forOwner": true, "ownerUniqueId": "owner_abc123", "reason": "Driver's license on file is expired", "priority": "required"}{ "type": "field_update", "fieldSection": "basics", "fieldPath": "dbaPhone", "fieldLabel": "Business Phone Number", "currentValue": "555-123-4567", "reason": "Phone number appears to be invalid", "priority": "required"}nullTry 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" }}Description
Bad request - Invalid requirement data
{ "error": "string", "status": 0, "message": "string"}Description
Unauthorized - User not authenticated
Description
Forbidden - User does not have writeApplications permission
Description
Application not found
References
#/components/parameters/xAccountIdHeader#/components/parameters/applicationIdPath#/components/schemas/CreateDocumentRequirement#/components/schemas/CreateFieldUpdateRequirement#/components/schemas/Requirement#/components/schemas/Error
#/components/parameters/xAccountIdHeader
in: headername: x-account-idschema: type: stringdescription: Account ID for the requestrequired: trueexample: "2311"|export type xAccountIdHeader = any; // Schema type not fully supported#/components/parameters/applicationIdPath
name: applicationIdin: pathrequired: trueschema: type: stringdescription: The unique ID of the application|export type applicationIdPath = any; // Schema type not fully supported#/components/schemas/CreateDocumentRequirement
type: objectdescription: Input for creating a document requirementrequired: - type - reasonproperties: 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>export interface CreateDocumentRequirement { /** Must be "document" for document requirements */ type: "document"; /** 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 */ documentKey?: string; /** Custom document name (required if documentKey not provided) */ customDocumentName?: string; /** Additional description for the request */ documentDescription?: string; /** Whether this document is for a specific business owner */ forOwner?: boolean; /** Required when forOwner is true */ ownerUniqueId?: string; /** Why this document is needed */ reason: string; /** Priority level */ priority?: "required" | "recommended"; /** Internal notes */ underwriterNotes?: string;}#/components/schemas/CreateFieldUpdateRequirement
type: objectdescription: Input for creating a field update requirementrequired: - type - fieldSection - fieldPath - fieldLabel - reasonproperties: 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|export interface CreateFieldUpdateRequirement { /** Must be "field_update" for field update requirements */ type: "field_update"; /** Section containing the field. One of: basics, businessDetails,businessHistory, businessBanking, businessBuilding, businessInventory,orderProcessing, scheduleABasics, businessOwners */ fieldSection: string; /** Path to the field (e.g., "dbaPhone", "homeAddress") */ fieldPath: string; /** Human-readable field name (e.g., "Business Phone Number") */ fieldLabel: string; /** Current value for reference */ currentValue?: string; /** Why this field needs to be updated */ reason: string; /** Priority level */ priority?: "required" | "recommended"; /** Internal notes */ underwriterNotes?: string;}#/components/schemas/Requirement
type: objectdescription: A requirement requested by an underwriterproperties: 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>export interface Requirement { /** Unique identifier for the requirement */ id?: number; /** ID of the associated application */ applicationId?: number; /** Type of requirement */ type?: "document" | "field_update"; /** 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 */ documentKey?: string; /** Custom name for ad-hoc document requests */ customDocumentName?: string; /** Additional description for the document request */ documentDescription?: string; /** Whether the document is required for a specific business owner */ forOwner?: boolean; /** Unique ID of the owner if forOwner is true */ ownerUniqueId?: string; /** Section of the application for field updates.Valid sections: basics, businessDetails, businessHistory, businessBanking,
businessBuilding, businessInventory, orderProcessing, scheduleABasics,businessOwners */ fieldSection?: string; /** Path to the field within the section (e.g., "dbaPhone", "homeAddress") */ fieldPath?: string; /** Human-readable label for the field */ fieldLabel?: string; /** Current value of the field for reference */ currentValue?: string; /** Explanation of why this requirement is needed */ reason?: string; /** Priority level of the requirement */ priority?: "required" | "recommended"; /** Current status of the requirement */ status?: "pending" | "submitted" | "approved" | "rejected" | "waived"; /** User ID of the underwriter who requested this */ requestedBy?: number; /** When the requirement was created */ requestedAt?: Date; /** User ID of who resolved the requirement */ resolvedBy?: number; /** When the requirement was resolved */ resolvedAt?: Date; /** Internal notes from the underwriter */ underwriterNotes?: string; /** Notes from the applicant */ applicantNotes?: string; /** Reason for rejection if status is rejected */ rejectionReason?: string; /** Record creation timestamp */ createdAt?: Date; /** Record last update timestamp */ updatedAt?: Date; /** Details of the user who requested this requirement */ requestedByUser?: { id?: number; name?: string; email?: string };}#/components/schemas/Error
type: objectproperties: error: type: string description: Error message status: type: integer description: HTTP status code message: type: string description: Detailed error messagedescription: Error response objectrequired: - error|export interface Error { /** Error message */ error: string; /** HTTP status code */ status?: number; /** Detailed error message */ message?: string;}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