> For the complete documentation index, see [llms.txt](https://docs.hyperswitch.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hyperswitch.io/integrations/connectors-integrations/payment-processor-capabilities/available-connectors/deutschebank.md).

# Deutsche Bank

Configure Deutsche Bank card and SEPA Direct Debit payments with Hyperswitch.

Deutsche Bank supports card acquisition and SEPA Direct Debit through Hyperswitch. Card payments require 3DS, while SEPA Direct Debit supports mandate-based payments. Refund and capture options are listed by payment route below.

### Status and capabilities

**Integration status:** sandbox

**Category:** bank acquirer

**Webhook flows:** None declared in code

| Payment method | Type              | Mandates      | Refunds   | Capture methods                         | 3DS            | Card networks    | Countries | Currencies |
| -------------- | ----------------- | ------------- | --------- | --------------------------------------- | -------------- | ---------------- | --------- | ---------- |
| bank debit     | SEPA Direct Debit | supported     | supported | automatic, manual, sequential automatic | not applicable | -                | -         | -          |
| card           | Credit Card       | not supported | supported | automatic, manual, sequential automatic | required       | Mastercard, Visa | -         | -          |
| card           | Debit Card        | not supported | supported | automatic, manual, sequential automatic | required       | Mastercard, Visa | -         | -          |

### Authentication

Provide the **Client ID**, **Merchant ID**, and **Client Key** shown in the connector form. The labels come from [`deutschebank.connector_auth.SignatureKey`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/connector_configs/toml/sandbox.toml#L2362-L2365), and [`DeutschebankAuthType::try_from()`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs#L59-L95) maps all three values.

They are not used the same way. The **Client ID** and **Client Key** obtain a bearer token before the first payment: Hyperswitch posts a form to [`/security/v1/token`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L196-L203) with `grant_type=client_credentials` and `scope=ftx`, sending the **Client ID** as `client_id`. The **Client Key** is never sent directly — it is the HMAC-SHA256 key over the client ID, the current HTTP date and a random string, and the base64 signature travels as `client_secret` with a `V1:` prefix ([token request](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L209-L247)). A wrong **Client ID** or **Client Key** fails at this step.

Every later request carries the fetched token in the `Authorization: Bearer` header, together with the **Merchant ID** in the `Merchant-ID` header ([`build_headers` and `get_auth_header`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L100-L154)). The **Merchant ID** is not part of the token exchange, so a wrong value surfaces on the payment or refund request instead.

### Before you start

Request the **Client ID**, **Merchant ID**, and **Client Key** for the DirectPOS REST API (`merch.directpos.de`; `testmerch.directpos.de` in the sandbox) from [Deutsche Bank](https://www.deutschebank.de/). Once you have them, follow [Activate a connector on Hyperswitch](/integrations/connectors-integrations/activate-connector-on-hyperswitch.md) to enter them in the connector form, then return here for connector behavior. Deutsche Bank appears in the control center payment-processor list ([`connectorList`](https://github.com/juspay/hyperswitch-control-center/blob/ecca16a27cb6acb336569ea30714fa05d867c765/src/screens/Connectors/ConnectorUtils.res#L89-L205)).

### Webhooks

Deutsche Bank webhooks are not supported. The webhook methods return `WebhooksNotImplemented`; use payment sync for payment status and refund sync for refund status. See [`IncomingWebhook for Deutschebank`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L985-L1009), [`ConnectorIntegration<PSync>`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L577-L648), and [`ConnectorIntegration<RSync>`](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs#L916-L983).

### Source reference

Authentication and webhook behavior on this page is tied to Hyperswitch `7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8`. See [Deutsche Bank connector source](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank.rs) and [Deutsche Bank transformers](https://github.com/juspay/hyperswitch/blob/7a348f02a94edf7b2593e65ca6ffaf8d8f9ee6f8/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hyperswitch.io/integrations/connectors-integrations/payment-processor-capabilities/available-connectors/deutschebank.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
