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.
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/msword
application/pdf
application/vnd.ms-word.document.macroEnabled.12
application/vnd.ms-word.template.macroEnabled.12
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.openxmlformats-officedocument.wordprocessingml.template
image/tiff
text/xml
(See note below about supported EDI formats)image/jpg
image/jpeg
image/png
image/gif
application/vnd.ms-excel
application/vnd.ms-excel.addin.macroenabled.12
application/vnd.ms-excel.sheet.binary.macroenabled.12
application/vnd.ms-excel.sheet.macroenabled.12
application/vnd.ms-excel.template.macroenabled.12
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.openxmlformats-officedocument.spreadsheetml.template
Supported embedded attachment MIME codes:
application/pdf
image/jpeg
image/png
image/tiff
The 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. |
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"
}
]
}
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 |
[- {
- "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.
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.
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
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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID"
}
]
When creating an invoice, there are three steps to follow:
/invoices
/invoice/{id}/document
/invoice/{id}/process
You 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 64MB.
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 | |
MonetaryValue (string) The total amount of the invoice, including tax/VAT. | |
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",
- "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",
- "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"
}
], - "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "fields": [
- {
- "label": "string",
- "value": "string"
}
]
}
{- "totalAmount": "1.00",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "PAID"
}
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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "amountWithoutTax": "1.00",
- "amountTax": "1.00",
- "transactionType": "INVOICE",
- "refNumber": "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",
- "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": 0,
- "amount": 0,
- "amountTax": "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"
}
], - "postingError": "string",
- "documentUrl": "string",
- "status": "NOT_READY",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "selfAssessedUseTaxAmount": "1.00",
- "selfAssessedUseTaxAccount": "string",
- "markedAs": "PAID",
- "billStatus": "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",
- "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"
}
]
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",
- "refNumber": "string",
- "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",
- "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"
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "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",
- "refNumber": "string",
- "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",
- "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"
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "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",
- "refNumber": "string",
- "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",
- "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"
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "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",
- "refNumber": "string",
- "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",
- "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"
}
], - "externalData": { },
- "externalUpdatedAt": "2019-08-24T14:15:22Z",
- "bolNumbers": [
- {
- "bolNumber": "string"
}
], - "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",
- "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"
}, - "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",
- "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"
}, - "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, it is most likely safe to discard the rejected
payments or
credits. When payments or credits are voided
, this can happen for a
variety of reasons.
The payment provider can not process that payment due to an error.
The vendor attached to that payment is missing required information or
is no longer valid.
A stop payment was issued outside of Vic and support has had to go
remediate.
By no means is this list exhaustive and if you have questions, please
reach out to support.
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",
- "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"
}, - "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",
- "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"
}, - "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: "EXTERNAL" 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: "EXTERNAL" 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: "EXTERNAL" 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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
]
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) |
PurchaseOrderType (string) Default: "normal" The type of the purchase order. |
{- "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",
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "status": "open"
}
], - "type": "normal"
}
{- "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": "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
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: "EXTERNAL" 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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
Update a purchase order.
Once finished updating the purchase order you should also also call
processPurchaseOrder
to kick off reprocessing purchase order matching.
purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
useSystem | string Default: "EXTERNAL" 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. |
PurchaseOrderType (string) The type of the purchase order. |
{- "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"
}, - "type": "blanket"
}
{- "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": "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
Delete a purchase order.
Once finished updating the purchase order you should also also call
processPurchaseOrder
to kick off reprocessing purchase order matching.
purchaseOrderId required | string The internal id or external id of the purchase order. If using the
external id, you must pass |
useSystem | string Default: "EXTERNAL" 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: "EXTERNAL" 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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
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: "EXTERNAL" 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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
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: "EXTERNAL" 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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "string"
}
]
}, - "internalUpdatedAt": "2019-08-24T14:15:22Z",
- "issuedOn": "2019-08-24",
- "poNumber": "string",
- "deliverOn": "2019-08-24",
- "amount": "1.00",
- "currencyId": "USD",
- "status": "open",
- "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"
}
], - "status": "open"
}
]
}
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> (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. |
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 | |
status | string (PurchaseOrderLineItemStatus) Enum: "open" "closed" The status of the purchase order line item.
|
{- "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",
- "status": "open"
}
{- "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"
}
], - "status": "open"
}
Updates a purchase order's line item.
If there are existing matches made to an invoice that has been posted, you will not be able to update the purchase order line item.
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: "EXTERNAL" 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> (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. |
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. | |
Array of objects (DimensionRef) | |
status | string (PurchaseOrderLineItemStatus) Enum: "open" "closed" The status of the purchase order line item.
|
{- "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",
- "dimensions": [
- {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238",
- "name": "string",
- "typeExternalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
], - "status": "open"
}
{- "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"
}
], - "status": "open"
}
Delete a purchase order's line item.
If there are existing matches made to an invoice that has been posted, you will not be able to delete the purchase order line item.
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: "EXTERNAL" 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: "EXTERNAL" 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"
}
], - "status": "open"
}
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: "EXTERNAL" 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"
}
], - "status": "open"
}
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.
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.
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/attach
POST /v2/companies/{company_id}/users/attach
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 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 |
[- {
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "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 | 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 | |
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",
- "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",
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "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",
- "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",
- "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",
- "vendorGroupId": "c4299feb-c5fa-4e0b-a7a6-51fbfbe0854d",
- "externalData": { },
- "errors": [
- {
- "message": "string",
- "field": "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"
}
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"
}
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"
}
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",
"expiresAt": "2024-01-01T00:00:00Z"
}'
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",
"expiresAt": "2024-01-01T00:00:00Z",
"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",
"expiresAt": "2024-01-01T00:00:00Z",
"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.payment_batch_processed
The 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/vendorNew
invoicePost
- POST
https://yourCallbackUrl/invoicePost
invoiceTransfer
- POST
https://yourCallbackUrl/invoiceTransfer
syncRequest
- POST
https://yourCallbackUrl/syncRequest
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 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.
{
"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 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.
{
"event": "payment_batch_processed",
"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"
},
"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,
"invoice": {
"internalId": "900",
"externalId": "credit-note-id-in-erp"
},
"vendor": {
"internalId": "409",
"externalId": "vendor-id-in-erp"
},
}
]
}
}
This request is used to configure or modify a new 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 |
expiresAt required | string <date-time> |
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",
- "expiresAt": "2019-08-24T14:15:22Z",
- "events": [
- "all"
]
}
{- "accessToken": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "events": [
- "all"
]
}
{- "event": "all",
- "data": {
- "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",
- "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"
}, - "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",
- "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"
}, - "vendor": {
- "internalId": "string",
- "externalId": "21b31bc7-1267-4335-893c-d7fe4706a238"
}
}
]
}
}
This request is used to cancel a subscription to user actions. In conjunction with a post reqeust, you may use this as a first step to update subscription URLs or authorization tokens.
"OK"
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_way
THREE_WAY
renamed to three_way
TWO_WAY
renamed to two_way
POST - /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
deletePurchaseOrderItem
number
to #/components/schemas/CreateInvoiceLineItem
number
to #/components/schemas/InvoiceLineItem
number
to #/components/schemas/TrainingInvoiceLineItemUpsert
amountTax
to #/components/schemas/TrainingInvoiceLineItemUpsert
unitPrice
to #/components/schemas/CreateInvoiceLineItem
unitPrice
to #/components/schemas/TrainingInvoiceLineItemUpsert
siteOwner
to #/components/schemas/CreatePurchaseOrder
siteOwner
to #/components/schemas/UpdatePurchaseOrder
taxCode
to #/components/schemas/InvoiceLineItem
taxCodeId
to #/components/schemas/TrainingInvoiceLineItemUpsert
vatRate
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/LineItemVat
paymentTermId
to #/components/schemas/Invoice
internalUpdateAt
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 #/compnents/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 MatchItem
s.invoiceItemsMatched
to #/components/schemas/PurchaseOrderLineItem
which is an array of MatchItem
s.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/TrainingInvoiceUpsert
requestor
(#/components/schemas/PurchaseOrderRequestor
) to
#/components/schemas/CreatePurchaseOrder
and #/components/schemas/UpdatePurchaseOrder
quantityRequested
, quantityReceived
,
quantityInvoiced
, unitAmount
, and lineItemTotal
.lineNumber
to #/components/schemas/CreatePurchaseOrderItem
lineNumber
to #/components/schemas/PurchaseOrderItem
quantity
to quantityRequested
in #/components/schemas/CreatePurchaseOrderItem
quantity
to quantityRequested
in #/components/schemas/PurchaseOrderItem
quantityReceived
to #/components/schemas/CreatePurchaseOrderItem
quantityReceived
to #/components/schemas/PurchaseOrderItem
quantityInvoiced
to #/components/schemas/InvoiceLineItem
quantityInvoiced
to #/components/schemas/CreateInvoiceLineItem
quantityInvoiced
to #/components/schemas/TrainingInvoiceLineItemUpsert
lineItemTotal
to #/components/schemas/InvoiceLineItem
poLineNumber
to #/components/schemas/InvoiceLineItem
poNumber
to #/components/schemas/InvoiceLineItem
#/components/schemas/PurchaseOrderItem
to #/components/schemas/PurchaseOrderLineItem
vendor
is now required for #/components/schemas/CreatePurchaseOrder
vendor
is now required for #/components/schemas/UpdatePurchaseOrder
externalId
by adding it to #/components/schemas/Invoice
accountNumber
to #/components/schemas/CreateInvoice
servicePeriodStart
to #/components/schemas/CreateInvoice
servicePeriodEnd
to #/components/schemas/CreateInvoice
accountNumber
to #/components/schemas/TrainingInvoiceUpsert
servicePeriodStart
to #/components/schemas/TrainingInvoiceUpsert
servicePeriodEnd
to #/components/schemas/TrainingInvoiceUpsert
createDimension
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/TokenCreatedResponse
healthCheck
response with #/components/responses/HealthyResponse
listAccounts
response with #/components/responses/AccountsResponse
getAccount
response with #/components/responses/AccountResponse
upsertAccount
response with #/components/responses/AccountUpsertedResponse
deleteAccount
response with #/components/responses/AccountDeletedResponse
listDimensions
response with #/components/responses/DimensionsResponse
getDimension
response with #/components/responses/DimensionResponse
upsertDimension
response with #/components/responses/DimensionCreatedResponse
and #/components/responses/DimensionUpdatedResponse
deleteDimension
response with #/components/responses/DimensionDeletedResponse
listVendors
response with #/components/responses/VendorsResponse
getVendor
response with #/components/responses/VendorResponse
upsertVendor
response with #/components/responses/VendorCreatedResponse
and #/components/responses/VendorUpdatedResponse
deleteVendor
response with #/components/responses/VendorDeletedResponse
setVendorRemoteErrors
response with #/components/responses/VendorRemoteErrorsUpdatedResponse
clearVendorRemoteErrors
response with #/components/responses/VendorRemoteErrorsClearedResponse
listInvoices
response with #/components/responses/InvoicesResponse
createInvoice
response with #/components/responses/InvoiceCreatedResponse
getInvoice
response with #/components/responses/InvoiceResponse
ackInvoice
response with #/components/responses/InvoiceResponse
deleteInvoice
response with #/components/responses/InvoiceDeletedResponse
startProcessingInvoice
response with #/components/responses/InvoiceResponse
getInvoiceDocument
response with #/components/responses/InvoiceDocumentResponse
confirmInvoice
response with #/components/responses/InvoiceConfirmedResponse
rejectInvoice
response with #/components/responses/InvoiceRejectedResponse
getInvoicelineItems
response with #/components/responses/InvoiceLineItemsResponse
listTrainingInvoices
response with #/components/responses/TrainingInvoicesResponse
upsertTrainingInvoice
response with #/components/responses/TrainingInvoiceUpsertedResponse
deleteTrainingInvoice
response with #/components/responses/TrainingInvoiceDeletedResponse
getTrainingInvoiceDocument
response with #/components/responses/TrainingInvoiceDocumentResponse
listVatCodes
response with #/components/responses/VatCodesResponse
getVatCode
response with #/components/responses/VatCodeResponse
upsertVatCode
response with #/components/responses/VatCodeUpsertedResponse
deleteVatCode
response with #/components/responses/VatCodeDeletedResponse
getSubscription
response with #/components/responses/SubscriptionResponse
subscribe
response with #/components/responses/SubscriptionUpsertedResponse
unsubscribe
response with #/components/responses/SubscriptionDeletedResponse
getCostAccounts
response with #/components/responses/CostAccountsResponse
requiredDimensionsExternal
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 configued 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/PaymentInfoSE
bban
to #/components/schemas/PaymentInfoNO
BBAN
to the allowed enum for defaultMethod
on #/components/schemas/PaymentInfoSE
BBAN
to the allowed enum for defaultMethod
on #/components/schemas/PaymentInfoNO
source
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 startProcessingInvoice
useSystem
directive to uploadDocumentInvoice
externalId
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 InvoiceInfoNO
VendorState
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.