zopa Direct Debits API
The Direct Debits API from zopa — 1 operation(s) for direct debits.
The Direct Debits API from zopa — 1 operation(s) for direct debits.
openapi: 3.0.0
info:
title: Account and Transaction API Specification Account Access Direct Debits 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: Direct Debits
paths:
/accounts/{AccountId}/direct-debits:
get:
tags:
- Direct Debits
summary: Get Direct Debits
operationId: GetAccountsAccountIdDirectDebits
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'
responses:
'200':
$ref: '#/components/responses/200AccountsAccountIdDirectDebitsRead'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'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:
ExternalMandateStatus1Code:
description: Specifies the status of the standing order in code form. For a full list of enumeration values refer to 'ExternalMandateStatus1Code' in *ISO_External_Codeset* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
enum:
- ACTV
- CANC
- EXPI
- SUSP
example: ACTV
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
OBFrequency6:
description: Regularity with which credit transfer instructions are to be created and processed
type: object
required:
- Type
properties:
Type:
$ref: '#/components/schemas/OBFrequency6Code'
CountPerPeriod:
description: 'Number of instructions to be created and processed during the specified period. Specifies a frequency in terms of a count per period within a specified frequency type. Note: should not be used alongside `PointInTime`'
type: integer
example: 1
format: int32
PointInTime:
$ref: '#/components/schemas/PointInTime'
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}$
ExternalCategoryPurpose1Code:
description: Enumeration of codes that outlines the type of purpose behind a transaction, payment or risk. For all enum values see `ExternalCategoryPurpose1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
enum:
- BONU
- CASH
- CBLK
- CCRD
- CGWV
- CIPC
- CONC
- CORT
- DCRD
- DIVI
- DVPM
- EPAY
- FCDT
- FCIN
- FCOL
- GOVT
- GP2P
- HEDG
- ICCP
- IDCP
- INTC
- INTE
- LBOX
- LOAN
- MP2B
- MP2P
- OTHR
- PENS
- RPRE
- RRCT
- RVPM
- SALA
- SECU
- SSBE
- SUPP
- SWEP
- TAXS
- TOPG
- TRAD
- TREA
- VATX
- VOST
- WHLD
- ZABA
OBActiveOrHistoricCurrencyAndAmount_0:
type: object
required:
- Amount
- Currency
description: The amount of the most recent direct debit collection.
properties:
Amount:
$ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
Currency:
$ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
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}$
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
OBFrequency6Code:
description: For a full list of values see `OBFrequency6Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
example: MNTH
enum:
- ADHO
- YEAR
- DAIL
- FRTN
- INDA
- MNTH
- QURT
- MIAN
- WEEK
PointInTime:
description: 'Exact2NumericText - Further information on the exact point in time the event should take place. Specifies a frequency in terms of an exact point in time or moment within a specified frequency type. Note: should not be used alongside `CountPerPeriod`.'
type: string
example: '00'
maxLength: 2
DirectDebitId:
description: A unique and immutable identifier used to identify the direct debit resource. This identifier has no meaning to the account owner.
type: string
minLength: 1
maxLength: 40
Name_2:
description: Name of Service User.
type: string
minLength: 1
maxLength: 70
OBMandateRelatedInformation1:
type: object
description: Provides further details of the mandate signed between the creditor and the debtor.
required:
- Frequency
properties:
MandateIdentification:
description: Unique identification, as assigned by the creditor, to unambiguously identify the mandate.
type: string
example: Golfers
minLength: 1
maxLength: 35
Classification:
$ref: '#/components/schemas/OBExternalMandateClassification1Code'
CategoryPurposeCode:
$ref: '#/components/schemas/ExternalCategoryPurpose1Code'
FirstPaymentDateTime:
description: The date on which the first payment for a recurrent credit transfer will be made.
example: '2024-04-25T12:46:49.425Z'
type: string
format: date-time
RecurringPaymentDateTime:
description: "The date on which the first recurring payment for a Standing Order schedule will be made. \nUsage: This must be populated only if the first recurring date is different to the first payment 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
example: '2024-04-25T12:46:49.425Z'
format: date-time
FinalPaymentDateTime:
description: The date on which the final payment for a recurrent credit transfer will be made.
type: string
example: '2024-04-25T12:46:49.425Z'
format: date-time
Frequency:
$ref: '#/components/schemas/OBFrequency6'
Reason:
description: Reason for the setup of the credit transfer mandate.
type: string
example: To pay monthly membership
maxLength: 256
minLength: 1
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
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
PreviousPaymentDateTime:
description: "Date of most recent direct debit collection. 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
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
OBReadDirectDebit2:
type: object
required:
- Data
properties:
Data:
type: object
properties:
DirectDebit:
type: array
items:
type: object
description: Account to or from which a cash entry is made.
required:
- AccountId
- Name
properties:
AccountId:
$ref: '#/components/schemas/AccountId'
DirectDebitId:
$ref: '#/components/schemas/DirectDebitId'
DirectDebitStatusCode:
$ref: '#/components/schemas/ExternalMandateStatus1Code'
MandateRelatedInformation:
$ref: '#/components/schemas/OBMandateRelatedInformation1'
Name:
$ref: '#/components/schemas/Name_2'
PreviousPaymentDateTime:
$ref: '#/components/schemas/PreviousPaymentDateTime'
PreviousPaymentAmount:
$ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_0'
Links:
$ref: '#/components/schemas/Links'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
OBExternalMandateClassification1Code:
description: Type of mandate instruction. For a full list of values see `OBExternalClassification1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
type: string
example: FIXE
enum:
- FIXE
- USGB
- VARI
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
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'
200AccountsAccountIdDirectDebitsRead:
description: Direct Debits 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/OBReadDirectDebit2'
application/json:
schema:
$ref: '#/components/schemas/OBReadDirectDebit2'
application/jose+jwe:
schema:
$ref: '#/components/schemas/OBReadDirectDebit2'
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
404Error:
description: Not found
headers:
x-fapi-interaction-id:
description: An RFC4122 UID used as a correlation id.
required: true
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
parameters:
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)$
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
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