List Expense Reports
curl --request GET \
--url https://api.spirii.com/reimbursement/v1/expense-reports \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spirii.com/reimbursement/v1/expense-reports"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spirii.com/reimbursement/v1/expense-reports', 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.spirii.com/reimbursement/v1/expense-reports",
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://api.spirii.com/reimbursement/v1/expense-reports"
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://api.spirii.com/reimbursement/v1/expense-reports")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spirii.com/reimbursement/v1/expense-reports")
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{
"data": [
{
"companyName": "Example Company Inc.",
"id": 42,
"period": {
"year": 2026,
"monthIndex": 0
},
"status": "Active",
"totalAmountInCents": 123,
"totalConsumptionInWattHours": 123,
"currency": "EUR",
"emailAddressList": [
"manager1@email.com",
"manager2@email.com"
],
"invalidInformation": {
"awaitingExpenseReportList": [
123
],
"companyCustomer": {
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
},
"supplierCustomer": {
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
},
"invalidBeneficiary": {
"customerCrmId": "<string>",
"expenseIds": [
"<string>"
]
},
"kycNotPassed": true,
"missingReimbursementRates": [
{
"locationId": 123,
"locationName": "<string>",
"cdrEndDates": [
"2023-11-07T05:31:56Z"
]
}
],
"recipientList": [
{
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
}
]
}
}
],
"pagination": {
"currentPage": 3,
"itemCount": 20,
"itemsPerPage": 25,
"totalItems": 70,
"totalPages": 3
}
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "Invalid request body",
"instance": "/v1/uri-called/",
"errors": [
"currentPage must be a positive integer"
]
}List Expense Reports
GET
/
v1
/
expense-reports
List Expense Reports
curl --request GET \
--url https://api.spirii.com/reimbursement/v1/expense-reports \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spirii.com/reimbursement/v1/expense-reports"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spirii.com/reimbursement/v1/expense-reports', 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.spirii.com/reimbursement/v1/expense-reports",
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://api.spirii.com/reimbursement/v1/expense-reports"
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://api.spirii.com/reimbursement/v1/expense-reports")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spirii.com/reimbursement/v1/expense-reports")
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{
"data": [
{
"companyName": "Example Company Inc.",
"id": 42,
"period": {
"year": 2026,
"monthIndex": 0
},
"status": "Active",
"totalAmountInCents": 123,
"totalConsumptionInWattHours": 123,
"currency": "EUR",
"emailAddressList": [
"manager1@email.com",
"manager2@email.com"
],
"invalidInformation": {
"awaitingExpenseReportList": [
123
],
"companyCustomer": {
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
},
"supplierCustomer": {
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
},
"invalidBeneficiary": {
"customerCrmId": "<string>",
"expenseIds": [
"<string>"
]
},
"kycNotPassed": true,
"missingReimbursementRates": [
{
"locationId": 123,
"locationName": "<string>",
"cdrEndDates": [
"2023-11-07T05:31:56Z"
]
}
],
"recipientList": [
{
"customerCrmId": "<string>",
"name": "<string>",
"invalidFields": [
"<string>"
]
}
]
}
}
],
"pagination": {
"currentPage": 3,
"itemCount": 20,
"itemsPerPage": 25,
"totalItems": 70,
"totalPages": 3
}
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "Invalid request body",
"instance": "/v1/uri-called/",
"errors": [
"currentPage must be a positive integer"
]
}Authorizations
Authorization via a JWT bearer token.
Query Parameters
Filter Expense Reports by specific Fleet Customer ID.
Example:
4567
Filter Expense Reports by specific status.
Active is for current month. Pending is await approval. Approved means approved, but no funds transferred (if applicable). FundsReceived means transfer of funds was registered (if applicable).
Status of the Expense Report.
Available options:
Active, Pending, Approved, FundsReceived Maximum number of items to return per page.
Required range:
1 <= x <= 500Page number, starting at 1.
Required range:
x >= 1Field to sort the list of Expense Reports by.
Available options:
id, period, status The ordering direction.
Available options:
ASC, DESC Was this page helpful?