Vic.ai

Vic.ai builds AI-native software for enterprise Accounts Payable and finance teams, automating the end-to-end AP workflow: invoice capture from email/SFTP/API/mobile, AI extraction of header and line-level data, GL coding, purchase-order matching, approval routing, bill pay and vendor portals, corporate-card expense management, and analytics. It integrates with major ERPs (SAP, Oracle, Microsoft Dynamics, NetSuite, Workday, Coupa). The public Vic.ai API (docs.vic.ai) is an ERP-integration surface with 173 operations across invoices, purchase orders, payments, masterdata sync, and webhooks, authenticated with client-credentials Bearer JWTs. Vic.ai holds SOC 1/SOC 2 Type II and operates on an ISO 27001 framework. Backed by Cowboy Ventures, GGV Capital, and ICONIQ Capital.

Vic.ai publishes 33 APIs on the APIs.io network, including Accounts API, Allowed Senders API, Attachments API, and 30 more. Tagged areas include Company, Fintech, Accounts Payable, Invoicing, and Payments.

The Vic.ai catalog on APIs.io includes 1 event-driven AsyncAPI specification.

Vic.ai’s developer surface includes documentation, API reference, getting-started guide, support, engineering blog, pricing, signup flow, and 21 more developer resources.

54.9/100 developing ▬ flat Agent 78/100 agent native Full breakdown ↓
scored 2026-07-27 · rubric v0.5
AccessSelf serve
33 APIs 1 MCP Servers
CompanyFintechAccounts PayableInvoicingPaymentsERP IntegrationAIFinance AutomationWebhooks

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-27 · rubric v0.5
Composite quality — 54.9/100 · developing
Contract Quality 17.1 / 25
Developer Ergonomics 13.5 / 20
Commercial Clarity 12.1 / 20
Operational Transparency 3.8 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 78/100 · agent native
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 5 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/vicai: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 33

Individual APIs this provider publishes, each with its own machine-readable definition.

Vic.ai Accounts API

GL (General Ledger) accounts are part of your *ERP* **Masterdata**. In order to be associated with an invoice line item, key data about the account must be stored in Vic.ai. The...

Vic.ai Allowed Senders API

Restricts which sender addresses an email endpoint will accept. Each entry is either an `exact` match (full email address) or a `domain` match (everything from that domain). Whe...

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.docu...

Vic.ai Authentication API

To initiate the authentication process, send a POST request to `/v0/token` with the payload as shown in the example below: ```json { "client_id": "VIC_CLIENT_ID", "client_secret...

Vic.ai Beta Features API

These are features that are not quite ready for general consumption and are liable to change. We will try not to break what is provided, but we can not guarantee that breakages ...

Vic.ai Bills API

Bills are imported invoices that can be created and updated through the API. These operations allow you to create new bills and update existing ones that were previously importe...

Vic.ai Companies API

The companies in the Vic system.

Vic.ai Company Settings API

Per-company configuration options that an integration partner can read and tune programmatically rather than by asking Vic.ai support. Requires partner authentication (obtain a ...

Vic.ai Credit Confirmations API

Confirm or mark credits as failed after processing in your ERP.

Vic.ai CSV Reports API

Generate and retrieve reports

Vic.ai Dimensions API

Dimensions are part of your *ERP* **Masterdata**, and represent business categories that are associated with invoice line items, that Vic.ai can automatically assign to invoice ...

Vic.ai Email Endpoints API

Email endpoints are dedicated email addresses that Vic.ai monitors so your team can forward or send invoices, contracts, or receipts in by email. Each company can have multiple ...

Vic.ai Invoice Approval Flows API

Invoice approval flows define the criteria and steps for processing invoices through an approval workflow. These operations allow you to create, update, and manage approval flow...

Vic.ai Invoices API

These routes give you read-only access to two types of invoices: - Invoices which have not yet been posted to the ERP system (restricted access). - Invoices which have been post...

Vic.ai Organizations API

Organizations within the Vic system. The old name for this resource is Account Firm. We are transitioning to the name of Organization.

Vic.ai Partners API

Partner API for integration providers to provision new organizations and companies. Requires partner-level credentials obtained from Vic.

Vic.ai Payment Batches API

List and inspect payment batches.

Vic.ai Payment Confirmations API

Confirm or mark payments as failed after processing in your ERP.

Vic.ai Payment Terms API

Payment terms are part of your *ERP* **Masterdata**, and represent payment terms that Vic.ai can automatically assign to invoices. Some vendors may have a default payment term, ...

Vic.ai Purchase Order Line Items API

Manage individual line items within a purchase order.

Vic.ai Purchase Orders API

The purchase orders.

Vic.ai Status API

Status requests on the state of the Vic.ai system.

Vic.ai Synchronizing API

Synchronization is explicit and it is up to the integration to call each resource in the order deemed appropriate. When calling any synchronization functions. Care must be taken...

Vic.ai Tags API

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

Vic.ai Tax Codes API

The tax codes.

Vic.ai Training Invoices API

Training invoices are historical invoices used to train your company's AI model. By providing past invoices with their correct GL coding, vendor assignments, Vic.ai learns your ...

Vic.ai Users API

Managing users in the Vic system. You are allowed to add and remove users from companies and organizations along with managing some of their attributes. However, you are not all...

Vic.ai VAT Codes API

In some regions, VAT codes are part of your *ERP* **Masterdata**, that represent timeboxed VAT codes and VAT values that Vic.ai can automatically assign to invoice line items.

Vic.ai Vendor Groups API

Vendors can be grouped together in Vic.ai. This is especially useful for purchase order matching where you want to match a purchase order to a group of vendors.

Vic.ai Vendor Tags API

Vendor tags are used to categorize vendors using tags.

Vic.ai Vendors API

Vendors are part of your *ERP* **Masterdata**, and represent companies that produce invoices. In order to be associated with an invoice, key data about the vendor must be stored...

Vic.ai Webhook Events API

These are the `V1` events you can subscribe to. These will be sent as a `POST` to `https://yourCallbackUrl/events`. * `all` - This is a special form, that specifies that you wan...

