NAV Navigation
Shell HTTP JavaScript Node.js

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

OAuth2 Application Details - most of these will be displayed to the user when asking for consent

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:

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

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