const options = {method: 'GET', headers: {'x-dolfin-api-key': '<api-key>'}};
fetch('https://api.dolfinai.co/v1/bills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dolfinai.co/v1/bills"
headers = {"x-dolfin-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.dolfinai.co/v1/bills");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-dolfin-api-key", "<api-key>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request GET \
--url https://api.dolfinai.co/v1/bills \
--header 'x-dolfin-api-key: <api-key>'{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"rawFileType": "<string>",
"supplierId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggestedMatchedSupplierId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggestedMatchedSupplierConfidence": 123,
"supplierName": "<string>",
"supplierEmail": "<string>",
"supplierPhone": "<string>",
"supplierAddress": "<string>",
"deliveryAddress": "<string>",
"supplierAddressDetail": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"deliveryAddressDetail": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"supplierTaxId": "<string>",
"supplierWebsite": "<string>",
"supplierRegistrationNumber": "<string>",
"invoiceNumber": "<string>",
"invoiceDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"currency": "<string>",
"subTotal": 123,
"taxAmount": 123,
"totalAmount": 123,
"amountCredited": 123,
"outstanding": 123,
"paymentTerms": "<string>",
"paymentRef": "<string>",
"bankDetails": {
"accountHolderName": "<string>",
"accountNumber": "<string>",
"sortCode": "<string>",
"routingNumber": "<string>",
"iban": "<string>",
"bicSwift": "<string>",
"country": "<string>",
"currency": "<string>"
},
"confidence": 123,
"approvedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvedAt": "2023-11-07T05:31:56Z",
"rejectedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rejectedAt": "2023-11-07T05:31:56Z",
"rejectionReason": "<string>",
"voidedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"voidedAt": "2023-11-07T05:31:56Z",
"voidReason": "<string>",
"duplicateOfBillId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duplicateDetectedAt": "2023-11-07T05:31:56Z",
"duplicateDismissedAt": "2023-11-07T05:31:56Z",
"appliedApprovalPolicyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"appliedApprovalPolicyName": "<string>",
"approvalReasoning": "<string>",
"resolvedApproverUserIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"paymentDate": "2023-11-07T05:31:56Z",
"paymentMethod": "<string>",
"paidAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"matchSummary": {
"matchedPurchaseOrders": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"externalRef": "<string>"
}
],
"matchedDeliveryNotes": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"externalRef": "<string>"
}
]
},
"supplier": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "<string>",
"phone": "<string>",
"website": "<string>",
"taxNumber": "<string>",
"registrationNumber": "<string>",
"address": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"bankDetails": {
"accountHolderName": "<string>",
"accountNumber": "<string>",
"sortCode": "<string>",
"routingNumber": "<string>",
"iban": "<string>",
"bicSwift": "<string>",
"country": "<string>",
"currency": "<string>"
},
"bankDetailsVerified": true,
"bankDetailsVerifiedAt": "2023-11-07T05:31:56Z",
"paymentTermsDefault": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"lineItems": [
{
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sku": "<string>",
"quantity": 123,
"unit": "<string>",
"unitPrice": 123,
"taxRate": 123,
"taxAmount": 123,
"subTotal": 123,
"sortOrder": 123,
"category": "<string>",
"tags": [
"<string>"
],
"categoryConfirmed": true,
"spendClassConfirmed": true,
"suggestedCategory": "<string>",
"categoryConfidence": 123,
"spendClassConfidence": 123
}
],
"tags": [
"<string>"
]
}
],
"meta": {
"cursors": {
"current": "<string>",
"next": "<string>",
"previous": "<string>"
}
}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}List bills
List bills for the organisation with optional state, supplier, invoice number, tag, duplicate-flag, and date filtering.
Authentication. An API key (x-dolfin-api-key) together with the x-dolfin-organisation-id header identifying the organisation, or a JWT Bearer token that carries the organisation in its claims.
const options = {method: 'GET', headers: {'x-dolfin-api-key': '<api-key>'}};
fetch('https://api.dolfinai.co/v1/bills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dolfinai.co/v1/bills"
headers = {"x-dolfin-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.dolfinai.co/v1/bills");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-dolfin-api-key", "<api-key>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request GET \
--url https://api.dolfinai.co/v1/bills \
--header 'x-dolfin-api-key: <api-key>'{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"rawFileType": "<string>",
"supplierId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggestedMatchedSupplierId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggestedMatchedSupplierConfidence": 123,
"supplierName": "<string>",
"supplierEmail": "<string>",
"supplierPhone": "<string>",
"supplierAddress": "<string>",
"deliveryAddress": "<string>",
"supplierAddressDetail": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"deliveryAddressDetail": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"supplierTaxId": "<string>",
"supplierWebsite": "<string>",
"supplierRegistrationNumber": "<string>",
"invoiceNumber": "<string>",
"invoiceDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"currency": "<string>",
"subTotal": 123,
"taxAmount": 123,
"totalAmount": 123,
"amountCredited": 123,
"outstanding": 123,
"paymentTerms": "<string>",
"paymentRef": "<string>",
"bankDetails": {
"accountHolderName": "<string>",
"accountNumber": "<string>",
"sortCode": "<string>",
"routingNumber": "<string>",
"iban": "<string>",
"bicSwift": "<string>",
"country": "<string>",
"currency": "<string>"
},
"confidence": 123,
"approvedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvedAt": "2023-11-07T05:31:56Z",
"rejectedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rejectedAt": "2023-11-07T05:31:56Z",
"rejectionReason": "<string>",
"voidedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"voidedAt": "2023-11-07T05:31:56Z",
"voidReason": "<string>",
"duplicateOfBillId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duplicateDetectedAt": "2023-11-07T05:31:56Z",
"duplicateDismissedAt": "2023-11-07T05:31:56Z",
"appliedApprovalPolicyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"appliedApprovalPolicyName": "<string>",
"approvalReasoning": "<string>",
"resolvedApproverUserIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"paymentDate": "2023-11-07T05:31:56Z",
"paymentMethod": "<string>",
"paidAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"matchSummary": {
"matchedPurchaseOrders": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"externalRef": "<string>"
}
],
"matchedDeliveryNotes": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"externalRef": "<string>"
}
]
},
"supplier": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "<string>",
"phone": "<string>",
"website": "<string>",
"taxNumber": "<string>",
"registrationNumber": "<string>",
"address": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>",
"isEmpty": true
},
"bankDetails": {
"accountHolderName": "<string>",
"accountNumber": "<string>",
"sortCode": "<string>",
"routingNumber": "<string>",
"iban": "<string>",
"bicSwift": "<string>",
"country": "<string>",
"currency": "<string>"
},
"bankDetailsVerified": true,
"bankDetailsVerifiedAt": "2023-11-07T05:31:56Z",
"paymentTermsDefault": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"lineItems": [
{
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sku": "<string>",
"quantity": 123,
"unit": "<string>",
"unitPrice": 123,
"taxRate": 123,
"taxAmount": 123,
"subTotal": 123,
"sortOrder": 123,
"category": "<string>",
"tags": [
"<string>"
],
"categoryConfirmed": true,
"spendClassConfirmed": true,
"suggestedCategory": "<string>",
"categoryConfidence": 123,
"spendClassConfidence": 123
}
],
"tags": [
"<string>"
]
}
],
"meta": {
"cursors": {
"current": "<string>",
"next": "<string>",
"previous": "<string>"
}
}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Authorizations
An API key issued to your client. It carries the client's scope; org-scoped calls also require the x-dolfin-organisation-id header. Keys are created and revoked by a client administrator.
Headers
Target organisation. Required when authenticating with an API key; omit for Bearer callers (resolved from the token).
Query Parameters
Created, Extracting, PendingReview, NeedsApproval, Approved, Rejected, Scheduled, Paid, ExtractionFailed, PaymentInProgress, PaymentFailed, Voided, OcrProcessing, OcrFailed Populate matchSummary on each bill in the response — its three-way match status and the purchase orders and delivery notes it is matched to. Off by default: it costs two extra lookups for the page and is only meaningful for organisations that raise purchase orders. For per-line variances and match suggestions, fetch a bill's match group instead.
Filter by whether the bill was flagged as a possible duplicate of an earlier bill: true returns only flagged bills (the possible-duplicates queue), false only unflagged ones. Omit for all bills. Flagged bills that were since confirmed as not duplicates are still included by true, since they keep their link to the other bill.