curl --request GET \
--url https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices \
--header 'Authorization: <api-key>'import requests
url = "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"vendorInvoices": [
{
"accountNumber": "<string>",
"amountReceived": 123,
"annotations": [
{
"confidence": 123,
"fieldLabel": "<string>",
"id": "<string>",
"pageNumber": 123,
"reasoning": "<string>",
"stampTitle": "<string>",
"text": "<string>",
"valueDate": "2023-12-25",
"valueNumber": "<string>"
}
],
"billTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"createdAt": "<unknown>",
"customerNumber": "<string>",
"department": "<string>",
"documentId": "<string>",
"dueDate": "2023-12-25",
"fobPoint": "<string>",
"freightAmount": 123,
"id": "<string>",
"incoterms": "<string>",
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"legibilityScore": "<unknown>",
"matchedPurchaseOrder": {
"id": "<string>",
"poDate": "2023-12-25",
"poNumber": "<string>",
"totalAmount": 123
},
"matchedPurchaseOrderId": "<string>",
"notes": "<string>",
"orderDate": "2023-12-25",
"paymentTermsDescription": "<string>",
"paymentTermsDiscountDays": 123,
"paymentTermsDiscountPercent": "<unknown>",
"paymentTermsNetDays": 123,
"poNumber": "<string>",
"projectNumber": "<string>",
"referenceNumbers": "<unknown>",
"remitTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"requisitionerName": "<string>",
"salesOrderNumber": "<string>",
"shipTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"shipVia": "<string>",
"specialInstructions": "<string>",
"subtotalAmount": 123,
"surchargeAmount": 123,
"taxAmount": 123,
"taxExempt": true,
"totalAmount": 123,
"vendor": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"vendorInvoiceLineItems": [
{
"chargeType": "<string>",
"customerPartNumber": "<string>",
"description": "<string>",
"discountPercent": "<unknown>",
"extendedAmount": 123,
"id": "<string>",
"lineNumber": 123,
"notes": "<string>",
"poLineNumber": "<string>",
"poNumber": "<string>",
"quantity": "<unknown>",
"quantityBackordered": "<unknown>",
"quantityOrdered": "<unknown>",
"quantityShipped": "<unknown>",
"taxAmount": 123,
"taxable": true,
"unitOfMeasure": "<string>",
"unitPriceAmount": 123,
"unitPriceBasis": "<unknown>",
"vendorPartNumber": "<string>",
"weight": "<unknown>",
"weightUnit": "<string>"
}
]
}
]
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}List Vendor Invoices By Document
Get the parsed vendor invoice(s) created from an uploaded document. Returns an empty list until parsing completes — poll after uploading to the presigned URL. If the uploaded PDF contained multiple documents it is split automatically and this returns one vendor invoice per document in the file, each appearing as its parse completes; the upload is fully processed when the document’s status is PROCESSING_COMPLETED.
curl --request GET \
--url https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices \
--header 'Authorization: <api-key>'import requests
url = "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/documents/{documentId}/vendor-invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"vendorInvoices": [
{
"accountNumber": "<string>",
"amountReceived": 123,
"annotations": [
{
"confidence": 123,
"fieldLabel": "<string>",
"id": "<string>",
"pageNumber": 123,
"reasoning": "<string>",
"stampTitle": "<string>",
"text": "<string>",
"valueDate": "2023-12-25",
"valueNumber": "<string>"
}
],
"billTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"createdAt": "<unknown>",
"customerNumber": "<string>",
"department": "<string>",
"documentId": "<string>",
"dueDate": "2023-12-25",
"fobPoint": "<string>",
"freightAmount": 123,
"id": "<string>",
"incoterms": "<string>",
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"legibilityScore": "<unknown>",
"matchedPurchaseOrder": {
"id": "<string>",
"poDate": "2023-12-25",
"poNumber": "<string>",
"totalAmount": 123
},
"matchedPurchaseOrderId": "<string>",
"notes": "<string>",
"orderDate": "2023-12-25",
"paymentTermsDescription": "<string>",
"paymentTermsDiscountDays": 123,
"paymentTermsDiscountPercent": "<unknown>",
"paymentTermsNetDays": 123,
"poNumber": "<string>",
"projectNumber": "<string>",
"referenceNumbers": "<unknown>",
"remitTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"requisitionerName": "<string>",
"salesOrderNumber": "<string>",
"shipTo": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"shipVia": "<string>",
"specialInstructions": "<string>",
"subtotalAmount": 123,
"surchargeAmount": 123,
"taxAmount": 123,
"taxExempt": true,
"totalAmount": 123,
"vendor": {
"address": {
"city": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"streetLine3": "<string>",
"zipOrPostalCode": "<string>"
},
"email": "<string>",
"name": "<string>",
"phone": "<string>"
},
"vendorInvoiceLineItems": [
{
"chargeType": "<string>",
"customerPartNumber": "<string>",
"description": "<string>",
"discountPercent": "<unknown>",
"extendedAmount": 123,
"id": "<string>",
"lineNumber": 123,
"notes": "<string>",
"poLineNumber": "<string>",
"poNumber": "<string>",
"quantity": "<unknown>",
"quantityBackordered": "<unknown>",
"quantityOrdered": "<unknown>",
"quantityShipped": "<unknown>",
"taxAmount": 123,
"taxable": true,
"unitOfMeasure": "<string>",
"unitPriceAmount": 123,
"unitPriceBasis": "<unknown>",
"vendorPartNumber": "<string>",
"weight": "<unknown>",
"weightUnit": "<string>"
}
]
}
]
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}Authorizations
Your API key, sent in the Authorization header: Authorization: YOUR_API_KEY. A Bearer prefix is also accepted (Authorization: Bearer YOUR_API_KEY). Keys are created in the Upwell dashboard (Account → API keys) and are scoped to one organization.
Path Parameters
"documentId" is required (enter it either in parameters or request body)
Response
Responses for GET /api/rest/documents/{documentId}/vendor-invoices
Show child attributes
Show child attributes

