> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equalsmoney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Direct Debits

> List, view, and cancel Direct Debit mandates on your budgets.

Use the Direct Debits endpoints to view and cancel Direct Debit mandates on your budgets.

## List all Direct Debits

<Note>
  **GET** `/v2/direct-debits`
</Note>

Use this endpoint to retrieve a list of all Direct Debits across one or more budgets on an account.

### Query parameters

<ParamField query="accountId" type="string" required>
  The ID of the account.
</ParamField>

<ParamField query="budgetIds" type="string">
  Filter by one or more budget IDs. Accepts a comma-separated string or multiple parameters. If omitted, returns Direct Debits for all budgets on the account.
</ParamField>

<ParamField query="search" type="string">
  Search term to filter Direct Debits.
</ParamField>

<ParamField query="limit" type="number">
  The maximum number of results to return. Default: `100`.
</ParamField>

<ParamField query="offset" type="number">
  The number of results to skip. Default: `0`.
</ParamField>

### Sample request

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/direct-debits?accountId=F12345&budgetIds=4db84122-9c4e-4607-98f7-84b2bbe02daf,82920c13-a88c-4e3f-b24d-1ae88e47e171' \
    -H 'Authorization: ApiKey {apiKey}'
  ```

  ```bash Request structure theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/direct-debits?accountId={accountId}&budgetIds={budgetIds}&search={search}&limit={limit}&offset={offset}' \
    -H 'Authorization: ApiKey {apiKey}'
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "count": 2,
  "limit": 100,
  "offset": 0,
  "rows": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "budgetId": "4db84122-9c4e-4607-98f7-84b2bbe02daf",
      "reference": "NETFLIXSUB123",
      "status": "ACTIVE",
      "originator": {
        "id": "123456",
        "accountName": "Netflix International",
        "address": {
          "addressType": "ADDR",
          "addressLine": "100 Winchester Circle",
          "city": "Los Gatos",
          "postcode": "95032",
          "countryCode": "US"
        }
      },
      "createdAt": "2024-01-15T10:30:00Z"
    }
  ]
}
```

## Get a Direct Debit

<Note>
  **GET** `/v2/budgets/{budgetId}/direct-debits/{directDebitId}`
</Note>

Use this endpoint to retrieve details about a specific Direct Debit.

### Path parameters

<ParamField path="budgetId" type="string" required>
  The ID of the budget.
</ParamField>

<ParamField path="directDebitId" type="string" required>
  The ID of the Direct Debit.
</ParamField>

### Query parameters

<ParamField query="accountId" type="string" required>
  The ID of the account.
</ParamField>

### Sample request

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/budgets/4db84122-9c4e-4607-98f7-84b2bbe02daf/direct-debits/a1b2c3d4-e5f6-7890-abcd-ef1234567890?accountId=F12345' \
    -H 'Authorization: ApiKey {apiKey}'
  ```

  ```bash Request structure theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/budgets/{budgetId}/direct-debits/{directDebitId}?accountId={accountId}' \
    -H 'Authorization: ApiKey {apiKey}'
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "budgetId": "4db84122-9c4e-4607-98f7-84b2bbe02daf",
  "reference": "NETFLIXSUB123",
  "status": "ACTIVE",
  "originator": {
    "id": "123456",
    "accountName": "Netflix International",
    "address": {
      "addressType": "ADDR",
      "addressLine": "100 Winchester Circle",
      "city": "Los Gatos",
      "postcode": "95032",
      "countryCode": "US"
    }
  },
  "createdAt": "2024-01-15T10:30:00Z"
}
```

<Info>
  To view all transactions associated with a Direct Debit, use the `GET /activity` endpoint with a filter. See the [Transactions API reference](/api-reference/transaction-activity/list-all-transaction-activity).
</Info>

## Cancel a Direct Debit

<Warning>
  Cancelling a Direct Debit is permanent and cannot be undone. Once cancelled, the originator will no longer be able to collect payments from this mandate. Please note that cancelling a Direct Debit without informing the originator may place you in breach of their terms and conditions.

  Cancel at least 1 working day before the next processing date. If you cancel later than this, the next payment request may still be processed.
</Warning>

<Note>
  **POST** `/v2/budgets/{budgetId}/direct-debits/{directDebitId}/cancel`
</Note>

Use this endpoint to cancel a Direct Debit mandate.

### Path parameters

<ParamField path="budgetId" type="string" required>
  The ID of the budget.
</ParamField>

<ParamField path="directDebitId" type="string" required>
  The ID of the Direct Debit.
</ParamField>

### Query parameters

<ParamField query="accountId" type="string" required>
  The ID of the account.
</ParamField>

### Sample request

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/budgets/4db84122-9c4e-4607-98f7-84b2bbe02daf/direct-debits/a1b2c3d4-e5f6-7890-abcd-ef1234567890/cancel?accountId=F12345' \
    -H 'Authorization: ApiKey {apiKey}'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/budgets/{budgetId}/direct-debits/{directDebitId}/cancel?accountId={accountId}' \
    -H 'Authorization: ApiKey {apiKey}'
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "id": "e8f1ef68-2957-4fb1-ba8c-b1931c3754e2",
  "budgetId": "82920c13-a88c-4e3f-b24d-1ae88e47e171",
  "reference": "TEST pro12",
  "status": "CANCELLED",
  "originator": {
    "id": "123457",
    "accountName": "Netflix Inc",
    "address": {
      "addressType": "ADDR",
      "addressLine": "Times street",
      "city": "London",
      "postcode": "EC4V 3BJ",
      "countryCode": "GB"
    }
  },
  "createdAt": "2026-01-26T10:56:26.600Z"
}
```
