> ## 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.

# Create Direct Debits

> Create a Direct Debit mandate from a paper mandate using the Equals API.

Use the `/v2/budgets/{budgetId}/direct-debits` endpoint to create a Direct Debit mandate from a paper mandate — a signed physical form that authorises an originator to collect payments from a payer's bank account. Paper mandates are the offline equivalent of setting up a Direct Debit digitally.

This is useful when you need to manage mandates that weren't created through the API. For example, if your business collected Direct Debit authorisations on paper before your integration existed, those mandates still need to be registered in the system. The `reference` field is the link between the physical form and the mandate record — you'll find it printed on the original paper mandate.

<Info>
  This endpoint is specifically for paper mandates. Electronic mandates are set up directly by the originator through the BACS network and don't need to be created via the API.
</Info>

## Create a Direct Debit mandate

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

### Query parameters

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

### Request body

<ParamField body="reference" type="string" required>
  The Direct Debit reference. Maximum 18 characters.
</ParamField>

<ParamField body="processingDate" type="string">
  The date from which the mandate should be active, in `YYYY-MM-DD` format.
</ParamField>

<ParamField body="originator" type="object" required>
  Details about the originator.
</ParamField>

<ParamField body="originator.id" type="string" required>
  The originator's identification number. Maximum 6 characters.
</ParamField>

<ParamField body="originator.accountName" type="string" required>
  The originator's account name. Maximum 35 characters.
</ParamField>

<ParamField body="originator.address" type="object" required>
  The originator's address.
</ParamField>

<ParamField body="originator.address.addressType" type="string" required>
  The address type. Allowable values: `ADDR`, `PBOX`, `HOME`, `BIZZ`, `MLTO`, `DLVY`.
</ParamField>

<ParamField body="originator.address.streetName" type="string" required>
  The street name.
</ParamField>

<ParamField body="originator.address.buildingNumber" type="string" required>
  The building number.
</ParamField>

<ParamField body="originator.address.buildingName" type="string" required>
  The building name.
</ParamField>

<ParamField body="originator.address.postcode" type="string" required>
  The postal code.
</ParamField>

<ParamField body="originator.address.city" type="string" required>
  The city.
</ParamField>

<ParamField body="originator.address.countryCode" type="string" required>
  The country code in ISO 3166-1 alpha-2 format (e.g., `GB`).
</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?accountId=F12345' \
    -H 'Authorization: ApiKey {apiKey}' \
    -H 'Content-Type: application/json' \
    -d '{
      "reference": "UTILITYCO123456",
      "processingDate": "2024-02-01",
      "originator": {
        "id": "654321",
        "accountName": "Utility Company Ltd",
        "address": {
          "addressType": "ADDR",
          "streetName": "High Street",
          "buildingNumber": "123",
          "postcode": "SW1A 1AA",
          "city": "London",
          "countryCode": "GB"
        }
      }
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/budgets/{budgetId}/direct-debits?accountId={accountId}' \
    -H 'Authorization: ApiKey {apiKey}' \
    -H 'Content-Type: application/json' \
    -d '{
      "reference": "string",
      "processingDate": "YYYY-MM-DD",
      "originator": {
        "id": "string",
        "accountName": "string",
        "address": {
          "addressType": "ADDR | PBOX | HOME | BIZZ | MLTO | DLVY",
          "streetName": "string",
          "buildingNumber": "string",
          "buildingName": "string",
          "postcode": "string",
          "city": "string",
          "countryCode": "string"
        }
      }
    }'
  ```
</CodeGroup>

### Sample response

If your request is successful, you'll receive a `201` response.

```json theme={null}
{
  "id": "e8f1ef68-2957-4fb1-ba8c-b1931c3754e2",
  "budgetId": "82920c13-a88c-4e3f-b24d-1ae88e47e171",
  "reference": "TEST pro12",
  "status": "ACTIVE",
  "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"
}
```
