List expense records attached to expense report for approval
Returns the expense records inside an expense report, in the approver’s view — restricted to records the calling approver has authority over.
curl --request GET \
--url https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses', 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://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses",
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: Bearer <token>"
],
]);
$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://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"meta": {
"count": 10,
"total": 242
},
"data": []
}{
"result": "error",
"code": "EXPENSE_RECORD_NOT_FOUND",
"description": "Expenses not found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The id of the organization of the user UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$Id of the expense report. UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$Query Parameters
The approval chain id to filter expense records included in the expense report
optional properties to include
verification, meta.abbreviation, meta.abbreviation.labels, meta.person, meta.capabilities, meta.cardTransaction, meta.splits, validationErrors max records to return
1 <= x <= 1000the offset to be used in list
x >= 0Response
OK
Hide child attributes
Hide child attributes
NEW, NORMAL, APPROVAL, APPROVED, REJECTED UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$Optimistic-lock counter, incremented on every update. On PUT, echo back the value from the last GET/PUT response to detect if the expense was changed by someone else since it was read; a mismatch returns 409. Optional; omit to skip this check.
Date that the user has selected for the expense. For receipt expenses it is purchase date. For mileages it is travel date and for per diems it is the first travel date.
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$Hide child attributes
Hide child attributes
"https://expense.findity.com/api/resources/8a5f867e9b204742a8cc2ca2b6c57358"
- Option 1
- Option 2
- Option 3
- Option 4
Hide child attributes
Hide child attributes
"https://expense.findity.com/api/resources/ba479b6fe32f4d5e87e6dda1e02e850b"
Date formatted according to users locale
"June 2, 2023"
Description of the value used for sorting
"June 1, 2023"
"Pens and erasers"
Description which contains the name of category
"Office supplies"
Reimbursement amount and currency formatted according to users locale
"44.5 SEK"
Total reimbursement amount and currency formatted according to users locale, only included if requesting meta.splits and the expense is the parent
"44.5 SEK"
If the report is rejected or contains expenses that has validation errors
If the expense is complete and ready to be sent, can contain warnings.
"ReceiptVerification"
description of expenseType property translated to the users language
Hide child attributes
Hide child attributes
Indicates if the expense record can be added to a report
false
Indicates if the expense record can be removed from a report
false
Indicates if the expense record can be deleted
true
true if the expense record can be sent in directly without report
true
Indicates if the expense record can be split
false
Indicates if the expense record can be edited
true
Indicates if the expense record can be merged with another expense record. Will only be true for expense records that are based on card transaction, has not been split and is editable by end user.
false
ONLY PART OF FoodBenefitsSpecifications! Indicates if breakfast is available for meal benefits.
false
ONLY PART OF FoodBenefitsSpecifications! Indicates if lunch is available for meal benefits.
false
ONLY PART OF FoodBenefitsSpecifications! Indicates if dinner is available for meal benefits.
false
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$"4a17f93476ce4bf2832236be26743853"
120
"Bank name"
"xxxxxxxxxxxx1234"
The expense-type-specific payload — receipt details, mileage details, per-diem details, or food-benefit details. Shape selected by the nested type discriminator.
- Option 1
- Option 2
- Option 3
- Option 4
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$ReceiptVerification The tip amount for the receipt, expressed as a non-negative decimal number in the receipt's currency. This is the canonical location for tip. For backwards compatibility the value is also mirrored on the deprecated representation.tip property.
x >= 0AUTHORIZATION_ACCEPTED, AUTHORIZATION_REJECTED, AUTHORIZATION_REVERSAL, CAPTURE, REFUND Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$EU Decoded fiscal QR string as sent in the qrScan request header on POST. Omitted when the resource has no QR data attached. Currently populated for Portuguese receipts.
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}${
"id": "62bfaa54dc9341819cd6f4ff4ae39f44",
"personId": "063ee3c7fa4b4728b418097299447f9d",
"contentType": "application/pdf",
"isTemporary": true,
"signatureType": null,
"signatureUrl": null,
"name": "receipt-photo.jpg",
"description": "Receipt photo",
"qrScan": "A:514482621*B:501878076*C:PT*D:FR*E:N*F:20260508*G:111 26A/154*H:J6Z9V4MR-154*I1:PT-MA*I7:68.50*I8:15.76*N:15.76*O:84.26*Q:T4Fn*R:116",
"scanResult": {
"id": "a185160800524ac68cbf0a18ad59649b",
"amount": 135,
"taxAmount": 23,
"currency": "SEK",
"purchaseDate": "2023-04-20",
"categoryIds": [
"575ba2572de74f38b947a07df93a2909",
"350dadb020694421aebc1d9473fa64a9"
],
"categoryId": "575ba2572de74f38b947a07df93a2909"
}
}
Hide child attributes
Hide child attributes
Deprecated. Tip is now a root receipt verification property (tip). A non-negative decimal number in the receipt's currency. This property is kept for backwards compatibility and mirrors the root value.
x >= 0Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$EU Decoded fiscal QR string as sent in the qrScan request header on POST. Omitted when the resource has no QR data attached. Currently populated for Portuguese receipts.
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}${
"id": "62bfaa54dc9341819cd6f4ff4ae39f44",
"personId": "063ee3c7fa4b4728b418097299447f9d",
"contentType": "application/pdf",
"isTemporary": true,
"signatureType": null,
"signatureUrl": null,
"name": "receipt-photo.jpg",
"description": "Receipt photo",
"qrScan": "A:514482621*B:501878076*C:PT*D:FR*E:N*F:20260508*G:111 26A/154*H:J6Z9V4MR-154*I1:PT-MA*I7:68.50*I8:15.76*N:15.76*O:84.26*Q:T4Fn*R:116",
"scanResult": {
"id": "a185160800524ac68cbf0a18ad59649b",
"amount": 135,
"taxAmount": 23,
"currency": "SEK",
"purchaseDate": "2023-04-20",
"categoryIds": [
"575ba2572de74f38b947a07df93a2909",
"350dadb020694421aebc1d9473fa64a9"
],
"categoryId": "575ba2572de74f38b947a07df93a2909"
}
}
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$EU Decoded fiscal QR string as sent in the qrScan request header on POST. Omitted when the resource has no QR data attached. Currently populated for Portuguese receipts.
Hide child attributes
Hide child attributes
UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$curl --request GET \
--url https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses', 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://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses",
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: Bearer <token>"
],
]);
$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://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/expense/me/organizations/{id}/approvals/{expenseReportId}/expenses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"meta": {
"count": 10,
"total": 242
},
"data": []
}{
"result": "error",
"code": "EXPENSE_RECORD_NOT_FOUND",
"description": "Expenses not found"
}