Vic.ai Webhook Subscriptions API

Webhook subscriptions control which events your system receives and where they are delivered. Each company may have one V0 subscription or multiple V2 subscriptions. You can sub...

Scroll for all 33

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

vicai-mcp.yml

MCP SERVER

Rate Limits 1

Documented rate limits and quota policies.

Vicai Rate Limits

0 limits

RATE LIMITS

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Vicai Webhooks

ASYNCAPI

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Vicai Authentication

http · 1 scheme

SECURITY

Vicai Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Vicai Trust Center

SOC 1 Type II, SOC 2 Type II, ISO 27001

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Vicai Agentic Access

173 operations · 112 acting

173 operations · 112 acting

AGENTIC

Resources

Get Started 3

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 4

Authentication, authorization, and security posture

Operate 3

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
aid: vicai
name: Vic.ai
description: 'Vic.ai builds AI-native software for enterprise Accounts Payable and finance teams, automating the end-to-end
  AP workflow: invoice capture from email/SFTP/API/mobile, AI extraction of header and line-level data, GL coding, purchase-order
  matching, approval routing, bill pay and vendor portals, corporate-card expense management, and analytics. It integrates
  with major ERPs (SAP, Oracle, Microsoft Dynamics, NetSuite, Workday, Coupa). The public Vic.ai API (docs.vic.ai) is an ERP-integration
  surface with 173 operations across invoices, purchase orders, payments, masterdata sync, and webhooks, authenticated with
  client-credentials Bearer JWTs. Vic.ai holds SOC 1/SOC 2 Type II and operates on an ISO 27001 framework. Backed by Cowboy
  Ventures, GGV Capital, and ICONIQ Capital.'
url: https://raw.githubusercontent.com/api-evangelist/vicai/refs/heads/main/apis.yml
x-type: company
x-source: vc-portfolio
x-backed-by:
- cowboy-ventures
- ggv-capital
- iconiq-capital
x-tier: enriched
x-tier-reason: public-api-found
accessModel:
  pricing: unknown
  onboarding: self-serve
  trial: false
  try_now: false
  public: false
  label: Self-serve signup
  confidence: medium
  source:
  - authentication
  generated: '2026-07-22'
  method: derived
