AISP

AISP Transaction Object

The AISP transaction object represents a transaction line in your bank account, these can exist for money coming into or going out of your accounts.

An example of an AISP transaction Object

{
"id": "c2f57815-dd9b-459a-b680-df9f949c0089",
"amount": 576312,
"currency": "GBX",
"created_at": "2024-03-14T17:44:54.457Z",
"booking": null,
"description": "Holiday Payment",
"disbursal": null,
"is_credit": true,
"is_debit": false,
"posting_date": "2024-03-13T00:00:00.000Z",
"type": "Digital Banking Payment",
"counterparty_name": "Tom Jones",
"account": {
"id": "e460134c-d2ec-49d3-99b4-a4c10e790056",
"iban": "GB96BARC20032667732163",
"account_number": "67732163",
"sort_code": "200326",
"name": "Barclays main account"
}
}

iduuid

The unique identifier of the entry

amountnumber

The amount of the transaction

currencystring

The currency of the transaction | see currency documentation

bookingobject

The booking object that the transaction is linked to.

created_atdatetime

The datetime at which the transaction object was created within our systems

descriptionstring

The description / reference attatched to the transaction

disbursalobject

If the source of the transaction was a disbursal from felloh, then this will contain a disbursement object

is_creditboolean

Whether the transction is a credit to the bank account

is_debitboolean

Whether the transction is a debit from the bank account

posting_datedatetime

The date the transaction was posted to the bank account

typestring

The type of transaction

counterparty_namestring

The infered name of the counterparty on the transaction

accountobject

The aisp account object that the transaction is linked to.

AISP Account Object

The AISP account object represent a linked bank account line in your bank account.

An example of an AISP account Object

{
"id": "e460134c-d2ec-49d3-99b4-a4c10e790056",
"iban": "GB96BARC20032667732163",
"name": "Barclays main account",
"created_at": "2024-03-14T15:37:59.218Z",
"account_number": "67732163",
"sort_code": "200326",
"balance": 9270133,
"nickname": null,
"currency": "GBX"
}

iduuid

The unique identifier of the entry

ibanstring

The account iban

namestring

The name of the bank account (provided by banking provider)

nicknamestring

The nickname of the bank account

created_atdatetime

The datetime at which the account object was created within our systems

account_numberstring

The account number on the bank account

sort_codestring

The name of the bank account

balancenumber

The current balance of the account

currencystring

The currency of the balance on the account | see currency documentation


Fetch all accounts

GET/aisp/accounts

import axios from 'axios';
const response = await axios(
{
method: 'GET',
url: 'https://api.felloh.com/aisp/accounts',
params: {
organisation: 'X9876'
},
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);
use GuzzleHttp\Client;
function getBankAccount($token) {
$client = new Client();
$response = $client->get('https://api.felloh.com/aisp/accounts', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $token,
],
'query' => [
'organisation' => 'X9876',
],
]);
$data = json_decode($response->getBody(), true);
return $data;
}
$token = 'YOUR_TOKEN_HERE'; // Replace with the actual token
$response = getBankAccount($token);
import requests
def get_bank_account_data(organisation, access_token):
api_url = 'https://api.felloh.com/aisp/accounts'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {access_token}'
}
params = {
'organisation': organisation
}
response = requests.get(api_url, headers=headers, params=params)
response.raise_for_status()
return response.text
response_data = get_bank_account_data('X9876', '<YOUR TOKEN HERE>')
print(response_data)
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var response = await GetBankAccountData("X9876", "<YOUR TOKEN HERE>");
Console.WriteLine(response);
}
static async Task<string> GetBankAccountData(string organisation, string accessToken)
{
using (HttpClient client = new HttpClient())
{
string apiUrl = "https://api.felloh.com/aisp/accounts";
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
var queryString = $"?organisation={organisation}";
var fullApiUrl = $"{apiUrl}{queryString}";
var httpResponse = await client.GetAsync(fullApiUrl);
httpResponse.EnsureSuccessStatusCode();
return await httpResponse.Content.ReadAsStringAsync();
}
}
}

RESPONSE

{
"data": [
{
"id": "e460134c-d2ec-49d3-99b4-a4c10e790056",
"iban": "GB96BARC20032667732163",
"name": "Barclays main account",
"created_at": "2024-03-14T15:37:59.218Z",
"account_number": "67732163",
"sort_code": "200326",
"balance": 9270133,
"nickname": null,
"currency": "GBX"
}
],
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6",
"count": 1
}
}

This endpoint retrieves all bank accounts associated with the organisation.

HTTP Method

GET

HTTP Endpoint

PRODhttps://api.felloh.com/aisp/accounts

SANDBOXhttps://sandbox.felloh.com/aisp/accounts

Payload

ParameterRequiredTypeDescription
organisationtruestringThe organisation ID that you want to fetch banks for. You can find the organisation that you have access to by using the List all organisations method.

Response

Returns an array of AISP Bank Accounts


Fetch transactions

POST/aisp/transactions

