> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://infonite.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://infonite.dev/_mcp/server.

# Direct debits

**Where it lives:** at `direct_debits` in the **Financial Position**, and on its own from the direct debits endpoint.

Direct debits are the fastest read on somebody's fixed commitments. Rent, utilities, insurance, subscriptions, loan instalments at other institutions — each with the creditor that charges it and the history of what was actually taken. It is the same information you could mine out of a year of transactions, already grouped by who is charging.

### Schema (`SEPADirectDebitSchema`)

A SEPA direct debit authorization, with its recent charges and supporting documents.

```yaml
components:
  schemas:
    SepaDirectDebitSchemaAccount:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - clabe
              description: 'Discriminator value: clabe'
            value:
              type: string
              format: clabe
              description: Clave Bancaria Estandarizada
            masked:
              type: string
              minLength: 1
              maxLength: 19
              description: Partial Clabe
            entity_country:
              type: string
              description: Bank Country
            entity_code:
              type: string
              description: Bank code
            entity_office:
              type: string
              description: Bank office
            control_digits:
              type: string
              description: Control digit
          required:
            - type
            - value
            - masked
            - entity_country
            - entity_code
            - entity_office
            - control_digits
          description: Clave Bancaria Estandarizada
        - type: object
          properties:
            type:
              type: string
              enum:
                - generic
              description: 'Discriminator value: generic'
            value:
              type: string
              description: Identifier
            entity_country:
              type: string
              format: country
              description: Entity country
            entity_code:
              type: string
              description: Entity code
            entity_office:
              type: string
              description: Entity office
            control_digits:
              type: string
              description: Control digits
          required:
            - type
            - value
          description: Generic account identifier
        - type: object
          properties:
            type:
              type: string
              enum:
                - iban
              description: 'Discriminator value: iban'
            value:
              type: string
              format: iban
              description: International Bank Account Number
            masked:
              type: string
              minLength: 1
              maxLength: 34
              description: Partial IBAN
            entity_country:
              type: string
              description: Bank Country
            entity_code:
              type: string
              description: Bank code
            entity_office:
              type: string
              description: Bank office
            control_digits:
              type: string
              description: Control digits
          required:
            - type
            - value
            - masked
            - entity_country
            - entity_code
            - entity_office
            - control_digits
          description: International Bank Account Number
      discriminator:
        propertyName: type
      description: The customer's account the debit is charged to.
      title: SepaDirectDebitSchemaAccount
    DirectDebitStatus:
      type: string
      enum:
        - unknown
        - active
        - cancelled
        - suspended
        - expired
      title: DirectDebitStatus
    CustomerSegment:
      type: string
      enum:
        - not_assigned
        - personal
        - business
        - corporate
        - private
        - retail
      title: CustomerSegment
    BeneficiarySchemaAccount:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - clabe
              description: 'Discriminator value: clabe'
            value:
              type: string
              format: clabe
              description: Clave Bancaria Estandarizada
            masked:
              type: string
              minLength: 1
              maxLength: 19
              description: Partial Clabe
            entity_country:
              type: string
              description: Bank Country
            entity_code:
              type: string
              description: Bank code
            entity_office:
              type: string
              description: Bank office
            control_digits:
              type: string
              description: Control digit
          required:
            - type
            - value
            - masked
            - entity_country
            - entity_code
            - entity_office
            - control_digits
          description: Clave Bancaria Estandarizada
        - type: object
          properties:
            type:
              type: string
              enum:
                - generic
              description: 'Discriminator value: generic'
            value:
              type: string
              description: Identifier
            entity_country:
              type: string
              format: country
              description: Entity country
            entity_code:
              type: string
              description: Entity code
            entity_office:
              type: string
              description: Entity office
            control_digits:
              type: string
              description: Control digits
          required:
            - type
            - value
          description: Generic account identifier
        - type: object
          properties:
            type:
              type: string
              enum:
                - iban
              description: 'Discriminator value: iban'
            value:
              type: string
              format: iban
              description: International Bank Account Number
            masked:
              type: string
              minLength: 1
              maxLength: 34
              description: Partial IBAN
            entity_country:
              type: string
              description: Bank Country
            entity_code:
              type: string
              description: Bank code
            entity_office:
              type: string
              description: Bank office
            control_digits:
              type: string
              description: Control digits
          required:
            - type
            - value
            - masked
            - entity_country
            - entity_code
            - entity_office
            - control_digits
          description: International Bank Account Number
      discriminator:
        propertyName: type
      description: Account the beneficiary collects into, when the bank discloses it.
      title: BeneficiarySchemaAccount
    BeneficiarySchema:
      type: object
      properties:
        identifier:
          type: string
          description: Beneficiary identifier, as the bank reports it.
        name:
          type: string
          description: Beneficiary name.
        account:
          $ref: '#/components/schemas/BeneficiarySchemaAccount'
          description: Account the beneficiary collects into, when the bank discloses it.
        tax_id:
          type: string
          description: Beneficiary tax ID, when the bank discloses it.
      description: Who collects the debit.
      title: BeneficiarySchema
    PayerSchema:
      type: object
      properties:
        name:
          type: string
          description: Payer name.
        identifier:
          type: string
          description: Payer identifier, as the bank reports it.
      description: Who pays the debit.
      title: PayerSchema
    FinancialTransactionStatus:
      type: string
      enum:
        - unknown
        - pending
        - booked
        - cancelled
        - failed
        - reversed
      title: FinancialTransactionStatus
    InfoniteSchemasUtilsCurrencyAmountSchema1Currency:
      oneOf:
        - type: string
          format: currency
        - type: string
          enum:
            - '***'
      description: >-
        Three-letter ISO currency code — or `***` when the source did not
        disclose the currency.
      title: InfoniteSchemasUtilsCurrencyAmountSchema1Currency
    infonite__schemas__utils__CurrencyAmountSchema__1:
      type: object
      properties:
        currency:
          $ref: >-
            #/components/schemas/InfoniteSchemasUtilsCurrencyAmountSchema1Currency
          description: >-
            Three-letter ISO currency code — or `***` when the source did not
            disclose the currency.
        amount:
          type: string
          format: number
          description: Decimal number with 2 digits precision
      required:
        - currency
        - amount
      description: A monetary amount together with its currency.
      title: infonite__schemas__utils__CurrencyAmountSchema__1
    DirectDebitTransactionSchema:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/FinancialTransactionStatus'
          description: Status of this charge.
        issue_date:
          type: string
          format: datetime
          description: Date the charge was issued.
        payment_date:
          type: string
          format: datetime
          description: Date the charge was paid.
        concept:
          type: string
          description: Concept of the charge, as the bank reports it.
        amount:
          $ref: >-
            #/components/schemas/infonite__schemas__utils__CurrencyAmountSchema__1
          description: Amount of the charge.
      required:
        - status
      description: >-
        One charge of the direct debit: when it was issued and paid, and for how
        much.
      title: DirectDebitTransactionSchema
    ProductAttachmentType:
      type: string
      enum:
        - attachment:attachment
        - attachment:supplier_invoice
        - attachment:client_invoice
        - attachment:es-tgss-life-report
        - attachment:es-tgss-contribution-base-report
        - attachment:es-aeat-model-100
        - attachment:es-cirbe-report
        - attachment:sepa-direct-debit-bill
      description: Product Attachment Type
      title: ProductAttachmentType
    FileAttachmentSchema:
      type: object
      properties:
        product:
          type: string
          enum:
            - attachment
          default: attachment
          description: The product type identifier. Always `attachment`.
        sub_family:
          $ref: '#/components/schemas/ProductAttachmentType'
          description: >-
            What kind of document this is (e.g.
            `attachment:es-tgss-life-report`).
        id:
          type: string
          format: object-id
          description: >-
            Attachment identifier — use it to download the file through the
            execution's attachments

            endpoint.
        content_name:
          type: string
          description: File name of the document.
        content_hash:
          type: string
          description: Fingerprint of the content, to verify its integrity.
        content_type:
          type: string
          format: mime-type
          description: MIME type of the content.
        metadata:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            Extra facts about the document, as simple key-value pairs (e.g. its
            official verification

            code, its issue date).
      required:
        - sub_family
        - id
        - content_name
        - content_type
        - metadata
      description: >-
        A document attached to a result — an official report, a receipt, an
        invoice... The entry

        describes the file; its bytes are downloaded through the execution's
        attachments endpoint

        using `id`.
      title: FileAttachmentSchema
    SEPADirectDebitSchema:
      type: object
      properties:
        id:
          type: string
          format: object-id
          description: >-
            Product ID for the current execution. It may change between
            executions.
        product:
          type: string
          enum:
            - direct_debit
        sub_family:
          type: string
          enum:
            - direct_debit:sepa
        fetch_date:
          type: string
          format: datetime
          description: Date this product was fetched.
        account:
          $ref: '#/components/schemas/SepaDirectDebitSchemaAccount'
          description: The customer's account the debit is charged to.
        debit_reference:
          type: string
          description: Mandate/debit reference, as the bank reports it.
        status:
          $ref: '#/components/schemas/DirectDebitStatus'
          description: Status of the direct debit authorization.
        customer_segment:
          $ref: '#/components/schemas/CustomerSegment'
          description: >-
            Whether the account belongs to a personal or a business
            relationship.
        beneficiary:
          $ref: '#/components/schemas/BeneficiarySchema'
        payer:
          $ref: '#/components/schemas/PayerSchema'
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/DirectDebitTransactionSchema'
          description: Recent charges of this debit, as reported by the bank.
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/FileAttachmentSchema'
          default: []
          description: >-
            Supporting documents of the debit — e.g. the receipt of the most
            recent charge. Each

            entry's `id` downloads the file through the execution's attachments
            endpoint.
      required:
        - id
        - product
        - sub_family
        - fetch_date
        - account
        - status
        - customer_segment
        - beneficiary
        - payer
        - transactions
      title: SEPADirectDebitSchema
```

