CM.com Sepa Direct Debit API

SEPA Direct Debit allows merchants to collect payments directly from customer bank accounts within the SEPA zone.

Business capability
Consumer Payment Options AE-140.30

Operations 5

POST /paymentmethods/sepadirectdebit/v1/transactions Create payment #
GET /paymentmethods/sepadirectdebit/v1/transactions/{transactionId} Fetch payment #
POST /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds Create refund #
GET /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds Fetch refunds #
GET /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/chargebacks Fetch chargebacks #

Documentation

📖
Documentation
https://docs.cm.com/conversational-ai/v1/api-reference
📖
Documentation
https://docs.cm.com/conversational-router/v1/api-reference
📖
Documentation
https://docs.cm.com/conversational-router/v2/api-reference
📖
Documentation
https://docs.cm.com/customer-engagement/v1/api-reference
📖
Documentation
https://docs.cm.com/email-gateway-api/v1/api-reference
📖
Documentation
https://docs.cm.com/halo/analytics/v1/api-reference
📖
Documentation
https://docs.cm.com/halo/core/v1/api-reference
📖
Documentation
https://docs.cm.com/live/entrance-management/v1/api-reference
📖
Documentation
https://docs.cm.com/live/entrance-management/v2/api-reference
📖
Documentation
https://docs.cm.com/live/event-apps/v1/api-reference
📖
Documentation
https://docs.cm.com/live/event-ticketing/v1/api-reference
📖
Documentation
https://docs.cm.com/live/ga-partner/v1/api-reference
📖
Documentation
https://docs.cm.com/live/museum-park-reseller/v1/api-reference
📖
Documentation
https://docs.cm.com/live/museum-park-scan/v1/api-reference
📖
Documentation
https://docs.cm.com/live/tables/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/cdp-integration/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/cms-integrations/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/crm-integrations/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/internal-comms-integrations/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/live-chat-integrations/v1/api-reference
📖
Documentation
https://docs.cm.com/marketplace/product-feed-integrations/v1/api-reference
📖
Documentation
https://docs.cm.com/messaging/business-messaging/v1/api-reference
📖
Documentation
https://docs.cm.com/messaging/channels-api/v1.2/api-reference
📖
Documentation
https://docs.cm.com/mobile-marketing-cloud/cdp-events/v1/api-reference
📖
Documentation
https://docs.cm.com/mobile-marketing-cloud/cdp-profiles/v1/api-reference
📖
Documentation
https://docs.cm.com/mobile-marketing-cloud/email-campaigns/v1/api-reference
📖
Documentation
https://docs.cm.com/mobile-marketing-cloud/email-validation/v1/api-reference
📖
Documentation
https://docs.cm.com/mobile-marketing-cloud/mmc-campaigns/v1/api-reference
📖
Documentation
https://docs.cm.com/payments/online-payments/v1.27.22/api-reference
📖
Documentation
https://docs.cm.com/payments/pos-cloud-api/v1.9.0/api-reference
📖
Documentation
https://docs.cm.com/sign/v1/api-reference
📖
Documentation
https://docs.cm.com/sign/seal/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/iban-verification/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/id-scan/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/identity-hub/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/idin/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/mobile-identity/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/number-validation/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/otp/v1/api-reference
📖
Documentation
https://docs.cm.com/verification/otp/v2/api-reference
📖
Documentation
https://docs.cm.com/voice/audio-manager/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/cdr/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/company-profiles/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/distribution-groups/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/documents/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/number-requests/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/phone-numbers/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/sip-accounts/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/sip-thresholds/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/tts/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/voice-accounts/v1/api-reference
📖
Documentation
https://docs.cm.com/voice/voice-api/v2/api-reference
📖
Documentation
https://docs.cm.com/voice/voice-insights/v1/api-reference

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-health-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-connect-custom-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-gateway-gateway-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-configuration-email-inbound-webhook-update-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-configuration-email-inbound-webhook-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-suppression-email-unsubscribe-filters-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-configuration-email-inbound-webhook-controller-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-suppression-unsubscribe-request-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-conversation-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-feedback-score-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-feedback-score-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-conversations-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-conversation-item-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-metrics-data-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handover-input-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-profile-view-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-culture-view-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-rule-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-rule-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-rule-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-update-rule-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-ticket-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-ticket-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handler-view-customer-product-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handler-view-event-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-event-create-event-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handler-product-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handler-view-order-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-handler-create-discount-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-partner-api-venue-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-whats-app-api-whats-app-template-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-whats-app-api-whats-app-template-language-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-whats-app-api-whats-app-template-base-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-googles-business-messages-api-googles-business-messages-agent-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-whats-app-api-whats-app-profile-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-channels-models-channel-types-mobile-push-api-mobile-push-application-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-profiles-api-models-api-profile-type-property-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-workflows-api-models-workflows-api-workflow-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-profiles-api-models-api-segment-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-profiles-api-models-api-profile-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-workflows-api-models-api-workflow-search-filter-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-data-core-profiles-api-models-api-profile-export-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-campaign-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-single-mail-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-mailing-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-template-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-from-domain-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-tooling-bulk-email-api-models-api-mail-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-email-email-validation-api-models-api-email-address-validation-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-message-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-status-report-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-message-cost-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-message-preview-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-message-channel-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-cm-platform-messages-models-api-recipient-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-card-payment-v2-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-ideal-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-authorize-google-pay-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-riverty-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-ideal-qrtransaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-new-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-store-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-get-apikey-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-apikey-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-apikey-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-template-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-reassign-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-invite-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-template-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-dossier-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-branding-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-seal-document-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-status-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-status-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-webhook-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-page-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-result-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-transaction-detail-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-transaction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-transaction-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-transaction-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-merchant-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-directory-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-identity-match-score-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-identity-match-match-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-identity-match-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-number-verify-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-number-verify-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-sim-swap-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-number-check-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-number-check-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-generate-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-generate-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-verify-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-verify-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-otp-voice-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-otp-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-otp-whats-app-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-otp-email-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-create-otp-push-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-otp-verify-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-conversation-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-company-profile-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-update-company-profile-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-street-number-and-postal-code-validation-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-required-field-validation-result-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-company-profile-status-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-street-number-and-postal-code-validation-result-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-endpoint-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-distribution-group-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-document-metadata-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-uploaded-document-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-create-number-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-create-porting-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-range-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-available-numbers-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-porting-request-order-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-config-notification-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-config-sip-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-config-direct-forwarding-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-config-halo-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-phone-number-config-flow-builder-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-sip-config-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-sip-endpoint-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-sip-account-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-trunk-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-restriction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-platform-domain-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-sip-account-threshold-rule-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-no-content-result-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-tts-voice-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-tts-preview-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-voice-account-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-api-logical-account-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-request-dtmf-instruction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-otp-instruction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-notification-instruction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-flow-builder-instruction-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-call-queued-event-schema.json
📊
JSONSchema
https://artifacts.apis.io/cm-com/json-schema/cm-com-filtered-conversations-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cm-com:cm-com-sepadirectdebit-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cm-com-sepadirectdebit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Payments Gateway Sepa Direct Debit API
  description: Common payments API
  version: 1.27.22
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: /api/v1
security:
- oAuth2ClientCredentials: []
tags:
- name: SepaDirectDebit
  description: SEPA Direct Debit allows merchants to collect payments directly from customer bank accounts within the SEPA zone.
  externalDocs:
    url: https://www.europeanpaymentscouncil.eu/
