Download OpenAPI specification:
The Vic.ai API provides a seamless connection between your Enterprise Resource Planning (ERP) system and the Vic.ai product suite.
The API is designed to offer three main areas of functionality:
Syncing master data: This refers to the data in your ERP that Vic.ai interacts with. You are required to supply and update this data in Vic.ai, and you also have the option to verify the copy of the masterdata in Vic.ai.
Syncing training data: We need historical data to train your AI model. To that end, the API provides endpoints to sync historical invoices into Vic.ai and to confirm their presence.
Subscribing to and receiving webhooks: Webhooks enable users or automated tasks to interact with your ERP through various actions in the Vic.ai product suite, such as posting an invoice, payment or purchase order or requesting synchronization. You will receive a notification via a webhook when these actions occur.
For US-based integrations, please use the following base API URL:
https://api.us.vic.ai
For integrations based in Norway, use the following base API URL:
https://api.no.vic.ai
All paths mentioned in this documentation should use one of these URLs as the base.
Example:
curl https://api.us.vic.ai/v0/healthCheck \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
To begin interacting with the Vic.ai API, you will need the following credentials:
These can be provided to you securely by a Vic.ai representative upon request.
Please note: These credentials are essentially the keys to your ERP integration. If they fall into the wrong hands, unauthorized parties could impersonate you, gain access to sensitive data, and potentially perform malicious actions. Therefore, it's crucial to keep these credentials safe at all times to protect your application's integrity and your clients' data.
The Vic.ai API has the following limitations:
Rate Limiting: The API is rate-limited to 500 requests per 10-second time
frame. If you exceed this limit, you will receive a 429 Too Many Requests
response. The limit is per Oauth client ID. If you continue to receive 429s,
please contact support with a request id from the response headers.
To initiate the authentication process, send a POST request to /v0/token with
the payload as shown in the example below:
{
"client_id": "VIC_CLIENT_ID",
"client_secret": "VIC_CLIENT_SECRET"
}
Here is an example of how to do this:
curl -X POST https://api.us.vic.ai/v0/token \
-H "Content-Type: application/json" \
-d '{"client_id": "VIC_CLIENT_ID", "client_secret": "VIC_CLIENT_SECRET"}'
Upon providing a valid client ID and client secret, you should receive a response similar to the following:
{
"access_token": "YOUR_ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600
}
For subsequent calls, use the value in access_token in the Authorization
field.
Here is an example:
curl https://api.us.vic.ai/v0/healthCheck \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
The response should resemble the following:
{"company":"Your Company Name","status":"PASS","version":"0.19.0"}
Use this endpoint to obtain an access token that can be used to authenticate subsequent requests to the API.
| client_id required | string |
| client_secret required | string |
{- "client_id": "string",
- "client_secret": "string"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 0
}The Vic.ai API leverages cursor-based pagination for traversing through data.
To fetch the next page of information, include the cursor parameter to the
request. This value can be obtained from the X-next field in a previous
response.
Example:
curl https://api.us.vic.ai/v0/accounts?cursor=foobar \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
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.
Use this request to query the GL account data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
[- {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "number": "string",
- "name": "string",
- "externalData": { }
}
]Tells the ERP to synchronize the Account resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Use this request to get data for a single GL account that is stored in Vic.ai.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "number": "string",
- "name": "string",
- "externalData": { }
}Use this request to upsert GL account data for one GL account into
Vic.ai.
If the account is known by Vic.ai, the externalId supplied will be used
to resolve the account and perform an update of the data, otherwise, a
new account will be inserted.
If the upsert action is part of a syncRequest, you should include the
syncRequest ID in the X-Request-Id header.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| X-Request-Id | string <uuid> token to be able to correctly log associated requests |
ExternalId (string) or null | |
| externalUpdatedAt required | string <date-time> Does not have UTC normalization. |
| number required | string <number> |
| name required | string <= 255 characters |
ExternalData (object) or null |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "number": "string",
- "name": "string",
- "externalData": { }
}{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "number": "string",
- "name": "string",
- "externalData": { }
}Use this request to delete data for a single account that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "number": "string",
- "name": "string",
- "externalData": { }
}application/mswordapplication/pdfapplication/vnd.ms-word.document.macroEnabled.12application/vnd.ms-word.template.macroEnabled.12application/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.openxmlformats-officedocument.wordprocessingml.templateimage/tifftext/xml (See note below about supported EDI formats)image/jpgimage/jpegimage/pngimage/gifapplication/vnd.ms-excelapplication/vnd.ms-excel.addin.macroenabled.12application/vnd.ms-excel.sheet.binary.macroenabled.12application/vnd.ms-excel.sheet.macroenabled.12application/vnd.ms-excel.template.macroenabled.12application/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.openxmlformats-officedocument.spreadsheetml.templateSupported embedded attachment MIME codes:
application/pdfimage/jpegimage/pngimage/tiffThe API will ignore other attachment types.
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.
| file required | string <binary> |
{- "id": "47"
}Search and list companies accessible.
| name_contains | string List companies with names containing the value provided. This is a case insensitive match. |
| remote_id | string Filter by a companies remote ID. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "name": "string",
- "remote_id": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}List or search for users attached to the company
| company_id required | string <uuid> The ID of the company. |
| name | string The name of the user. This is a case-insensitive match. |
| name_contains | string The name of the user contains the value specified. This is a case-insensitive match. |
string The user has the email address. This is a case-insensitive match. | |
| email_contains | string The email of the user contains the value specified. This is a case-insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Create and attach a user to a company. If the user already exists, use
the attachUserToCompanyV2 (POST /v2/companies/{company_id}/users/attach)
operation instead.
| company_id required | string <uuid> The ID of the company. |
Create a user and attach it to a company.
| first_name | string The first name of the user. |
| last_name | string The last name of the user. |
| name required | string The full preferred name of the user. |
| phone_number | string The phone number the user is connected with. This is not required to be set. If provided, the phone number is validated. |
| email required | string The User's email. Must be unique. |
| timezone | string (TimeZoneV2) |
| language | string (LanguageV2) The two letter code for the language used. |
object (UserAddressV2) | |
Array of objects (UserMetadataEntryV2) | |
| date_of_birth | string <date> When the user was born. |
{- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "company_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Attaches an existing user to a company. You may provide the user_id or
email. If the user does not exist, you will need to use the
createCompanyUserV2 operation.
| company_id required | string <uuid> The ID of the company. |
Attach an existing user to a company.
| user_id | string <uuid> The User's id. Both can be provided. |
string The existing User's email. Both can be provided. |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "email": "string"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "company_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Removes the user from the company. This does not remove them from the organization, even when the user is not attached to any companies within the organization.
| company_id required | string <uuid> The ID of the company. |
| user_id required | string <uuid> The ID of the user. |
{- "errors": [
- {
- "field": "string",
- "message": "string"
}
]
}Use this request to query webhook events for a specific company that are stored in Vic.ai. This allows you to view all webhook events that have been triggered for activities related to a particular company.
| company_id required | string <uuid> The ID of the company |
| event_type | string (WebhookEventName) Enum: "all" "payment_batch_processed" "vendorNew" "invoicePost" "invoiceTransfer" "syncRequest" "invoice_approved" "invoice_posted" "purchase_order_created" "purchase_order_updated" "purchase_order_deleted" "vendor_onboarding_form_completed" Filter events by type |
| occurred_after required | string <date-time> Filter events that occurred on or after this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| occurred_before required | string <date-time> Filter events that occurred on or before this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| undelivered | boolean Filter to show only events that have not been delivered |
object (PaginationV2) |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "meta": {
- "page": {
- "cursor": "string"
}
}
}Use this request to get detailed information about a specific webhook event for a company that is stored in Vic.ai. This includes delivery attempts, payload data, and status information.
| company_id required | string <uuid> The ID of the company |
| event_id required | string <uuid> The ID of the webhook event |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
}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.
Use this request to query the dimensions data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
| externalId | string Filter the dimensions that have the matching |
| type | string Filter the dimensions that have the matching |
[- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
]Create a new dimension in Vic.ai.
Create a dimension.
ExternalId (string) or null | |
| externalUpdatedAt required | string <date-time> Does not have UTC normalization. |
| name required | string <= 255 characters The name of the dimension. |
| type | string <= 255 characters The dimension type. |
| typeName | string <= 255 characters The dimension type name. |
ExternalId (string) or null The type's external ID in the ERP system. If left unspecified, it will clear the existing value. | |
| shortName | string <= 255 characters |
ExternalData (object) or null |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "shortName": "string",
- "externalData": { }
}{- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}Tells the ERP to synchronize the Dimension resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Use this request to get data for a single dimension that is stored in
Vic.ai.
Note: When using useSystem=external, this operation may fail with a
422 Non Unique External Id Error if duplicate external IDs exist. Use the
unique internal ID or listDimensions operation as alternatives.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}Use this request to update or insert dimensions data for one dimension
into Vic.ai.
Note: The insert portion of this will be changed to no longer
function and the createDimension operation should be used instead.
If the dimension is known by Vic.ai, the externalId supplied will be
used to resolve the dimension and perform an update of the data,
otherwise, a new dimension will be inserted.
If the upsert action is part of a syncRequest, you should include the
syncRequest ID in the X-Request-Id header.
Note: When using useSystem=external, this operation may fail with a
422 Non Unique External Id Error if duplicate external IDs exist. Use
the unique internal ID as alternative.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| X-Request-Id | string <uuid> token to be able to correctly log associated requests |
ExternalId (string) or null | |
| externalUpdatedAt required | string <date-time> Does not have UTC normalization. |
| name required | string <= 255 characters The name of the dimension. |
| type | string <= 255 characters The dimension type. |
| typeName | string <= 255 characters The dimension type name. |
ExternalId (string) or null The type's external ID in the ERP system. If left unspecified, it will clear the existing value. | |
| shortName | string <= 255 characters |
ExternalData (object) or null |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "shortName": "string",
- "externalData": { }
}{- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}Use this request to delete data for a single dimension that is stored in
Vic.ai.
Note: When using useSystem=external, this operation may fail with a
422 Non Unique External Id Error if duplicate external IDs exist. Use
the unique internal ID as alternative.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}These routes give you read-only access to two types of invoices:
Use this request to query the invoice data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
InvoiceState (string) or any selects the state of invoices which are to be searched
(defaults to | |
InvoiceMarkedAs (string) or any selects the marked as of invoices which are to be searched
(defaults to | |
InvoiceBillStatus (string) or any selects the bill status of invoices as which are to be searched
(defaults to |
[- {
- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}
]When creating an invoice, there are three steps to follow:
/invoices/invoice/{id}/document/invoice/{id}/processYou can make the id the internal id (from vic.ai) or the external id (from your system).
Note
The maximum file size allowed to upload is 100MB.
ExternalId (string) or null The external id if it is known within the external system. This field can be null. | |
string or null Where the invoice originated from. | |
| transactionType required | string (TransactionType) Enum: "INVOICE" "CREDITNOTE" The type of invoice transaction. |
| refNumber | string <= 255 characters Number that appears on the invoice. |
string or null | |
string or null The description of what the invoice is. | |
MonetaryValue (string) The total amount of the invoice, including tax/VAT. | |
MonetaryValue (string) or null The total VAT amount of the invoice. | |
| currency | string <ISO-4217> <= 3 characters The currency code the invoice is in. |
Language (string) or null | |
| issueDate | string <date> The date the invoice was issued on. |
| glDate | string <date> |
| dueDate | string <date> The date the invoice is due on. |
string or null | |
string or null | |
string or null | |
| paymentRef | string <= 255 characters The payment reference number. The KID is a customer identification number that is mandatory for invoices in Norway. |
InvoicePaymentInfo (object) or null | |
InvoicePaymentTerm (object) or null The payment term the invoice should be paid in. If the term is not
known, pass | |
CreditAccountRef (object) or null | |
(VendorLookup (VendorLookupByInternalId (object) or VendorLookupByExternalId (object) or VendorLookupByName (object) or VendorLookupByOrgNumberAndBankAccount (object) or VendorLookupByOrgNumber (object))) or null | |
Array of objects (CreateInvoiceLineItem) | |
Array of objects (BillOfLadingNumber) | |
Array of objects (InvoiceFieldInput) |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "source": "Millum",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "poNumber": "string",
- "description": "string",
- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "currency": "str",
- "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "accountNumber": "string",
- "servicePeriodStart": "2019-08-24",
- "servicePeriodEnd": "2019-08-24",
- "paymentRef": "string",
- "paymentInfo": {
- "kind": "ACH",
- "accountHolderName": "string",
- "accountNumber": "string",
- "routingNumber": "string",
- "bic": "string"
}, - "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "creditAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}, - "vendor": {
- "internalId": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": "1.00",
- "amountFreight": "1.00",
- "amountTax": "1.00",
- "quantityInvoiced": "string",
- "comment": "string",
- "description": "string",
- "billable": true,
- "taxCodeId": "4f8ee29f-1f5a-45f9-b07e-0fe70e9e4fdc",
- "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineType": "item",
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}
], - "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Use this request to get data for a single invoice that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Use this request to indicate that an invoice has been posted or transferred to the ERP system, in the case where you have not activated a subscription, or you have responded to the subscription with a 202-asynchronous response. Note that this operation can either be a confirmation, or a rejection, depending on the shape of the payload. Possible payloads:
InvoiceConfirm operation
should be cleared because the postingError has been resolved in the
ERP. This cannot be used to clear an error due to InvoiceReject.
Note that :id must be internalId for this route.| id required | string The |
required | ExternalId (string) or null |
| externalUpdatedAt required | string <date-time> |
| postingError | string |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "postingError": "string"
}{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Use this request to delete data for a single invoice that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
string or null selects the comment which is to be displayed |
{- "code": 100,
- "message": "string"
}Tells Vic that the invoice is ready to start being processed. Once this is called, it may not be called again.
| id required | string The Invoice internal id or external id. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Use this request to get the document associated with a single invoice that is stored in Vic.ai
| id required | string The Invoice internal id or external id. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}This attaches a document to the invoice for processing. An external id must be specified for an invoice prior to calling this.
| id required | string The Invoice internal id or external id. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| document required | string <binary> |
{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Get a single invoice by its Vic.ai ID.
| id required | string <uuid> The ID of the invoice in Vic.ai. |
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "ref_number": "INV-2024-001",
- "remote_id": "remote-123",
- "status": "posted",
- "transaction_type": "invoice",
- "vendor": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "remote_id": "vendor-123",
- "name": "Acme Corp",
- "org_number": "987654321"
}, - "company": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "remote_id": "company-123"
}, - "currency": "USD",
- "description": "Monthly service fee",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "gl_date": "2024-01-15",
- "language": "en",
- "line_items": [ ],
- "payment_info": {
- "bank_account_number": "1234567890",
- "bic": "DNBANOKKXXX",
- "iban": "NO9386011117947",
- "bankgiro": "123456789",
- "plusgiro": "123456789"
}, - "remote_updated_at": "2024-01-15T10:30:00",
- "account_number": "ACC-1001",
- "amount_freight": "15.00",
- "amount_net": "100.00",
- "amount_sum": "135.00",
- "amount_tax": "20.00",
- "amount_vat": "20.00",
- "bill_status": "unpaid",
- "bol_numbers": [ ],
- "credit_account": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "name": "Office Expenses",
- "number": "6100",
- "remote_id": "ext-cost-123",
- "sub_type": "expense",
- "remote_updated_at": "2024-01-15T10:30:00Z"
}, - "external_payment_date": "2024-02-01",
- "external_payment_number": "PAY-123456",
- "external_payment_status": "completed",
- "fields": [ ],
- "kid": "1234567890123",
- "marked_as": "reviewed",
- "matched_purchase_orders": [ ],
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_term": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "days_to_pay": 0,
- "days_to_pay_condition": "string",
- "discount_percentage": "string",
- "discount_days": 0,
- "discount_days_condition": "string",
- "remote_id": "string"
}, - "po_number": "PO-2024-001",
- "posting_error": "Connection timeout",
- "remote_data": { },
- "self_assessed_use_tax_account": "USE-TAX-001",
- "self_assessed_use_tax_amount": "5.00",
- "service_period_end": "2024-01-31",
- "service_period_start": "2024-01-01",
- "source": "EHF",
- "updated_at": "2024-01-15T10:30:00Z"
}Get the PDF document for a specific invoice.
This endpoint returns the invoice document if it has been generated. If the document is not yet available (pdf_path is not set), the endpoint will return a 202 (Accepted) status and enqueue a background job to generate the document. The client should retry the request after a short delay.
The document generation typically completes within a few seconds, but may take longer for complex invoices or during high system load.
| id required | string <uuid> The ID of the invoice in Vic.ai. |
{- "data": {
- "message": "Document is being processed. Please try again in a few moments."
}
}Used to confirm that the invoice data have been successfully posted to
the ERP, possibly including a postingError.
Use of this postingError means that the invoice data are posted, but
some secondary content needs amendation in the ERP that cannot be
performed from the vic user interface (for example: a problem
uploading the posted document).
Note: id must be the internalId of the invoice.
| id required | string The |
required | ExternalId (string) or null |
| externalUpdatedAt required | string <date-time> |
| postingError | string |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "postingError": "string"
}{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Used to communicate that the invoice data have NOT been
successfully posted to the ERP, due to invalid data. This should NOT
be used to communicate an error in posting due to a general failure
such as a network issue or an availability issue with the ERP, in
those or similar cases, a retry should be performed without notifying the vic system.
Note: id must be the internalId of the invoice.
| id required | string The |
required | integer or null |
required | string or null |
| reason required | string |
{- "item": 0,
- "field": "string",
- "reason": "string"
}{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}List all of the line items for the invoice. NOTE: They are ungrouped so that you may inspect and modify them as necessary.
| id required | string The Invoice internal id or external id. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
[- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
]Updates an individual invoice line item. This allows you to modify the properties of a specific line item within an invoice, including amounts, tax information, cost accounts, and dimensions.
| id required | string The id of the database entry |
| index | integer or null >= 0 A non-negative integer indicating where the line item is in the document. No two line items shall be allowed to have the same index. |
MonetaryValue (string) or null The line item total amount including all tax amounts. | |
MonetaryValue (string) or null The freight amount for the line item. | |
MonetaryValue (string) or null The tax amount for the line item. | |
| quantityInvoiced | string or null <decimal> The quantity of things that were invoiced. |
| comment | string or null <= 255 characters The line item comment. |
| description | string or null <= 255 characters The description of the line item. |
| billable | boolean or null Whether the line item is billable. |
| taxCodeId | string or null <uuid> ID of Tax Code to use for the line item. |
LineItemVat (object) or null The VAT information for the specific line item. | |
CostAccountInfo (object) or null | |
Array of DimensionRef (objects) or null | |
MonetaryValue (string) or null The price per unit of the item. | |
| number | string or null <= 255 characters The item number |
InvoiceItemLineType (string) or null | |
| memo | string or null <= 255 characters Line item memo. |
| poLineNumber | integer or null Purchase order line number. |
| poNumber | string or null <= 255 characters Purchase order number. |
Array of objects (InvoiceFieldInput) |
{- "index": 0,
- "amount": "1.00",
- "amountFreight": "1.00",
- "amountTax": "1.00",
- "quantityInvoiced": "string",
- "comment": "string",
- "description": "string",
- "billable": true,
- "taxCodeId": "4f8ee29f-1f5a-45f9-b07e-0fe70e9e4fdc",
- "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineType": "item",
- "memo": "string",
- "poLineNumber": 0,
- "poNumber": "string",
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Updates an invoices external fields.
The following fields are only available to customers with invoice external payment fields enabled:
externalPaymentDateexternalPaymentNumberexternalPaymentStatusWhen setting the externalPaymentStatus to voided you may use the externalPaymentDate to represent when it was voided.
| id required | string The Invoice internal id or external id. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
string or null | |
string or null | |
null or InvoiceExternalPaymentStatus (string) |
{- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}{- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}Use this request to query the training invoice data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
[- {
- "transactionType": "INVOICE",
- "companyId": "12345",
- "refNumber": "string",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "poNumber": "string",
- "description": "string",
- "currency": "string",
- "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
]Use this request to get data for a single training invoice that is stored in Vic.ai
| id required | string The id of the database entry |
{- "transactionType": "INVOICE",
- "companyId": "12345",
- "refNumber": "string",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "poNumber": "string",
- "description": "string",
- "currency": "string",
- "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Use this request to upsert training invoice data for one invoice into Vic.ai.
When putting a new invoice into the system, an invoiceDocument will be
required. If the training invoice already exists, an invoiceDocument
will not be required.
All requests that need to have the invoiceDocument updated should have
a multipart/form-data content type.
If the training invoice just needs to be updated without a document
specified a content type of application/json is permitted.
If the invoice is known by Vic.ai, the externalId supplied will be
used to resolve the invoice and perform an update of the data,
otherwise, a new invoice will be created.
When updating a training invoice, the invoiceDocument is no longer required,
and the Content-Type can be application/json
If the training invoice needs the underlying document updated, use a
multipart/form-data to accomplish this. It will have the same format as the
insert described above.
Some things to note about updating existing invoices.
| id required | string The id of the database entry |
required | object (TrainingInvoiceUpsert) |
| invoiceDocument | string <binary> |
{- "transactionType": "INVOICE",
- "companyId": "12345",
- "refNumber": "string",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "poNumber": "string",
- "description": "string",
- "currency": "string",
- "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Use this request to delete data for a single training invoice that is stored in Vic.ai
| id required | string The id of the database entry |
{- "transactionType": "INVOICE",
- "companyId": "12345",
- "refNumber": "string",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "poNumber": "string",
- "description": "string",
- "currency": "string",
- "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Use this request to get the document associated with a training invoice that is stored in Vic.ai
| id required | string The id of the database entry |
{- "code": 100,
- "message": "string"
}Organizations within the Vic system. The old name for this resource is Account Firm. We are transitioning to the name of Organization.
Search and list organizations accessible.
| name_contains | string List organizations with names containing the value provided. This is a case insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Get an organization.
| organization_id required | string <uuid> The ID of the Organization. |
{- "data": {
- "id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}List users attached to an organization.
| organization_id required | string <uuid> The ID of the Organization. |
| name | string The name of the user. This is a case-insensitive match. |
| name_contains | string The name of the user contains the value specified. This is a case-insensitive match. |
string The user has the email address. This is a case-insensitive match. | |
| email_contains | string The email of the user contains the value specified. This is a case-insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Create and attach a user to an organization. If the user already exists,
use the attachUserToOrganizationV2 (POST /v2/organizations/{organization_id}/users/attach)
operation instead.
| organization_id required | string <uuid> The ID of the organization. |
Create a user and attach it to an organization.
| first_name | string The first name of the user. |
| last_name | string The last name of the user. |
| name required | string The full preferred name of the user. |
| phone_number | string The phone number the user is connected with. This is not required to be set. If provided, the phone number is validated. |
| email required | string The User's email. Must be unique. |
| timezone | string (TimeZoneV2) |
| language | string (LanguageV2) The two letter code for the language used. |
object (UserAddressV2) | |
Array of objects (UserMetadataEntryV2) | |
| date_of_birth | string <date> When the user was born. |
{- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "organization_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Attaches an existing user to an organization. You may provide the
user_id or email. If the user does not exist, you will need to use
the createOrganizationUserV2 operation.
| organization_id required | string <uuid> The ID of the organization. |
Attach an existing user to an organization.
| user_id | string <uuid> The User's id. Both can be provided. |
string The existing User's email. Both can be provided. |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "email": "string"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "organization_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Removes the user from the organization. NOTE: This will remove the user from ALL of the companies within the organization.
| organization_id required | string <uuid> The ID of the organization. |
| user_id required | string <uuid> The ID of the user. |
{- "errors": [
- {
- "field": "string",
- "message": "string"
}
]
}List all payment batches.
| completedAtOrAfter | string <date-time> Filter batches that were completed at or after the date time
provided. This can be used in combination with |
| completedAtOrBefore | string <date-time> Filter batches that were completed at or before the date time
provided. This can be used in combination with |
PaymentBatchStatus (string) or any Selects the payment batches that match the status provided. When left
unspecified, it is the same as if | |
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "companyId": "string",
- "processedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "approvedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "status": "pending_approval",
- "payments": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "amount": "1.00",
- "settlementAmount": "1.00",
- "discountAmount": "1.00",
- "currencyId": "USD",
- "settlementCurrencyId": "USD",
- "exchangeRate": "1.00",
- "status": "pending_approval",
- "paymentMethod": "ach",
- "referenceId": "string",
- "approvedAt": "2019-08-24T14:15:22Z",
- "fundedAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "invoice": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "refNumber": "string"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}, - "vendor": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
}
], - "credits": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "amount": "1.00",
- "settlementAmount": "1.00",
- "currencyId": "USD",
- "settlementCurrencyId": "USD",
- "exchangeRate": "1.00",
- "status": "pending_approval",
- "paymentMethod": "ach",
- "referenceId": "string",
- "approvedAt": "2019-08-24T14:15:22Z",
- "fundedAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "invoice": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "refNumber": "string"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}, - "vendor": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
}
]
}
]The batches returned may include payments and credits that could be
rejected or voided. This is by design. If you are synchronizing with
an ERP, discard the rejected and voided payments or credits on successful
payment batches. When payments or credits are voided, this can happen for
a variety of reasons, such as:
| id required | string The ID of the payment batch. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "companyId": "string",
- "processedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "approvedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "status": "pending_approval",
- "payments": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "amount": "1.00",
- "settlementAmount": "1.00",
- "discountAmount": "1.00",
- "currencyId": "USD",
- "settlementCurrencyId": "USD",
- "exchangeRate": "1.00",
- "status": "pending_approval",
- "paymentMethod": "ach",
- "referenceId": "string",
- "approvedAt": "2019-08-24T14:15:22Z",
- "fundedAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "invoice": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "refNumber": "string"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}, - "vendor": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
}
], - "credits": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "amount": "1.00",
- "settlementAmount": "1.00",
- "currencyId": "USD",
- "settlementCurrencyId": "USD",
- "exchangeRate": "1.00",
- "status": "pending_approval",
- "paymentMethod": "ach",
- "referenceId": "string",
- "approvedAt": "2019-08-24T14:15:22Z",
- "fundedAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "rejectedAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "invoice": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "refNumber": "string"
}, - "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}, - "vendor": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
}
]
}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.
{- "id": "string",
- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}Create a new payment term.
Create a payment term.
required | string or null |
| daysToPay required | integer >= 0 The number of days the invoice should be paid in. |
PaymentTermCondition (string) or null Default: "issue_date" These options are used in conjunction with | |
string or null | |
integer or null | |
PaymentTermCondition (string) or null Default: "issue_date" These options are used in conjunction with | |
string or null | |
ExternalId (string) or null The ID of the payment term in the ERP if it has one. |
{- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}{- "id": "string",
- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}Tells the ERP to synchronize the Payment Terms resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Get a payment term.
The id in the path can be either the Payment Term's internal ID or its
external ID when useSystem=external is included in the query string.
| id required | string The id of the database entry |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "id": "string",
- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}Update a payment term.
The id in the path can be either the Payment Term's internal ID or its
external ID when useSystem=external is included in the request. The
Payment Term's external ID can be updated by including externalId={value}
in the request body. If the externalId key is present without a value,
the Payment Term's externalId WILL be cleared.
| id required | string The id of the database entry |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
Update a payment term.
required | string or null |
| daysToPay required | integer >= 0 The number of days the invoice should be paid in. |
PaymentTermCondition (string) or null Default: "issue_date" These options are used in conjunction with | |
string or null | |
integer or null | |
PaymentTermCondition (string) or null Default: "issue_date" These options are used in conjunction with | |
string or null | |
ExternalId (string) or null The ID of the payment term in the ERP if it has one. |
{- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}{- "id": "string",
- "name": "string",
- "daysToPay": 0,
- "daysToPayCondition": "issue_date",
- "description": "string",
- "discountDays": 0,
- "discountDaysCondition": "issue_date",
- "discountPercentage": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}Delete a payment term.
The id in the path can be either the Payment Term's internal ID or its
external ID when useSystem=external is included in the query string.
| id required | string The id of the database entry |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}List purchase orders.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| upto | string <date-time> Datetime value for decremental updates. |
| status | string (PurchaseOrderStatus) Default: "open" Enum: "open" "closed" selects the status of purchase orders which are to be searched |
[- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}
]Creates a purchase order in the Vic.ai system.
You are responsible for setting the amount on the purchase order which is the
summation of all the purchase order line items.
Once the purchase order has been created and all manipulations are finished, you
must call the processPurchaseOrder operation.
Optionally, to set a requestor, you can pass a requestor object with email
or name.
Optionally, to set a site owner, you can pass a siteOwner object with email
or name.
Create a purchase order.
ExternalId (string) or null | |
required | string or null |
| poNumber required | string <= 255 characters The purchase order number. This is used to match against invoices. |
string or null | |
| amount required | string <decimal> (MonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. |
Currency (string) The currency that the purchase order uses. | |
string or null The description of the purchase order. | |
PurchaseOrderRequestor (object) or null | |
PurchaseOrderSiteOwner (object) or null | |
string or null When the purchase order was created. | |
required | (VendorLookup (VendorLookupByInternalId (object) or VendorLookupByExternalId (object) or VendorLookupByName (object) or VendorLookupByOrgNumberAndBankAccount (object) or VendorLookupByOrgNumber (object))) The vendor of the purchase order. |
required | Array of objects (CreatePurchaseOrderItem) |
PurchaseOrderMatchingType (string) Default: "line" The matching type of the purchase order. | |
PurchaseOrderType (string) Deprecated Default: "normal" This has been deprecated. Please use the | |
string or null The id of the |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "issuedOn": "2019-08-24",
- "poNumber": "12003400",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "description": "string",
- "requestor": {
- "email": "user@example.com",
- "name": "string"
}, - "siteOwner": {
- "email": "user@example.com",
- "name": "string"
}, - "createdOn": "2019-08-24",
- "vendor": {
- "internalId": "string"
}, - "lineItems": [
- {
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityReceived": "12.3",
- "quantityRequested": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "memo": "string",
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "status": "open",
- "fields": [
- {
- "label": "string",
- "value": "string"
}
]
}
], - "matchingType": "line",
- "type": "normal",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Tells the ERP to synchronize the Purchase Orders resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Get a purchase order.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Update a purchase order.
After updating the purchase order, call processPurchaseOrder to trigger
reprocessing of purchase order matching.
If the purchase order has matches to transmitted invoices
and the fields vendor, poNumber, or matchingType are being changed
you will not be able to update the purchase order -
an UnprocessableEntityResponse will be returned.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
Create a purchase order.
ExternalId (string) or null | |
string or null When the purchase order was issued. | |
| poNumber required | string <= 255 characters The purchase order number. This is used to match against invoices. |
string or null | |
| amount required | string <decimal> (MonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. |
Currency (string) The currency that the purchase order uses. | |
string or null The description of the purchase order. | |
PurchaseOrderRequestor (object) or null | |
PurchaseOrderSiteOwner (object) or null | |
string or null When the purchase order was created. | |
required | (VendorLookup (VendorLookupByInternalId (object) or VendorLookupByExternalId (object) or VendorLookupByName (object) or VendorLookupByOrgNumberAndBankAccount (object) or VendorLookupByOrgNumber (object))) The vendor of the purchase order. |
PurchaseOrderMatchingType (string) The matching type of the purchase order. | |
PurchaseOrderType (string) Deprecated This has been deprecated. Please use the | |
string or null The id of the |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "issuedOn": "2019-08-24",
- "poNumber": "12003400",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "description": "string",
- "requestor": {
- "email": "user@example.com",
- "name": "string"
}, - "siteOwner": {
- "email": "user@example.com",
- "name": "string"
}, - "createdOn": "2019-08-24",
- "vendor": {
- "internalId": "string"
}, - "matchingType": "document",
- "type": "blanket",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Delete a purchase order.
If there are existing matches made to an invoice that has been transmitted,
you will not be able to delete the purchase order - an UnprocessableEntityResponse will be returned.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}When the purchase order modifications are completed use this operation to let Vic know that it is ready to be processed. Once a purchase order is being processed, it can not be modified until completed.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Closes a purchase order.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Opens a purchase order.
| purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "createdOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "matchingType": "document",
- "type": "blanket",
- "description": "string",
- "lineItems": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}Create a purchase order's line item.
Caution should be taken when creating a new line item in a purchase order. Each purchase order line item must have a line number and it must be unique among the other line items. It should be a non negative value.
Note: This action will change purchase order status from closed to open,
if the purchase order is closed.
After creating the new purchase order line item, you must update the the
purchase order's amount field. This should be done once you are finished
manipulating all of the line items.
Once you are finished manipulating the purchase order you will need to call
the processPurchaseOrder operation to kick off the matching process based on
the updated information.
Create a purchase order line item.
| purchaseOrderId required | string The ID of the purchase order to attach this line item to. |
required | string or null |
string or null | |
UnitOfMeasure (string) or null | |
| quantityAccepted | string <decimal> The quantity accepted. Required when |
| quantityReceived | string <decimal> The quantity received. Required when |
| quantityRequested required | string <decimal> The quantity requested. Required for all |
| matchingType | string (PurchaseOrderLineItemMatchingType) Enum: "two_way" "three_way" "four_way" The type of matching that should be done on the line item. Determines which quantity fields are required.
|
| unitAmount required | string <decimal> (NonNegativeMonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. Must be greater than or equal to zero. |
| lineItemTotal required | string <decimal> (MonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. |
| lineNumber required | integer >= 1 |
Array of objects (DimensionRef) | |
ExternalId (string) or null | |
string or null Optional memo for the purchase order line item. | |
| status | string (PurchaseOrderLineItemStatus) Enum: "open" "closed" "archived" The status of the purchase order line item.
|
Array of objects (PurchaseOrderLineFieldInput) |
{- "purchaseOrderId": "string",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityReceived": "12.3",
- "quantityRequested": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "value": "string"
}
]
}{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Get a purchase order's line item.
| purchaseOrderLineItemId required | string The internal id or external id of the purchase order line item. If using
the external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Updates a purchase order's line item.
If there are existing matches made to an invoice that has been transmitted, you will not be able to update the purchase order line item if any of the following fields are being changed:
lineNumbermatchingTypeproductDescriptionproductNumberunitAmountAdditionally, for the fields lineItemTotal, quantityAccepted, quantityRequested,
and quantityReceived, updates are only allowed if the new values are increased.
If these fields are cleared or their values are decreased,
an UnprocessableEntityResponse will be returned.
Note: Enabling the company configuration purchase_order_item_update_with_transferred_matches
allows updating those fields for purchase order line items with matched transmitted invoices.
If you update lineItemTotal you must update the purchase order's amount
field which is the summation of all the line items. This should be done once you
are finished manipulating all of the line items.
Once you are finished manipulating the purchase order you will need to call
the processPurchaseOrder operation to kick off the matching process based on
the updated information.
| purchaseOrderLineItemId required | string The internal id or external id of the purchase order line item. If using
the external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
Update a purchase order line item.
required | string or null |
string or null | |
UnitOfMeasure (string) or null | |
| quantityAccepted | string <decimal> The quantity accepted. Required when |
| quantityReceived | string <decimal> The quantity received. Required when |
| quantityRequested required | string <decimal> The quantity requested. Required for all |
| matchingType | string (PurchaseOrderLineItemMatchingType) Enum: "two_way" "three_way" "four_way" The type of matching that should be done on the line item. Determines which quantity fields are required.
|
| unitAmount required | string <decimal> (NonNegativeMonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. Must be greater than or equal to zero. |
| lineItemTotal required | string <decimal> (MonetaryValue) The monetary value as a string. A float should not be used. The api will accept a float and it will be transformed into a monetary value, but for best results please use a string with the proper decimal precision. |
| lineNumber required | integer >= 1 |
ExternalId (string) or null The ID of the purchase order item within the ERP. If left unspecified when updating, it will be cleared. | |
string or null Optional memo for the purchase order line item. | |
Array of objects (DimensionRef) | |
| status | string (PurchaseOrderLineItemStatus) Enum: "open" "closed" "archived" The status of the purchase order line item.
|
Array of objects (PurchaseOrderLineFieldInput) |
{- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityReceived": "12.3",
- "quantityRequested": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "memo": "string",
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "status": "open",
- "fields": [
- {
- "label": "string",
- "value": "string"
}
]
}{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Delete a purchase order's line item.
If there are existing matches made to an invoice that has been transmitted, you will
not be able to delete the purchase order line item -
an UnprocessableEntityResponse will be returned.
After deleting the purchase order line item, you must update the the
purchase order's amount field. This should be done once you are finished
manipulating all of the line items.
Once you are finished manipulating the purchase order you will need to call
the processPurchaseOrder operation to kick off the matching process based on
the updated information.
| purchaseOrderLineItemId required | string The internal id or external id of the purchase order line item. If using
the external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}Closes a purchase order's line item.
| purchaseOrderLineItemId required | string The internal id or external id of the purchase order line item. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Opens a purchase order's line item.
| purchaseOrderLineItemId required | string The internal id or external id of the purchase order line item. If using the
external id, you must pass |
| useSystem | string Default: "INTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "productNumber": "string",
- "productDescription": "string",
- "unitOfMeasure": "kg",
- "quantityAccepted": "1.0",
- "quantityRequested": "1.0",
- "quantityReceived": "1.0",
- "matchingType": "two_way",
- "unitAmount": "1.00",
- "lineItemTotal": "1.00",
- "lineNumber": 1,
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "invoiceItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "memo": "string",
- "status": "open",
- "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}Tags are part of your ERP Masterdata, and represent business categories that are associated with certain entities, like Vendor.
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.
[- {
- "id": "string",
- "value": "string"
}
]Create a new tag.
Create a tag.
| value required | string <= 255 characters |
{- "value": "string"
}{- "id": "string",
- "value": "string"
}Update a tag.
| tag_id required | string The id of the tag |
Update a tag.
| value required | string <= 255 characters |
{- "value": "string"
}{- "id": "string",
- "value": "string"
}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.
| tag_id required | string The id of the tag |
{- "code": 100,
- "message": "string"
}Creates a company's tax code
Create a tax code.
| code required | string <= 255 characters |
| description required | string <= 255 characters |
| rate required | string <decimal> |
{- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}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/attachPOST /v2/companies/{company_id}/users/attachList users attached to an organization.
| organization_id required | string <uuid> The ID of the Organization. |
| name | string The name of the user. This is a case-insensitive match. |
| name_contains | string The name of the user contains the value specified. This is a case-insensitive match. |
string The user has the email address. This is a case-insensitive match. | |
| email_contains | string The email of the user contains the value specified. This is a case-insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Create and attach a user to an organization. If the user already exists,
use the attachUserToOrganizationV2 (POST /v2/organizations/{organization_id}/users/attach)
operation instead.
| organization_id required | string <uuid> The ID of the organization. |
Create a user and attach it to an organization.
| first_name | string The first name of the user. |
| last_name | string The last name of the user. |
| name required | string The full preferred name of the user. |
| phone_number | string The phone number the user is connected with. This is not required to be set. If provided, the phone number is validated. |
| email required | string The User's email. Must be unique. |
| timezone | string (TimeZoneV2) |
| language | string (LanguageV2) The two letter code for the language used. |
object (UserAddressV2) | |
Array of objects (UserMetadataEntryV2) | |
| date_of_birth | string <date> When the user was born. |
{- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "organization_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Attaches an existing user to an organization. You may provide the
user_id or email. If the user does not exist, you will need to use
the createOrganizationUserV2 operation.
| organization_id required | string <uuid> The ID of the organization. |
Attach an existing user to an organization.
| user_id | string <uuid> The User's id. Both can be provided. |
string The existing User's email. Both can be provided. |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "email": "string"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "organization_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Removes the user from the organization. NOTE: This will remove the user from ALL of the companies within the organization.
| organization_id required | string <uuid> The ID of the organization. |
| user_id required | string <uuid> The ID of the user. |
{- "errors": [
- {
- "field": "string",
- "message": "string"
}
]
}List or search for users attached to the company
| company_id required | string <uuid> The ID of the company. |
| name | string The name of the user. This is a case-insensitive match. |
| name_contains | string The name of the user contains the value specified. This is a case-insensitive match. |
string The user has the email address. This is a case-insensitive match. | |
| email_contains | string The email of the user contains the value specified. This is a case-insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Create and attach a user to a company. If the user already exists, use
the attachUserToCompanyV2 (POST /v2/companies/{company_id}/users/attach)
operation instead.
| company_id required | string <uuid> The ID of the company. |
Create a user and attach it to a company.
| first_name | string The first name of the user. |
| last_name | string The last name of the user. |
| name required | string The full preferred name of the user. |
| phone_number | string The phone number the user is connected with. This is not required to be set. If provided, the phone number is validated. |
| email required | string The User's email. Must be unique. |
| timezone | string (TimeZoneV2) |
| language | string (LanguageV2) The two letter code for the language used. |
object (UserAddressV2) | |
Array of objects (UserMetadataEntryV2) | |
| date_of_birth | string <date> When the user was born. |
{- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "company_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Attaches an existing user to a company. You may provide the user_id or
email. If the user does not exist, you will need to use the
createCompanyUserV2 operation.
| company_id required | string <uuid> The ID of the company. |
Attach an existing user to a company.
| user_id | string <uuid> The User's id. Both can be provided. |
string The existing User's email. Both can be provided. |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "email": "string"
}{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "company_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Removes the user from the company. This does not remove them from the organization, even when the user is not attached to any companies within the organization.
| company_id required | string <uuid> The ID of the company. |
| user_id required | string <uuid> The ID of the user. |
{- "errors": [
- {
- "field": "string",
- "message": "string"
}
]
}List users accessible in the system. The users accessible will be those that are attached to organizations that have granted access to your client.
| name | string The name of the user. This is a case-insensitive match. |
| name_contains | string The name of the user contains the value specified. This is a case-insensitive match. |
string The user has the email address. This is a case-insensitive match. | |
| email_contains | string The email of the user contains the value specified. This is a case-insensitive match. |
object (PaginationV2) |
{- "meta": {
- "cursor": "string"
}, - "data": [
- {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Get a user
| user_id required | string <uuid> The ID of the user. |
{- "data": {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Update a user with the data provided. If fields are omitted, they will
be considered null and will be cleared. If you do not wish to clear
these values, please provide everything.
Note: A user's email is not allowed to be updated over the API. If a
user's email must be changed, please use the Web UI or contact support
about this.
| user_id required | string <uuid> The ID of the user. |
Updates a user.
This is a full replacement operation. All fields unspecified will be
treated as if they were null and will be cleared on the user. When
updating a user, please provide all fields and their values.
| first_name | string The first name of the user. |
| last_name | string The last name of the user. |
| name required | string The full preferred name of the user. |
| phone_number | string The phone number the user is connected with. This is not required to be set. If provided, the phone number is validated. |
| timezone | string (TimeZoneV2) |
| language | string (LanguageV2) The two letter code for the language used. |
object (UserAddressV2) | |
Array of objects (UserMetadataEntryV2) | |
| date_of_birth | string <date> When the user was born. |
{- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24"
}{- "data": {
- "id": "string",
- "first_name": "string",
- "last_name": "string",
- "name": "string",
- "phone_number": "string",
- "email": "string",
- "status": "active",
- "timezone": "Etc/UTC",
- "language": "en",
- "address": {
- "street_1": "string",
- "street_2": "string",
- "city": "string",
- "postal_code": "string",
- "country": "US"
}, - "metadata": [
- {
- "name": "job_title",
- "type": "string",
- "value": "Senior Manager"
}
], - "date_of_birth": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}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.
Use this request to query all the VAT code data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
| vatCode | string selects the VAT code which is to be displayed |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
[- {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "code": "string",
- "description": "string",
- "activeStartingAt": "2019-08-24T14:15:22Z",
- "activeEndingAt": "2019-08-24T14:15:22Z",
- "rate": 0,
- "remoteData": { },
- "defaultInvoiceCreditAccount": "string",
- "vatCreditAccount": "string",
- "vatDebitAccount": "string"
}
]Tells the ERP to synchronize the Vat Code resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Use this request to get data for a single VAT code that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "code": "string",
- "description": "string",
- "activeStartingAt": "2019-08-24T14:15:22Z",
- "activeEndingAt": "2019-08-24T14:15:22Z",
- "rate": 0,
- "remoteData": { },
- "defaultInvoiceCreditAccount": "string",
- "vatCreditAccount": "string",
- "vatDebitAccount": "string"
}Use this request to upsert VAT code into Vic.ai. The request body should contain the VAT code object as JSON. If the VAT code is known by Vic.ai, the id supplied will be used to resolve the VAT code and perform an update of the data, otherwise, a new VAT code will be inserted.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| code | string <= 255 characters |
| description | string <= 255 characters |
ExternalId (string) or null | |
| externalUpdatedAt required | string <date-time> The date time when the invoice was updated in the ERP system. This does not have UTC normalization. |
| activeStartingAt | string <date-time> |
| activeEndingAt | string <date-time> |
| rate | number |
| remoteData | object |
| defaultInvoiceCreditAccount | string <= 255 characters |
| vatCreditAccount | string <= 255 characters |
| vatDebitAccount | string <= 255 characters |
{- "code": "string",
- "description": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "activeStartingAt": "2019-08-24T14:15:22Z",
- "activeEndingAt": "2019-08-24T14:15:22Z",
- "rate": 0,
- "remoteData": { },
- "defaultInvoiceCreditAccount": "string",
- "vatCreditAccount": "string",
- "vatDebitAccount": "string"
}{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "code": "string",
- "description": "string",
- "activeStartingAt": "2019-08-24T14:15:22Z",
- "activeEndingAt": "2019-08-24T14:15:22Z",
- "rate": 0,
- "remoteData": { },
- "defaultInvoiceCreditAccount": "string",
- "vatCreditAccount": "string",
- "vatDebitAccount": "string"
}Use this request to delete data for a single VAT code that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "code": "string",
- "description": "string",
- "activeStartingAt": "2019-08-24T14:15:22Z",
- "activeEndingAt": "2019-08-24T14:15:22Z",
- "rate": 0,
- "remoteData": { },
- "defaultInvoiceCreditAccount": "string",
- "vatCreditAccount": "string",
- "vatDebitAccount": "string"
}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.
Use this request to query the vendor data that are stored in Vic.ai.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
| since | string <date-time> Datetime value for incremental updates.
NOTE: For external datetimes, the expected format is not in UTC. for
vic-internal datetimes (see |
| confirmed | boolean Default: true selects if confirmed vendors are to be displayed. |
| unconfirmed | boolean Default: true selects if unconfirmed vendors are to be displayed. |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| sortOrder | string Default: "ASCENDING" Enum: "ASCENDING" "DESCENDING" what sort order should be used for queries |
| state | string (VendorStateFilter) Enum: "ACTIVE" "PENDING" "PREDICTED" "ERRORED" Filter vendors by state.
|
[- {
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}
]Tells the ERP to synchronize the Vendor resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Use this request to get data for a single vendor that is stored in Vic.ai.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}Updates or inserts a vendor into the Vic.ai system.
All fields passed are set on the vendor. All fields that are omitted
from the request body are considered to be null and will be set to null.
If the vendor is known by Vic.ai, the externalId supplied will be used
to resolve the vendor and perform an update of the data, otherwise, a
new vendor will be inserted.
If the upsert action is part of a syncRequest, you should include the
syncRequest ID in the X-Request-Id header.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| X-Request-Id | string <uuid> token to be able to correctly log associated requests |
ExternalId (string) or null | |
| externalUpdatedAt required | string <date-time> The date time when the invoice was updated in the ERP system. This does not have UTC normalization. |
| name required | string <= 255 characters |
Email (string) or null | |
string or null | |
string or null | |
string or null | |
string or null | |
string or null | |
CountryCode (string) or null | |
| currency | string <ISO-4217> (Currency) <= 3 characters The ISO-4217 currency code. |
string or null | |
| state | string (VendorState) Enum: "CONFIRMED" "UNCONFIRMED" |
object (VendorTaxInfo) | |
object (PaymentInfo) | |
string or null The id of the | |
boolean or null Whether a vendor Purchase Order matching is document level | |
string or null The | |
ExternalData (object) or null | |
Array of objects (VendorManager) | |
Array of objects (VendorRemoteError) The errors that occurred in the external ERP system. |
{- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": true,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "managers": [
- {
- "email": "user@example.com",
- "name": "string"
}
], - "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}Use this request to delete data for a single vendor that is stored in Vic.ai
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}Use this post to report vendor update failure errors back to Vic.ai. Strictly a response to the callbacks.
X-Request-Id header is required.id MUST be a Vendor internalId.| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| X-Request-Id | string <uuid> token to be able to correctly log associated requests |
required | Array of objects (VendorRemoteError) |
{- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}Used to clear errors that have been fixed in the ERP system.
| id required | string The id of the database entry |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
| X-Request-Id | string <uuid> token to be able to correctly log associated requests |
{- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154",
- "name": "string",
- "email": "user@example.com",
- "description": "string",
- "phone": "string",
- "addressStreet": "string",
- "addressCity": "string",
- "addressState": "string",
- "addressPostalCode": "string",
- "countryCode": "US",
- "currency": "USD",
- "confirmedAt": "2019-08-24T14:15:22Z",
- "state": "CONFIRMED",
- "taxInfo": {
- "taxId": "string",
- "taxIdType": "ssn",
- "is1099vendor": true,
- "orgNumber": "string"
}, - "defaultPaymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "poMatchingDocumentLevel": false,
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "tags": [
- {
- "id": "string",
- "value": "string"
}
], - "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}Use this endpoint to delete a vendor tag association by specifying both the vendor ID and tag ID.
Use /v0/vendorTags/{id} when you want to use the vendor tag's ID instead of the vendor ID and tag ID.
| vendor_id required | string The id of the vendor |
| tag_id required | string The id of the tag |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}List all vendor groups.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
[- {
- "id": "string",
- "name": "string"
}
]Create a vendor group.
Create a vendor group.
| name required | string The name of the vendor group |
{- "name": "string"
}{- "id": "string",
- "name": "string"
}Update the vendor group.
| id required | string <uuid> The id of the vendor group |
Update a vendor group.
| name required | string The name of the vendor group |
{- "name": "string"
}{- "id": "string",
- "name": "string"
}Update a vendor's information in the Vic.ai system.
This endpoint allows updating the following fields:
remote_id: The external system's identifier for this vendorconfirmed_at: The datetime when the vendor was confirmed in the external systemAt least one field must be provided in the request body.
Note: This endpoint supports vendors with onboarding status (draft, active, submitted, etc.)
| id required | string <uuid> The UUID of the vendor in Vic.ai. |
| remote_id | string or null <= 255 characters The external system's identifier for this vendor. |
| confirmed_at | string or null <date-time> The datetime when the vendor was confirmed in the external system. |
{- "remote_id": "vendor-ext-123",
- "confirmed_at": "2024-01-15T10:30:00Z"
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "address_city": "New York",
- "address_postal_code": "10001",
- "address_street_1": "123 Main St",
- "address_street_2": "Suite 100",
- "address_state": "NY",
- "banking_info": [ ],
- "confirmed_at": "2024-01-15T10:30:00Z",
- "country_code": "US",
- "currency": "USD",
- "description": "Office supplies vendor",
- "doing_business_as": "Acme Supply Co",
- "email": "vendor@example.com",
- "legal_name": "Acme Corporation Inc.",
- "remote_id": "vendor-123",
- "remote_data": { },
- "remote_errors": { },
- "remote_updated_at": "2024-01-15T10:30:00",
- "updated_at": "2024-01-15T10:30:00Z",
- "name": "Acme Corp",
- "ofac_report": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "high_risk_hits": 0,
- "medium_risk_hits": 0,
- "low_risk_hits": 0,
- "total_hits": 0,
- "risk_level": "low",
- "matches": [
- { }
], - "created_at": "2019-08-24T14:15:22Z"
}, - "ofac_status": "cleared",
- "org_number": "987654321",
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "phone": "+1-555-0100",
- "po_matching_document_level": false,
- "state": "active",
- "tax_id": "12-3456789",
- "tax_id_type": "ein",
- "track_1099": false,
- "vendor_group_id": "550e8400-e29b-41d4-a716-446655440000",
- "tags": [ ]
}
}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.
List all vendor groups.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
[- {
- "id": "string",
- "name": "string"
}
]Create a vendor group.
Create a vendor group.
| name required | string The name of the vendor group |
{- "name": "string"
}{- "id": "string",
- "name": "string"
}Update the vendor group.
| id required | string <uuid> The id of the vendor group |
Update a vendor group.
| name required | string The name of the vendor group |
{- "name": "string"
}{- "id": "string",
- "name": "string"
}Use this endpoint to delete a vendor tag association by specifying both the vendor ID and tag ID.
Use /v0/vendorTags/{id} when you want to use the vendor tag's ID instead of the vendor ID and tag ID.
| vendor_id required | string The id of the vendor |
| tag_id required | string The id of the tag |
| useSystem | string Default: "EXTERNAL" Enum: "INTERNAL" "EXTERNAL" "internal" "external" Which system to use for id or updatedAt filters. |
{- "code": 100,
- "message": "string"
}Create a new vendor tag. A vendor is not allowed to have the same tag attached multiple times.
Create a vendor tag.
| vendorId required | string |
| tagId required | string |
{- "vendorId": "string",
- "tagId": "string"
}{- "id": "string",
- "vendorId": "string",
- "tagId": "string"
}Delete a vendor tag association using the vendor tag's ID.
Use /v0/vendors/{vendor_id}/tags/{tag_id} when you want to use the vendor ID and tag ID as opposed to the vendor tag's ID.
| id required | string The id of the vendor tag |
{- "code": 100,
- "message": "string"
}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.
Tells the ERP to synchronize the Account resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Tells the ERP to synchronize the Dimension resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Tells the ERP to synchronize the Vendor resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Tells the ERP to synchronize the Vat Code resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Tells the ERP to synchronize the Purchase Orders resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}Tells the ERP to synchronize the Payment Terms resource. If the ERP is using the API, the call will be sent via the normal webhook methods. If the ERP is not using this API then this will call the native integration's synchronize functionality.
{- "code": 100,
- "message": "string"
}You can subscribe to all events in the Vic API system or a subset of the events. At the moment, each company may only have one subscription specified.
To create or update a subscription with the Vic API, you can pass the following.
curl --request PUT \
--url http://api.us.vic.ai/v0/subscription \
--header 'Authorization: Bearer MYBEARERTOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"callbackUrl": "https://yourCallbackUrl",
"accessToken": "unique-token-per-client"
}'
If you wish to only subscribe to specific events you may pass an array of event names.
curl --request PUT \
--url http://api.us.vic.ai/v0/subscription \
--header 'Authorization: Bearer MYBEARERTOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"callbackUrl": "https://yourCallbackUrl",
"accessToken": "unique-token-per-client",
"events": ["payment_batch_processed"]
}'
If you need to update your subscription to receive all events after trimming it
down, you may pass "events":["all"]. When passing all, it must be set by
itself.
curl --request PUT \
--url http://api.us.vic.ai/v0/subscription \
--header 'Authorization: Bearer MYBEARERTOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"callbackUrl": "https://yourCallbackUrl",
"accessToken": "unique-token-per-client",
"events": ["all"]
}'
You can delete a subscription by doing the following. Once the subscription is deleted, events will stop going to the callback url.
curl --request DELETE \
--url http://api.us.vic.ai/v0/subscription \
--header 'Authorization: Bearer MYBEARERTOKEN'
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 want all events sent
to your webhook. Usage is not recomended in production.invoice_approvedinvoice_postedpayment_batch_processedpurchase_order_createdpurchase_order_deletedpurchase_order_updatedvendor_onboarding_form_completedThe following V0 events may be specified. They will be sent to the original
callback paths where the event name was in the path.
vendorNew - POST https://yourCallbackUrl/vendorNewinvoicePost - POST https://yourCallbackUrl/invoicePostinvoiceTransfer - POST https://yourCallbackUrl/invoiceTransfersyncRequest - POST https://yourCallbackUrl/syncRequestWebhook delivery is serialized per subscription to guarantee event ordering. This means events are processed sequentially for each subscription, preventing parallelization. Subscriptions with many different event types may experience delivery delays due to this serialization bottleneck.
Avoid using "all" as your subscription event type in production environment. Instead, create specific subscriptions for individual event types that your system can handle efficiently. This approach reduces serialization impact and improves your own webhook delivery performance.
The newer webhook endpoints will be sent to https://yourCallbackUrl/events.
The receiver is expected to handle everything asynchronously via this method. We
do not parse the response body and will ignore it.
2XX responses will be treated as successful.401 and 403 responses will be treated as failures and be retried with an
exponential backoff. Once the retries have been exhausted, the event is
discarded.4XX responses will be treated as successful. If something is to be
rejected, you will need to make the appropriate calls to the Vic API to
complete the asynchronous handshake. Example: confirming or rejecting an
invoice post.5XX responses will be treated as a failure and will be retried with an
exponential backoff. Once the retries have been exhausted, the event is
discarded.NOTE: The integrating system has 15 seconds to respond. After the time has passed it will be considered a failure, and a retry will be sent for events going to
https://yourCallbackUrl/events.
The general structure of the webhook event will be as follows.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "the_event_name",
"data": {
"id": "123",
"something": "value"
}
}
There will be a top level field event that describes what the type of event
is. There will also be a data envelope that will contain the data for the
event.
This event is emitted from the Vic system when an invoice has been approved.
The payload for this event matches almost exactly what you will receive in the
getInvoice operation.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "invoice_approved",
"data": {
"totalAmount": "3.00",
"totalVatAmount": "0.00",
"amountWithoutTax": "1.00",
"amountTax": "1.00",
"amountNet": "1.00",
"amountVat": "0.00",
"amountSum": "3.00",
"amountFreight": "1.00",
"transactionType": "INVOICE",
"refNumber": "INV-1231123",
"poNumber": "PO-1231123",
"description": "Invoice for the month of April",
"currency": "USD",
"fields": [
{
"label": "custom:technician",
"title": "Technician",
"type": "text",
"value": "John Doe"
}
],
"language": "en",
"issueDate": "2019-08-24",
"glDate": "2019-08-24",
"dueDate": "2019-08-24",
"paymentInfo": {
"bankAccountNum": "1234567890",
"bankCode": "1234567890",
"paymentTerm": {
"count": 30,
"unit": "DAYS"
},
"defaultMethod": "BANKACCOUNT"
},
"internalId": "123",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
"externalUpdatedAt": "2019-08-24T14:15:22Z",
"paymentTerm": {
"count": 0,
"unit": "DAYS"
},
"paymentRef": "string",
"vendorInternalId": "47",
"vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"vendor": {
"internalId": "47",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"orgNumber": "string",
"countryCode": "US",
"name": "string"
},
"lineItems": [
{
"index": 1,
"amountTax": "1.00",
"amountNet": "1.00",
"amountSum": "1.00",
"amountFreight": "1.00",
"description": "string",
"comment": "string",
"billable": true,
"invoiceLineItemInfo": {
"vatCode": "string",
"vatAmount": 0,
"vatRate": "1.00"
},
"taxCode": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"code": "string",
"description": "Tax code description",
"rate": "0.25"
},
"costAccount": {
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"number": "string"
},
"dimensions": [
{
"name": "string",
"type": "string",
"typeName": "string",
"typeExternalId": "string",
"shortName": "string",
"externalData": {},
"displayName": "string",
"internalId": "47",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"externalUpdatedAt": "2021-06-29T17:20:53.154"
}
],
"quantityInvoiced": "string",
"lineItemTotal": "1.00",
"lineType": "item",
"poLineNumber": 0,
"poNumber": "string",
"poItemsMatched": [
{
"invoiceItemId": "string",
"purchaseOrderItemId": "string",
"amountMatched": "1.0",
"quantityMatched": "1.0"
}
],
"unitPrice": "1.00",
"number": "123456",
"lineFields": [
{
"label": "custom:serial_number",
"title": "Serial Number",
"type": "text",
"value": "12-34540-1235"
}
]
}
],
"postingError": null,
"documentUrl": "http://example.com/invoice.pdf",
"status": "NOT_READY",
"bolNumbers": [],
"selfAssessedUseTaxAmount": null,
"selfAssessedUseTaxAccount": null,
"markedAs": "PAID",
"billStatus": "PAID",
"externalPaymentDate": null,
"externalPaymentNumber": null,
"externalPaymentStatus": null
}
}
This event is emitted from the Vic system when an invoice has been posted to the
ERP successfully. The payload for this event matches almost exactly what you
will receive in the getInvoice operation.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "invoice_posted",
"data": {
"totalAmount": "3.00",
"totalVatAmount": "0.00",
"amountWithoutTax": "1.00",
"amountTax": "1.00",
"amountNet": "1.00",
"amountVat": "0.00",
"amountSum": "3.00",
"amountFreight": "1.00",
"transactionType": "INVOICE",
"refNumber": "INV-1231123",
"poNumber": "PO-1231123",
"description": "Invoice for the month of April",
"currency": "USD",
"fields": [
{
"label": "custom:technician",
"title": "Technician",
"type": "text",
"value": "John Doe"
}
],
"language": "en",
"issueDate": "2019-08-24",
"glDate": "2019-08-24",
"dueDate": "2019-08-24",
"paymentInfo": {
"bankAccountNum": "1234567890",
"bankCode": "1234567890",
"paymentTerm": {
"count": 30,
"unit": "DAYS"
},
"defaultMethod": "BANKACCOUNT"
},
"internalId": "123",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
"externalUpdatedAt": "2019-08-24T14:15:22Z",
"paymentTerm": {
"count": 0,
"unit": "DAYS"
},
"paymentRef": "string",
"vendorInternalId": "47",
"vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"vendor": {
"internalId": "47",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"orgNumber": "string",
"countryCode": "US",
"name": "string"
},
"lineItems": [
{
"index": 1,
"amountTax": "1.00",
"amountNet": "1.00",
"amountSum": "1.00",
"amountFreight": "1.00",
"description": "string",
"comment": "string",
"billable": true,
"invoiceLineItemInfo": {
"vatCode": "string",
"vatAmount": 0,
"vatRate": "1.00"
},
"taxCode": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"code": "string",
"description": "Tax code description",
"rate": "0.25"
},
"costAccount": {
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"number": "string"
},
"dimensions": [
{
"name": "string",
"type": "string",
"typeName": "string",
"typeExternalId": "string",
"shortName": "string",
"externalData": {},
"displayName": "string",
"internalId": "47",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"externalUpdatedAt": "2021-06-29T17:20:53.154"
}
],
"quantityInvoiced": "string",
"lineItemTotal": "1.00",
"lineType": "item",
"poLineNumber": 0,
"poNumber": "string",
"poItemsMatched": [
{
"invoiceItemId": "string",
"purchaseOrderItemId": "string",
"amountMatched": "1.0",
"quantityMatched": "1.0"
}
],
"unitPrice": "1.00",
"number": "123456",
"lineFields": [
{
"label": "custom:serial_number",
"title": "Serial Number",
"type": "text",
"value": "12-34540-1235"
}
]
}
],
"postingError": null,
"documentUrl": "http://example.com/invoice.pdf",
"status": "NOT_READY",
"bolNumbers": [],
"selfAssessedUseTaxAmount": null,
"selfAssessedUseTaxAccount": null,
"markedAs": "PAID",
"billStatus": "PAID",
"externalPaymentDate": null,
"externalPaymentNumber": null,
"externalPaymentStatus": null
}
}
This event is emitted from the Vic system when a purchase order has been created.
The payload for this event matches almost exactly what you will receive in the
getPurchaseOrder operation.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "purchase_order_created",
"data": {
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"vendor": {
"internalId": "47",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"externalUpdatedAt": "2021-06-29T17:20:53.154",
"name": "Acme Corporation",
"email": "vendor@acme.com",
"description": "They sell anvils",
"phone": "555-555-5555",
"addressStreet": "123 Main Street\nSuite 100",
"addressCity": "Springfield",
"addressState": "IL",
"addressPostalCode": "62701",
"countryCode": "US",
"currency": "USD",
"confirmedAt": "2019-08-24T14:15:22Z",
"state": "CONFIRMED",
"taxInfo": {
"taxId": "11-1234567",
"is1099vendor": false,
"orgNumber": null
},
"defaultPaymentInfo": null,
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
"poMatchingDocumentLevel": false,
"vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
"tags": [],
"externalData": {},
"errors": []
},
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"issuedOn": "2019-08-24",
"createdOn": "2019-08-24",
"poNumber": "string",
"deliverOn": "2019-08-24",
"amount": "1.00",
"currencyId": "USD",
"status": "open",
"matchingType": "document",
"type": "blanket",
"description": "string",
"lineItems": [
{
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"productNumber": "string",
"productDescription": "string",
"unitOfMeasure": "kg",
"quantityAccepted": "1.0",
"quantityRequested": "1.0",
"quantityReceived": "1.0",
"matchingType": "two_way",
"unitAmount": "1.00",
"lineItemTotal": "1.00",
"lineNumber": 1,
"dimensions": [
{
"internalId": "1234",
"externalId": "D0123148",
"name": "project - the big one",
"typeExternalId": "project"
}
],
"invoiceItemsMatched": [
{
"invoiceItemId": "123",
"purchaseOrderItemId": "6bde599d-3b7e-497c-ab91-1594a2efcdab",
"amountMatched": "123.34",
"quantityMatched": "1.0"
}
],
"memo": "string",
"status": "open"
}
],
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}
}
This event is emitted from the Vic system when a purchase order has been updated.
The payload for this event matches almost exactly what you will receive in the
getPurchaseOrder operation. This event is a snapshot of the purchase order at
the time of the event.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "purchase_order_updated",
"data": {
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"vendor": {
"internalId": "47",
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"externalUpdatedAt": "2021-06-29T17:20:53.154",
"name": "Acme Corporation",
"email": "vendor@acme.com",
"description": "They sell anvils",
"phone": "555-555-5555",
"addressStreet": "123 Main Street\nSuite 100",
"addressCity": "Springfield",
"addressState": "IL",
"addressPostalCode": "62701",
"countryCode": "US",
"currency": "USD",
"confirmedAt": "2019-08-24T14:15:22Z",
"state": "CONFIRMED",
"taxInfo": {
"taxId": "11-1234567",
"is1099vendor": false,
"orgNumber": null
},
"defaultPaymentInfo": null,
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
"poMatchingDocumentLevel": false,
"vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
"tags": [],
"externalData": {},
"errors": []
},
"internalUpdatedAt": "2019-08-24T14:15:22Z",
"issuedOn": "2019-08-24",
"createdOn": "2019-08-24",
"poNumber": "string",
"deliverOn": "2019-08-24",
"amount": "1.00",
"currencyId": "USD",
"status": "open",
"matchingType": "document",
"type": "blanket",
"description": "string",
"lineItems": [
{
"internalId": "string",
"externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
"productNumber": "string",
"productDescription": "string",
"unitOfMeasure": "kg",
"quantityAccepted": "1.0",
"quantityRequested": "1.0",
"quantityReceived": "1.0",
"matchingType": "two_way",
"unitAmount": "1.00",
"lineItemTotal": "1.00",
"lineNumber": 1,
"dimensions": [
{
"internalId": "1234",
"externalId": "D0123148",
"name": "project - the big one",
"typeExternalId": "project"
}
],
"invoiceItemsMatched": [
{
"invoiceItemId": "123",
"purchaseOrderItemId": "6bde599d-3b7e-497c-ab91-1594a2efcdab",
"amountMatched": "123.34",
"quantityMatched": "1.0"
}
],
"memo": "string",
"status": "open"
}
],
"paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b"
}
}
This event is emitted from the Vic system when a purchase order has been deleted.
The payload for this event is sparse. It only contains the internalId and
externalId of the purchase order.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "purchase_order_deleted",
"data": {
"internalId": "4c029f1b-f87f-4a05-a511-8cda223dad2a",
"externalId": "12345"
}
}
This event is emitted from the Vic system when a batch of payments has been sent
to the payment processor and a successful response has been obtained. The
payload for this event matches almost exactly what you will receive in the
getPaymentBatch operation.
Only approved credits and payments will be emitted with the event. Voided and
rejected payments will not be sent. If you need these values, you should call
getPaymentBatch in order to fetch them.
Here is an example of an $200 invoice being paid in full with a $20 credit note being applied. This will bring the total batch payment to $180. The credit note applied is not subtracted from the payment in this breakdown because ERPs typically need entries of the payment being applied and the credit note being used in conjunction with that credit note.
{
"id": "a7dae8d0-8bsa-7a3d-882f-a7fc14835719",
"event": "payment_batch_processed",
"occurred_at": "2025-04-04T14:34:55.123Z",
"data": {
"id": "f1c2384f-57d8-41fe-afa6-17caf62b2a3f",
"name": "Batch 2023-10-01 001",
"processedAt": "2023-10-01T19:12:00Z",
"approvedAt": "2023-10-01T19:12:00Z",
"rejectedAt": null,
"voidedAt": null,
"status": "approved",
"companyId": "123",
"payments": [
{
"id": "edb3a624-9f12-4cd8-adb8-4d9a5ec0b48b",
"amount": "200.00",
"settlementAmount": "200.00",
"settlementCurrencyId": "USD",
"exchangeRate": "1.0",
"discountAmount": "0.00",
"currencyId": "USD",
"status": "approved",
"voidedAt": null,
"rejectedAt": null,
"approvedAt": "2023-10-01T19:12:00Z",
"fundedAt": null,
"costAccount": {
"internalId": "1",
"externalId": "cost-account-id-in-erp"
},
"invoice": {
"internalId": "876",
"externalId": "invoice-id-in-erp",
"refNumber": "INV-123456"
},
"vendor": {
"internalId": "409",
"externalId": "vendor-id-in-erp"
},
}
],
"credits": [
{
"id": "091f257a-9b6e-4797-bcb6-ccd36dda260f",
"amount": "20.00",
"settlementAmount": "20.00",
"settlementCurrencyId": "USD",
"exchangeRate": "1.0",
"discountAmount": "0.00",
"currencyId": "USD",
"status": "approved",
"voidedAt": null,
"rejectedAt": null,
"approvedAt": "2023-10-01T19:12:00Z",
"fundedAt": null,
"costAccount": {
"internalId": "1",
"externalId": "cost-account-id-in-erp"
},
"invoice": {
"internalId": "900",
"externalId": "credit-note-id-in-erp",
"refNumber": "CRN-123456"
},
"vendor": {
"internalId": "409",
"externalId": "vendor-id-in-erp"
},
}
]
}
}
This event is emitted from the Vic system when a vendor completes their onboarding form submission. The payload includes the full vendor details along with the specific completed onboarding form, its items, and all responses.
This event is useful for integrations that need to capture vendor onboarding information, validate submitted data, or trigger follow-up processes in external systems when vendors complete their onboarding.
{
"id": "a7dae8d0-8baa-7a3d-885f-a7fc14835718",
"occurred_at": "2025-04-04T14:34:55.123Z",
"event": "vendor_onboarding_form_completed",
"data": {
"vendor": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"legacy_id": "12345",
"name": "Acme Corporation",
"legal_name": "Acme Corporation Inc.",
"doing_business_as": "Acme Supply Co",
"email": "vendor@acme.com",
"description": "Office supplies vendor",
"phone": "+1-555-123-4567",
"address_street_1": "123 Main Street",
"address_street_2": "Suite 100",
"address_city": "Springfield",
"address_state": "IL",
"address_postal_code": "62701",
"country_code": "US",
"currency": "USD",
"org_number": "123456789",
"tax_id": "12-3456789",
"tax_id_type": "ein",
"track_1099": false,
"confirmed_at": "2025-04-04T14:30:00Z",
"state": "pending",
"remote_id": "vendor-ext-123",
"remote_updated_at": "2025-04-04T14:30:00Z",
"remote_data": null,
"remote_errors": null,
"payment_term_id": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
"po_matching_document_level": false,
"vendor_group_id": null,
"updated_at": "2025-04-04T14:30:00Z",
"ofac_status": "cleared",
"ofac_report": {
"id": "ad158953-172d-44dd-aaf0-a61882c792d0",
"high_risk_hits": 0,
"medium_risk_hits": 0,
"low_risk_hits": 0,
"total_hits": 0,
"risk_level": "low",
"matches": [],
"created_at": "2025-04-04T14:25:00Z"
},
"banking_info": [
{
"id": "7c5e8400-e29b-41d4-a716-446655440001",
"kind": "ach",
"account_number": "123456789",
"is_primary": true
}
],
"tags": [
{
"id": "9f3a8400-e29b-41d4-a716-446655440002",
"value": "preferred-vendor"
}
]
},
"form": {
"id": "b2c4e8d0-8baa-7a3d-885f-a7fc14835720",
"status": "submitted",
"template_version_id": "d5f7a2b1-9cde-4f6g-7h8i-9j0k1l2m3n4o",
"inserted_at": "2025-04-01T10:00:00Z",
"updated_at": "2025-04-04T14:30:00Z",
"items": [
{
"id": "c3d5f9e1-9cba-8b4e-996g-b8gd25946831",
"type": "text",
"required": true,
"order": 1,
"value": "Acme Corporation",
"date_value": null,
"question": {
"id": "e6g8h0f2-0deb-9c5f-007h-c9he36057942",
"label": "What is your business name?",
"type": "text",
"required": true,
"placeholder": "Enter your business name",
"max_length": 255,
"validation": null,
"min_selection": null,
"max_selection": null,
"rows": null,
"available_options": []
},
"options": []
},
{
"id": "d4e6g0f2-0dcb-9c5f-007h-c9he36057943",
"type": "email",
"required": true,
"order": 2,
"value": "contact@acme.com",
"date_value": null,
"question": {
"id": "f7h9i1g3-1edc-0d6g-118i-d0if47168053",
"label": "Primary contact email",
"type": "email",
"required": true,
"placeholder": "email@example.com",
"max_length": null,
"validation": null,
"min_selection": null,
"max_selection": null,
"rows": null,
"available_options": []
},
"options": []
},
{
"id": "e5f7h1g3-1edc-0d6g-118i-d0if47168054",
"type": "date",
"required": false,
"order": 3,
"value": null,
"date_value": "2025-01-15",
"question": {
"id": "g8i0j2h4-2fed-1e7h-229j-e1jg58279164",
"label": "When did you incorporate?",
"type": "date",
"required": false,
"placeholder": null,
"max_length": null,
"validation": null,
"min_selection": null,
"max_selection": null,
"rows": null,
"available_options": []
},
"options": []
},
{
"id": "f6g8i2h4-2fed-1e7h-229j-e1jg58279165",
"type": "radio",
"required": true,
"order": 4,
"value": null,
"date_value": null,
"question": {
"id": "h9j1k3i5-3gfe-2f8i-330k-f2kh69380275",
"label": "Are you a registered business?",
"type": "radio",
"required": true,
"placeholder": null,
"max_length": null,
"validation": null,
"min_selection": null,
"max_selection": null,
"rows": null,
"available_options": [
{
"id": "i0k2l4j6-4hgf-3g9j-441l-g3li70491386",
"value": "Yes",
"order": 1,
"allow_custom": false
},
{
"id": "j1l3m5k7-5ihg-4h0k-552m-h4mj81502497",
"value": "No",
"order": 2,
"allow_custom": false
}
]
},
"options": [
{
"id": "g7h9j3i5-3gfe-2f8i-330k-f2kh69380276",
"value": "Yes",
"custom": null,
"order": 1,
"selected_option": {
"id": "i0k2l4j6-4hgf-3g9j-441l-g3li70491386",
"value": "Yes",
"allow_custom": false
}
}
]
},
{
"id": "h8i0k4j6-4hgf-3g9j-441l-g3li70491387",
"type": "checkbox",
"required": false,
"order": 5,
"value": null,
"date_value": null,
"question": {
"id": "j1l3m5k7-5ihg-4h0k-552m-h4mj81502497",
"label": "Which certifications do you have?",
"type": "checkbox",
"required": false,
"placeholder": null,
"max_length": null,
"validation": null,
"min_selection": 1,
"max_selection": null,
"rows": null,
"available_options": [
{
"id": "k2m4n6l8-6jih-5i1l-663n-i5nk92613508",
"value": "ISO 9001",
"order": 1,
"allow_custom": false
},
{
"id": "l3n5o7m9-7kji-6j2m-774o-j6ol03724619",
"value": "ISO 14001",
"order": 2,
"allow_custom": false
},
{
"id": "m4o6p8n0-8lkj-7k3n-885p-k7pm14835730",
"value": "ISO 27001",
"order": 3,
"allow_custom": false
}
]
},
"options": [
{
"id": "i9j1l5k7-5ihg-4h0k-552m-h4mj81502498",
"value": "ISO 9001",
"custom": null,
"order": 1,
"selected_option": {
"id": "k2m4n6l8-6jih-5i1l-663n-i5nk92613508",
"value": "ISO 9001",
"allow_custom": false
}
},
{
"id": "j0k2m6l8-6jih-5i1l-663n-i5nk92613509",
"value": "ISO 14001",
"custom": null,
"order": 2,
"selected_option": {
"id": "l3n5o7m9-7kji-6j2m-774o-j6ol03724619",
"value": "ISO 14001",
"allow_custom": false
}
}
]
},
{
"id": "k1l3n7m9-7kji-6j2m-774o-j6ol03724620",
"type": "dropdown",
"required": true,
"order": 6,
"value": null,
"date_value": null,
"question": {
"id": "m4o6p8n0-8lkj-7k3n-885p-k7pm14835730",
"label": "What industry are you in?",
"type": "dropdown",
"required": true,
"placeholder": "Select an industry",
"max_length": null,
"validation": null,
"min_selection": null,
"max_selection": null,
"rows": null,
"available_options": [
{
"id": "o6q8r0p2-0nmk-9m5p-007r-m9ro36158052",
"value": "Technology",
"order": 1,
"allow_custom": false
},
{
"id": "p7r9s1q3-1onl-0n6q-118s-n0sp47269163",
"value": "Manufacturing",
"order": 2,
"allow_custom": false
},
{
"id": "n5p7q9o1-9mlk-8l4o-996q-l8qn25946841",
"value": "Other",
"order": 3,
"allow_custom": true
}
]
},
"options": [
{
"id": "l2m4o8n0-8lkj-7k3n-885p-k7pm14835731",
"value": "Other",
"custom": "Custom industry type",
"order": 1,
"selected_option": {
"id": "n5p7q9o1-9mlk-8l4o-996q-l8qn25946841",
"value": "Other",
"allow_custom": true
}
}
]
}
]
}
}
}
This request is used to configure or modify a new V0 subscription to user and automated actions. You must supply a callback url and set an access token that Vic.ai can use to authenticate itself in your system. Notifications of user actions will proceed via the documented schema. The callback url must be https.
| callbackUrl required | string <uri> |
| accessToken required | string <= 1024 characters |
Array of WebhookEventName (strings) or null The list of events to subscribe to. If you wish to subscribe to all
events simply pass |
{- "accessToken": "string",
- "events": [
- "all"
]
}{- "accessToken": "string",
- "events": [
- "all"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "occurred_at": "2019-08-24T14:15:22Z",
- "event": "InvoicePostedEvent",
- "data": {
- "totalAmount": "1.00",
- "totalVatAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountVat": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "string",
- "matchedPurchaseOrders": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "poNumber": "string"
}
], - "poNumber": "string",
- "description": "string",
- "currency": "USD",
- "customFields": [
- {
- "id": "string",
- "value": "string",
- "label": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "language": "en",
- "issueDate": "2019-08-24",
- "glDate": "2019-08-24",
- "dueDate": "2019-08-24",
- "paymentInfo": {
- "bankAccountNum": "string",
- "bankCode": "string",
- "paymentTerm": {
- "count": 1,
- "unit": "DAYS"
}, - "bankGiro": "string",
- "plusGiro": "string",
- "bban": "string",
- "internationalBankAccount": {
- "iban": "string",
- "bic": "string"
}, - "defaultMethod": "BANKACCOUNT"
}, - "invoiceInfo": {
- "kid": "string",
- "creditAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "creditAccountInternalId": "string"
}, - "source": "Millum",
- "internalId": "string",
- "id": "string",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "companyId": "12345",
- "companyExternalId": "CO-123",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "paymentTermId": "80b25998-53d5-4563-abd4-ea6566e3cf2b",
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "paymentTerm": {
- "count": 0,
- "unit": "DAYS"
}, - "paymentRef": "string",
- "vendorInternalId": "47",
- "vendorExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "vendor": {
- "internalId": "47",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "orgNumber": "string",
- "countryCode": "US",
- "name": "string"
}, - "lineItems": [
- {
- "index": 0,
- "amount": 0,
- "amountTax": "1.00",
- "amountNet": "1.00",
- "amountSum": "1.00",
- "amountFreight": "1.00",
- "description": "string",
- "comment": "string",
- "billable": false,
- "accrual": {
- "start": "2019-08-24",
- "count": 0,
- "unit": "MONTHS"
}, - "invoiceLineItemInfo": {
- "vatCode": "string",
- "vatAmount": 0,
- "vatRate": "1.00"
}, - "vat": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "code": "string",
- "amount": "1.00",
- "rate": "1.00"
}, - "taxCode": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "code": "string",
- "description": "Tax code description",
- "rate": "0.25"
}, - "costAccountInternalId": "47",
- "costAccountExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "costAccount": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "number": "string"
}, - "dimensions": [
- {
- "name": "string",
- "type": "string",
- "typeName": "string",
- "typeExternalId": "string",
- "shortName": "string",
- "externalData": { },
- "displayName": "string",
- "internalId": "47",
- "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "externalUpdatedAt": "2021-06-29T17:20:53.154"
}
], - "dimensionsInternalIds": [
- "47"
], - "dimensionsExternalIds": [
- "21b31bc7-1267-4335-893c-d7fe4706a238"
], - "quantityInvoiced": "string",
- "lineItemTotal": "1.00",
- "lineType": "item",
- "poLineNumber": 0,
- "poNumber": "string",
- "poItemsMatched": [
- {
- "invoiceItemId": "string",
- "purchaseOrderItemId": "string",
- "amountMatched": "string",
- "quantityMatched": "string"
}
], - "unitPrice": "1.00",
- "number": "string",
- "lineFields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
], - "fields": [
- {
- "label": "string",
- "title": "string",
- "type": "string",
- "value": "string"
}
]
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "BOL-123456"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID",
- "externalPaymentDate": "2019-08-24",
- "externalPaymentNumber": "string",
- "externalPaymentStatus": "paid"
}
}This request is used to cancel a subscription to user actions. In conjunction with a post request, you may use this as a first step to update subscription URLs or authorization tokens.
"OK"List your webhook subscriptions.
| company_id required | string <uuid> The ID of the company |
object (PaginationV2) |
{- "data": [
- {
- "id": "string",
- "auth_method": "bearer",
- "username": "api_user",
- "events": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "version": "v0",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "page": {
- "cursor": "string"
}
}
}Create a new webhook subscription.
| company_id required | string <uuid> The ID of the company |
| callback_url required | string <uri> <= 2048 characters The HTTPS URL where webhook events will be sent |
| access_token required | string <= 1024 characters Access token for authenticating webhook deliveries |
| username | string <= 255 characters Username for Basic authentication (required when auth_method is 'basic') |
| auth_method | string Default: "bearer" Enum: "bearer" "basic" Authentication method for webhook delivery |
Array of objects Default: ["all"] |
{- "access_token": "your-access-token",
- "username": "api_user",
- "auth_method": "bearer",
- "events": [
- "all"
]
}{- "data": {
- "id": "string",
- "auth_method": "bearer",
- "username": "api_user",
- "events": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "version": "v0",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Get details of a specific webhook subscription.
| company_id required | string <uuid> The ID of the company |
| id required | string The subscription ID |
{- "data": {
- "id": "string",
- "auth_method": "bearer",
- "username": "api_user",
- "events": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "version": "v0",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Update an existing webhook subscription.
| company_id required | string <uuid> The ID of the company |
| id required | string The subscription ID |
| callback_url | string <uri> <= 2048 characters The HTTPS URL where webhook events will be sent |
| access_token | string <= 1024 characters Access token for authenticating webhook deliveries |
| username | string <= 255 characters Username for Basic authentication (required when auth_method is 'basic') |
| auth_method | string Enum: "bearer" "basic" Authentication method for webhook delivery |
Array of objects (WebhookEventsList) |
{- "access_token": "your-access-token",
- "username": "api_user",
- "auth_method": "bearer",
- "events": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
]
}{- "data": {
- "id": "string",
- "auth_method": "bearer",
- "username": "api_user",
- "events": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "version": "v0",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Use this request to query webhook events that are stored in Vic.ai. Events include invoice processing, vendor updates, payment processing, purchase orders, and other system activities that trigger webhook notifications.
| limit | integer [ 1 .. 100 ] How many items to return at one time (max 100) (default 100) |
| cursor | string Which item to start from. See Pagination for more information. |
Array of WebhookEventName (strings) or string Filter events by type | |
| occurred_after required | string <date-time> Filter events that occurred on or after this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| occurred_before required | string <date-time> Filter events that occurred on or before this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| undelivered | boolean Filter to show only events that have not been delivered |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
]Use this request to get data for a specific webhook event details
| event_id required | string <uuid> The ID of the webhook event |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}Use this request to get all available webhook event types that can be subscribed to in Vic.ai. This includes event types for invoices, vendors, payments, purchase orders, and other system activities.
{- "data": [
- "invoice_approved",
- "invoice_posted",
- "invoice_rejected",
- "invoice_updated",
- "payment_batch_processed",
- "purchase_order_created",
- "purchase_order_deleted",
- "purchase_order_updated",
- "vendor_onboarding_form_completed",
- "ping"
]
}Use this request to query webhook events for a specific company that are stored in Vic.ai. This allows you to view all webhook events that have been triggered for activities related to a particular company.
| company_id required | string <uuid> The ID of the company |
| event_type | string (WebhookEventName) Enum: "all" "payment_batch_processed" "vendorNew" "invoicePost" "invoiceTransfer" "syncRequest" "invoice_approved" "invoice_posted" "purchase_order_created" "purchase_order_updated" "purchase_order_deleted" "vendor_onboarding_form_completed" Filter events by type |
| occurred_after required | string <date-time> Filter events that occurred on or after this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| occurred_before required | string <date-time> Filter events that occurred on or before this date. Required parameter. The date range between occurred_after and occurred_before cannot exceed 30 days. |
| undelivered | boolean Filter to show only events that have not been delivered |
object (PaginationV2) |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
], - "meta": {
- "page": {
- "cursor": "string"
}
}
}Use this request to get detailed information about a specific webhook event for a company that is stored in Vic.ai. This includes delivery attempts, payload data, and status information.
| company_id required | string <uuid> The ID of the company |
| event_id required | string <uuid> The ID of the webhook event |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "invoice_approved",
- "version": 1,
- "occurred_at": "2019-08-24T14:15:22Z",
- "body": { }
}
}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 won't happen.
Get the status of all available CSV reports. This endpoint returns a list
of all supported report types along with their current status (READY or NOT_READY).
Reports that are READY can be downloaded immediately.
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
{- "reports": [
- {
- "name": "companyUsers",
- "status": "READY"
}
]
}Generate all available CSV reports. This operation is asynchronous - the reports will be queued for generation and their status will be NOT_READY initially. Use the GET endpoint to check when reports are READY and can be downloaded. This endpoint has rate limiting (max 1 requests per hour).
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
Generate CSV reports with optional date filtering.
| reportStartAt | string <date-time> Optional filter for the report data (ISO 8601 format). If not provided (default 60 days ago at the start of the day). |
| reportEndAt | string <date-time> Optional end date for the report data (ISO 8601 format). If not provided, all data up to the current date will be included. |
{- "reportStartAt": "2024-01-01T00:00:00Z",
- "reportEndAt": "2026-12-31T23:59:59Z"
}{- "reports": [
- {
- "name": "companyUsers",
- "status": "READY"
}
]
}Download a specific CSV report by name. Returns a redirect (302) to a signed URL where the CSV file can be downloaded. The report must be in READY status to be downloadable otherwise it will return a 404.
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
| report_name required | string Example: companyUsers The name of the CSV report to download. Forwards to the location of the CSV file and also returns the signedUrl. |
{- "code": 100,
- "message": "string"
}Create a new imported bill with the given remote_id. If a bill with the
same remote_id already exists, returns an error.
Imported bills are automatically set to "posted" status.
Document Upload: You can upload a document along with the bill data using multipart/form-data.
When using multipart, send the bill data fields directly and the file as document.
VAT Handling: If total_vat_amount is provided and greater than zero, the system
will automatically create a hidden VAT line item in addition to the provided line items.
Note: Only bills imported via the API can be updated later using the update endpoint.
Create a new imported bill.
| account_number | string or null <= 255 characters Vendor account number used on the bill. |
| ref_number required | string <= 255 characters The reference number that appears on the bill. |
| vendor_remote_id required | string <= 255 characters The external ID of the vendor in your system. |
| transaction_type required | string Enum: "invoice" "credit_note" The type of transaction. |
| remote_updated_at required | string <date-time> When the bill was last updated in your system. |
| remote_id required | string <= 255 characters The external ID of the bill in your system. |
| issue_date | string or null <date> The date the bill was issued. |
| due_date | string or null <date> The date the bill is due. |
| currency | string or null <ISO-4217> <= 3 characters The currency code the bill is in. |
| description | string or null <= 255 characters Description of the bill. |
| gl_date | string or null <date> The general ledger date. |
| language | string or null <= 2 characters The language of the bill. |
| po_number | string or null <= 255 characters The purchase order number. |
| service_period_start | string or null <date> Start of the service period for the bill. |
| service_period_end | string or null <date> End of the service period for the bill. |
| total_amount | string or null <decimal> The total amount of the bill including taxes. |
| total_vat_amount | string or null <decimal> The total VAT amount of the bill. |
| payment_term_id | string or null <uuid> The id of the Payment Term to use. |
InvoicePaymentInputV2 (object) or null | |
CreditAccountInputV2 (object) or null | |
Array of objects (BillLineItemInputV2) Default: [] Line items for the bill. | |
Array of objects (BillOfLadingNumberV2) Default: [] Bill of Lading (BOL) numbers associated with the bill. | |
Array of objects (InvoiceFieldInput) Custom invoice fields configured on the company. |
{- "account_number": "ACC-1001",
- "ref_number": "INV-2024-001",
- "vendor_remote_id": "vendor-123",
- "transaction_type": "invoice",
- "remote_updated_at": "2024-01-15T10:30:00",
- "remote_id": "remote-123",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "currency": "USD",
- "description": "Monthly service fee",
- "gl_date": "2024-01-15",
- "language": "en",
- "po_number": "PO-2024-001",
- "service_period_start": "2024-01-01",
- "service_period_end": "2024-01-31",
- "total_amount": "120.00",
- "total_vat_amount": "20.00",
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_info": {
- "bank_account_number": "string",
- "bankgiro": "string",
- "plusgiro": "string",
- "bban": "string",
- "default_method": "bank_account",
- "international_bank_account": {
- "iban": "string",
- "bic": "string"
}
}, - "credit_account": {
- "kid": "string",
- "credit_account_remote_id": "string",
- "credit_account_id": "string"
}, - "line_items": [ ],
- "bol_numbers": [ ],
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "ref_number": "INV-2024-001",
- "remote_id": "remote-123",
- "status": "posted",
- "transaction_type": "invoice",
- "vendor": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "remote_id": "vendor-123",
- "name": "Acme Corp",
- "org_number": "987654321"
}, - "company": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "remote_id": "company-123"
}, - "currency": "USD",
- "description": "Monthly service fee",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "gl_date": "2024-01-15",
- "language": "en",
- "line_items": [ ],
- "payment_info": {
- "bank_account_number": "1234567890",
- "bic": "DNBANOKKXXX",
- "iban": "NO9386011117947",
- "bankgiro": "123456789",
- "plusgiro": "123456789"
}, - "remote_updated_at": "2024-01-15T10:30:00",
- "account_number": "ACC-1001",
- "amount_freight": "15.00",
- "amount_net": "100.00",
- "amount_sum": "135.00",
- "amount_tax": "20.00",
- "amount_vat": "20.00",
- "bill_status": "unpaid",
- "bol_numbers": [ ],
- "credit_account": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "name": "Office Expenses",
- "number": "6100",
- "remote_id": "ext-cost-123",
- "sub_type": "expense",
- "remote_updated_at": "2024-01-15T10:30:00Z"
}, - "external_payment_date": "2024-02-01",
- "external_payment_number": "PAY-123456",
- "external_payment_status": "completed",
- "fields": [ ],
- "kid": "1234567890123",
- "marked_as": "reviewed",
- "matched_purchase_orders": [ ],
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_term": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "days_to_pay": 0,
- "days_to_pay_condition": "string",
- "discount_percentage": "string",
- "discount_days": 0,
- "discount_days_condition": "string",
- "remote_id": "string"
}, - "po_number": "PO-2024-001",
- "posting_error": "Connection timeout",
- "remote_data": { },
- "self_assessed_use_tax_account": "USE-TAX-001",
- "self_assessed_use_tax_amount": "5.00",
- "service_period_end": "2024-01-31",
- "service_period_start": "2024-01-01",
- "source": "EHF",
- "updated_at": "2024-01-15T10:30:00Z"
}
}Update an existing imported bill with the given id. If no bill
with the id exists, returns an error.
Only bills that were previously imported via the API can be updated. Attempting to update a bill that was not imported via the API will result in an error.
Document Upload: You can upload a new document along with the bill data using multipart/form-data.
When using multipart, send the bill data fields directly and the file as document.
VAT Handling: If total_vat_amount is provided and greater than zero, the system
will automatically create a hidden VAT line item in addition to the provided line items.
Note: This is a full replacement operation. All fields unspecified will be
treated as if they were null and will be cleared on the bill.
| id required | string The ID of the bill in the Vic system. |
Update an existing imported bill.
| account_number | string or null <= 255 characters Vendor account number used on the bill. |
| ref_number required | string <= 255 characters The reference number that appears on the bill. |
| vendor_remote_id required | string <= 255 characters The external ID of the vendor in your system. |
| transaction_type required | string Enum: "invoice" "credit_note" The type of transaction. |
| remote_updated_at required | string <date-time> When the bill was last updated in your system. |
| remote_id required | string <= 255 characters The external ID of the bill in your system. |
| issue_date | string or null <date> The date the bill was issued. |
| due_date | string or null <date> The date the bill is due. |
| currency | string or null <ISO-4217> <= 3 characters The currency code the bill is in. |
| description | string or null <= 255 characters Description of the bill. |
| gl_date | string or null <date> The general ledger date. |
| language | string or null <= 2 characters The language of the bill. |
| po_number | string or null <= 255 characters The purchase order number. |
| service_period_start | string or null <date> Start of the service period for the bill. |
| service_period_end | string or null <date> End of the service period for the bill. |
| total_amount | string or null <decimal> The total amount of the bill including taxes. |
| total_vat_amount | string or null <decimal> The total VAT amount of the bill. |
| payment_term_id | string or null <uuid> The id of the Payment Term to use. |
InvoicePaymentInputV2 (object) or null | |
CreditAccountInputV2 (object) or null | |
Array of objects (BillLineItemInputV2) Default: [] Line items for the bill. | |
Array of objects (BillOfLadingNumberV2) Default: [] Bill of Lading (BOL) numbers associated with the bill. | |
Array of objects (InvoiceFieldInput) Custom invoice fields configured on the company. |
{- "account_number": "ACC-1001",
- "ref_number": "INV-2024-001",
- "vendor_remote_id": "vendor-123",
- "transaction_type": "invoice",
- "remote_updated_at": "2024-01-15T10:30:00",
- "remote_id": "remote-123",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "currency": "USD",
- "description": "Monthly service fee",
- "gl_date": "2024-01-15",
- "language": "en",
- "po_number": "PO-2024-001",
- "service_period_start": "2024-01-01",
- "service_period_end": "2024-01-31",
- "total_amount": "120.00",
- "total_vat_amount": "20.00",
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_info": {
- "bank_account_number": "string",
- "bankgiro": "string",
- "plusgiro": "string",
- "bban": "string",
- "default_method": "bank_account",
- "international_bank_account": {
- "iban": "string",
- "bic": "string"
}
}, - "credit_account": {
- "kid": "string",
- "credit_account_remote_id": "string",
- "credit_account_id": "string"
}, - "line_items": [ ],
- "bol_numbers": [ ],
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "ref_number": "INV-2024-001",
- "remote_id": "remote-123",
- "status": "posted",
- "transaction_type": "invoice",
- "vendor": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "remote_id": "vendor-123",
- "name": "Acme Corp",
- "org_number": "987654321"
}, - "company": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "remote_id": "company-123"
}, - "currency": "USD",
- "description": "Monthly service fee",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "gl_date": "2024-01-15",
- "language": "en",
- "line_items": [ ],
- "payment_info": {
- "bank_account_number": "1234567890",
- "bic": "DNBANOKKXXX",
- "iban": "NO9386011117947",
- "bankgiro": "123456789",
- "plusgiro": "123456789"
}, - "remote_updated_at": "2024-01-15T10:30:00",
- "account_number": "ACC-1001",
- "amount_freight": "15.00",
- "amount_net": "100.00",
- "amount_sum": "135.00",
- "amount_tax": "20.00",
- "amount_vat": "20.00",
- "bill_status": "unpaid",
- "bol_numbers": [ ],
- "credit_account": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "name": "Office Expenses",
- "number": "6100",
- "remote_id": "ext-cost-123",
- "sub_type": "expense",
- "remote_updated_at": "2024-01-15T10:30:00Z"
}, - "external_payment_date": "2024-02-01",
- "external_payment_number": "PAY-123456",
- "external_payment_status": "completed",
- "fields": [ ],
- "kid": "1234567890123",
- "marked_as": "reviewed",
- "matched_purchase_orders": [ ],
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_term": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "days_to_pay": 0,
- "days_to_pay_condition": "string",
- "discount_percentage": "string",
- "discount_days": 0,
- "discount_days_condition": "string",
- "remote_id": "string"
}, - "po_number": "PO-2024-001",
- "posting_error": "Connection timeout",
- "remote_data": { },
- "self_assessed_use_tax_account": "USE-TAX-001",
- "self_assessed_use_tax_amount": "5.00",
- "service_period_end": "2024-01-31",
- "service_period_start": "2024-01-01",
- "source": "EHF",
- "updated_at": "2024-01-15T10:30:00Z"
}
}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.
Create a new imported bill with the given remote_id. If a bill with the
same remote_id already exists, returns an error.
Imported bills are automatically set to "posted" status.
Document Upload: You can upload a document along with the bill data using multipart/form-data.
When using multipart, send the bill data fields directly and the file as document.
VAT Handling: If total_vat_amount is provided and greater than zero, the system
will automatically create a hidden VAT line item in addition to the provided line items.
Note: Only bills imported via the API can be updated later using the update endpoint.
Create a new imported bill.
| account_number | string or null <= 255 characters Vendor account number used on the bill. |
| ref_number required | string <= 255 characters The reference number that appears on the bill. |
| vendor_remote_id required | string <= 255 characters The external ID of the vendor in your system. |
| transaction_type required | string Enum: "invoice" "credit_note" The type of transaction. |
| remote_updated_at required | string <date-time> When the bill was last updated in your system. |
| remote_id required | string <= 255 characters The external ID of the bill in your system. |
| issue_date | string or null <date> The date the bill was issued. |
| due_date | string or null <date> The date the bill is due. |
| currency | string or null <ISO-4217> <= 3 characters The currency code the bill is in. |
| description | string or null <= 255 characters Description of the bill. |
| gl_date | string or null <date> The general ledger date. |
| language | string or null <= 2 characters The language of the bill. |
| po_number | string or null <= 255 characters The purchase order number. |
| service_period_start | string or null <date> Start of the service period for the bill. |
| service_period_end | string or null <date> End of the service period for the bill. |
| total_amount | string or null <decimal> The total amount of the bill including taxes. |
| total_vat_amount | string or null <decimal> The total VAT amount of the bill. |
| payment_term_id | string or null <uuid> The id of the Payment Term to use. |
InvoicePaymentInputV2 (object) or null | |
CreditAccountInputV2 (object) or null | |
Array of objects (BillLineItemInputV2) Default: [] Line items for the bill. | |
Array of objects (BillOfLadingNumberV2) Default: [] Bill of Lading (BOL) numbers associated with the bill. | |
Array of objects (InvoiceFieldInput) Custom invoice fields configured on the company. |
{- "account_number": "ACC-1001",
- "ref_number": "INV-2024-001",
- "vendor_remote_id": "vendor-123",
- "transaction_type": "invoice",
- "remote_updated_at": "2024-01-15T10:30:00",
- "remote_id": "remote-123",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "currency": "USD",
- "description": "Monthly service fee",
- "gl_date": "2024-01-15",
- "language": "en",
- "po_number": "PO-2024-001",
- "service_period_start": "2024-01-01",
- "service_period_end": "2024-01-31",
- "total_amount": "120.00",
- "total_vat_amount": "20.00",
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_info": {
- "bank_account_number": "string",
- "bankgiro": "string",
- "plusgiro": "string",
- "bban": "string",
- "default_method": "bank_account",
- "international_bank_account": {
- "iban": "string",
- "bic": "string"
}
}, - "credit_account": {
- "kid": "string",
- "credit_account_remote_id": "string",
- "credit_account_id": "string"
}, - "line_items": [ ],
- "bol_numbers": [ ],
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "ref_number": "INV-2024-001",
- "remote_id": "remote-123",
- "status": "posted",
- "transaction_type": "invoice",
- "vendor": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "remote_id": "vendor-123",
- "name": "Acme Corp",
- "org_number": "987654321"
}, - "company": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "remote_id": "company-123"
}, - "currency": "USD",
- "description": "Monthly service fee",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "gl_date": "2024-01-15",
- "language": "en",
- "line_items": [ ],
- "payment_info": {
- "bank_account_number": "1234567890",
- "bic": "DNBANOKKXXX",
- "iban": "NO9386011117947",
- "bankgiro": "123456789",
- "plusgiro": "123456789"
}, - "remote_updated_at": "2024-01-15T10:30:00",
- "account_number": "ACC-1001",
- "amount_freight": "15.00",
- "amount_net": "100.00",
- "amount_sum": "135.00",
- "amount_tax": "20.00",
- "amount_vat": "20.00",
- "bill_status": "unpaid",
- "bol_numbers": [ ],
- "credit_account": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "name": "Office Expenses",
- "number": "6100",
- "remote_id": "ext-cost-123",
- "sub_type": "expense",
- "remote_updated_at": "2024-01-15T10:30:00Z"
}, - "external_payment_date": "2024-02-01",
- "external_payment_number": "PAY-123456",
- "external_payment_status": "completed",
- "fields": [ ],
- "kid": "1234567890123",
- "marked_as": "reviewed",
- "matched_purchase_orders": [ ],
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_term": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "days_to_pay": 0,
- "days_to_pay_condition": "string",
- "discount_percentage": "string",
- "discount_days": 0,
- "discount_days_condition": "string",
- "remote_id": "string"
}, - "po_number": "PO-2024-001",
- "posting_error": "Connection timeout",
- "remote_data": { },
- "self_assessed_use_tax_account": "USE-TAX-001",
- "self_assessed_use_tax_amount": "5.00",
- "service_period_end": "2024-01-31",
- "service_period_start": "2024-01-01",
- "source": "EHF",
- "updated_at": "2024-01-15T10:30:00Z"
}
}Update an existing imported bill with the given id. If no bill
with the id exists, returns an error.
Only bills that were previously imported via the API can be updated. Attempting to update a bill that was not imported via the API will result in an error.
Document Upload: You can upload a new document along with the bill data using multipart/form-data.
When using multipart, send the bill data fields directly and the file as document.
VAT Handling: If total_vat_amount is provided and greater than zero, the system
will automatically create a hidden VAT line item in addition to the provided line items.
Note: This is a full replacement operation. All fields unspecified will be
treated as if they were null and will be cleared on the bill.
| id required | string The ID of the bill in the Vic system. |
Update an existing imported bill.
| account_number | string or null <= 255 characters Vendor account number used on the bill. |
| ref_number required | string <= 255 characters The reference number that appears on the bill. |
| vendor_remote_id required | string <= 255 characters The external ID of the vendor in your system. |
| transaction_type required | string Enum: "invoice" "credit_note" The type of transaction. |
| remote_updated_at required | string <date-time> When the bill was last updated in your system. |
| remote_id required | string <= 255 characters The external ID of the bill in your system. |
| issue_date | string or null <date> The date the bill was issued. |
| due_date | string or null <date> The date the bill is due. |
| currency | string or null <ISO-4217> <= 3 characters The currency code the bill is in. |
| description | string or null <= 255 characters Description of the bill. |
| gl_date | string or null <date> The general ledger date. |
| language | string or null <= 2 characters The language of the bill. |
| po_number | string or null <= 255 characters The purchase order number. |
| service_period_start | string or null <date> Start of the service period for the bill. |
| service_period_end | string or null <date> End of the service period for the bill. |
| total_amount | string or null <decimal> The total amount of the bill including taxes. |
| total_vat_amount | string or null <decimal> The total VAT amount of the bill. |
| payment_term_id | string or null <uuid> The id of the Payment Term to use. |
InvoicePaymentInputV2 (object) or null | |
CreditAccountInputV2 (object) or null | |
Array of objects (BillLineItemInputV2) Default: [] Line items for the bill. | |
Array of objects (BillOfLadingNumberV2) Default: [] Bill of Lading (BOL) numbers associated with the bill. | |
Array of objects (InvoiceFieldInput) Custom invoice fields configured on the company. |
{- "account_number": "ACC-1001",
- "ref_number": "INV-2024-001",
- "vendor_remote_id": "vendor-123",
- "transaction_type": "invoice",
- "remote_updated_at": "2024-01-15T10:30:00",
- "remote_id": "remote-123",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "currency": "USD",
- "description": "Monthly service fee",
- "gl_date": "2024-01-15",
- "language": "en",
- "po_number": "PO-2024-001",
- "service_period_start": "2024-01-01",
- "service_period_end": "2024-01-31",
- "total_amount": "120.00",
- "total_vat_amount": "20.00",
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_info": {
- "bank_account_number": "string",
- "bankgiro": "string",
- "plusgiro": "string",
- "bban": "string",
- "default_method": "bank_account",
- "international_bank_account": {
- "iban": "string",
- "bic": "string"
}
}, - "credit_account": {
- "kid": "string",
- "credit_account_remote_id": "string",
- "credit_account_id": "string"
}, - "line_items": [ ],
- "bol_numbers": [ ],
- "fields": [
- {
- "label": "Project Code",
- "value": "PRJ-2024-001"
}
]
}{- "data": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "ref_number": "INV-2024-001",
- "remote_id": "remote-123",
- "status": "posted",
- "transaction_type": "invoice",
- "vendor": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "remote_id": "vendor-123",
- "name": "Acme Corp",
- "org_number": "987654321"
}, - "company": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "remote_id": "company-123"
}, - "currency": "USD",
- "description": "Monthly service fee",
- "issue_date": "2024-01-15",
- "due_date": "2024-02-15",
- "gl_date": "2024-01-15",
- "language": "en",
- "line_items": [ ],
- "payment_info": {
- "bank_account_number": "1234567890",
- "bic": "DNBANOKKXXX",
- "iban": "NO9386011117947",
- "bankgiro": "123456789",
- "plusgiro": "123456789"
}, - "remote_updated_at": "2024-01-15T10:30:00",
- "account_number": "ACC-1001",
- "amount_freight": "15.00",
- "amount_net": "100.00",
- "amount_sum": "135.00",
- "amount_tax": "20.00",
- "amount_vat": "20.00",
- "bill_status": "unpaid",
- "bol_numbers": [ ],
- "credit_account": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "legacy_id": "12345",
- "name": "Office Expenses",
- "number": "6100",
- "remote_id": "ext-cost-123",
- "sub_type": "expense",
- "remote_updated_at": "2024-01-15T10:30:00Z"
}, - "external_payment_date": "2024-02-01",
- "external_payment_number": "PAY-123456",
- "external_payment_status": "completed",
- "fields": [ ],
- "kid": "1234567890123",
- "marked_as": "reviewed",
- "matched_purchase_orders": [ ],
- "payment_term_id": "550e8400-e29b-41d4-a716-446655440000",
- "payment_term": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "days_to_pay": 0,
- "days_to_pay_condition": "string",
- "discount_percentage": "string",
- "discount_days": 0,
- "discount_days_condition": "string",
- "remote_id": "string"
}, - "po_number": "PO-2024-001",
- "posting_error": "Connection timeout",
- "remote_data": { },
- "self_assessed_use_tax_account": "USE-TAX-001",
- "self_assessed_use_tax_amount": "5.00",
- "service_period_end": "2024-01-31",
- "service_period_start": "2024-01-01",
- "source": "EHF",
- "updated_at": "2024-01-15T10:30:00Z"
}
}Get the status of all available CSV reports. This endpoint returns a list
of all supported report types along with their current status (READY or NOT_READY).
Reports that are READY can be downloaded immediately.
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
{- "reports": [
- {
- "name": "companyUsers",
- "status": "READY"
}
]
}Generate all available CSV reports. This operation is asynchronous - the reports will be queued for generation and their status will be NOT_READY initially. Use the GET endpoint to check when reports are READY and can be downloaded. This endpoint has rate limiting (max 1 requests per hour).
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
Generate CSV reports with optional date filtering.
| reportStartAt | string <date-time> Optional filter for the report data (ISO 8601 format). If not provided (default 60 days ago at the start of the day). |
| reportEndAt | string <date-time> Optional end date for the report data (ISO 8601 format). If not provided, all data up to the current date will be included. |
{- "reportStartAt": "2024-01-01T00:00:00Z",
- "reportEndAt": "2026-12-31T23:59:59Z"
}{- "reports": [
- {
- "name": "companyUsers",
- "status": "READY"
}
]
}Download a specific CSV report by name. Returns a redirect (302) to a signed URL where the CSV file can be downloaded. The report must be in READY status to be downloadable otherwise it will return a 404.
Note: This feature is only available to customers with analytics CSV reports enabled.
If you would like access to the reports please contact Customer Support.
| report_name required | string Example: companyUsers The name of the CSV report to download. Forwards to the location of the CSV file and also returns the signedUrl. |
{- "code": 100,
- "message": "string"
}#/components/schemas/VendorV2:legal_name: The legal name of the vendordoing_business_as: The DBA (doing business as) nametax_id_type: Type of tax identifier (SSN, EIN, or other)ofac_status: OFAC screening status (in_progress, cleared, needs_review, rejected)ofac_report: Most recent OFAC screening report with risk assessment details including hit counts, risk level, matches, and screening date#/components/schemas/VendorTaxInfo to include tax_id_type field#/components/schemas/VendorOfacReport schema for OFAC report structurePUT /v2/vendors/{id} endpointvendor_onboarding_form_completed webhook eventexpiresAt and expires_at fields from v0 and v2 subscriptions.#/components/schemas/SubscriptionUpsert#/components/schemas/SubscriptionUpsert#/components/schemas/SubscriptionV2#/components/schemas/UpdateSubscriptionV2#/components/schemas/CreateSubscriptionV2PUT /v2/vendors/{id} endpoint for updating vendor informationremote_id and confirmed_at fieldsvendor_onboarding_form_completed#/components/schemas/WebhookEventName enumGET /v2/subscriptionsPOST /v2/subscriptionsGET /v2/subscriptions/{id}PUT /v2/subscriptions/{id}DELETE /v2/subscriptions/{id}GET /v2/companies/{company_id}/subscriptionsPOST /v2/companies/{company_id}/subscriptionsGET /v2/companies/{company_id}/subscriptions/{id}PUT /v2/companies/{company_id}/subscriptions/{id}DELETE /v2/companies/{company_id}/subscriptions/{id}number field to cost account objects in V2 API responses:cost_account in #/components/schemas/BillLineItemV2credit_account in #/components/schemas/BillV2subtype → sub_type for cost account objects to match actual API response formatCostAccountV2 component:#/components/schemas/CostAccountV2 schema definitioncost_account and credit_account now reference this shared schemaorg_number field to sparse vendor objects in V2 API responses (used in BillV2.vendor and invoice endpoints)SparseVendorV2 component:#/components/schemas/SparseVendorV2 schema definitionBillV2.vendor now references this shared schemacompany field to BillV2 object.GET /v2/invoices/{id}/document for downloading Invoice PDF.PUT /v0/purchaseOrders/{purchaseOrderId}matched_purchase_orders list to BillV2 objectPUT /v0/purchaseOrders/{purchaseOrderId}PUT /v0/purchaseOrderLineItems/{purchaseOrderLineItemId}GET /v0/purchaseOrderLineItems/{purchaseOrderLineItemId} endpoint to retrieve a purchase order line item.GET /v2/companies by remote_id.id to #/components/schemas/Invoice.occurred_after and occurred_before are now required for GET /v0/webhooks/events endpoint.occurred_after and occurred_before for GET /v0/webhooks/events endpoint.#/components/schemas/MatchedPurchaseOrdermatchedPurchaseOrders to #/components/schemas/Invoice.#/components/schemas/NonNegativeMonetaryValueCreatePurchaseOrderItem.unitAmount reference to NonNegativeMonetaryValueCreatePurchaseOrderLineItem.unitAmount reference to NonNegativeMonetaryValueUpdatePurchaseOrderLineItem.unitAmount reference to NonNegativeMonetaryValuePurchaseOrderLineItem.unitAmount reference to NonNegativeMonetaryValueDELETE /v0/purchaseOrders/{id} endpoint#/components/responses/UnprocessableEntityResponse responsePUT /v0/purchaseOrders/{id} endpoint descriptionDELETE /v0/purchaseOrderLineItems/{id} endpoint descriptionPUT /v0/purchaseOrderLineItems/{id} endpoint descriptionGET /v2/companies/{company_id}/subscriptionsPOST /v2/companies/{company_id}/subscriptionsGET /v2/companies/{company_id}/subscriptions/{id}PUT /v2/companies/{company_id}/subscriptions/{id}DELETE /v2/companies/{company_id}/subscriptions/{id}GET /v2/subscriptionsPOST /v2/subscriptionsGET /v2/subscriptions/{id}PUT /v2/subscriptions/{id}DELETE /v2/subscriptions/{id}#/components/schemas/PurchaseOrderLineField#/components/schemas/PurchaseOrderLineFieldInputfields to the following components:#/components/schemas/PurchaseOrderLineItem#/components/schemas/CreatePurchaseOrderItem#/components/schemas/CreatePurchaseOrderLineItem#/components/schemas/UpdatePurchaseOrderLineItemGET /v2/subscriptions for listing webhook subscriptions with filtering capabilities.POST /v2/subscriptions for creating webhook subscriptions.GET /v2/subscriptions/{id} for retrieving a specific webhook subscription.PUT /v2/subscriptions/{id} for updating webhook subscriptions.DELETE /v2/subscriptions/{id} for deleting webhook subscriptions.fields to the following components:#/components/schemas/CreateInvoiceLineItem#/components/schemas/UpdateInvoiceLineItemGET /v0/webhooks/events for listing all webhook events with filtering capabilities.GET /v0/webhooks/events/{event_id} for retrieving a specific webhook event.GET /v2/webhook_event_types for listing all available webhook event types.GET /v2/companies/{company_id}/webhook/events for listing all webhook events with filtering capabilities at v2 API.GET /v2/companies/{company_id}/webhook/events/{event_id} for retrieving a specific webhook event at v2 API.lineFields on #/components/schemas/InvoiceLineItem, use fields instead.amount will be removed completely soon from #/components/schemas/InvoiceLineItem.amountSum, amountVat, amountNet, and amountFreight to #/components/schemas/Invoice.amountSum, amountNet, and amountFreight to #/components/schemas/InvoiceLineItem.amountSum, amountVat, amountNet, and amountFreight to #/components/schemas/TrainingInvoice.totalAmount on #/components/schemas/Invoice, use amountSum instead.totalVatAmount on #/components/schemas/Invoice, use amountVat instead.amountWithoutTax on #/components/schemas/Invoice, use amountNet instead.lineItemTotal on #/components/schemas/InvoiceLineItem, use amountSum instead.POST /v2/bills for creating a new imported bill with automatic "posted" status.PUT /v2/bills/{id} for updating an existing imported bill (API-imported bills only).#/components/schemas/BillInputV2 for base bill input data with common properties.#/components/schemas/BillV2 for complete bill response with line items and payment details.#/components/schemas/BillLineItemV2 for bill line items with cost accounting and tax information.#/components/schemas/CreateBillV2 for creating new imported bills.#/components/schemas/UpdateBillV2 for updating existing imported bills.POST /v0/csvReports for starting the generating all of the CSV reports.GET /v0/csvReports for listing the status of all of the CSV reports.GET /v0/csvReports/{report_name} for downloading a specific CSV report.#/components/schemas/PaymentReferenceId.#/components/schemas/PaymentMethod.referenceId and paymentMethod to the following components:#/components/schemas/Payment#/components/schemas/Creditmemo to the following components:#/components/schemas/CreatePurchaseOrderItem#/components/schemas/CreatePurchaseOrderLineItem#/components/schemas/PurchaseOrderLineItem#/components/schemas/UpdatePurchaseOrderLineItem#/components/schemas/InvoiceStatus based on #/components/schemas/InvoiceState
with an additional value APPROVED.#/components/schemas/Invoice.status reference to #/components/schemas/InvoiceStatus.externalId and types to listDimensions query parameters. This will
allow you to filter the results of dimensions that have the same externalId
but different types.totalVatAmount to #/components/schemas/CreateInvoicetotalVatAmount to #/components/schemas/TrainingInvoiceUpsertpoMatchingDocumentLevel to #/components/schemas/VendorpoMatchingDocumentLevel to #/components/schemas/VendorUpsertname on #/components/schemas/VendorUpsert required. This has been
required by the api for a long time, but we have not marked it as required in
the docs.PurchaseOrderMatchingType component and fields to related components.#/components/schemas/PurchaseOrderMatchingType.matchingType to #/components/schemas/CreatePurchaseOrder.matchingType to #/components/schemas/UpdatePurchaseOrder.matchingType to #/components/schemas/PurchaseOrder.type on the following components:#/components/schemas/PurchaseOrderType#/components/schemas/CreatePurchaseOrder#/components/schemas/UpdatePurchaseOrder#/components/schemas/PurchaseOrdercreatedOn to #/components/schemas/PurchaseOrder. It was allowed to
be set on update and create, but was never returned.externalId to #/components/schemas/PurchaseOrderLineItem#/components/schemas/ExternalId on objects that have an externalId
defined.PurchaseOrderLineItem status component and fields to related components.#/components/schemas/PurchaseOrderLineItemStatus.status to #/components/schemas/CreatePurchaseOrderLineItem.status to #/components/schemas/UpdatePurchaseOrderLineItem.status to #/components/schemas/PurchaseOrderLineItem.metadata.metadata to #/components/schemas/UserV2.metadata to #/components/schemas/CreateUserV2.metadata to #/components/schemas/UpdateUserV2.GET /v2/organizations/{organization_id}/users lists all users within an
organization.POST /v2/organizations/{organization_id}/users creates and attaches a
new user to the organization.POST /v2/organizations/{organization_id}/users/attach to attach an
existing user to an organization.GET /v2/companies/{organization_id}/users to list all users attached to
a company.POST /v2/companies/{organization_id}/users to create a new user and
attach it to the company.POST /v2/companies/{organization_id}/users/attach to attach an existing
user to an organization.GET /v2/users to list all accessible users.GET /v2/users/{user_id} to fetch a user.PUT /v2/users/{user_id} to update an existing user.amount on #/components/schemas/InvoiceLineItem as deprecated. Please
use lineItemTotal.type component and fields to related components.#/components/schemas/PurchaseOrderType.type to #/components/schemas/CreatePurchaseOrder.type to #/components/schemas/UpdatePurchaseOrder.type to #/components/schemas/PurchaseOrder.GET /v2/organizations/{organization_id} to fetch a single organization.GET /v2/organizations to search and list available organizations.acceptedAt to #/components/schemas/Payment.acceptedAt to #/components/schemas/Credit.FOUR_WAY renamed to four_wayTHREE_WAY renamed to three_wayTWO_WAY renamed to two_wayPOST - /v0/accounts/synchronize to synchronize GL Accounts.POST - /v0/dimensions/synchronize to synchronize Dimensions.POST - /v0/paymentTerms/synchronize to synchronize Payment Terms.POST - /v0/purchaseOrders/synchronize to synchronize Purchase Orders.POST - /v0/vatCodes/synchronize to synchronize Vat Codes.POST - /v0/vendors/synchronize to synchronize Vendors.GET - /v0/paymentTerms/{id} to fetch a payment term using the internal
id or external id if useSystem=external is passed.useSystem=external for updatePaymentTerm and
deletePaymentTerm.useSystem=external for getPurchaseOrder,
updatePurchaseOrder, deletePurchaseOrder, getPurchaseOrderItem, and
deletePurchaseOrderItemnumber to #/components/schemas/CreateInvoiceLineItemnumber to #/components/schemas/InvoiceLineItemnumber to #/components/schemas/TrainingInvoiceLineItemUpsertamountTax to #/components/schemas/TrainingInvoiceLineItemUpsertunitPrice to #/components/schemas/CreateInvoiceLineItemunitPrice to #/components/schemas/TrainingInvoiceLineItemUpsertsiteOwner to #/components/schemas/CreatePurchaseOrdersiteOwner to #/components/schemas/UpdatePurchaseOrdertaxCode to #/components/schemas/InvoiceLineItemtaxCodeId to #/components/schemas/TrainingInvoiceLineItemUpsertvatRate to #/components/schemas/InvoiceLineItemInfo.totalAmount to #/components/schemas/CreateInvoice.totalAmount to #/components/schemas/TrainingInvoiceUpsert.settlementAmount to #/components/schemas/Payment.settlementAmount to #/components/schemas/Credit.settlementCurrencyId to #/components/schemas/Payment.settlementCurrencyId to #/components/schemas/Credit.exchangeRate to #/components/schemas/Credit.exchangeRate to #/components/schemas/Payment.#/components/schemas/LineItemVat.#/components/schemas/CreateInvoiceLineItem.#/components/schemas/TrainingInvoiceLineItemUpsert.#/components/schemas/VendorLookupByInternalId.#/components/schemas/VendorLookupByExternalId.#/components/schemas/VendorLookupByName.#/components/schemas/VendorLookupByOrgNumberAndBankAccount.#/components/schemas/VendorLookupByOrgNumber.#/components/schemas/VendorLookup to be one of the new vendor look ups.3.1.0.rate to #/components/schemas/LineItemVatpaymentTermId to #/components/schemas/InvoiceinternalUpdateAt and externalUpdatedAt to #/components/schemas/Invoice.externalUpdatedAt to #/components/schemas/TrainingInvoice.internalUpdatedAt and externalUpdatedAt fields.listPurchaseOrders operation.refNumber to TrainingInvoiceUpsert required fields.issuedOn to be non nullable for #/components/schemas/CreateInvoiceLineItem.costAccountExternalId from TrainingInvoiceUpsert required fields.#/components/schemas/VendorRef to #/components/schemas/VendorLookup.#/components/schemas/InvoiceRef.#/components/schemas/CostAccountRef.#/components/schemas/VendorRef.#/components/schemas/PaymentStatus.#/components/schemas/CreditStatus.#/components/schemas/PaymentBatchStatus.#/components/schemas/Payment.#/components/schemas/Credit.#/components/schemas/PaymentBatch.listPaymentBatches operation.getPaymentBatch operation.paymentTermId to #/components/schemas/Vendor.paymentTermId to #/components/schemas/VendorUpsert.paymentTermId to #/components/schemas/VendorCallback.productNumber for #/components/schemas/CreatePurchaseOrderItem.productNumber for #/components/schemas/CreatePurchaseOrderLineItem.productNumber for #/components/schemas/UpdatePurchaseOrderLineItem.productNumber for #/components/schemas/PurchaseOrderLineItem.requestor for #/components/schemas/CreatePurchaseOrder to
be a PurchaseOrderRequestor object.selfAssessedUseTaxAmount to #/components/schemas/Invoice.selfAssessedUseTaxAccount to #/components/schemas/Invoice.createTaxCode operation.getTaxCodes operation.bolNumber with bolNumbers for #/components/schemas/Invoice.bolNumber with bolNumbers for #/components/schemas/TrainingInvoice.bolNumber with bolNumbers for #/components/schemas/CreateInvoice.bolNumber with bolNumbers for #/components/schemas/TrainingInvoiceUpsert.typeName to #/components/schemas/Dimension.typeName to #/components/schemas/DimensionUpsert.#/components/schemas/Account.#/components/schemas/AccountUpsert.#/components/schemas/CostAccountInfo.#/components/schemas/VendorManager.managers (#/components/schemas/VendorManager) to #/components/schemas/VendorUpsert.#/components/schemas/MatchItem.poItemsMatched to #/components/schemas/ which is an array of MatchItems.invoiceItemsMatched to #/components/schemas/PurchaseOrderLineItem
which is an array of MatchItems.For managing tags:
GET /v0/tags to get all tags.POST /v0/tag to create new tags.PUT /v0/tag/{id} to update tags.DELETE /v0/tag/{id} to delete tags.For managing vendor tags:
GET /v0/vendorTags to get all vendor tags.POST /v0/vendorTag to create new vendor tags.DELETE /v0/vendorTag/{id} to delete vendor tags.bolNumber (bill of lading number) to
#/components/schemas/CreateInvoice, #/components/schemas/TrainingInvoice
and #/components/schemas/TrainingInvoiceUpsertrequestor (#/components/schemas/PurchaseOrderRequestor) to
#/components/schemas/CreatePurchaseOrder and #/components/schemas/UpdatePurchaseOrderquantityRequested, quantityReceived,
quantityInvoiced, unitAmount, and lineItemTotal.lineNumber to #/components/schemas/CreatePurchaseOrderItemlineNumber to #/components/schemas/PurchaseOrderItemquantity to quantityRequested in #/components/schemas/CreatePurchaseOrderItemquantity to quantityRequested in #/components/schemas/PurchaseOrderItemquantityReceived to #/components/schemas/CreatePurchaseOrderItemquantityReceived to #/components/schemas/PurchaseOrderItemquantityInvoiced to #/components/schemas/InvoiceLineItemquantityInvoiced to #/components/schemas/CreateInvoiceLineItemquantityInvoiced to #/components/schemas/TrainingInvoiceLineItemUpsertlineItemTotal to #/components/schemas/InvoiceLineItempoLineNumber to #/components/schemas/InvoiceLineItempoNumber to #/components/schemas/InvoiceLineItem#/components/schemas/PurchaseOrderItem to #/components/schemas/PurchaseOrderLineItemvendor is now required for #/components/schemas/CreatePurchaseOrdervendor is now required for #/components/schemas/UpdatePurchaseOrderexternalId by adding it to #/components/schemas/InvoiceaccountNumber to #/components/schemas/CreateInvoiceservicePeriodStart to #/components/schemas/CreateInvoiceservicePeriodEnd to #/components/schemas/CreateInvoiceaccountNumber to #/components/schemas/TrainingInvoiceUpsertservicePeriodStart to #/components/schemas/TrainingInvoiceUpsertservicePeriodEnd to #/components/schemas/TrainingInvoiceUpsertcreateDimension operation.invoiceTransfer callback will now receive the same payload as the invoicePost
callback.typeExternalId to #/components/schemas/DimensionRef.#/components/schemas/DimensionRef.dimensionsExternalIds in #/components/schemas/TrainingInvoiceLineItemUpsert.
Instead please use the dimensions field which has the same functionality as
the createInvoice operation./v0/account/{id} to /v0/accounts/{id}/v0/dimension/{id} to /v0/dimensions/{id}/v0/invoice/{id}/confirm to /v0/invoices/{id}/confirm/v0/invoice/{id}/document to /v0/invoices/{id}/document/v0/invoice/{id}/lineItems to /v0/invoices/{id}/lineItems/v0/invoice/{id}/process to /v0/invoices/{id}/process/v0/invoice/{id}/reject to /v0/invoices/{id}/reject/v0/invoice/{id} to /v0/invoices/{id}/v0/trainingInvoice/{id}/document to /v0/trainingInvoices/{id}/document/v0/trainingInvoice/{id} to /v0/trainingInvoices/{id}/v0/vatCode/{id} to /v0/vatCodes/{id}/v0/vendor/{id}/errors to /v0/vendors/{id}/errors/v0/vendor/{id} to /v0/vendors/{id}typeExternalId to #/components/schemas/Dimension.typeExternalId to #/components/schemas/DimensionUpsert.type on #/components/schemas/Dimension.type on #/components/schemas/DimensionUpsert.name on #/components/schemas/Dimension.name on #/components/schemas/DimensionUpsert.name to be required for #/components/schemas/DimensionUpsert.#/components/schemas/QueryCommon.#/components/schemas/UpsertCommon.#/components/schemas/CreateInvoiceVendor to #/components/schemas/VendorRef.#/components/schemas/Currency to represent ISO-4217 codes.POST /v0/purchaseOrders to create purchase orders.GET /v0/purchaseOrders/{purchaseOrderId} to get a purchase order.POST /v0/purchaseOrders/{purchaseOrderId}/process to start the matching process.DELETE /v0/purchaseOrders/{purchaseOrderId} to delete purchase orders.#/components/schemas/PaymentInfoMethod enum.#/components/schemas/InternationalBankAccount object.bic and iban to be nullable on #/components/schemas/InternationalBankAccount.#/components/schemas/PaymentInfoUS, #/components/schemas/PaymentInfoNO, and #/components/schemas/PaymentInfoSE into a single #/components/schemas/PaymentInfo definition.#/components/schemas/PaymentInfo fields to be nullable.#/components/schemas/InvoiceLineItemInfoUS, #/components/schemas/InvoiceLineItemInfoSE, and #/components/schemas/InvoiceLineItemInfoNO into #/components/schemas/InvoiceLineItemInfo.#/components/schemas/InvoiceLineItemInfo fields to be nullable.invoiceLineItemInfo on #/components/schemas/TrainingInvoiceLineItemUpsert to be nullable.invoiceLineItemInfo on #/components/schemas/InvoiceLineItem to be nullable.#/components/schemas/Dimension.#/components/responses section.obtainToken response with #/components/responses/TokenCreatedResponsehealthCheck response with #/components/responses/HealthyResponselistAccounts response with #/components/responses/AccountsResponsegetAccount response with #/components/responses/AccountResponseupsertAccount response with #/components/responses/AccountUpsertedResponsedeleteAccount response with #/components/responses/AccountDeletedResponselistDimensions response with #/components/responses/DimensionsResponsegetDimension response with #/components/responses/DimensionResponseupsertDimension response with #/components/responses/DimensionCreatedResponse and #/components/responses/DimensionUpdatedResponsedeleteDimension response with #/components/responses/DimensionDeletedResponselistVendors response with #/components/responses/VendorsResponsegetVendor response with #/components/responses/VendorResponseupsertVendor response with #/components/responses/VendorCreatedResponse and #/components/responses/VendorUpdatedResponsedeleteVendor response with #/components/responses/VendorDeletedResponsesetVendorRemoteErrors response with #/components/responses/VendorRemoteErrorsUpdatedResponseclearVendorRemoteErrors response with #/components/responses/VendorRemoteErrorsClearedResponselistInvoices response with #/components/responses/InvoicesResponsecreateInvoice response with #/components/responses/InvoiceCreatedResponsegetInvoice response with #/components/responses/InvoiceResponseackInvoice response with #/components/responses/InvoiceResponsedeleteInvoice response with #/components/responses/InvoiceDeletedResponsestartProcessingInvoice response with #/components/responses/InvoiceResponsegetInvoiceDocument response with #/components/responses/InvoiceDocumentResponseconfirmInvoice response with #/components/responses/InvoiceConfirmedResponserejectInvoice response with #/components/responses/InvoiceRejectedResponsegetInvoicelineItems response with #/components/responses/InvoiceLineItemsResponselistTrainingInvoices response with #/components/responses/TrainingInvoicesResponseupsertTrainingInvoice response with #/components/responses/TrainingInvoiceUpsertedResponsedeleteTrainingInvoice response with #/components/responses/TrainingInvoiceDeletedResponsegetTrainingInvoiceDocument response with #/components/responses/TrainingInvoiceDocumentResponselistVatCodes response with #/components/responses/VatCodesResponsegetVatCode response with #/components/responses/VatCodeResponseupsertVatCode response with #/components/responses/VatCodeUpsertedResponsedeleteVatCode response with #/components/responses/VatCodeDeletedResponsegetSubscription response with #/components/responses/SubscriptionResponsesubscribe response with #/components/responses/SubscriptionUpsertedResponseunsubscribe response with #/components/responses/SubscriptionDeletedResponsegetCostAccounts response with #/components/responses/CostAccountsResponserequiredDimensionsExternal from #/components/schemas/Account.parentAccountExternalId from #/components/schemas/Account.requiredDimensionsInternal from #/components/schemas/Account.parentAccountInternalId from #/components/schemas/Account.requiredDimensionsExternal from #/components/schemas/AccountUpsert.parentAccountExternalId from #/components/schemas/AccountUpsert.parentDimensionExternalId from #/components/schemas/Dimension.parentDimensionInternalId from #/components/schemas/Dimension.parentDimensionExternalId from #/components/schemas/DimensionUpsert.POST /v0/invoice/{id}/reject.GET /v0/subscription to fetch the currently configured V0 subscription.customFields to #/components/schemas/Invoice.description to #/components/schemas/Vendor.VendorTaxInfo to #/components/schemas/VendorTaxInfo.#/components/schemas/TaxInfoUS. Has been combined to #/components/schemas/VendorTaxInfo.#/components/schemas/TaxInfoSE. Has been combined to #/components/schemas/VendorTaxInfo.#/components/schemas/TaxInfoNO. Has been combined to #/components/schemas/VendorTaxInfo.#/components/schemas/Account definition to use less inheritance.#/components/schemas/AccountUpsert definition to use less inheritance.#/components/schemas/Dimension definition to use less inheritance.#/components/schemas/DimensionUpsert definition to use less inheritance.#/components/schemas/Invoice definition to use less inheritance.#/components/schemas/InvoiceLineItem definition to use less inheritance.#/components/schemas/TrainingInvoice definition to use less inheritance.#/components/schemas/VatCode definition to use less inheritance.#/components/schemas/VatCodeUpsert definition to use less inheritance.#/components/schemas/Vendor definition to use less inheritance.#/components/schemas/VendorUpsert definition to use less inheritance.#/components/schemas/VendorConfirm definition to use less inheritance.#/components/schemas/VendorCallback definition to use less inheritance.#/components/schemas/AccountCommon.#/components/schemas/DimensionCommon.#/components/schemas/InvoiceCommon.#/components/schemas/InvoiceFetched.#/components/schemas/InvoiceRequirable.#/components/schemas/InvoiceLineItemCommon.#/components/schemas/VatCodeCommon.#/components/schemas/VatCodeRequirable.#/components/schemas/VendorRequirable.#/components/schemas/VendorCommon.bban to #/components/schemas/PaymentInfoSEbban to #/components/schemas/PaymentInfoNOBBAN to the allowed enum for defaultMethod on #/components/schemas/PaymentInfoSEBBAN to the allowed enum for defaultMethod on #/components/schemas/PaymentInfoNOsource to #/components/schemas/Invoice.vendor to #/components/schemas/Invoice.paymentRef to #/components/schemas/Invoice.paymentTerm to #/components/schemas/Invoice.dimensions to #/components/schemas/InvoiceLineItem.costAccount to #/components/schemas/InvoiceLineItem.vat to #/components/schemas/InvoiceLineItem.GET /v0/invoice/{id}/lineItems to fetch ungrouped line items.kid as deprecated in #/components/schemas/InvoiceInfoNO.
The paymentRef field on #/components/schemas/Invoice should be used instead.dimensionsInternalIds as deprecated in #/components/schemas/InvoiceLineItem.
Use dimensions instead.dimensionsExternalIds as deprecated in #/components/schemas/InvoiceLineItem.
Use dimensions instead.costAccountInternalId as deprecated in #/components/schemas/InvoiceLineItem.
Use costAccount instead.costAccountExternalId as deprecated in #/components/schemas/InvoiceLineItem.
Use costAccount instead.vendorExternalId not required for #/components/schemas/Invoice.createInvoice to have lineItems specified.useSystem directive to startProcessingInvoiceuseSystem directive to uploadDocumentInvoiceexternalId is no longer required for createInvoice.state for GET /v0/vendors.POST /v0/invoices to begin the creation of an invoice.POST /v0/invoice/{id}/document to attach a document to an invoice.POST /v0/invoice/{id}/process to notify Vic that the invoice may now
start being processed.application/json request body from PUT /v0/trainingInvoice/{id}.
All requests should just be multipart/form-data.Vendor.confirmedAt field.NullableInternalId. Replaced with allOf: ["#/components/schemas/InternalId"]; followed by a nullable: true.NullableExternalId. Replaced with allOf: ["#/components/schemas/ExternalId"]; followed by a nullable: true.NullableObject. Replaced with allOf: ["#/components/schemas/ExternalData"]; followed by a nullable: true.NullableString. Replaced with type: string; followed by a nullable: true.InvoiceInfoUS. No replacement added.InvoiceInfoSE. No replacement added.InvoiceCommon.invoiceInfo to reference InvoiceInfoNOVendorState definition.GET /v0/costAccounts - Ability to get all the CostAccount for a company.200 response to PUT /v0/vendor/{id} definition when the vendor has
been updated, and 201 when the vendor has been created.errors to #/components/schemas/Vendor to convey errors that occurred in the ERP system.POST /v0/vendor/{id}/errors - Ability to set errors on a vendor.DELETE /v0/vendor/{id}/errors - Ability to clear errors on a vendor.confirmedAt on #/components/schemas/Vendor are allowed to be null.