---
title: "Get Direct Debits for an AccountId"
method: GET
path: "/accounts/{AccountId}/direct-debits"
tags: ["Direct Debits"]
---

# Get Direct Debits for an AccountId

`GET /accounts/{AccountId}/direct-debits`

## Request

- Base URL: `/open-banking/v4.0/aisp` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/open-banking/v4.0/aisp/accounts/{AccountId}/direct-debits`
- Auth: OAuth 2
  - Authorization code: `https://authserver.example/authorization`
  - Token URL: `https://authserver.example/token` scopes: `accounts`

Enables an AISP to retrieve Direct Debit information for a specific PSU account.

## Path parameters

- `AccountId` string, required

## Headers

- `x-fapi-auth-date` string
- `x-fapi-customer-ip-address` string
- `x-fapi-interaction-id` string
- `Authorization` string, required
- `x-customer-user-agent` string
- `x-client-id` string

## Response `200`

Direct Debits Read

- OBReadDirectDebit2
  - `Data` object, required
    - `DirectDebit` object[]
      - `AccountId` string, required: A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.
      - `DirectDebitId` string: A unique and immutable identifier used to identify the direct debit resource. This identifier has no meaning to the account owner.
      - `DirectDebitStatusCode` 'ACTV' | 'CANC' | 'EXPI' | 'SUSP': 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)
      - `MandateRelatedInformation` OBMandateRelatedInformation1: Provides further details of the mandate signed between the creditor and the debtor.
        - `MandateIdentification` string: Unique identification, as assigned by the creditor, to unambiguously identify the mandate.
        - `Classification` 'FIXE' | 'USGB' | 'VARI': Type of mandate instruction. For a full list of values see `OBExternalClassification1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
        - `CategoryPurposeCode` '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': 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)
        - `FirstPaymentDateTime` string, date-time: The date on which the first payment for a recurrent credit transfer will be made.
        - `RecurringPaymentDateTime` string, date-time: The date on which the first recurring payment for a Standing Order schedule will be made. Usage: 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. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00
        - `FinalPaymentDateTime` string, date-time: The date on which the final payment for a recurrent credit transfer will be made.
        - `Frequency` OBFrequency6, required: Regularity with which credit transfer instructions are to be created and processed
          - `Type` union, required
            - 'ADHO' | 'YEAR' | 'DAIL' | 'FRTN' | 'INDA' | 'MNTH' | 'QURT' | 'MIAN' | 'WEEK' | 'WODL' | 'FOWK' | 'TWMH' | 'FOMH' | 'FIMH' | 'ALMH' | 'NONE' | 'LWMH' | 'LXMH' | 'TWYR': For a full list of values see `OBFrequency6Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
            - string: Individual Definitions: NotKnown - Not Known EvryDay - Every day EvryWorkgDay - Every working day IntrvlDay - An interval specified in number of calendar days (02 to 31) IntrvlWkDay - An interval specified in weeks (01 to 09), and the day within the week (01 to 07) WkInMnthDay - A monthly interval, specifying the week of the month (01 to 05) and day within the week (01 to 07) IntrvlMnthDay - An interval specified in months (between 01 to 06, 12, 24), specifying the day within the month (-05 to -01, 01 to 31) QtrDay - Quarterly (either ENGLISH, SCOTTISH, or RECEIVED) ENGLISH = Paid on the 25th March, 24th June, 29th September and 25th December. SCOTTISH = Paid on the 2nd February, 15th May, 1st August and 11th November. RECEIVED = Paid on the 20th March, 19th June, 24th September and 20th December. Individual Patterns: NotKnown (ScheduleCode) EvryDay (ScheduleCode) EvryWorkgDay (ScheduleCode) IntrvlDay:NoOfDay (ScheduleCode + NoOfDay) IntrvlWkDay:IntervalInWeeks:DayInWeek (ScheduleCode + IntervalInWeeks + DayInWeek) WkInMnthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth + DayInWeek) IntrvlMnthDay:IntervalInMonths:DayInMonth (ScheduleCode + IntervalInMonths + DayInMonth) QtrDay: + either (ENGLISH, SCOTTISH or RECEIVED) ScheduleCode + QuarterDay The regular expression for this element combines five smaller versions for each permitted pattern. To aid legibility - the components are presented individually here: NotKnown EvryDay EvryWorkgDay IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]) IntrvlWkDay:0[1-9]:0[1-7] WkInMnthDay:0[1-5]:0[1-7] IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]) QtrDay:(ENGLISH|SCOTTISH|RECEIVED) Full Regular Expression: ^(NotKnown)$|^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$
          - `CountPerPeriod` integer: 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`
          - `PointInTime` string: 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`.
        - `Reason` string: Reason for the setup of the credit transfer mandate.
      - `Name` string, required: Name of Service User.
      - `PreviousPaymentDateTime` string, date-time: Date of most recent direct debit collection. 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
      - `PreviousPaymentAmount` OBActiveOrHistoricCurrencyAndAmount0: The amount of the most recent direct debit collection.
        - `Amount` string, required: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
        - `Currency` string, required: 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".
  - `Links` Links: Links relevant to the payload
    - `Self` string, uri, required
    - `First` string, uri
    - `Prev` string, uri
    - `Next` string, uri
    - `Last` string, uri
  - `Meta` Meta: Meta Data relevant to the payload
    - `TotalPages` integer
    - `FirstAvailableDateTime` string, date-time: 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` string, date-time: 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

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method Not Allowed
- `406`: Not Acceptable
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-01-08** `1cecf9396126`: 9 warning
  - added the new `LWMH` enum value to the `Data/DirectDebit/items/MandateRelatedInformation/Frequency/Type/oneOf[#/components/schemas/OBFrequency6Code]/` response property for the response status `200` (media type: application/json; charset=utf-8)
  - added the new `LWMH` enum value to the `Data/DirectDebit/items/MandateRelatedInformation/Frequency/Type/oneOf[#/components/schemas/OBFrequency6Code]/` response property for the response status `200` (media type: application/json)
  - added the new `LWMH` enum value to the `Data/DirectDebit/items/MandateRelatedInformation/Frequency/Type/oneOf[#/components/schemas/OBFrequency6Code]/` response property for the response status `200` (media type: application/jose+jwe)
  - added the new `LXMH` enum value to the `Data/DirectDebit/items/MandateRelatedInformation/Frequency/Type/oneOf[#/components/schemas/OBFrequency6Code]/` response property for the response status `200` (media type: application/json; charset=utf-8)
  - …5 more
- **2025-11-20** `a96a922860eb`: 1 info
  - added the new optional `header` request parameter `x-client-id`

[Operation history](https://skmtc.dev/openbankinguk/apis/account-and-transaction-api-specification/changes/accounts/:AccountId/direct-debits/get.md)

---

[API](https://skmtc.dev/openbankinguk/apis/account-and-transaction-api-specification.md) - [All operations](https://skmtc.dev/openbankinguk/apis/account-and-transaction-api-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/openbankinguk/apis/account-and-transaction-api-specification/revisions/705bbf8a4a65?raw)
