curl --request GET \
--url https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing', 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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing",
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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing"
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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing")
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": {
"transactions": [
{
"accountId": "019a0a0b-6bff-7952-99c7-73c8c4967655",
"usage": {
"amount": "120.00",
"adjustments": [
{
"amount": "-10.00",
"description": "Meter read correction"
}
],
"isEstimate": false,
"endDate": "2025-10-31",
"usage": 72.13,
"servicePointId": "019a0a0b-c27b-7fd3-bd84-9bead0e73711",
"invoiceNumber": "125",
"description": "Usage fees Q3",
"measureUnit": "KWH",
"calculationFactors": [
{
"type": "DLF",
"value": 6.027456183070403
}
],
"timeOfUseType": "ALL_DAY",
"startDate": "2025-09-01"
},
"gst": "12.00",
"transactionUType": "usage",
"executionDateTime": "2025-11-01T00:00:00"
},
{
"accountId": "019a0a0b-6bff-7952-99c7-73c8c4967655",
"payment": {
"amount": "100.00",
"method": "DIRECT_DEBIT"
},
"transactionUType": "payment",
"executionDateTime": "2025-09-010T10:25:00"
}
]
},
"meta": {
"totalRecords": 2,
"totalPages": 1
},
"links": {
"first": "page=1&page-size=25&oldest-date=2023-04-24",
"last": "page=4&page-size=25&oldest-date=2023-04-24",
"next": "page=3&page-size=25&oldest-date=2023-04-24",
"prev": "page=1&page-size=25&oldest-date=2023-04-24"
}
}{
"error": "Customer not found"
}Get Billing For Account
Obtain the billing transactions for a specific account
curl --request GET \
--url https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing', 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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing",
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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing"
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.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.provider.fiskil.com/v1/energy/customer/{customerId}/accounts/{accountId}/billing")
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": {
"transactions": [
{
"accountId": "019a0a0b-6bff-7952-99c7-73c8c4967655",
"usage": {
"amount": "120.00",
"adjustments": [
{
"amount": "-10.00",
"description": "Meter read correction"
}
],
"isEstimate": false,
"endDate": "2025-10-31",
"usage": 72.13,
"servicePointId": "019a0a0b-c27b-7fd3-bd84-9bead0e73711",
"invoiceNumber": "125",
"description": "Usage fees Q3",
"measureUnit": "KWH",
"calculationFactors": [
{
"type": "DLF",
"value": 6.027456183070403
}
],
"timeOfUseType": "ALL_DAY",
"startDate": "2025-09-01"
},
"gst": "12.00",
"transactionUType": "usage",
"executionDateTime": "2025-11-01T00:00:00"
},
{
"accountId": "019a0a0b-6bff-7952-99c7-73c8c4967655",
"payment": {
"amount": "100.00",
"method": "DIRECT_DEBIT"
},
"transactionUType": "payment",
"executionDateTime": "2025-09-010T10:25:00"
}
]
},
"meta": {
"totalRecords": 2,
"totalPages": 1
},
"links": {
"first": "page=1&page-size=25&oldest-date=2023-04-24",
"last": "page=4&page-size=25&oldest-date=2023-04-24",
"next": "page=3&page-size=25&oldest-date=2023-04-24",
"prev": "page=1&page-size=25&oldest-date=2023-04-24"
}
}{
"error": "Customer not found"
}Authorizations
The Fiskil Data Provider will include a self-signed JWT as a Bearer token in the Authorization header.
You should verify this JWT using the JWKS URL you can find for your Data Provider instance in the Fiskil Console. To verify the JWT you must:
- Verify the signature
- Ensure the token has not expired by checking the
expclaim - The
subandissclaims are your data provider subdomain - The
audclaim is the URI of the resource being requested (excluding any query parameters) - The
jtivalue is unique For further detail on security and authentication refer to our Authentication documentation
Path Parameters
Unique ID of a customer. This ID must not change for the lifecycle of the customer
ID of a specific account to obtain data for.
Query Parameters
Constrain the request to records with effective time at or before this date/time. If absent defaults to current date/time. Format is an RFC3339 Datetime string.
Constrain the request to records with effective time at or after this date/time. If absent defaults to newest-time minus 12 months. Format is an RFC3339 Datetime string.
Page of results to request (standard pagination)
Page size to request. Default is 25 (standard pagination)
Response
Successful response
Show child attributes
Show child attributes
URL Query parameters to obtain different pages of the response. Fiskil will combine these with the rest of the request URL to build full link URLs in the final response.
Show child attributes
Show child attributes
{
"first": "page=1&page-size=25&oldest-date=2023-04-24",
"last": "page=4&page-size=25&oldest-date=2023-04-24",
"next": "page=3&page-size=25&oldest-date=2023-04-24",
"prev": "page=1&page-size=25&oldest-date=2023-04-24"
}
Show child attributes
Show child attributes
{ "totalRecords": 150, "totalPages": 6 }
Was this page helpful?