Equals Corporate APIs v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Onboarding
Direct API Access
Consumer of the API (CLIENT) will need to generate a private/public RS256 key pair
ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
Only the public key needs to be shared with Equals, while the private keys needs to be kept secure by the CLIENT. The private key will be used to sign JWT Authentication tokens (TOKEN). In return, the CLIENT will receive a Company ID that is a required parameter for the TOKEN.
As part of our security strategy, we also do IP whitelisting, so the CLIENT will need to share all the necessary IP addresses that the API will be called from.
OAuth2 API Access
If you would like to use our APIs to access the data of our customers, with their consent, you will need to get in touch with us by sending an email to openbanking@equalsmoney.com It's a manual on-boarding process, but to speed things up, please have the following information ready
Company Details
- Contact Email
- Company Name
- Company Registration Number
- Company Address - Street
- Company Address - City
- Company Address - Postcode
- Company Address - Country
- Technical Point of Contact - First Name
- Technical Point of Contact - Last Name
- Technical Point of Contact - Phone Number
- Type of Access - AISP and/or PISP
- National Competent Authority
- (OPTIONAL) eIDAS Certificate
OAuth2 Application Details - most of these will be displayed to the user when asking for consent
- Application Name
- Redirect URL
- Privacy Policy URL
- Terms of Service URL
- Client Website URL
- Logo URL
- Contact Email Address
- RS256 Public Key
Security
Direct API Access
CLIENT generates and signs the TOKEN on every API request they make, see below for a NodeJS example
const jwt = require('jsonwebtoken');
const privateKey = fs.readFileSync('private.key');
const token = jwt.sign({ companyId: '1234', iss: 'Company Name', iat: 1578649824 }, privateKey, { algorithm: 'RS256' });
The TOKEN MUST be passed in the Authorization header as Bearer jwt_token_here
The TOKEN MUST have these properties:
- companyId - ID of the CLIENT Company (will be shared with the CLIENT when onboarding)
- iss - the name of the issuer, freeform text. This is so we can easily identify the CLIENT in our logs.
- iat - the time the token was issued, in seconds.
The TOKEN MUST be signed using the RS256
algorithm
Each token will be valid for only 30 seconds after it was created. In practice, this means that each individual API request will most likely need a fresh token.
A request without a proper Authorization header or an invalid one will return a 403 HTTP status code
OAuth2 Authorization Code Flow
The authorization code flow begins with the client directing the user to the /auth
endpoint. In this request, the client requests the offline
and accounts
access. Without offline
, the resulting response would not contain the refresh_token
https://oauth.fairfx.io/oauth2/auth?
client_id=f0d39020-6793-4d8c-8b40-498f9cb62adb&
response_type=code&
state=1234567890&
scope=offline+accounts
At this point, the user will be asked to enter their credentials and complete the authentication. After that, we will ask the user to consent to the required permissions.
Once the user authenticates and grants consent, we will return a response to your app at the indicated redirect_uri
.
Now that you've acquired an authorization_code and have been granted permission by the user, you can redeem the code
for an access_token
to the desired resource. Do this by sending a POST
request to the /token
endpoint:
POST /oauth2/auth HTTP/1.1
Host: https://oauth.fairfx.io
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code={AUTHORIZATION_CODE}&
redirect_uri={REDIRECT_URI}&
client_id={CLIENT_ID}&
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion={CLIENT_ASSERTION}
For client_assertion
see https://tools.ietf.org/html/rfc7523#section-2.2
After a successful request, you should now get an access_token
and a refresh_token
that you can use to make API calls and get back the data of the consenting user.
Base URLs:
Email: Support License: UNLICENCED
Authentication
- HTTP Authentication, scheme: bearer
Accounts
Get Accounts
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /accounts
Get Accounts
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Account": [
{
"AccountId": "123",
"Currency": "EUR",
"AccountType": "Business",
"AccountSubType": "PrePaidCard",
"Description": "Euro card",
"Account": {
"SchemeName": [
"UK.OBIE.BBAN",
"UK.OBIE.IBAN",
"UK.OBIE.PAN",
"UK.OBIE.Paym",
"UK.OBIE.SortCodeAccountNumber"
],
"Identification": "1222333344441113",
"Name": "John Johnson",
"SecondaryIdentification": "1234"
}
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Account | [AccountsResponse] | false | none | none |
»»» AccountId | string | true | none | none |
»»» Currency | string | true | none | none |
»»» AccountType | string | true | none | none |
»»» AccountSubType | string | true | none | none |
»»» Description | string | true | none | none |
»»» Account | object | true | none | none |
»»»» SchemeName | string | true | none | none |
»»»» Identification | string | true | none | none |
»»»» Name | string | false | none | none |
»»»» SecondaryIdentification | string | false | none | none |
Get Single Account
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId} HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /accounts/{accountId}
Get Single Account
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Account": [
{
"AccountId": "123",
"Currency": "EUR",
"AccountType": "Business",
"AccountSubType": "PrePaidCard",
"Description": "Euro card",
"Account": {
"SchemeName": [
"UK.OBIE.BBAN",
"UK.OBIE.IBAN",
"UK.OBIE.PAN",
"UK.OBIE.Paym",
"UK.OBIE.SortCodeAccountNumber"
],
"Identification": "1222333344441113",
"Name": "John Johnson",
"SecondaryIdentification": "1234"
}
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Account | [AccountsResponse] | false | none | none |
»»» AccountId | string | true | none | none |
»»» Currency | string | true | none | none |
»»» AccountType | string | true | none | none |
»»» AccountSubType | string | true | none | none |
»»» Description | string | true | none | none |
»»» Account | object | true | none | none |
»»»» SchemeName | string | true | none | none |
»»»» Identification | string | true | none | none |
»»»» Name | string | false | none | none |
»»»» SecondaryIdentification | string | false | none | none |
Balances
Get Balances
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/balances \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/balances HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/balances',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/balances',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /balances
Get Balances
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Balance": [
{
"AccountId": "123",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"DateTime": "2020-10-23T10:23:54Z"
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Balance | [BalancesResponse] | false | none | none |
»»» AccountId | string | true | none | none |
»»» Amount | object | true | none | none |
»»»» Amount | string | true | none | none |
»»»» Currency | string | true | none | none |
»»» CreditDebitIndicator | string | true | none | Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance. |
»»» Type | string | true | none | none |
»»» DateTime | ISODateTime(date-time) | true | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Type | ClosingAvailable |
Type | ClosingBooked |
Type | ClosingCleared |
Type | Expected |
Type | ForwardAvailable |
Type | Information |
Type | InterimAvailable |
Type | InterimBooked |
Type | InterimCleared |
Type | OpeningAvailable |
Type | OpeningBooked |
Type | OpeningCleared |
Type | PreviouslyClosedBooked |
Get Account Balances
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/balances \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/balances HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/balances',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/balances',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /accounts/{accountId}/balances
Get Account Balances
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Balance": [
{
"AccountId": "123",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"DateTime": "2020-10-23T10:23:54Z"
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Balance | [BalancesResponse] | false | none | none |
»»» AccountId | string | true | none | none |
»»» Amount | object | true | none | none |
»»»» Amount | string | true | none | none |
»»»» Currency | string | true | none | none |
»»» CreditDebitIndicator | string | true | none | Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance. |
»»» Type | string | true | none | none |
»»» DateTime | ISODateTime(date-time) | true | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Type | ClosingAvailable |
Type | ClosingBooked |
Type | ClosingCleared |
Type | Expected |
Type | ForwardAvailable |
Type | Information |
Type | InterimAvailable |
Type | InterimBooked |
Type | InterimCleared |
Type | OpeningAvailable |
Type | OpeningBooked |
Type | OpeningCleared |
Type | PreviouslyClosedBooked |
Transactions
Get Transactions
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/transactions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/transactions HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/transactions',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/transactions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /transactions
Get Transactions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
page | query | integer | false | The page of the results to return |
fromBookingDateTime | query | string | false | Show transactions after this date |
toBookingDateTime | query | string | false | Show transactions on or before this date |
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Transaction": [
{
"TransactionId": "784527",
"AccountId": "123",
"CreditDebitIndicator": "Credit",
"Status": "Booked",
"BookingDateTime": "2020-10-23T10:23:54Z",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"MerchantDetails": {
"MerchantName": "Paypal",
"MerchantCategoryCode": "5932"
},
"TransactionInformation": "UNQD497",
"SupplementaryData": {
"MerchantId": "Merchant1",
"MerchantCity": "London",
"OrderPurpose": "Travel Expenses"
}
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Transaction | [TransactionsResponse] | false | none | none |
»»» TransactionId | string | true | none | none |
»»» AccountId | string | true | none | none |
»»» CreditDebitIndicator | string | true | none | Indicates whether the transaction is a credit or a debit entry. |
»»» Status | string | true | none | Status of a transaction entry on the books of the account servicer. |
»»» BookingDateTime | string(date-time) | true | none | Date and time when a transaction entry is posted to an account on the account servicer's books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»»» Amount | object | true | none | none |
»»»» Amount | string | true | none | none |
»»»» Currency | string | true | none | none |
»»» MerchantDetails | object | false | none | none |
»»»» MerchantName | string | true | none | none |
»»»» MerchantCategoryCode | string | true | none | none |
»»» TransactionInformation | string | false | none | none |
»»» SupplementaryData | object | false | none | none |
»»»» MerchantId | string | false | none | none |
»»»» MerchantCity | string | false | none | none |
»»»» OrderPurpose | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Status | Booked |
Status | Pending |
Get Account Transactions
Code samples
# You can also use wget
curl -X GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/transactions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/transactions HTTP/1.1
Host: api.fairfx.io
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/transactions',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.fairfx.io/open-banking/jwt-proxy/corporate/v3.1/aisp/accounts/{accountId}/transactions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /accounts/{accountId}/transactions
Get Account Transactions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
page | query | integer | false | The page of the results to return |
fromBookingDateTime | query | string | false | Show transactions after this date |
toBookingDateTime | query | string | false | Show transactions on or before this date |
Example responses
200 Response
{
"Meta": {
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
},
"Data": {
"Transaction": [
{
"TransactionId": "784527",
"AccountId": "123",
"CreditDebitIndicator": "Credit",
"Status": "Booked",
"BookingDateTime": "2020-10-23T10:23:54Z",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"MerchantDetails": {
"MerchantName": "Paypal",
"MerchantCategoryCode": "5932"
},
"TransactionInformation": "UNQD497",
"SupplementaryData": {
"MerchantId": "Merchant1",
"MerchantCity": "London",
"OrderPurpose": "Travel Expenses"
}
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successful response | Inline |
400 | Bad Request | Invalid data passed to the endpoint | Error |
500 | Internal Server Error | Internal server error | Error |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» Meta | Meta | false | none | Meta Data relevant to the payload |
»» TotalPages | integer(int32) | false | none | none |
»» FirstAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»» LastAvailableDateTime | ISODateTime(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
» Data | object | false | none | none |
»» Transaction | [TransactionsResponse] | false | none | none |
»»» TransactionId | string | true | none | none |
»»» AccountId | string | true | none | none |
»»» CreditDebitIndicator | string | true | none | Indicates whether the transaction is a credit or a debit entry. |
»»» Status | string | true | none | Status of a transaction entry on the books of the account servicer. |
»»» BookingDateTime | string(date-time) | true | none | Date and time when a transaction entry is posted to an account on the account servicer's books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
»»» Amount | object | true | none | none |
»»»» Amount | string | true | none | none |
»»»» Currency | string | true | none | none |
»»» MerchantDetails | object | false | none | none |
»»»» MerchantName | string | true | none | none |
»»»» MerchantCategoryCode | string | true | none | none |
»»» TransactionInformation | string | false | none | none |
»»» SupplementaryData | object | false | none | none |
»»»» MerchantId | string | false | none | none |
»»»» MerchantCity | string | false | none | none |
»»»» OrderPurpose | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Status | Booked |
Status | Pending |
Schemas
Error
{
"error": {
"title": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | object | false | none | none |
» title | string | false | none | none |
Errors
{
"errors": [
{
"error": {
"title": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [Error] | false | none | none |
ISODateTime
"2020-10-23T10:23:54Z"
All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string(date-time) | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Meta
{
"TotalPages": 1,
"FirstAvailableDateTime": "2020-10-23T10:23:54Z",
"LastAvailableDateTime": "2020-10-23T10:23:54Z"
}
MetaData
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
TotalPages | integer(int32) | false | none | none |
FirstAvailableDateTime | ISODateTime | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
LastAvailableDateTime | ISODateTime | false | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
AccountsResponse
{
"AccountId": "123",
"Currency": "EUR",
"AccountType": "Business",
"AccountSubType": "PrePaidCard",
"Description": "Euro card",
"Account": {
"SchemeName": [
"UK.OBIE.BBAN",
"UK.OBIE.IBAN",
"UK.OBIE.PAN",
"UK.OBIE.Paym",
"UK.OBIE.SortCodeAccountNumber"
],
"Identification": "1222333344441113",
"Name": "John Johnson",
"SecondaryIdentification": "1234"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
AccountId | string | true | none | none |
Currency | string | true | none | none |
AccountType | string | true | none | none |
AccountSubType | string | true | none | none |
Description | string | true | none | none |
Account | object | true | none | none |
» SchemeName | string | true | none | none |
» Identification | string | true | none | none |
» Name | string | false | none | none |
» SecondaryIdentification | string | false | none | none |
TransactionsResponse
{
"TransactionId": "784527",
"AccountId": "123",
"CreditDebitIndicator": "Credit",
"Status": "Booked",
"BookingDateTime": "2020-10-23T10:23:54Z",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"MerchantDetails": {
"MerchantName": "Paypal",
"MerchantCategoryCode": "5932"
},
"TransactionInformation": "UNQD497",
"SupplementaryData": {
"MerchantId": "Merchant1",
"MerchantCity": "London",
"OrderPurpose": "Travel Expenses"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
TransactionId | string | true | none | none |
AccountId | string | true | none | none |
CreditDebitIndicator | string | true | none | Indicates whether the transaction is a credit or a debit entry. |
Status | string | true | none | Status of a transaction entry on the books of the account servicer. |
BookingDateTime | string(date-time) | true | none | Date and time when a transaction entry is posted to an account on the account servicer's books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Amount | object | true | none | none |
» Amount | string | true | none | none |
» Currency | string | true | none | none |
MerchantDetails | object | false | none | none |
» MerchantName | string | true | none | none |
» MerchantCategoryCode | string | true | none | none |
TransactionInformation | string | false | none | none |
SupplementaryData | object | false | none | none |
» MerchantId | string | false | none | none |
» MerchantCity | string | false | none | none |
» OrderPurpose | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Status | Booked |
Status | Pending |
BalancesResponse
{
"AccountId": "123",
"Amount": {
"Amount": "1230.00",
"Currency": "GBP"
},
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"DateTime": "2020-10-23T10:23:54Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
AccountId | string | true | none | none |
Amount | object | true | none | none |
» Amount | string | true | none | none |
» Currency | string | true | none | none |
CreditDebitIndicator | string | true | none | Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance. |
Type | string | true | none | none |
DateTime | ISODateTime | true | none | All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Enumerated Values
Property | Value |
---|---|
CreditDebitIndicator | Credit |
CreditDebitIndicator | Debit |
Type | ClosingAvailable |
Type | ClosingBooked |
Type | ClosingCleared |
Type | Expected |
Type | ForwardAvailable |
Type | Information |
Type | InterimAvailable |
Type | InterimBooked |
Type | InterimCleared |
Type | OpeningAvailable |
Type | OpeningBooked |
Type | OpeningCleared |
Type | PreviouslyClosedBooked |