Vic.ai Tags API

Tags are part of your *ERP* **Masterdata**, and represent business categories that are associated with certain entities, like Vendor.

OpenAPI Specification

vicai-tags-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: v10.40.4
  contact: {}
  title: Vic.ai Accounts Tags API
  description: "## Introduction\n\nThe Vic.ai API provides a seamless connection between your Enterprise Resource\nPlanning (ERP) system and the Vic.ai product suite.\n\nThe API is designed to offer three main areas of functionality:\n\n- **Syncing master data:** This refers to the data in your ERP that Vic.ai\n  interacts with. You are required to supply and update this data in Vic.ai, and\n  you also have the option to verify the copy of the masterdata in Vic.ai.\n\n- **Syncing training data:** We need historical data to train your AI model. To\n  that end, the API provides endpoints to sync historical invoices into Vic.ai\n  and to confirm their presence.\n\n- **Subscribing to and receiving webhooks:** Webhooks enable users or automated\n  tasks to interact with your ERP through various actions in the Vic.ai product\n  suite, such as posting an invoice, payment or purchase order or requesting\n  synchronization. You will receive a notification via a webhook when these\n  actions occur.\n\n\nFor US-based integrations, please use the following base API URL:\n\n```\nhttps://api.us.vic.ai\n```\n\nFor integrations based in Norway, use the following base API URL:\n\n```\nhttps://api.no.vic.ai\n```\n\nAll paths mentioned in this documentation should use one of these URLs as the\nbase.\n\nExample:\n\n```bash\ncurl https://api.us.vic.ai/v0/healthCheck \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Getting Started\n\nTo begin interacting with the Vic.ai API, you will need the following\ncredentials:\n\n* A Vic.ai client ID\n* A Vic.ai client secret.\n\nThese can be provided to you securely by a Vic.ai representative\n[upon request](https://www.vic.ai/book-a-demo).\n\n**Please note:** These credentials are essentially the keys to your ERP\nintegration. If they fall into the wrong hands, unauthorized parties could\nimpersonate you, gain access to sensitive data, and potentially perform\nmalicious actions. Therefore, it's crucial to keep these credentials safe at all\ntimes to protect your application's integrity and your clients' data.\n\n### Limitations\n\nThe Vic.ai API has the following limitations:\n\n**Rate Limiting:** The API is rate-limited to 500 requests per 10-second time\nframe. If you exceed this limit, you will receive a `429 Too Many Requests`\nresponse. The limit is per Oauth client ID. If you continue to receive `429`s,\nplease contact support with a request id from the response headers.\n"
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: Tags
  description: 'Tags are part of your *ERP* **Masterdata**, and represent business

    categories that are associated with certain entities, like Vendor.

    '
paths:
  /v0/tags:
    get:
      description: 'Get a list of tags.

        Tags are used to categorize entities. Currently the only entity that is

        taggable are Vendors using the `/vendorTags` endpoint. These are not the

        tags that are used to describe a group of companies.

        '
      summary: Get a list of tags
      operationId: listTags
      tags:
      - Tags
      parameters:
      - $ref: '#/components/parameters/PagingLimit'
      - $ref: '#/components/parameters/PagingCursor'
      responses:
        '200':
          $ref: '#/components/responses/TagListResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
    post:
      description: Create a new tag.
      summary: Create a new tag
      operationId: createTag
      tags:
      - Tags
      requestBody:
        $ref: '#/components/requestBodies/CreateTagRequest'
      responses:
        '201':
          $ref: '#/components/responses/TagResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '422':
          $ref: '#/components/responses/UnprocessableEntityResponse'
  /v0/tags/{tag_id}:
    put:
      description: Update a tag.
      summary: Update a tag
      operationId: updateTag
      tags:
      - Tags
      parameters:
      - $ref: '#/components/parameters/TagId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateTagRequest'
      responses:
        '200':
          $ref: '#/components/responses/TagResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '422':
          $ref: '#/components/responses/UnprocessableEntityResponse'
    delete:
      description: 'Delete a tag. If you delete a tag, any entities that the tags is

        attached to will be deleted as well. This action can not be undone.

        '
      summary: Delete a tag
      operationId: deleteTag
      tags:
      - Tags
      parameters:
      - $ref: '#/components/parameters/TagId'
      responses:
        '204':
          $ref: '#/components/responses/TagDeletedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    UpdateTag:
      type: object
      required:
      - value
      properties:
        value:
          type: string
          maxLength: 255
    ErrorString:
      type: string
      maxLength: 255
    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'
    CreateTag:
      type: object
      required:
      - value
      properties:
        value:
          type: string
          maxLength: 255
    Tags:
      type: array
      items:
        $ref: '#/components/schemas/Tag'
    Tag:
      type: object
      required:
      - value
      properties:
        id:
          type: string
        value:
          type: string
          maxLength: 255
  responses:
    TagListResponse:
      description: A list of tags.
      headers:
        x-next:
          $ref: '#/components/headers/NextPageToken'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Tags'
    TagResponse:
      description: A single tag.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Tag'
    ErrorResponse:
      description: An unexpected error has occurred. Check the body for more details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    TagDeletedResponse:
      description: Tag was successfully deleted.
    UnprocessableEntityResponse:
      description: Errors with the input are present.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ForbiddenResponse:
      description: The request was forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    PagingLimit:
      name: limit
      in: query
      description: How many items to return at one time (max 100) (default 100)
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
    TagId:
      name: tag_id
      in: path
      required: true
      description: The id of the tag
      schema:
        type: string
        format: uuid
    PagingCursor:
      name: cursor
      in: query
      description: Which item to start from. See [Pagination](#section/Pagination) for more information.
      required: false
      schema:
        type: string
  requestBodies:
    CreateTagRequest:
      description: Create a tag.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateTag'
    UpdateTagRequest:
      description: Update a tag.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateTag'
  headers:
    NextPageToken:
      description: A link to the next page of responses
      schema:
        type: string
  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