List expenses
List all expenses for a user, filtered by status.
curl --request GET \
--url https://stage-api.findity.com/api/v1/expense/expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/expense/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/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/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/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/expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/expense/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": []
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The id of the organization of the user UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$The id of the expense report to filter on UUID without dashes (32-character hex string)
^[0-9a-fA-F]{32}$The expense type
CarSpecification, FoodBenefitsSpecification, ReceiptVerification, SubsistenceAllowance Comma separated list of statuses to include, to exclude a status use ! before the status
APPROVAL, APPROVED, BULK_TRANSFER, DELETED, ERROR, NEW, NORMAL, ON_HOLD, PAID, READY_TO_SEND, REJECTED, REVIEW, SEND, SENT, TRANSFER, TRANSFER_TO_RECIPIENT Process status that will filter out expenses on selected status. It should not be used in combination with statuses or notStatuses.
DRAFT includes NEW, NORMAL.
REJECTED includes REJECTED.
PROCESSING includes APPROVAL, APPROVED, READY_TO_SEND, BULK_TRANSFER, TRANSFER, TRANSFER_TO_RECIPIENT, ERROR and SEND.
PROCESSED includes SENT and PAID.
DRAFT, REJECTED, PROCESSING, PROCESSED 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 >= 0The value for which list of expense records will be filtered by
availableForMerge - this will list all expense records that are not included in any expense report, not sent, not created based on card transaction and don't have any related other expenses
canBeAddedToReport - this will list all expense records that can be added to a report
availableForMerge, canBeAddedToReport Response
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/expenses \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/expense/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/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/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/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/expenses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/expense/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": []
}