## Status

### Schema (`DirectDebitStatus`)

```yaml
components:
  schemas:
    DirectDebitStatus:
      type: string
      enum:
        - unknown
        - active
        - cancelled
        - suspended
        - expired
      title: DirectDebitStatus
```

A cancelled or returned mandate is worth as much as an active one: a returned charge is an unpaid commitment, which is exactly what an affordability check is looking for.

## The charges themselves

### Schema (`DirectDebitTransactionSchema`)

One charge of the direct debit: when it was issued and paid, and for how much.

```yaml
components:
  schemas:
    FinancialTransactionStatus:
      type: string
      enum:
        - unknown
        - pending
        - booked
        - cancelled
        - failed
        - reversed
      title: FinancialTransactionStatus
    InfoniteSchemasUtilsCurrencyAmountSchema1Currency:
      oneOf:
        - type: string
          format: currency
        - type: string
          enum:
            - '***'
      description: >-
        Three-letter ISO currency code — or `***` when the source did not
        disclose the currency.
      title: InfoniteSchemasUtilsCurrencyAmountSchema1Currency
    infonite__schemas__utils__CurrencyAmountSchema__1:
      type: object
      properties:
        currency:
          $ref: >-
            #/components/schemas/InfoniteSchemasUtilsCurrencyAmountSchema1Currency
          description: >-
            Three-letter ISO currency code — or `***` when the source did not
            disclose the currency.
        amount:
          type: string
          format: number
          description: Decimal number with 2 digits precision
      required:
        - currency
        - amount
      description: A monetary amount together with its currency.
      title: infonite__schemas__utils__CurrencyAmountSchema__1
    DirectDebitTransactionSchema:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/FinancialTransactionStatus'
          description: Status of this charge.
        issue_date:
          type: string
          format: datetime
          description: Date the charge was issued.
        payment_date:
          type: string
          format: datetime
          description: Date the charge was paid.
        concept:
          type: string
          description: Concept of the charge, as the bank reports it.
        amount:
          $ref: >-
            #/components/schemas/infonite__schemas__utils__CurrencyAmountSchema__1
          description: Amount of the charge.
      required:
        - status
      title: DirectDebitTransactionSchema
```

**`beneficiary` is the creditor.** Grouping mandates by it gives you a monthly commitment profile — housing, utilities, insurance, credit — without categorising a single transaction.