Vic.ai Attachments API

Attachments are original invoice documents that can be processed by Vic.ai. ## Supported content types - `application/msword` - `application/pdf` - `application/vnd.ms-word.document.macroEnabled.12` - `application/vnd.ms-word.template.macroEnabled.12` - `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - `application/vnd.openxmlformats-officedocument.wordprocessingml.template` - `image/tiff` - `text/xml` **(See note below about supported EDI formats)** - `image/jpg` - `image/jpeg` - `image/png` - `image/gif` - `application/vnd.ms-excel` - `application/vnd.ms-excel.addin.macroenabled.12` - `application/vnd.ms-excel.sheet.binary.macroenabled.12` - `application/vnd.ms-excel.sheet.macroenabled.12` - `application/vnd.ms-excel.template.macroenabled.12` - `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` - `application/vnd.openxmlformats-officedocument.spreadsheetml.template` ### Supported EDI formats: #### PEPPOL BIS Billing v3 Supported embedded attachment MIME codes: - `application/pdf` - `image/jpeg` - `image/png` - `image/tiff` The API will ignore other attachment types. #### X12 EDI 810 X12 ingestion is opt-in — contact Vic.ai support to enable it for your organization. Raw X12 EDI 810 invoice files (version 4010) are accepted — upload the file as your supplier sends it (a `.edi` or `.x12` file beginning with an `ISA` segment), with no conversion. An interchange may contain several invoices; each transaction set becomes its own invoice, and Vic.ai renders an image for each so it is processed like any other invoice. Because processing happens asynchronously, the upload response confirms only that the file was received. Use `GET /v0/attachments/{id}` to check whether processing completed and to retrieve the ids of the invoices that were created.

Operations 2

POST /v0/attachments Upload an attachment #
GET /v0/attachments/{id} Get attachment processing status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vicai-attachments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vicai-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v10.40.4
  contact: {}
  title: Vic.ai Attachments API
  description: '## Introduction


    The Vic.ai API provides a seamless connection between your Enterprise Resource

    Planning (ERP) system and the Vic.ai product suite.'
servers:
- url: https://api.no.stage.vic.ai
  description: staging server, NO
- url: https://api.us.vic.ai
  description: production server, US
- url: https://api.no.vic.ai
  description: production server, NO
security:
- BearerAuth: []
tags:
- name: Attachments
  description: Attachments are original invoice documents that can be processed by Vic.ai.
paths:
  /v0/attachments:
    post:
      description: 'Use this to upload an attachment to Vic.ai. The attachment will be

        created and processing enqueued automatically.


        The response is a 201 with the attachment ID.'
      summary: Upload an attachment
      operationId: uploadAttachment
      tags:
      - Attachments
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          $ref: '#/components/responses/AttachmentCreatedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /v0/attachments/{id}:
    get:
      description: 'Returns the processing status of an uploaded attachment, and the ids of

        any invoices created from it.


        Processing is asynchronous: a `201` from the upload only confirms the

        file was received and queued. Poll this endpoint to learn whether

        processing completed (`status: processed`) or failed (`status: failed`).'
      summary: Get attachment processing status
      operationId: getAttachmentStatus
      tags:
      - Attachments
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The attachment's processing status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  status:
                    type: string
                    enum:
                    - processing
                    - processed
                    - failed
                    - ignored
                  error_code:
                    oneOf:
                    - type: 'null'
                    - type: string
                  error_message:
                    oneOf:
                    - type: 'null'
                    - type: string
                  invoice_ids:
                    type: array
                    items:
                      type: string
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    ErrorString:
      type: string
      maxLength: 255
    Attachment:
      type: object
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/InternalId'
    InternalId:
      description: The internal id Vic uses for the record.
      type: string
      example: '47'
      readOnly: true
    Error:
      description: 'generic error message in JSON format.  Note the ''code'' field should

        match the HTTP status code of the wrapping HTTP request.

        '
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 599
        message:
          $ref: '#/components/schemas/ErrorString'
  responses:
    TooManyRequestsResponse:
      description: HTTP call rate limit exceeded.
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request. Waiting this long guarantees the rate-limit window has reset.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ErrorResponse:
      description: An unexpected error has occurred. Check the body for more details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    AttachmentCreatedResponse:
      description: The shape of the response when an attachment is created.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Attachment'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-tagGroups:
- name: Integration
  tags:
  - Authentication
  - Pagination
  - Webhooks
  - Webhook Subscriptions
  - Webhook Events
  - Synchronizing
  - Status
- name: Master Data
  tags:
  - Accounts
  - Dimensions
  - Vendors
  - Vendor Groups
  - Vendor Tags
  - Tags
  - Tax Codes
  - VAT Codes
  - Payment Terms
- name: Organization & Access
  tags:
  - Partners
  - Organizations
  - Companies
  - Users
- name: Invoices & Bills
  tags:
  - Invoices
  - Bills
  - Attachments
  - Invoice Approval Flows
  - Invoice Posting Guide
  - Training Invoices
- name: Purchase Orders
  tags:
  - Purchase Orders
  - Purchase Order Line Items
  - Purchase Order Matching Guide
- name: Payments
  tags:
  - Payment Batches
  - Payment Confirmations
  - Credit Confirmations
- name: Reporting
  tags:
  - CSV Reports
- name: Reference
  tags:
  - Changelog