specificationVersion: '0.20'
created: '2026-07-17'
modified: '2026-07-21'
image: https://cdn.prod.website-files.com/67284e81c67879feb155c7f7/67dc61e47defbf433781d696_Home%20Page.png
tags:
- Company
- Fintech
- Accounts Payable
- Invoicing
- Payments
- ERP Integration
- AI
- Finance Automation
- Webhooks
apis:
- aid: vicai:vicai-accounts-api
  name: Vic.ai Accounts API
  description: 'GL (General Ledger) accounts are part of your *ERP* **Masterdata**. In

    order to be associated with an invoice line item, key data about the

    account must be stored in Vic.ai.  These operations allow querying and

    manipulation of these GL account data.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Accounts
  properties:
  - type: OpenAPI
    url: openapi/vicai-accounts-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-allowed-senders-api
  name: Vic.ai Allowed Senders API
  description: 'Restricts which sender addresses an email endpoint will accept. Each

    entry is either an `exact` match (full email address) or a `domain`

    match (everything from that domain). When the restriction is active

    and an inbound email''s sender does not match any entry, the email is

    rejected and not processed.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Allowed Senders
  properties:
  - type: OpenAPI
    url: openapi/vicai-allowed-senders-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-attachments-api
  name: Vic.ai Attachments API
  description: "Attachments are original invoice documents that can be processed by Vic.ai.\n\n## Supported content types\n\
    \n- `application/msword`\n- `application/pdf`\n- `application/vnd.ms-word.document.macroEnabled.12`\n- `application/vnd.ms-word.template.macroEnabled.12`\n\
    - `application/vnd.openxmlformats-officedocument.wordprocessingml.document`\n- `application/vnd.openxmlformats-officedocument.wordprocessingml.template`\n\
    - `image/tiff`\n- `text/xml` **(See note below about supported EDI formats)**\n- `image/jpg`\n- `image/jpeg`\n- `image/png`\n\
    - `image/gif`\n- `application/vnd.ms-excel`\n- `application/vnd.ms-excel.addin.macroenabled.12`\n- `application/vnd.ms-excel.sheet.binary.macroenabled.12`\n\
    - `application/vnd.ms-excel.sheet.macroenabled.12`\n- `application/vnd.ms-excel.template.macroenabled.12`\n- `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`\n\
    - `application/vnd.openxmlformats-officedocument.spreadsheetml.template`\n\n### Supported EDI formats:\n\n#### PEPPOL\
    \ BIS Billing v3 \n\nSupported embedded attachment MIME codes: \n\n- `application/pdf`\n- `image/jpeg`\n- `image/png`\n\
    - `image/tiff`\n\nThe API will ignore other attachment types.\n\n#### X12 EDI 810\n\nX12 ingestion is opt-in — contact\
    \ Vic.ai support to enable it for your\norganization.\n\nRaw X12 EDI 810 invoice files (version 4010) are accepted — upload\
    \ the file as\nyour supplier sends it (a `.edi` or `.x12` file beginning with an `ISA`\nsegment), with no conversion.\
    \ An interchange may contain several invoices; each\ntransaction set becomes its own invoice, and Vic.ai renders an image\
    \ for each so\nit is processed like any other invoice.\n\nBecause processing happens asynchronously, the upload response\
    \ confirms only that\nthe file was received. Use `GET /v0/attachments/{id}` to check whether processing\ncompleted and\
    \ to retrieve the ids of the invoices that were created."
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Attachments
  properties:
  - type: OpenAPI
    url: openapi/vicai-attachments-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-authentication-api
  name: Vic.ai Authentication API
  description: "To initiate the authentication process, send a POST request to `/v0/token` with\nthe payload as shown in the\
    \ example below:\n\n```json\n{\n    \"client_id\": \"VIC_CLIENT_ID\",\n    \"client_secret\": \"VIC_CLIENT_SECRET\"\n\
    }\n```\n\nHere is an example of how to do this:\n\n```bash\ncurl -X POST https://api.us.vic.ai/v0/token \\\n    -H \"\
    Content-Type: application/json\" \\\n    -d '{\"client_id\": \"VIC_CLIENT_ID\", \"client_secret\": \"VIC_CLIENT_SECRET\"\
    }'\n```\n\nUpon providing a valid client ID and client secret, you should receive a\nresponse similar to the following:\n\
    \n```json\n{\n    \"access_token\": \"YOUR_ACCESS_TOKEN\",\n    \"token_type\": \"Bearer\",\n    \"expires_in\": 3600\n\
    }\n```\n\n**Token Storage:** If you are storing the `access_token`, ensure your storage\nmechanism does not impose a character\
    \ limit. Access tokens use JWT format and\nmay be 530 characters or longer.\n\nFor subsequent calls, use the value in\
    \ `access_token` in the `Authorization`\nfield.\n\nHere is an example:\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\nThe response\
    \ should resemble the following:\n\n```bash\n{\"company\":\"Your Company Name\",\"status\":\"PASS\",\"version\":\"0.19.0\"\
    }\n```"
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Authentication
  properties:
  - type: OpenAPI
    url: openapi/vicai-authentication-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-beta-features-api
  name: Vic.ai Beta Features API
  description: "These are features that are not quite ready for general consumption and are \nliable to change. We will try\
    \ not to break what is provided, but we can not\nguarantee that breakages won't happen."
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Beta Features
  properties:
  - type: OpenAPI
    url: openapi/vicai-beta-features-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-bills-api
  name: Vic.ai Bills API
  description: 'Bills are imported invoices that can be created and updated through the API.

    These operations allow you to create new bills and update existing ones

    that were previously imported via the API.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Bills
  properties:
  - type: OpenAPI
    url: openapi/vicai-bills-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-companies-api
  name: Vic.ai Companies API
  description: The companies in the Vic system.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Companies
  properties:
  - type: OpenAPI
    url: openapi/vicai-companies-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-company-settings-api
  name: Vic.ai Company Settings API
  description: 'Per-company configuration options that an integration partner

    can read and tune programmatically rather than by asking

    Vic.ai support. Requires partner authentication (obtain a

    token via `POST /v0/token` with partner credentials); the

    partner must have provisioned or been linked to the company.

    The settings response is a flat map of field name to value;

    PATCH applies a partial update and is atomic — either the full

    update succeeds or no changes are persisted.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Company Settings
  properties:
  - type: OpenAPI
    url: openapi/vicai-company-settings-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-credit-confirmations-api
  name: Vic.ai Credit Confirmations API
  description: Confirm or mark credits as failed after processing in your ERP.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Credit Confirmations
  properties:
  - type: OpenAPI
    url: openapi/vicai-credit-confirmations-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-csv-reports-api
  name: Vic.ai CSV Reports API
  description: Generate and retrieve reports
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - CSV Reports
  properties:
  - type: OpenAPI
    url: openapi/vicai-csv-reports-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-dimensions-api
  name: Vic.ai Dimensions API
  description: 'Dimensions are part of your *ERP* **Masterdata**, and represent business

    categories that are associated with invoice line items, that Vic.ai can

    automatically assign to invoice line items. These operations allow

    querying and manipulation of the dimension data.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Dimensions
  properties:
  - type: OpenAPI
    url: openapi/vicai-dimensions-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-email-endpoints-api
  name: Vic.ai Email Endpoints API
  description: 'Email endpoints are dedicated email addresses that Vic.ai monitors so

    your team can forward or send invoices, contracts, or receipts in by

    email. Each company can have multiple endpoints, each configured for a

    specific document type. Endpoints can optionally restrict which sender

    addresses are accepted; see the *Allowed Senders* endpoints.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Email Endpoints
  properties:
  - type: OpenAPI
    url: openapi/vicai-email-endpoints-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-invoice-approval-flows-api
  name: Vic.ai Invoice Approval Flows API
  description: 'Invoice approval flows define the criteria and steps for processing invoices

    through an approval workflow. These operations allow you to create, update,

    and manage approval flows with selection rules and approval steps.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Invoice Approval Flows
  properties:
  - type: OpenAPI
    url: openapi/vicai-invoice-approval-flows-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-invoices-api
  name: Vic.ai Invoices API
  description: 'These routes give you read-only access to two types of invoices:

    - Invoices which have not yet been posted to the ERP system (restricted access).

    - Invoices which have been posted to the ERP system.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Invoices
  properties:
  - type: OpenAPI
    url: openapi/vicai-invoices-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-organizations-api
  name: Vic.ai Organizations API
  description: 'Organizations within the Vic system. The old name for this resource is

    Account Firm. We are transitioning to the name of Organization.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Organizations
  properties:
  - type: OpenAPI
    url: openapi/vicai-organizations-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-partners-api
  name: Vic.ai Partners API
  description: 'Partner API for integration providers to provision new organizations

    and companies. Requires partner-level credentials obtained from Vic.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Partners
  properties:
  - type: OpenAPI
    url: openapi/vicai-partners-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-payment-batches-api
  name: Vic.ai Payment Batches API
  description: List and inspect payment batches.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Payment Batches
  properties:
  - type: OpenAPI
    url: openapi/vicai-payment-batches-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-payment-confirmations-api
  name: Vic.ai Payment Confirmations API
  description: Confirm or mark payments as failed after processing in your ERP.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Payment Confirmations
  properties:
  - type: OpenAPI
    url: openapi/vicai-payment-confirmations-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-payment-terms-api
  name: Vic.ai Payment Terms API
  description: 'Payment terms are part of your *ERP* **Masterdata**, and represent

    payment terms that Vic.ai can automatically assign to invoices. Some

    vendors may have a default payment term, and some invoices may have a

    specific payment term. In either case, Vic.ai can automatically assign

    payment terms to invoices.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Payment Terms
  properties:
  - type: OpenAPI
    url: openapi/vicai-payment-terms-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-purchase-order-line-items-api
  name: Vic.ai Purchase Order Line Items API
  description: Manage individual line items within a purchase order.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Purchase Order Line Items
  properties:
  - type: OpenAPI
    url: openapi/vicai-purchase-order-line-items-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-purchase-orders-api
  name: Vic.ai Purchase Orders API
  description: The purchase orders.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Purchase Orders
  properties:
  - type: OpenAPI
    url: openapi/vicai-purchase-orders-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-status-api
  name: Vic.ai Status API
  description: Status requests on the state of the Vic.ai system.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Status
  properties:
  - type: OpenAPI
    url: openapi/vicai-status-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-synchronizing-api
  name: Vic.ai Synchronizing API
  description: 'Synchronization is explicit and it is up to the integration to call each

    resource in the order deemed appropriate.


    When calling any synchronization functions. Care must be taken by the

    integration to not get itself into ping-pong call loop. For instance, if an api

    call synchronizes a resource, then the webhook handler __should not__ call a

    different resource synchronize function.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Synchronizing
  properties:
  - type: OpenAPI
    url: openapi/vicai-synchronizing-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-tags-api
  name: Vic.ai Tags API
  description: 'Tags are part of your *ERP* **Masterdata**, and represent business

    categories that are associated with certain entities, like Vendor.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Tags
  properties:
  - type: OpenAPI
    url: openapi/vicai-tags-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-tax-codes-api
  name: Vic.ai Tax Codes API
  description: The tax codes.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Tax Codes
  properties:
  - type: OpenAPI
    url: openapi/vicai-tax-codes-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-training-invoices-api
  name: Vic.ai Training Invoices API
  description: 'Training invoices are historical invoices used to train your company''s

    AI model. By providing past invoices with their correct GL coding,

    vendor assignments, Vic.ai learns your

    accounting patterns and can automatically code future invoices.


    These endpoints allow you to sync historical invoice data into Vic.ai

    and verify that training data has been received correctly.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Training Invoices
  properties:
  - type: OpenAPI
    url: openapi/vicai-training-invoices-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-users-api
  name: Vic.ai Users API
  description: 'Managing users in the Vic system. You are allowed to add and remove users from

    companies and organizations along with managing some of their attributes.

    However, you are not allowed edit a user''s `email`. This is currently a

    limitation of the system.


    If a user is already created and you wish to add it to a company or

    organization, use the following operations to add them.


    * `POST /v2/organizations/{organization_id}/users/attach`

    * `POST /v2/companies/{company_id}/users/attach`'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Users
  properties:
  - type: OpenAPI
    url: openapi/vicai-users-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-vat-codes-api
  name: Vic.ai VAT Codes API
  description: 'In some regions, VAT codes are part of your *ERP* **Masterdata**, that

    represent timeboxed VAT codes and VAT values that Vic.ai can automatically

    assign to invoice line items.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - VAT Codes
  properties:
  - type: OpenAPI
    url: openapi/vicai-vat-codes-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-vendor-groups-api
  name: Vic.ai Vendor Groups API
  description: 'Vendors can be grouped together in Vic.ai. This is especially useful

    for purchase order matching where you want to match a purchase order

    to a group of vendors.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Vendor Groups
  properties:
  - type: OpenAPI
    url: openapi/vicai-vendor-groups-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-vendor-tags-api
  name: Vic.ai Vendor Tags API
  description: Vendor tags are used to categorize vendors using tags.
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Vendor Tags
  properties:
  - type: OpenAPI
    url: openapi/vicai-vendor-tags-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-vendors-api
  name: Vic.ai Vendors API
  description: 'Vendors are part of your *ERP* **Masterdata**, and represent companies

    that produce invoices.  In order to be associated with an invoice, key

    data about the vendor must be stored in Vic.ai. These operations allow

    querying and manipulation of the vendor data.'
  humanURL: https://docs.vic.ai
  baseURL: https://api.us.vic.ai
  tags:
  - Vendors
  properties:
  - type: OpenAPI
    url: openapi/vicai-vendors-api-openapi.yml
  - type: Documentation
    url: https://docs.vic.ai
  - type: APIReference
    url: https://docs.vic.ai
