Fintecture E-Mandates API

Create, list, retrieve, update (cancel/revoke), and manage SEPA-style customer e-mandates identified by a unique Reference Unique Mandate (RUM). Returns 409 Conflict on duplicate RUM. Requires a dedicated E-Mandate access token.

Fintecture E-Mandates API is one of 8 APIs that Fintecture publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include E-Mandates, SEPA, Direct Debit, and Recurring Payments. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

fintecture-emandates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fintecture E-Mandates API
  description: >
    Create, list, retrieve, update (cancel/revoke), and manage SEPA-style
    customer e-mandates identified by a unique Reference Unique Mandate (RUM).
    Duplicate RUM submissions return 409 Conflict. Requires a dedicated
    E-Mandate access token.
  version: "v1"
  contact:
    name: Fintecture Support
    url: https://fintecture.com/contact

servers:
  - url: https://api.fintecture.com
    description: Production
  - url: https://api-sandbox.fintecture.com
    description: Sandbox

security:
  - BearerAuth: []

tags:
  - name: E-Mandates
    description: Customer e-mandates

paths:
  /v1/e-mandates:
    get:
      summary: List All E-Mandates
      description: List all merchant e-mandates.
      operationId: listAllEmandates
      tags: [E-Mandates]
      responses:
        '200':
          description: E-mandates list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items: { $ref: '#/components/schemas/EMandate' }
    post:
      summary: Create E-Mandate
      description: Create a customer e-mandate. Returns 409 Conflict if an e-mandate with the same RUM already exists.
      operationId: createEmandate
      tags: [E-Mandates]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/EMandateCreate' }
      responses:
        '201':
          description: E-mandate created
          content:
            application/json:
              schema: { $ref: '#/components/schemas/EMandate' }
        '409':
          description: RUM already exists

  /v1/e-mandates/{mandate_id}:
    get:
      summary: Get An E-Mandate
      operationId: getEmandateById
      tags: [E-Mandates]
      parameters:
        - $ref: '#/components/parameters/MandateIdPath'
      responses:
        '200':
          description: E-mandate details
          content:
            application/json:
              schema: { $ref: '#/components/schemas/EMandate' }
    patch:
      summary: Update An E-Mandate
      description: Update a customer e-mandate. Only status updates are allowed. Accepted statuses are 'cancelled' and 'revoked'.
      operationId: patchEmandateById
      tags: [E-Mandates]
      parameters:
        - $ref: '#/components/parameters/MandateIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum: [cancelled, revoked]
      responses:
        '200':
          description: E-mandate updated
          content:
            application/json:
              schema: { $ref: '#/components/schemas/EMandate' }

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    MandateIdPath:
      in: path
      name: mandate_id
      required: true
      schema: { type: string }
  schemas:
    EMandate:
      type: object
      properties:
        id: { type: string }
        rum:
          type: string
          description: Reference Unique Mandate identifier.
        customer_id: { type: string }
        iban: { type: string }
        holder_name: { type: string }
        type:
          type: string
          enum: [recurring, one-off]
        scheme:
          type: string
          enum: [SEPA, SEPA-B2B]
        status:
          type: string
          enum: [active, cancelled, revoked, expired]
        signed_at: { type: string, format: date-time }
        created_at: { type: string, format: date-time }

    EMandateCreate:
      type: object
      required: [rum, customer_id, iban, holder_name]
      properties:
        rum: { type: string }
        customer_id: { type: string }
        iban: { type: string }
        holder_name: { type: string }
        type:
          type: string
          enum: [recurring, one-off]
        scheme:
          type: string
          enum: [SEPA, SEPA-B2B]