paths:
  /paymentmethods/sepadirectdebit/v1/transactions:
    post:
      operationId: createSepaDirectDebitTransaction
      description: Create a new SEPA Direct Debit payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
      - SepaDirectDebit
      summary: Create payment
      requestBody:
        description: Create SEPA Direct Debit Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SepaDirectDebitPayment'
      responses:
        '201':
          description: 'The SEPA Direct Debit transaction was created successfully.


            The direct debit will be processed according to SEPA regulations.'
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
              examples:
                openSepaDirectDebit:
                  $ref: '#/components/examples/openSepaDirectDebit'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}:
    get:
      operationId: getSepaDirectDebitTransaction
      description: Retrieve details for an existing SEPA Direct Debit transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
      - SepaDirectDebit
      summary: Fetch payment
      parameters:
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the SEPA Direct Debit transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
              examples:
                openSepaDirectDebit:
                  $ref: '#/components/examples/openSepaDirectDebit'
                successSepaDirectDebit:
                  $ref: '#/components/examples/successSepaDirectDebit'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds:
    post:
      description: 'Create a refund for an existing SEPA Direct Debit transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.


        The **amount** field is required and must be a positive value, which is the amount to be refunded.'
      tags:
      - SepaDirectDebit
      summary: Create refund
      operationId: createSepaDirectDebitRefund
      parameters:
      - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create SEPA Direct Debit Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The SEPA Direct Debit refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      tags:
      - SepaDirectDebit
      operationId: getSepaDirectDebitRefunds
      summary: Fetch refunds
      description: Retrieve refunds for an existing SEPA Direct Debit transaction.
      parameters:
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/chargebacks:
    get:
      tags:
      - SepaDirectDebit
      operationId: getSepaDirectDebitChargebacks
      summary: Fetch chargebacks
      description: Retrieve chargebacks for an existing SEPA Direct Debit transaction.
      parameters:
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/ChargebacksResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Language:
      description: Preferred language for the user interface as ISO 639-1 code. If the provided language is not supported the default will be used. Commonly supported languages are Dutch (nl) and English (en).
      type: string
      default: nl
      example: nl
      minLength: 2
      maxLength: 2
    TransactionWithoutOrderIdLanguageRefundsAndExpiresAt:
      allOf:
      - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt'
      - type: object
        required:
        - createdAt
        properties:
          createdAt:
            $ref: '#/components/schemas/Datetime'
            description: ISO 8601 date and time when the transaction was created.
    TransactionWebhook:
      allOf:
      - $ref: '#/components/schemas/BaseWebhook'
      - type: object
        properties:
          events:
            items:
              description: '* `STATUS_CHANGE` - Triggered when the status of a transaction changes.

                * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.

                * `FINALSTATUS` - This value is deprecated and shouldn''t be used anymore. Use `STATUS_CHANGE` instead.

                '
              oneOf:
              - $ref: '#/components/schemas/StatusChangeEvent'
              - $ref: '#/components/schemas/RefundStatusEvent'
              - $ref: '#/components/schemas/FinalStatusEvent'
              example: STATUS_CHANGE
    Gender:
      description: The consumers gender.
      type: string
      format: enum
      enum:
      - m
      - f
      - 'null'
      default: null
    AddressWithStateAndAdditionalData:
      allOf:
      - $ref: '#/components/schemas/AddressWithoutMandatoryCountry'
      - type: object
        properties:
          state:
            description: The state or province of the consumer's billing address associated with the card used for this purchase. The value must be the country subdivision code (e.g., 'NH') or the official state/province name (e.g., 'Noord Holland') as defined in ISO 3166-2.
            type: string
            maxLength: 40
            example: Noord-Holland
          additionalData:
            description: The consumers house number addition.
            type: string
            maxLength: 35
            example: Right-hand portal
    Payment:
      allOf:
      - $ref: '#/components/schemas/PaymentWithoutDescriptionAndExpiresAt'
      - type: object
        required:
        - description
        properties:
          description:
            $ref: '#/components/schemas/Description'
          expiresAt:
            $ref: '#/components/schemas/Datetime'
            description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**.
    TransactionWebhooksWithChargeback:
      description: 'Array of webhooks that enables receiving a web request once a given event occurs. We won''t do preventive rate-limiting in order to have the highest throughput possible. However, we will honor 429 (Too-many-requests) responses per callback. We use the Retry-After header to retry after a certain period. If the header was not set we use our default exponential delay implementation.

        '
      type: array
      items:
        $ref: '#/components/schemas/TransactionWebhookWithChargeback'
      example:
      - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
        events:
        - STATUS_CHANGE
    Amount:
      description: Denomination in the smallest currency subunit, as for example euro cents.
      type: integer
      minimum: 1
      maximum: 99999999
      example: 1200
    ReturnUrl:
      description: 'URL where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method.


        With this implementation you are responsible to fetch the payment status and incorporated into your site.'
      type: string
      format: url
      maxLength: 2000
      example: https://yourdomain.tld/order/return?orderID=order123
    Reference:
      description: The clients identifier. This value will be sent in the webhook payload alongside the ID you receive as part of the response of a transaction.
      type: string
      minLength: 1
      maxLength: 255
      example: '20210623130413'
    Refund:
      description: Refund an already successfully processed payment.
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
          description: 'Denomination in the smallest currency subunit, as for example euro cents. If empty, the refund amount will be the remaining available amount of the transaction (i.e., total payment amount minus already refunded amounts minus the amounts of the pending refund requests).

            '
        reason:
          $ref: '#/components/schemas/RefundReason'
    PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks:
      allOf:
      - $ref: '#/components/schemas/ReturnURLOneOf'
      - type: object
        required:
        - reference
        - amount
        properties:
          reference:
            $ref: '#/components/schemas/Reference'
          amount:
            $ref: '#/components/schemas/Amount'
          currency:
            $ref: '#/components/schemas/Currency'
    ChargebackStatusEvent:
      description: '* `CHARGEBACK_STATUS` - Triggered when a transaction receives an update on one of its chargebacks.

        '
      type: string
      enum:
      - CHARGEBACK_STATUS
      example: CHARGEBACK_STATUS
    RefundStatusEvent:
      description: '* `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.

        '
      type: string
      enum:
      - REFUND_STATUS
      example: REFUND_STATUS
    TransactionWithoutOrderId:
      allOf:
      - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsAndExpiresAt'
      - type: object
        required:
        - language
        - expiresAt
        properties:
          language:
            $ref: '#/components/schemas/Language'
          expiresAt:
            $ref: '#/components/schemas/Datetime'
            description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**.
          refunds:
            $ref: '#/components/schemas/Refunds'
    ReturnURLOneOf:
      oneOf:
      - type: object
        required:
        - returnUrls
        properties:
          returnUrls:
            $ref: '#/components/schemas/ReturnUrls'
      - type: object
        required:
        - returnUrl
        properties:
          returnUrl:
            $ref: '#/components/schemas/ReturnUrl'
    RedirectAction:
      description: URL where consumer should be redirected to by the merchant to perform the payment.
      type: object
      required:
      - url
      properties:
        url:
          description: URL where consumer should be redirected to by the merchant to perform the payment.
          type: string
          format: url
          example: https://issuer.tld/ideal/start?trxid=213981209381209390821&random=wreq0dq90vgq0ew923123
    Description:
      description: Description of the underlying value or reason of the payment.
      type: string
      maxLength: 255
      example: Order at yourdomain.tld
    Phone:
      description: The phonenumber of the consumer (E.164 format).
      type: string
      maxLength: 16
      example: '+31695613259'
    Country:
      description: Country of the consumer (ISO-3166)
      type: string
      example: NL
      minLength: 2
      maxLength: 2
    ChargebacksList:
      description: Details of all chargebacks belonging to a transaction.
      type: object
      required:
      - chargebacks
      properties:
        chargebacks:
          type: array
          items:
            $ref: '#/components/schemas/ChargebackDetails'
    FinalStatusEvent:
      description: '* `FINALSTATUS` - This value is deprecated and shouldn''t be used anymore. Use `STATUS_CHANGE` instead.

        '
      type: string
      enum:
      - FINALSTATUS
      example: FINALSTATUS
    StatusOpen:
      description: The transaction is open and can be paid.
      type: string
      format: enum
      enum:
      - OPEN
      example: OPEN
    GenderlessConsumer:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/Email'
        phone:
          $ref: '#/components/schemas/Phone'
        dateOfBirth:
          type: string
          format: date
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '1990-05-23'
          description: Date of birth in ISO 8601 format (YYYY-MM-DD).
    StatusAuthorized:
      description: The transaction has been authorized.
      type: string
      format: enum
      enum:
      - AUTHORIZED
      example: AUTHORIZED
    SepaDirectDebitPayment:
      allOf:
      - $ref: '#/components/schemas/Payment'
      - type: object
        required:
        - language
        - consumer
        - sepaDirectDebitDetails
        properties:
          expiresAt:
            allOf:
            - $ref: '#/components/schemas/Datetime'
            - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour.
          webhooks:
            $ref: '#/components/schemas/TransactionWebhooksWithChargeback'
          consumer:
            $ref: '#/components/schemas/SepaDirectDebitConsumer'
          sepaDirectDebitDetails:
            $ref: '#/components/schemas/SepaDirectDebitDetails'
    SepaDirectDebitConsumer:
      description: 'The consumer initiating the SEPA Direct Debit payment. A shopper is registered with the

        payment processor using these details, so the consumer''s name, email and a complete billing

        address are required.'
      allOf:
      - $ref: '#/components/schemas/Consumer'
      - type: object
        required:
        - name
        - email
        - address
        properties:
          name:
            $ref: '#/components/schemas/Name'
          address:
            $ref: '#/components/schemas/SepaDirectDebitBillingAddress'
    AddressWithoutMandatoryCountry:
      type: object
      description: The consumers address.
      properties:
        street:
          description: The consumers street name.
          type: string
          maxLength: 100
          example: Rustenburgerlaan
        houseNumber:
          description: The consumers house number.
          type: string
          maxLength: 35
          example: '25'
        postalCode:
          description: The consumers postal code.
          type: string
          maxLength: 35
          example: 2012AL
        city:
          description: The consumers city.
          type: string
          maxLength: 35
          example: Haarlem
        countryCode:
          $ref: '#/components/schemas/Country'
    PaymentWithoutDescriptionAndExpiresAt:
      allOf:
      - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks'
      - type: object
        properties:
          webhooks:
            $ref: '#/components/schemas/TransactionWebhooks'
    StatusExpired:
      description: The transaction has expired.
      type: string
      format: enum
      enum:
      - EXPIRED
      example: EXPIRED
    BaseWebhook:
      type: object
      description: A single webhook object consists out of an URL to which we need to send the occurred event together with the event that needs to trigger the webhook call.
      required:
      - url
      - events
      properties:
        url:
          description: The URL the request must be send to.
          type: string
          format: url
          example: https://yourdomain.tld/webhooks?purchaseId=order123
        events:
          description: Type of events that will trigger a webhook.
          type: array
          minItems: 1
          items:
            type: string
    LastName:
      description: Consumer's last name.
      type: string
      maxLength: 35
      example: Doe
    Name:
      description: Consumer's name.
      type: object
      required:
      - firstName
      - lastName
      properties:
        firstName:
          description: Consumer's first name.
          type: string
          maxLength: 35
          example: John
        lastName:
          $ref: '#/components/schemas/LastName'
        middleName:
          description: Consumer's middle name.
          type: string
          maxLength: 35
          example: A
    ChargebackStatus:
      description: '* `CHARGED` - The transaction has been charged back by the issuing bank.

        '
      type: string
      enum:
      - CHARGED
      example: CHARGED
    SepaDirectDebitDetails:
      description: Details needed for SEPA direct debit
      type: object
      required:
      - iban
      properties:
        iban:
          type: string
          minLength: 5
          maxLength: 34
          description: IBAN of the consumer
          example: NL91ABNA0417164300
    Transaction:
      allOf:
      - $ref: '#/components/schemas/TransactionWithoutOrderId'
      - type: object
        required:
        - orderId
        properties:
          orderId:
            allOf:
            - deprecated: true
            - $ref: '#/components/schemas/Uuid'
    TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt:
      allOf:
      - $ref: '#/components/schemas/ReturnURLOneOf'
      - type: object
        required:
        - id
        - reference
        - amount
        - currency
        - status
        - description
        properties:
          id:
            $ref: '#/components/schemas/TransactionId'
          reference:
            $ref: '#/components/schemas/Reference'
          amount:
            $ref: '#/components/schemas/Amount'
          currency:
            $ref: '#/components/schemas/Currency'
          webhooks:
            $ref: '#/components/schemas/TransactionWebhooks'
          description:
            $ref: '#/components/schemas/Description'
    RefundReason:
      description: 'The description for the refund for administrative purpose only. This reason will be visible in the portal.

        '
      type: string
      example: Refund required by consumer.
      maxLength: 255
    RefundsList:
      description: Details of all refunds belonging to a transaction.
      type: object
      required:
      - refunds
      properties:
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/RefundDetails'
    RefundStatus:
      description: '* `SUCCESS`    - Refund has succeeded.

        * `PENDING`    - Refund is waiting to be processed.

        * `FAILURE`    - Refund has failed.

        * `CANCELLED`  - Refund has been cancelled.

        '
      type: string
      enum:
      - SUCCESS
      - PENDING
      - FAILURE
      - CANCELLED
      example: SUCCESS
    Address:
      allOf:
      - $ref: '#/components/schemas/AddressWithStateAndAdditionalData'
      - type: object
        required:
        - countryCode
    Currency:
      description: ISO 4217 currency code.
      type: string
      minLength: 3
      maxLength: 3
      default: EUR
      example: EUR
    StatusSuccess:
      description: The transaction has been successfully paid.
      type: string
      format: enum
      enum:
      - SUCCESS
      example: SUCCESS
    Datetime:
      type: string
      format: date-time
      minLength: 20
      example: '2006-01-02T15:04:05Z'
      description: ISO 8601 date and time.
    StatusCancelled:
      description: The transaction has been cancelled by the consumer.
      type: string
      format: enum
      enum:
      - CANCELLED
      example: CANCELLED
    ReturnUrls:
      type: object
      description: 'URLs where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method.


        With this object we can redirect consumer to a dedicated page per payment result status. Either this object or the returnUrl field is mandatory.'
      required:
      - success
      - cancelled
      - expired
      - failed
      properties:
        success:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-success.html
        cancelled:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-cancelled.html
        expired:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-expired.html
        failed:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-failed.html
    TransactionId:
      description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId.
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: 8db1e7fa-ba8a-4189-92fd-67a20217443d
    SepaDirectDebitBillingAddress:
      description: 'The consumer''s billing address. Street, house number, city and country code are required

        so a shopper can be registered with the payment processor.'
      allOf:
      - $ref: '#/components/schemas/Address'
      - type: object
        required:
        - street
        - houseNumber
        - city
    TransactionWebhooks:
      description: 'Array of webhooks that enables receiving a web request once a given event occurs. We won''t do preventive rate-limiting in order to have the highest throughput possible. However, we will honor 429 (Too-many-requests) responses per callback. We use the Retry-After header to retry after a certain period. If the header was not set we use our default exponential delay implementation.

        '
      type: array
      items:
        $ref: '#/components/schemas/TransactionWebhook'
      example:
      - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
        events:
        - STATUS_CHANGE
    Refunds:
      description: Details of refunds for a transaction
      type: object
      required:
      - refundedAmount
      - refundedPendingAmount
      properties:
        refundedAmount:
          description: Amount in the smallest currency subunit, as for example euro cents, that has already been refunded.
          type: integer
          minimum: 0
          maximum: 99999999
          example: 300
        refundedPendingAmount:
          description: Amount in the smallest currency subunit, as for example euro cents, that has been requested to be refunded.
          type: integer
          minimum: 1
          maximum: 99999999
          example: 100
    ChargebackDetails:
      description: Details of a chargeback.
      type: object
      required:
      - id
      - transactionId
      - amount
      - currency
      - status
      - chargebackDate
      - created
      - updated
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/Uuid'
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        reason:
          description: The reason for the chargeback as reported by the issuing bank.
          type: string
          example: Fraudulent transaction
        status:
          $ref: '#/components/schemas/ChargebackStatus'
        chargebackDate:
          $ref: '#/components/schemas/Datetime'
          description: Date and time when the chargeback was registered by the issuing bank.
        created:
          $ref: '#/components/schemas/Datetime'
        updated:
          $ref: '#/components/schemas/Datetime'
    Email:
      description: The email address of the consumer.
      type: string
      format: email
      example: john.doe@email.tld
    Consumer:
      allOf:
      - $ref: '#/components/schemas/GenderlessConsumer'
      - type: object
        properties:
          gender:
            $ref: '#/components/schemas/Gender'
    StatusChangeEvent:
      description: '* `STATUS_CHANGE` - Triggered when the status of a transaction changes.

        '
      type: string
      enum:
      - STATUS_CHANGE
      example: STATUS_CHANGE
    RefundDetails:
      description: Details of a refund.
      type: object
      required:
      - id
      - transactionId
      - amount
      - reason
      - status
      - created
      - updated
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/Uuid'
        amount:
          $ref: '#/components/schemas/Amount'
        reason:
          $ref: '#/components/schemas/RefundReason'
        status:
          $ref: '#/components/schemas/RefundStatus'
        created:
          $ref: '#/components/schemas/Datetime'
        updated:
          $ref: '#/components/schemas/Datetime'
    SepaDirectDebitTransaction:
      allOf:
      - $ref: '#/components/schemas/Transaction'
      - type: object
        required:
        - action
        - status
        properties:
          status:
            description: The status of the transaction.
            oneOf:
            - $ref: '#/components/schemas/StatusOpen'
            - $ref: '#/components/schemas/StatusSuccess'
            - $ref: '#/components/schemas/StatusCancelled'
            - $ref: '#/components/schemas/StatusExpired'
            - $ref: '#/components/schemas/StatusFailure'
            - $ref: '#/components/schemas/StatusAuthorized'
          action:
            anyOf:
            - type: object
              description: Next action to be performed by the merchant (or consumer) to complete the payment.
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            - type: 'null'
    Uuid:
      description: Unique identifier
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: 8db1e7fa-ba8a-4189-92fd-67a20217443d
    PaymentWithoutDescriptionExpiresAtAndWebhooks:
      allOf:
      - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks'
      - type: object
        properties:
          language:
            $ref: '#/components/schemas/Language'
    TransactionWebhookWithChargeback:
      allOf:
      - $ref: '#/components/schemas/BaseWebhook'
      - type: object
        properties:
          events:
            items:
              description: '* `STATUS_CHANGE` - Triggered when the status of a transaction changes.

                * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.

                * `CHARGEBACK_STATUS` - Triggered when a transaction receives an update on one of its chargebacks.

                * `FINALSTATUS` - This value is deprecated and shouldn''t be used anymore. Use `STATUS_CHANGE` instead.

                '
              oneOf:
              - $ref: '#/components/schemas/StatusChangeEvent'
              - $ref: '#/components/schemas/RefundStatusEvent'
              - $ref: '#/components/schemas/ChargebackStatusEvent'
              - $ref: '#/components/schemas/FinalStatusEvent'
              example: STATUS_CHANGE
    StatusFailure:
      description: The transaction has failed.
      type: string
      format: enum
      enum:
      - FAILURE
      example: FAILURE
  responses:
    UserError:
      description: The user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized)
      content:
        application/json:
          schema:
            type: object
            required:
            - id
            - message
            properties:
              id:
                $ref: '#/components/schemas/Uuid'
              message:
                type: string
                example: no authorization methods provided
    ChargebacksResponse:
      description: Details of all chargebacks belonging to a transaction.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ChargebacksList'
    InternalError:
      description: Internal server error. This can be caused by an unresponsive backend
      content:
        application/json:
          schema:
            type: object
            required:
            - id
            - message
            properties:
              id:
                $ref: '#/components/schemas/Uuid'
              message:
                type: string
                example: Service Unavailable
    RefundsResponse:
      description: Details of all refunds belonging to a transaction.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RefundsList'
  examples:
    openSepaDirectDebit:
      summary: Open SEPA Direct Debit transaction
      value:
        id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f
        reference: '20210623130413'
        amount: 3500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        webhooks:
        - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
          events:
          - STATUS_CHANGE
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.cmpayments.nl/sepadirectdebit/5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        createdAt: '2025-05-27T13:03:04Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    successSepaDirectDebit:
      summary: Successful SEPA Direct Debit transaction
      value:
        id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f
        reference: '20210623130413'
        amount: 3500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        webhooks:
        - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
          events:
          - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
  headers:
    Digest:
      description: Digest of the whole message body. Follow [RFC 3230](https://datatracker.ietf.org/doc/html/rfc3230) for more information.
      schema:
        type: string
        example: sha-256=OWM5MDc3ODYwNzdjYjE5NjU0Y2NjMDM4MzEyYzMxZTA5MTAzMDBjYWM1Y2I1ODM4NTdlMDU2MzhiMzE1ZDhjNw==
  parameters:
    TransactionId:
      name: transactionId
      description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/TransactionId'
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 Client Credentials Grant.
      flows:
        clientCredentials:
          tokenUrl: /api/v1/authorization/oauth2/token
          scopes: {}