Skip to main content
POST
/
api
/
broker_submissions
/
{submission_heron_id}
/
files
curl --request POST \
  --url https://app.herondata.io/api/broker_submissions/{submission_heron_id}/files \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form 'files[0]=january.pdf' \
  --form 'files[1]=february.pdf' \
  --form 'files[2]=march.pdf' \
  --form files.items='@example-file'
[
  {
    "file": "statement_q4.pdf",
    "status": "uploaded"
  }
]
[
{
"file": "statement.pdf",
"reason": "Duplicate file",
"status": "uploaded"
}
]
[
{
"file": "invalid.pdf",
"reason": "File type application/msword not allowed. Allowed: application/pdf",
"status": "error"
}
]
{
"description": "Unauthorized"
}
{
"description": "Broker submission sub_1a2b3c4d5e6f not found"
}
{
"description": "Invalid file_class 'invalid_value'. Must be a valid file class name."
}

Authorizations

x-api-key
string
header
required

Path Parameters

submission_heron_id
string
required

The unique identifier for the broker submission to upload files to

Example:

"sub_1a2b3c4d5e6f"

Body

multipart/form-data
files
file[]
required

Array of PDF files to upload.

Required array length: 1 - 12 elements
downstream_processing
boolean
default:true

(Optional) Whether to trigger downstream processing (classification, parsing, Flowmingo workflow start, etc.) after the files are uploaded. Defaults to true to preserve existing behaviour. Set to false to upload files without triggering downstream processing — useful when uploading multiple files in sequence and you only want the workflow to start after the final upload.

Example:

true

file_class
string

(Optional) The type of document being uploaded. Applies to all files in this request. If omitted, Heron's file classifier will automatically determine the file type. Common values: bank_statement, iso_application_form, debt_summary, void_check, invoice, pnl_statement, balance_sheet, tax_return.

Example:

"bank_statement"

Response

All files uploaded successfully

file
string

Name of the uploaded file

Example:

"statement_q4.pdf"

status
enum<string>

Status of the file upload

Available options:
uploaded
Example:

"uploaded"