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.
33 APIs
1 MCP Servers
CompanyFintechAccounts PayableInvoicingPaymentsERP IntegrationAIFinance AutomationWebhooks
Individual APIs this provider publishes, each with its own machine-readable definition.
Model Context Protocol servers that expose these APIs to AI agents.
Documented rate limits and quota policies.
AsyncAPI definitions for this provider's event-driven and streaming APIs.
Authentication, domain security, vulnerability disclosure, and trust-center signals.
Recommended x-agentic-access execution contracts for AI agents.
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