---
title: "Start a Vendor Bulk Import from File"
method: POST
path: "/v1/web/vendor/file-bulk-import"
tags: ["Vendor"]
---

# Start a Vendor Bulk Import from File

`POST /v1/web/vendor/file-bulk-import`

Creates a file source and returns a presigned `upload`. POST the file to continue.
The file source can subsequently be managed via the `/v1/web/bulk-import-file-source` endpoints.
The expected file structure can be retrieved from `GET /v1/web/vendor/file-bulk-import/template`.

## Request body

- object
  - `filename` string, required

## Response `201`

Default Response

- object
  - `id` string, required
  - `status` union, required
    - 'uploading'
    - 'uploaded'
    - 'processing'
    - 'processed'
    - 'failed'
    - 'deleted'
  - `filename` string, required
  - `structure` union, required
    - object
      - `type` 'billLineItemTable', required
      - `fields` object, required
        - `invoiceId` string, nullable
        - `currencyCode` string, nullable
        - `invoiceDate` string, nullable
        - `paymentDueDate` string, nullable
        - `totalAmount` string, nullable
        - `externalId` string, nullable
        - `vendorId` string, nullable
        - `vendorName` string, nullable
        - `description` string, nullable
        - `lineItem.description` string, nullable
        - `lineItem.amount` string, nullable
      - `fileHeaders` string[], required — Column headers detected in the uploaded file
    - object
      - `type` 'vendorTable', required
      - `fields` object, required
        - `name` string, nullable
        - `externalId` string, nullable
        - `currencyCode` string, nullable
        - `country` string, nullable
        - `contact.name.firstName` string, nullable
        - `contact.name.middleName` string, nullable
        - `contact.name.lastName` string, nullable
        - `contact.email` string, nullable
        - `contact.phone` string, nullable
      - `fileHeaders` string[], required — Column headers detected in the uploaded file
  - `errors` object[], required
    - `code` 'invalidFile', required
    - `message` string
  - `creatorUserId` string, required
  - `bulkImportId` string
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `processedAt` string, date-time
  - `uploadUrl` string, required — Deprecated. Use `upload` instead.
  - `upload` object, required — Presigned S3 POST: append each `fields` entry as a form field, then the file last.
    - `url` string, required
    - `fields` object, required

## Other responses

- `400` — Default Response
- `401` — The access to this resource has been denied
- `403` — The access to this resource is forbidden
- `default` — Catch-all error response for any unexpected internal errors

---

[API](https://skmtc.net/funneldash/apis/surface-web-api.md) · [All operations](https://skmtc.net/funneldash/apis/surface-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/funneldash/surface-web-api/versions/ac700d65f443/schema)