- aid: vicai:vicai-webhook-events-api
  name: Vic.ai Webhook Events API
  description: "These are the `V1` events you can subscribe to. These will be sent as a `POST`\nto `https://yourCallbackUrl/events`.\n\
    \n* `all` - This is a special form, that specifies that you want all events sent\n  to your webhook. Usage is not recommended\
    \ in production.\n* [`invoice_approved`](#invoice-approved)\n* [`invoice_deleted`](#invoice-deleted)\n* [`invoice_post`](#invoice-post)\n\
    * [`invoice_posted`](#invoice-posted)\n* [`invoice_rejected`](#invoice-rejected)\n* [`invoice_restored`](#invoice-restored)\n\
    * [`invoice_submitted`](#invoice-submitted)\n* [`invoice_transfer`](#invoice-transfer)\n* [`invoice_updated`](#invoice-updated)\n\
    * [`payment_batch_processed`](#payment-batch-processed)\n* [`payment_status_updated`](#payment-status-updated)\n* [`credit_status_updated`](#credit-status-updated)\n\
    * [`purchase_order_created`](#purchase-order-created)\n* [`purchase_order_deleted`](#purchase-order-deleted)\n* [`purchase_order_updated`](#purchase-order-updated)\n\
    * [`vendor_created`](#vendor-created)\n* [`vendor_onboarding_form_completed`](#vendor-onboarding-form-completed)\n* [`vendor_updated`](#vendor-updated)\n\
    \n\nThe following `V0` events may be specified. They will be sent to the original\ncallback paths where the event name\
    \ was in the path.\n\n* `vendorNew` - `POST` `https://yourCallbackUrl/vendorNew`\n* `invoicePost` - `POST` `https://yourCallbackUrl/invoicePost`\n\
    * `invoiceTransfer` - `POST` `https://yourCallbackUrl/invoiceTransfer`\n* `syncRequest` - `POST` `https://yourCallbackUrl/syncRequest`\n\
    \n### Performance Considerations\n\nAvoid using `\"all\"` as your subscription event type in production environment.\n\
    Instead, create specific subscriptions for individual event types that your\nsystem can handle efficiently.\n\n### Event\
    \ Details\n\nThe newer webhook endpoints will be sent to `https://yourCallbackUrl/events`.\nThe receiver is expected to\
    \ handle everything asynchronously via this method. We\ndo not parse the response body and will ignore it.\n\n* All `2XX`\
    \ responses will be treated as successful.\n* `401`, `403`, `429` responses will be treated as failures and retried with\n\
    \  a linear backoff with jitter. Once retries have been exhausted, the event\n  is discarded.\n* All other `4XX` responses\
    \ will be treated as successful. If something is to be\n  rejected, you will need to make the appropriate calls to the\
    \ Vic API to\n  complete the asynchronous handshake. Example: confirming or rejecting an\n  invoice post.\n* All `5XX`\
    \ responses will be treated as a failure and retried with a linear\n  backoff with jitter. Once retries have been exhausted,\
    \ the event is discarded.\n* Failed events will be attempted up to 5 times (1 initial attempt + up to 4 retries).\n\n\
    > **NOTE**: The integrating system has 15 seconds to respond. After the time has\n> passed it will be considered a failure,\
    \ and a retry will be sent for events\n> going to `https://yourCallbackUrl/events`.\n\nThe general structure of the webhook\
    \ event will be as follows.\n\n```json\n{\n  \"id\": \"a7dae8d0-8baa-7a3d-885f-a7fc14835718\",\n  \"occurred_at\": \"\
    2025-04-04T14:34:55.123Z\",\n  \"event\": \"the_event_name\",\n  \"data\": {\n    \"id\": \"123\",\n    \"something\"\
    : \"value\"\n  }\n}\n```\n\nThere will be a top-level field `event` that describes what the type of event\nis. There will\
    \ also be a `data` envelope that will contain the data for the\nevent.\n\n### Invoice Approved\n\nThis event is emitted\
    \ from the Vic system when an invoice has been approved.\nThe payload for this event matches almost exactly what you will\
    \ receive in the\n`getInvoice` operation.\n\n```json\n{\n  \"id\": \"a7dae8d0-8baa-7a3d-885f-a7fc14835718\",\n  \"occurred_at\"\
    : \"2025-04-04T14:34:55.123Z\",\n  \"event\": \"invoice_approved\",\n  \"data\": {\n    \"totalAmount\": \"3.00\",\n \
    \   \"totalVatAmount\": \"0.00\",\n    \"amountWithoutTax\": \"1.00\",\n    \"amountTax\": \"1.00\",\n    \"amountNet\"\
    : \"1.00\",\n    \"amountVat\": \"0.00\",\n    \"amountSum\": \"3.00\",\n    \"amountFreight\": \"1.00\",\n    \"transactionType\"\
    : \"INVOICE\",\n    \"refNumber\": \"INV-1231123\",\n    \"poNumber\": \"PO-1231123\",\n    \"description\": \"Invoice\
    \ for the month of April\",\n    \"currency\": \"USD\",\n    \"fields\": [\n      {\n        \"label\": \"custom:technician\"\
    ,\n        \"title\": \"Technician\",\n        \"type\": \"text\",\n        \"value\": \"John Doe\"\n      }\n    ],\n\
    \    \"language\": \"en\",\n    \"issueDate\": \"2019-08-24\",\n    \"glDate\": \"2019-08-24\",\n    \"dueDate\": \"2019-08-24\"\
    ,\n    \"paymentInfo\": {\n      \"bankAccountNum\": \"1234567890\",\n      \"bankCode\": \"1234567890\",\n      \"paymentTerm\"\
    : {\n        \"count\": 30,\n        \"unit\": \"DAYS\"\n      },\n      \"defaultMethod\": \"BANKACCOUNT\"\n    },\n\
    \    \"internalId\": \"123\",\n    \"internalUpdatedAt\": \"2019-08-24T14:15:22Z\",\n    \"externalId\": \"21b31bc7-1267-4335-893c-d7fe4706a238\"\
    ,\n    \"paymentTermId\": \"80b25998-53d5-4563-abd4-ea6566e3cf2b\",\n    \"externalUpdatedAt\": \"2019-08-24T14:15:22Z\"\
    ,\n    \"paymentTerm\": {\n      \"count\": 0,\n      \"unit\": \"DAYS\"\n    },\n    \"paymentRef\": \"string\",\n  \
    \  \"vendorInternalId\": \"47\",\n    \"vendorExternalId\": \"21b31bc7-1267-4335-893c-d7fe4706a238\",\n    \"vendor\"\
    : {\n      \"internalId\": \"47\",\n      \"externalId\": \"21b31bc7-1267-4335-893c-d7fe4706a238\",\n      \"orgNumber\"\
    : \"string\",\n      \"countryCode\": \"US\",\n      \"name\": \"string\"\n    },\n    \"lineItems\": [\n      {\n   \
    \     \"index\": 1,\n        \"amountTax\": \"1.00\",\n        \"amountNet\": \"1.00\",\n        \"amountSum\": \"1.00\"\
    ,\n        \"amountFreight\": \"1.00\",\n        \"description\": \"string\",\n        \"comment\": \"string\",\n    \
    \    \"billable\": true,\n        \"invoiceLineItemInfo\": {\n          \"vatCode\": \"string\",\n          \"vatAmount\"\
    : 0,\n          \"vatRate\": \"1.00\"\n        },\n        \"taxCode\": {\n          \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\"\
    ,\n          \"code\": \"string\",\n          \"description\": \"Tax code description\",\n          \"rate\": \"0.25\"\
    \n        },\n        \"costAccount\": {\n          \"internalId\": \"string\",\n          \"externalId\": \"21b31bc7-1267-4335-893c-d7fe4706a238\"\
    ,\n          \"number\": \"string\"\n        },\n        \"dimensions\": [\n          {\n            \"name\": \"string\"\
    ,\n            \"type\": \"string\",\n            \"typeName\": \"string\",\n            \"typeExternalId\": \"string\"\
    ,\n            \"shortName\": \"string\",\n            \"externalData\": {},\n            \"displayName\": \"string\"\
    ,\n            \"internalId\": \"47\",\n            \"internalUpdatedAt\": \"2019-08-24T14:15:22Z\",\n            \"externalId\"\
    : \"21b31bc7-1267-4335-893c-d7fe4706a238\",\n            \"externalUpdatedAt\": \"2021-06-29T17:20:53.154\"\n        \
    \  }\n        ],\n        \"quantityInvoiced\": \"string\",\n        \"lineItemTotal\": \"1.00\",\n        \"lineType\"\
    : \"item\",\n        \"poLineNumber\": 0,\n        \"poNumber\": \"string\",\n        \"poItemsMatched\": [\n        \
    \  {\n            \"invoiceItemId\": \"string\",\n            \"purchaseOrderItemId\": \"string\",\n            \"productNumber\"\
    : \"6512-41473\",\n            \"unitOfMeasure\": \"kg\",\n            \"amountMatched\": \"1.0\",\n            \"quantityMatched\"\
    : \"1.0\"\n          }\n        ],\n        \"unitPrice\": \"1.00\",\n        \"number\": \"123456\",\n        \"lineFields\"\
    : [\n          {\n            \"label\": \"custom:serial_number\",\n            \"title\": \"Serial Number\",\n      \
    \      \"type\": \"text\",\n            \"value\": \"12-34540-1235\"\n          }\n        ]\n      }\n    ],\n    \"\
    postingError\": null,\n    \"documentUrl\": \"http://example.com/invoice.pdf\",\n    \"status\": \"NOT_READY\",\n    \"\
    bolNumbers\": [],\n    \"selfAssessedUseTaxAmount\": null,\n    \"selfAssessedUseTaxAccount\": null,\n    \"markedAs\"\
    : \"PAID\",\n    \"billStatus\": \"PAID\",\n    \"externalPaymentDate\": null,\n    \"externalPaymentNumber\": null,\n\
    \    \"externalPaymentStatus\": null\n  }\n}\n\n```\n### Invoice Deleted\n\nThis event is emitted from the Vic system\
    \ when an invoice has been deleted.\nThe payload for this event is sparse. It only contains the `internalId` and\n`externalId`\
    \ of the invoice.\n\n```json\n{\n  \"id\": \"a7dae8d0-8baa-7a3d-885f-a7fc14835718\",\n  \"occurred_at\": \"2025-04-04T14:34:55.123Z\"\
    ,\n  \"event\": \"invoice_deleted\",\n  \"data\": {\n    \"internalId\": \"123\",\n    \"externalId\": \"I0001\"\n  }\n\
    }\n```\n\n### Invoice Post\n\nThis event is emitted from the Vic system when an accountant wants to post an\ninvoice to\
    \ the ERP. This is a signal that the invoice is ready to be posted. The\nintegrating system is expected to respond and\
    \ either confirm or reject the post.\nThe payload for this event matches almost exactly what you will receive in the\n\
    `getInvoice` operation.\n\nUnlike the old `/invoicePost` event, this will not be a multipart event. You\nwill be able\
    \ to fetch the invoice pdf from the provided `documentUrl` in the\npayload.\n\n```json\n{\n  \"id\": \"a7dae8d0-8baa-7a3d-885f-a7fc04835310\"\
    ,\n  \"occurred_at\": \"2025-04-04T14:34:55.123Z\",\n  \"event\": \"invoice_post\",\n  \"data\": {\n    \"totalAmount\"\
    : \"3.00\",\n    \"totalVatAmount\": \"0.00\",\n    \"amountWithoutTax\": \"1.00\",\n    \"amountTax\": \"1.00\",\n  \
    \  \"amountNet\": \"1.00\",\n    \"amountVat\": \"0.00\",\n    \"amountSum\": \"3.00\",\n    \"amountFreight\": \"1.00\"\
    ,\n    \"transactionType\": \"INVOICE\",\n    \"refNumber\": \"INV-1231123\",\n    \"poNumber\": \"PO-1231123\",\n   \
    \ \"description\": \"Invoice for the month of April\",\n    \"currency\": \"USD\",\n    \"fields\": [\n      {\n     \
    \   \"label\": \"custom:technician\",\n        \"title\": \"Technician\",\n        \"type\": \"text\",\n        \"value\"\
    : \"John Doe\"\n      }\n    ],\n    \"language\": \"en\",\n    \"issueDate\": \"2019-08-24\",\n    \"glDate\": \"2019-08-24\"\
    ,\n    \"dueDate\": \"2019-08-24\",\n    \"paymentInfo\": {\n      \"bankAccountNum\": \"1234567890\",\n      \"bankCode\"\
    : \"1234567890\",\n      \"paymentTerm\": {\n        \"count\": 30,\n      

# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vicai/refs/heads/main/apis.yml