import axios from 'axios';
const response = await axios(
{
method: 'post',
url: 'https://api.felloh.com/aisp/transactions',
data: {
organisation: 'X9876',
skip: 0,
take: 20
},
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);
use GuzzleHttp\Client;
function getBankAccountDetails($token) {
$client = new Client();
$response = $client->post('https://api.felloh.com/aisp/transactions', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $token,
],
'json' => [
'organisation' => 'X9876',
'skip' => 0,
'take' => 20,
],
]);
$data = json_decode($response->getBody(), true);
return $data;
}
$token = 'YOUR_TOKEN_HERE'; // Replace with the actual token
$response = getBankAccountDetails($token);
import requests
import json
def post_bank_account_data(organisation, skip, take, access_token):
api_url = f'https://api.felloh.com/aisp/transactions'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {access_token}'
}
data = {
'organisation': organisation,
'skip': skip,
'take': take
}
response = requests.post(api_url, headers=headers, data=json.dumps(data))
response.raise_for_status()
return response.text
response_data = post_bank_account_data('X9876', 0, 20, '<YOUR TOKEN HERE>')
print(response_data)
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var response = await PostBankAccountData("X9876", 0, 20, "<YOUR TOKEN HERE>");
Console.WriteLine(response);
}
static async Task<string> PostBankAccountData(string organisation, int skip, int take, string accessToken)
{
using (HttpClient client = new HttpClient())
{
string apiUrl = $"https://api.felloh.com/aisp/transactions";
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
var requestData = new
{
organisation = organisation,
skip = skip,
take = take
};
var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json");
var httpResponse = await client.PostAsync(apiUrl, content);
httpResponse.EnsureSuccessStatusCode();
return await httpResponse.Content.ReadAsStringAsync();
}
}
}

RESPONSE

{
"data": [
{
"id": "c2f57815-dd9b-459a-b680-df9f949c0089",
"amount": 576312,
"currency": "GBX",
"created_at": "2024-03-14T17:44:54.457Z",
"booking": null,
"description": "Holiday Payment",
"disbursal": null,
"is_credit": true,
"is_debit": false,
"posting_date": "2024-03-13T00:00:00.000Z",
"type": "Digital Banking Payment",
"counterparty_name": "Tom Jones",
"account": {
"id": "e460134c-d2ec-49d3-99b4-a4c10e790056",
"iban": "GB96BARC20032667732163",
"account_number": "67732163",
"sort_code": "200326",
"name": "Barclays main account"
}
}
],
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6",
"count": 1
}
}

This endpoint allows you to fetch all transactions from your bank accounts

HTTP Method

POST

HTTP Endpoint

PRODhttps://api.felloh.com/aisp/transactions

SANDBOXhttps://sandbox.felloh.com/aisp/transactions

Payload

ParameterRequiredTypeDescription
organisationtruestringThe organisation ID that you owns the bank account. You can find the organisation that you have access to by using the List all organisations method.
skipfalseIntegerSee pagination section for details
takefalseIntegerSee pagination section for details
date_fromfalsedateThe date that you want to get transactions from, in ISO 8601 format
date_tofalsedateThe date that you want to get transactions to, in ISO 8601 format
typefalsestringFilter by transaction type (can be 'credit' or 'debit')
account_idfalsestringFilter results by an aisp account object id

Response

Returns an array of AISP Bank Accounts


Fetch account statistics

GET/aisp/statistics

import axios from 'axios';
const response = await axios(
{
method: 'get',
url: 'https://api.felloh.com/aisp/statistics',
params: {
organisation: 'X9876'
},
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);
use GuzzleHttp\Client;
function getBankStatistics($token) {
$client = new Client();
$response = $client->get('https://api.felloh.com/aisp/statistics', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $token,
],
'query' => [
'organisation' => 'X9876',
],
]);
$data = json_decode($response->getBody(), true);
return $data;
}
$token = 'YOUR_TOKEN_HERE'; // Replace with the actual token
$response = getBankStatistics($token);
import requests
def get_bank_statistics(organisation, access_token):
api_url = 'https://api.felloh.com/aisp/statistics'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {access_token}'
}
params = {
'organisation': organisation
}
response = requests.get(api_url, headers=headers, params=params)
response.raise_for_status()
return response.text
response_data = get_bank_statistics('X9876', '<YOUR TOKEN HERE>')
print(response_data)
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var response = await GetBankStatistics("X9876", "<YOUR TOKEN HERE>");
Console.WriteLine(response);
}
static async Task<string> GetBankStatistics(string organisation, string accessToken)
{
using (HttpClient client = new HttpClient())
{
string apiUrl = "https://api.felloh.com/aisp/statistics";
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
var queryString = $"?organisation={organisation}";
var fullApiUrl = $"{apiUrl}{queryString}";
var httpResponse = await client.GetAsync(fullApiUrl);
httpResponse.EnsureSuccessStatusCode();
return await httpResponse.Content.ReadAsStringAsync();
}
}
}

RESPONSE

{
"data": {
"accounts": {
"count": 1,
"last_sync": "2023-01-24T16:12:21.306Z",
"items": [
{
"id": "e460134c-d2ec-49d3-99b4-a4c10e790056",
"iban": "GB96BARC20032667732163",
"name": "Barclays main account",
"created_at": "2024-03-14T15:37:59.218Z",
"account_number": "67732163",
"sort_code": "200326",
"balance": 9270133,
"nickname": null,
"currency": "GBX"
}
]
}
},
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}

This endpoint displays statistics and accounts for an organisation.

HTTP Method

GET

HTTP Endpoint

PRODhttps://api.felloh.com/aisp/statistics

SANDBOXhttps://sandbox.felloh.com/aisp/statistics

Payload

ParameterRequiredTypeDescription
organisationtruestringThe organisation ID that you want to fetch statistcs for. You can find the organisation that you have access to by using the List all organisations method.

Response

accounts.countinteger

The number of bank accounts linked to the organisation

accounts.last_syncdatetime

The datetime at which the organisations bank account was last synchronised.

accounts.itemsarray

An array of AISP account objects.