curl --request GET \
--url https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}"
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}', 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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}",
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}"
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}")
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"<string>"{
"error": "Customer not found"
}{
"code": 705,
"message": "Account is closed",
"debugMessage": "Operation is not supported by the closed account"
}{
"code": 704,
"message": "Account type not supported",
"debugMessage": "The account type does not support the selected action"
}{
"code": 500,
"message": "Internal server error",
"debugMessage": "Provider custom developer-level error details for troubleshooting"
}{
"code": 503,
"message": "Scheduled maintenance",
"debugMessage": "System is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery"
}Get account statement
Get account statement PDF
curl --request GET \
--url https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}"
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}', 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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}",
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}"
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/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.provider.fiskil.com/fdx/v6/customer/{customerId}/accounts/{accountId}/statements/{statementId}")
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"<string>"{
"error": "Customer not found"
}{
"code": 705,
"message": "Account is closed",
"debugMessage": "Operation is not supported by the closed account"
}{
"code": 704,
"message": "Account type not supported",
"debugMessage": "The account type does not support the selected action"
}{
"code": 500,
"message": "Internal server error",
"debugMessage": "Provider custom developer-level error details for troubleshooting"
}{
"code": 503,
"message": "Scheduled maintenance",
"debugMessage": "System is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery"
}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 identifier for the user the account belongs to. This will be the user that authorized the data sharing.
Value for a unique identifier
256"someLongTermUniqueIDString"
Account identifier, found in the GET /accounts endpoint response.
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.
Value for a unique identifier
256"someLongTermUniqueIDString"
Statement identifier, found in the GET /accounts/{accountId}/statements endpoint response
Value for a unique identifier
256"someLongTermUniqueIDString"
Response
A pdf of an account statement
An account statement in PDF format
Was this page helpful?