zopa Transactions API
The Transactions API from zopa — 1 operation(s) for transactions.
The Transactions API from zopa — 1 operation(s) for transactions.
openapi: 3.0.0
info:
title: Account and Transaction API Specification Account Access Transactions API
description: Swagger for Account and Transaction API Specification
termsOfService: https://www.openbanking.org.uk/terms
contact:
name: Service Desk
email: ServiceDesk@openbanking.org.uk
license:
name: open-licence
url: https://www.openbanking.org.uk/open-licence
version: 4.0.0
servers:
- url: /open-banking/v4.0/aisp
tags:
- name: Transactions
paths:
/accounts/{AccountId}/transactions:
get:
tags:
- Transactions
summary: Get Transactions
operationId: GetAccountsAccountIdTransactions
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/FromBookingDateTimeParam'
- $ref: '#/components/parameters/ToBookingDateTimeParam'
responses:
'200':
$ref: '#/components/responses/200AccountsAccountIdTransactionsRead'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'405':
$ref: '#/components/responses/405Error'
'406':
$ref: '#/components/responses/406Error'
'429':
$ref: '#/components/responses/429Error'
'500':
$ref: '#/components/responses/500Error'
security:
- PSUOAuth2Security:
- accounts
components:
schemas:
TransactionInformation:
description: "Further details of the transaction. \nThis is the transaction narrative, which is unstructured text."
type: string
minLength: 1
maxLength: 500
BookingDateTime:
description: "Date and time when a transaction entry is posted to an account on the account servicer's books.\nUsage: 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. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
OBActiveCurrencyAndAmount_SimpleType:
description: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
type: string
example: '1209.06'
pattern: ^\d{1,13}$|^\d{1,13}\.\d{1,5}$
ExternalEntryStatus1Code:
description: 'Status of a transaction entry on the books of the account servicer. <br />
For a full list of enumeration values refer to `ExternalEntryStatus1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)'
type: string
enum:
- BOOK
- FUTR
- INFO
- PDNG
- RJCT
OBMerchantDetails1:
type: object
description: Details of the merchant involved in the transaction.
properties:
MerchantName:
description: Name by which the merchant is known.
type: string
minLength: 1
maxLength: 350
ActiveOrHistoricCurrencyCode_1:
description: A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".
type: string
example: GBP
pattern: ^[A-Z]{3,3}$
ProprietaryBankTransactionCodeStructure1:
type: object
required:
- Code
description: Set of elements to fully identify a proprietary bank transaction code.
properties:
Code:
description: Proprietary bank transaction code to identify the underlying transaction.
type: string
example: PURCHASE
minLength: 1
maxLength: 35
Issuer:
description: Identification of the issuer of the proprietary bank transaction code.
type: string
example: Zopa
minLength: 1
maxLength: 35
additionalProperties: false
OBErrorResponse1:
description: An array of detail error codes, and messages, and URLs to documentation to help remediation.
type: object
properties:
Id:
description: A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.
type: string
minLength: 1
maxLength: 40
Code:
description: Deprecated <br />High level textual error code, to help categorise the errors.
type: string
minLength: 1
example: 400 BadRequest
maxLength: 40
Message:
description: Deprecated <br />Brief Error message
type: string
minLength: 1
example: There is something wrong with the request parameters provided
maxLength: 500
Errors:
items:
$ref: '#/components/schemas/OBError1'
type: array
minItems: 1
required:
- Errors
additionalProperties: false
TransactionId:
description: Unique identifier for the transaction within an servicing institution. This identifier is both unique and immutable.
type: string
minLength: 1
maxLength: 210
OBReadTransaction6:
type: object
required:
- Data
properties:
Data:
$ref: '#/components/schemas/OBReadDataTransaction6'
Links:
$ref: '#/components/schemas/Links'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
ValueDateTime:
description: "Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry.\nUsage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date.\nFor transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
OBActiveOrHistoricCurrencyAndAmount_9:
type: object
required:
- Amount
- Currency
description: Amount of money in the cash transaction entry.
properties:
Amount:
$ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
Currency:
$ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
AddressLine:
description: Information that locates and identifies a specific address for a transaction entry, that is presented in free format text.
type: string
minLength: 1
maxLength: 70
OBCreditDebitCode_1:
description: 'Indicates whether the transaction is a credit or a debit entry. <br />
<br />
For a full list of enumeration values refer to `OBInternalCreditDebitCode` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)'
type: string
enum:
- Credit
- Debit
Meta:
title: MetaData
type: object
description: Meta Data relevant to the payload
properties:
TotalPages:
type: integer
format: int32
FirstAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
LastAvailableDateTime:
$ref: '#/components/schemas/ISODateTime'
additionalProperties: false
OBCurrencyExchange5:
type: object
required:
- SourceCurrency
- ExchangeRate
description: Set of elements used to provide details on the currency exchange.
properties:
SourceCurrency:
description: Currency from which an amount is to be converted in a currency conversion.
type: string
pattern: ^[A-Z]{3,3}$
example: EUR
TargetCurrency:
description: Currency into which an amount is to be converted in a currency conversion.
type: string
pattern: ^[A-Z]{3,3}$
example: GBP
UnitCurrency:
description: Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.
type: string
pattern: ^[A-Z]{3,3}$
example: GBP
ExchangeRate:
description: 'Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.
Usage: ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).'
type: number
example: 1.2
InstructedAmount:
type: object
required:
- Amount
- Currency
description: Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
properties:
Amount:
$ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
Currency:
$ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
OBTransaction6:
type: object
description: Provides further details on an entry in the report.
required:
- AccountId
- CreditDebitIndicator
- Status
- BookingDateTime
- Amount
properties:
AccountId:
$ref: '#/components/schemas/AccountId'
TransactionId:
$ref: '#/components/schemas/TransactionId'
CreditDebitIndicator:
$ref: '#/components/schemas/OBCreditDebitCode_1'
Status:
$ref: '#/components/schemas/ExternalEntryStatus1Code'
BookingDateTime:
$ref: '#/components/schemas/BookingDateTime'
ValueDateTime:
$ref: '#/components/schemas/ValueDateTime'
TransactionInformation:
$ref: '#/components/schemas/TransactionInformation'
AddressLine:
$ref: '#/components/schemas/AddressLine'
Amount:
$ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_9'
CurrencyExchange:
$ref: '#/components/schemas/OBCurrencyExchange5'
ProprietaryBankTransactionCode:
$ref: '#/components/schemas/ProprietaryBankTransactionCodeStructure1'
MerchantDetails:
$ref: '#/components/schemas/OBMerchantDetails1'
additionalProperties: false
OBError1:
type: object
properties:
ErrorCode:
$ref: '#/components/schemas/OBExternalStatusReason1Code'
Message:
description: 'A description of the error that occurred. e.g., ''A mandatory field isn''t supplied'' or ''RequestedExecutionDateTime must be in future''
OBL doesn''t standardise this field'
type: string
minLength: 1
maxLength: 500
Path:
description: Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency
type: string
minLength: 1
maxLength: 500
Url:
description: URL to help remediate the problem, or provide more information, or to API Reference, or help etc
type: string
required:
- ErrorCode
additionalProperties: false
minProperties: 1
OBExternalStatusReason1Code:
description: Low level textual error code, for all enum values see `ExternalReason1Code` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
minLength: 4
maxLength: 4
example: AC17
OBReadDataTransaction6:
type: object
properties:
Transaction:
type: array
items:
$ref: '#/components/schemas/OBTransaction6'
additionalProperties: false
Links:
type: object
description: Links relevant to the payload
properties:
Self:
type: string
format: uri
First:
type: string
format: uri
Prev:
type: string
format: uri
Next:
type: string
format: uri
Last:
type: string
format: uri
additionalProperties: false
required:
- Self
ISODateTime:
description: "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: string
format: date-time
AccountId:
description: A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.
type: string
example: '22289'
minLength: 1
maxLength: 40
parameters:
ToBookingDateTimeParam:
in: query
name: toBookingDateTime
description: 'The UTC ISO 8601 Date Time to filter transactions TO
NB Time component is optional - set to 00:00:00 for just Date.
If the Date Time contains a timezone, the ASPSP must ignore the timezone component.'
schema:
type: string
format: date-time
x-customer-user-agent:
in: header
name: x-customer-user-agent
description: Indicates the user-agent that the PSU is using.
required: false
schema:
type: string
x-fapi-auth-date:
in: header
name: x-fapi-auth-date
required: false
description: "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC"
schema:
type: string
pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
FromBookingDateTimeParam:
in: query
name: fromBookingDateTime
description: 'The UTC ISO 8601 Date Time to filter transactions FROM
NB Time component is optional - set to 00:00:00 for just Date.
If the Date Time contains a timezone, the ASPSP must ignore the timezone component.'
schema:
type: string
format: date-time
Authorization:
in: header
name: Authorization
required: true
description: An Authorisation Token as per https://tools.ietf.org/html/rfc6750
schema:
type: string
AccountId:
name: AccountId
in: path
description: AccountId
required: true
schema:
type: string
x-fapi-customer-ip-address:
in: header
name: x-fapi-customer-ip-address
required: false
description: The PSU's IP address if the PSU is currently logged in with the TPP.
schema:
type: string
x-fapi-interaction-id:
in: header
name: x-fapi-interaction-id
required: false
description: An RFC4122 UID used as a correlation id.
schema:
type: string
responses:
400Error:
description: Bad request
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
405Error:
description: Method Not Allowed
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
500Error:
description: Internal Server Error
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
403Error:
description: Forbidden
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
200AccountsAccountIdTransactionsRead:
description: Transactions Read
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OBReadTransaction6'
application/json:
schema:
$ref: '#/components/schemas/OBReadTransaction6'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBReadTransaction6'
429Error:
description: Too Many Requests
headers:
Retry-After:
description: Number in seconds to wait
schema:
type: integer
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
schema:
type: string
406Error:
description: Not Acceptable
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
401Error:
description: Unauthorised
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
schema:
type: string
securitySchemes:
TPPOAuth2Security:
type: oauth2
description: TPP client credential authorisation flow with the ASPSP
flows:
clientCredentials:
tokenUrl: https://authserver.example/token
scopes:
accounts: Ability to read Accounts information
PSUOAuth2Security:
type: oauth2
description: OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU
flows:
authorizationCode:
authorizationUrl: https://authserver.example/authorization
tokenUrl: https://authserver.example/token
scopes:
accounts: Ability to read Accounts information