SEPA

Introduction

SEPA Logo

The Single Euro Payments Area (SEPA) is an initiative of the European banking industry that makes electronic payments across the euro area as easy as domestic payments within one country. The payments are processed under the same basic conditions, rights, and obligations regardless of their location. The SEPA project is strongly supported by the European Commission and the European Central Bank. It is based on ISO 20022 standards.

SEPA can be used for every kind of business inside the SEPA area. Transactions are processed only in Euro. Member countries include the 28 EU Member States as well as Iceland, Liechtenstein, Monaco, Norway, and Switzerland.

For information about SEPA timelines, please refer to the European Payments Council: SEPA Payment Scheme Management

The SEPA Payment Methods

Wirecard offers two SEPA payment methods.

SEPA Direct Debit is very popular in Germany, Austria and the Netherlands.

Transaction Types

The following transaction types may be used with both SEPA Direct Debit and SEPA Credit Transfer payment methods. For payment method specific transaction types, please refer to the individual payment method pages.

SEPA void

Wirecard Payment Gateway allows merchants to void SEPA Direct Debit and SEPA Credit Transfer transactions before they are forwarded to the bank for settlement.

This means: It is only possible to void a transaction between the time the transaction request has been received by the Wirecard Payment Gateway for processing and the time the transaction will be forwarded for processing to the bank. Once the payment was processed by the bank and settled, it is no longer possible to void a transaction.

To void an existing pending SEPA Direct Debit or SEPA Credit Transfer transaction, a merchant must

  • send a void-pending-debit or void-pending-credit request.

  • include the parent-transaction-ID.

Restrictions

To ensure proper processing, please take into consideration the following restrictions for SEPA Void transactions:

  • A pending-debit or pending-credit transaction may only be voided before the transaction is batched into a file and sent to the bank for processing.

Batch processing starts at around 10:00 UTC.
  • If a void request is sent after the transaction has been sent to the bank, a Failed response will be returned.

  • Once a corresponding debit or credit transaction exists for the original pending-debit or pending-credit it is no longer possible to void a transaction.

  • A request for a void transaction must contain a parent-transaction ID referring to the pending-debit or pending-credit transaction that should be voided.

Fields

The fields used for SEPA Void requests, responses and notifications are the same as the REST API fields. Please refer to REST API Fields or the request example for the fields required in a void-pending-debit or void-pending-credit transaction.

If the amount is sent within the request for the void transaction it will be checked if it is the same amount as in the previous pending-debit or pending-credit request. Partial cancellations are currently not possible.

Only the fields listed below have different properties.

The following elements are mandatory (M) or optional (O) for a request/response/notification. If the respective cell is empty, the field is disregarded or not sent.

Field Request Response Notification Description

requested-amount

O

M

M

This is the amount of the transaction. The amount of the decimal place is dependent of the currency. Min amount €0.01. Max amount €999,999,999.99.

If it is sent within the request it will be validated if it is the same amount like in the pending-debit or pending-credit request.

requested-currency

O

M

M

This is the currency of the requested-amount. Only EUR is accepted.

payment-methods.payment-method-Name

M

M

M

This is the name of the payment method sepadirectdebit or sepacredit.

parent-transaction-id

M

M

M

Transaction ID of the transaction that needs to be voided.

transaction-type

M

M

M

This is the type for a transaction. For a SEPA Void request, only void-pending-debit, void-debit, void-pending-credit or void-credit are allowed.

SEPA deposit

Occasionally, a consumer send funds back to the merchant, either at the request of the merchant or through his/her own initiative. There are several reasons for this such as a re-payment or a subsequent / supplementary payment for an already existing SEPA Direct Debit transaction.

These supplementary payments enter the Wirecard Payment Gateway as transactions with transaction type deposit and with the payment method wiretransfer.

If the consumer provides the PTRID (Provider Transaction Reference ID) in the descriptor of his transfer, the Wirecard Payment Gateway will attempt to match the deposit with the original SEPA Direct Debit or SEPA Credit Transfer transaction. If the PTRID is not provided or it is not possible to match the transaction, the transaction will remain unmatched.

Fields

The following elements are submitted in the IPN (Instant Payment Notification) either mandatory (M) or optional (O):

Field

Notification

Description

request-id

M

This is the identification number of the request on the merchant’s side. It must be unique for each request.

transaction-type

M

This is the type for a transaction. For SEPA Deposit, it is always deposit.

payment-methods.payment-method-Name

M

This is the name of the payment method wiretransfer.

Sample
XML deposit Notification
<?xml version="1.0" encoding="UTF-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
    <merchant-account-id>7d10ba14-5527-45de-85f5-2aaede73c225</merchant-account-id>
    <transaction-id>8486a305-59fe-488d-bf63-8255ad5d3d68</transaction-id>
    <request-id>88541df6-a5af-4c2a-ae71-44c0b17ae494-deposit</request-id>
    <transaction-type>deposit</transaction-type>
    <transaction-state>success</transaction-state>
    <completion-time-stamp>2018-03-26T12:41:03.000Z</completion-time-stamp>
    <statuses>
        <status code="201.0000" description="bank:The resource was successfully created." severity="information"/>
    </statuses>
    <requested-amount currency="EUR">10.01</requested-amount>
    <parent-transaction-id>a88b4b46-f288-432a-b800-829976a11577</parent-transaction-id>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <descriptor>SONI MR-01</descriptor>
    <payment-methods>
        <payment-method name="wiretransfer"/>
    </payment-methods>
    <api-id>---</api-id>
    <provider-transaction-reference-id>E98FABD066</provider-transaction-reference-id>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
            <Reference URI="">
                <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                </Transforms>
                <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                <DigestValue>DMS2y5xxPoDnm/QXEFX/jQZXWsS/O7Ydtw1Gbe5U9jE=</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>pS2QkXfqI4buhzyzp2fYbTC3SBeSNe0/LDVRw6GlF1FNkh9rq0V740/12k4S5iYtaxBPXishkZVFw0sVCnaTrNhOqBjaUG6UAL0+tmaxQwgLhJojwZCM9jnovT1ShwGXkYU7wWJxX20Ue2MnoputiTkMV5sDNYY/TElP5kwoe+2oVxLZbGpgbmyvSnJwpzpb32a8wrTxRRgBnHy3Vvo2FcyojliV1H+EI+WDBL6RycEQPHT48d0E7tu0oIUTz0y3jNV4H5oaxQ0KLKMOBkGGDJ4N5zWc39oqjQh/fzvtcvVyreVuQR27s+w6NltPRUYHxhheRi+WnZtS5FXKc+TcDyw7ya7dBfMxhUBAdXPBkd2TqH7ty8bgVmUGEC39Eazb1XG+3jpBmHIbUMTP2C0HFeNFmlb6Y7zYoQIcc+dXQzWJRIXz1QTr20Q7tjkataeTKzupo55JLyw8BCrFJi4kL8SgrInODj9utjJvPgIbA/vt1KDwVvkWoHh9ejIuQhddxePqmywufsWt1YNw/pkQ8g056l2Lc2QhRWdbT3MWesPVLUtl1UJaxmCmOdIUCHPwj9Xw5uO0zeJICdnxBPtBKCEX6hOUqptw9AZvtSlUEfmhJJE1O722uYy+6MoAzVthLOukeANaegesjpEYE8pnImicgRLmsRDalO0V8E6jL9g=</SignatureValue>
        <KeyInfo>
            <X509Data>
                <X509SubjectName>L=Ascheim,CN=engine.wirecard.sys,OU=Operations,O=Wirecard Technologies GmbH,C=DE</X509SubjectName>
                <X509Certificate>MIIF0DCCBLigAwIBAgICK8EwDQYJKoZIhvcNAQELBQAwWzELMAkGA1UEBhMCREUxETAPBgNVBAoTCFdpcmVjYXJkMTkwNwYDVQQDFDB3aXJlY2FyZC1EUS1NVUMtaW50ZXJuYWwtd2Vic2VydmljZS1pc3N1aW5nQ0FfMDIwHhcNMTYwNTIwMDc1MDI0WhcNMTgwNTIwMDc1MDI0WjB3MQswCQYDVQQGEwJERTEjMCEGA1UEChMaV2lyZWNhcmQgVGVjaG5vbG9naWVzIEdtYkgxEzARBgNVBAsTCk9wZXJhdGlvbnMxHDAaBgNVBAMTE2VuZ2luZS53aXJlY2FyZC5zeXMxEDAOBgNVBAcTB0FzY2hlaW0wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDyqm9WQZish8wxW5WOB0m/kunHIcOC5DC8aEk55S4uf9hRi16+Fkg1y626GC//0eXVle+leUhF/e9e4wfqt/2wVNwkjhy2ww5uT2ZqojzvGyCAjnyDIr4C6+6Ezz9FZ1h2lNsbNRuKSoahTdycGAqduj5xjpiuNAnmh1EAZEYWSmR/QvY+PTV6+ltZAl5WlVCmTHuBUqvMUEOfMew5B7iA1BDUZ508l76cfTKHOu15kqA5ajxaAC/DeawCPSCdsdOTsWSVbKvn5FM8VK29Ah699XWi85sG5uniklhyDKuaHPplrL7+9eA1XaFSsaOc+obDRe2lus8YmIUMvaSsDfglZOGq8VLrDIXo2i4WC2AiNFtLNC/bndxrrYRd2+Rb5VviNblcQu1pfWTDd2SWKtyegg558UAAAgM2kJ4EUujCKp2t9EOELJZ2yHABTIySkuCkeLJfpqL6bGQJEZlzgtEE6hS1ywPjPMNg2F1BKGNH79KK8GvehWYDX4VfKoTROVHqc5ODxWGBoZ+mxHWiwLZ96KBniMBnoTuXTi5op7/0sW8F8ykd9kE6yH2d8YQMTQ6PAY4DG6KpsC0J2zE4P+iGfDeMnoud9Zws24ogf/mTag13URkYpYKpAglwuSHcciZgfGXSrmne+MspKbO24Ny0wZP3suY9ssNfyLooSlMfXwIDAQABo4IBgDCCAXwwEQYDVR0OBAoECEDpj0A8MIh/MBMGA1UdIwQMMAqACENsHhbUPQUOMAsGA1UdDwQEAwIE8DCCAUMGA1UdHwSCATowggE2MIIBMqCCAS6gggEqhoHVbGRhcDovL3dpcmVjYXJkLmxhbi9DTj13aXJlY2FyZC1EUS1NVUMtaW50ZXJuYWwtd2Vic2VydmljZS1pc3N1aW5nQ0FfMDIsQ049Q0RQLENOPVB1YmxpYyBLZXkgU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixkYz13aXJlY2FyZCxkYz1sYW4/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPUNSTERpc3RyaWJ1dGlvblBvaW50hlBodHRwOi8vY3JsLndpcmVjYXJkLmxhbi9DUkxfd2lyZWNhcmQtRFEtTVVDLWludGVybmFsLXdlYnNlcnZpY2UtaXNzdWluZ0NBXzAyLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAmCbqd802pphK0hwKDcQ4mctQk1tXXS38+016QDOh/uJTzmG5WqFZfoXZ8GYwMl5zjE6g+ciuVv3q393gLLZdZrUHEOKS1xj8xWjUQd4uNDJPXY1RamPBDptahn6/AIR89UFDaN37L3fI7EfLqTHpbD92ZGVssmt/0cjd9ekNGN66dEJB0YGBZTVEALhwYF1KtcxiLo2b1KnbmKLgnldF6RwP6p93fpO29mQxw4ePU2/+GyWmYW053ObAYqMVNelLc2Fj4W82El2Gbw/rFBiNM9qBpYS8YkMwsmTr0m49AsI2H401KBwfR4Ci1zUXfZjWchIZjjEVeIR7gMTOl+/Cog==</X509Certificate>
            </X509Data>
        </KeyInfo>
    </Signature>
</payment>
SEPA debit-return and credit-return

A debit-return reverses a debit transaction. It is initiated by the consumer bank

  • if the consumer disputes the transaction

  • if there is a problem with the consumer bank account (e.g. bank account closed)

A credit-return reverses a credit transaction. It is initiated either by

  • the merchant’s bank (e.g. insufficient funds)

  • the consumer’s bank (e.g. bank account closed)

All debit-returns and credit-returns are included in reconciliation files provided by Wirecard Bank and sent to the Wirecard Payment Gateway. The transaction types debit-return and credit-return are then initiated by the Wirecard Payment Gateway. It is not possible for a merchant to request these transaction types.

If possible, a debit-return or credit-return is matched by the Wirecard Payment Gateway (WPG_)_ to its original debit/credit, based on the provider transaction reference ID (PTRID) and the merchant account.

Possible return codes are documented within Return Codes.

Workflow
SEPA Workflow
  1. Consumer’s bank sends a debit-return or credit-return to Wirecard Bank.

  2. Wirecard Bank forwards the transaction to the WPG.

  3. WPG receives the transaction.

  4. WPG uses the PTRID to find an initial parent debit or parent credit transaction.

    1. If successful, WPG maps the debit-return to a debit or credit-return to a credit.

    2. if not successful, WPG creates a debit-return or credit-return without reference.

  5. WPG sends a notification about the debit-return or credit-return to the merchant.

Sample
XML debit-return Notification
<?xml version="1.0" encoding="UTF-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
    <merchant-account-id>cd237c02-72fb-4fc4-a5ab-c965ba95b5a9</merchant-account-id>
    <transaction-id>d7f4038d-3e37-403c-842f-9bfda761149c</transaction-id>
    <request-id>e446b34c-c5f5-43c4-9b2b-a1415096c334-debit-return</request-id>
    <transaction-type>debit-return</transaction-type>
    <transaction-state>success</transaction-state>
    <completion-time-stamp>2018-07-17T10:56:00.000Z</completion-time-stamp>
    <statuses>
       <status code="201.0001" description="bank:Reason for the return was not specified by the debtor bank" severity="information"/>
    </statuses>
    <requested-amount currency="EUR">10.01</requested-amount>
    <parent-transaction-id>3fa23529-a93d-4701-8e60-b01e699f3709</parent-transaction-id>
    <account-holder>
       <first-name>John</first-name>
       <last-name>Doe</last-name>
    </account-holder>
    <descriptor>Sanho XS 234-T</descriptor>
    <payment-methods>
       <payment-method name="sepadirectdebit"/>
    </payment-methods>
    <mandate>
       <mandate-id>12345678</mandate-id>
       <signed-date>2018-07-17</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <api-id>---</api-id>
    <due-date>2018-07-20T00:00:00.000Z</due-date>
    <consumer>
       <first-name>Jack</first-name>
       <last-name>Smith</last-name>
    </consumer>
    <provider-transaction-reference-id>13DFDA6E77</provider-transaction-reference-id>
    <instrument-country>DE</instrument-country>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
       <SignedInfo>
          <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
          <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
          <Reference URI="">
             <Transforms>
                <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
             </Transforms>
             <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
             <DigestValue>BiZCe3KfQqbKFo0cAw+4b17WylkhDMMp8ahMGaDzbPQ=</DigestValue>
          </Reference>
       </SignedInfo>
       <SignatureValue>k+QO8NDFgh5RQTMZCVjOhRJ82I6Tft8z2b2UF5a0M5f4iYycd93tG8qYXJZmdpiEXnpVZg2yVmZWAJD23N3/+aONjA1EAzv4egMNb4zDSfSjQ9px2udU0YKJmUfHueFMvdXCykVtk+osYvIgm+xYg6HSLQEiBstM3OS3Hwo1UkZf2Vn/8a/QbKVpxC2cNNQd95L0HuveDbGB+FNfBqf855gkxJIfLpmTfyDB9HD9SSwquGbRf0XeTpX0wthYQepEfWSNIWpaCgoVOSFMaLjMMsnjUwn3Gga7ZJKn4VLDlwi9KROZmm/86XyXYyoP8qEIGnJxAV0zj6fM35bmCcS/1ipWJG9bpngB1K95JF1zs/GSQ4nKVnPsQZs5ifoGiqSoJ+kq8C4KHv2VOng4TFEFcGxyfLfEUHuSNpshezEVtOVfVo3jNkVLLl9I8tLXF7+HiNHGzPXgY330iwzikIJZxpozem0KkLRCM0dn2lsFzSWkT9qS7kNuDsSUb0YRWDPdWVldBrtG8wRdgx/SeSeE8L+vk4MtmEPSE46X9IHhn4OEBu7pKE3RvuEThrRgtKNvLG1CX9+ke7wXuyRrT93OOunVoCRi7XJdUUIS0Aov9a1Xaf/jEa24AGoOTkj96RhnuAjhwy7P+qD7OBk+4MNQfLRwQE/n3U3SJ2aufE+ds30=</SignatureValue>
       <KeyInfo>
          <X509Data>
             <X509SubjectName>L=Ascheim,CN=engine.wirecard.sys,OU=Operations,O=Wirecard Technologies GmbH,C=DE</X509SubjectName>
             <X509Certificate>MIIF0DCCBLigAwIBAgICK8EwDQYJKoZIhvcNAQELBQAwWzELMAkGA1UEBhMCREUxETAPBgNVBAoTCFdpcmVjYXJkMTkwNwYDVQQDFDB3aXJlY2FyZC1EUS1NVUMtaW50ZXJuYWwtd2Vic2VydmljZS1pc3N1aW5nQ0FfMDIwHhcNMTYwNTIwMDc1MDI0WhcNMTgwNTIwMDc1MDI0WjB3MQswCQYDVQQGEwJERTEjMCEGA1UEChMaV2lyZWNhcmQgVGVjaG5vbG9naWVzIEdtYkgxEzARBgNVBAsTCk9wZXJhdGlvbnMxHDAaBgNVBAMTE2VuZ2luZS53aXJlY2FyZC5zeXMxEDAOBgNVBAcTB0FzY2hlaW0wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDyqm9WQZish8wxW5WOB0m/kunHIcOC5DC8aEk55S4uf9hRi16+Fkg1y626GC//0eXVle+leUhF/e9e4wfqt/2wVNwkjhy2ww5uT2ZqojzvGyCAjnyDIr4C6+6Ezz9FZ1h2lNsbNRuKSoahTdycGAqduj5xjpiuNAnmh1EAZEYWSmR/QvY+PTV6+ltZAl5WlVCmTHuBUqvMUEOfMew5B7iA1BDUZ508l76cfTKHOu15kqA5ajxaAC/DeawCPSCdsdOTsWSVbKvn5FM8VK29Ah699XWi85sG5uniklhyDKuaHPplrL7+9eA1XaFSsaOc+obDRe2lus8YmIUMvaSsDfglZOGq8VLrDIXo2i4WC2AiNFtLNC/bndxrrYRd2+Rb5VviNblcQu1pfWTDd2SWKtyegg558UAAAgM2kJ4EUujCKp2t9EOELJZ2yHABTIySkuCkeLJfpqL6bGQJEZlzgtEE6hS1ywPjPMNg2F1BKGNH79KK8GvehWYDX4VfKoTROVHqc5ODxWGBoZ+mxHWiwLZ96KBniMBnoTuXTi5op7/0sW8F8ykd9kE6yH2d8YQMTQ6PAY4DG6KpsC0J2zE4P+iGfDeMnoud9Zws24ogf/mTag13URkYpYKpAglwuSHcciZgfGXSrmne+MspKbO24Ny0wZP3suY9ssNfyLooSlMfXwIDAQABo4IBgDCCAXwwEQYDVR0OBAoECEDpj0A8MIh/MBMGA1UdIwQMMAqACENsHhbUPQUOMAsGA1UdDwQEAwIE8DCCAUMGA1UdHwSCATowggE2MIIBMqCCAS6gggEqhoHVbGRhcDovL3dpcmVjYXJkLmxhbi9DTj13aXJlY2FyZC1EUS1NVUMtaW50ZXJuYWwtd2Vic2VydmljZS1pc3N1aW5nQ0FfMDIsQ049Q0RQLENOPVB1YmxpYyBLZXkgU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixkYz13aXJlY2FyZCxkYz1sYW4/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPUNSTERpc3RyaWJ1dGlvblBvaW50hlBodHRwOi8vY3JsLndpcmVjYXJkLmxhbi9DUkxfd2lyZWNhcmQtRFEtTVVDLWludGVybmFsLXdlYnNlcnZpY2UtaXNzdWluZ0NBXzAyLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAmCbqd802pphK0hwKDcQ4mctQk1tXXS38+016QDOh/uJTzmG5WqFZfoXZ8GYwMl5zjE6g+ciuVv3q393gLLZdZrUHEOKS1xj8xWjUQd4uNDJPXY1RamPBDptahn6/AIR89UFDaN37L3fI7EfLqTHpbD92ZGVssmt/0cjd9ekNGN66dEJB0YGBZTVEALhwYF1KtcxiLo2b1KnbmKLgnldF6RwP6p93fpO29mQxw4ePU2/+GyWmYW053ObAYqMVNelLc2Fj4W82El2Gbw/rFBiNM9qBpYS8YkMwsmTr0m49AsI2H401KBwfR4Ci1zUXfZjWchIZjjEVeIR7gMTOl+/Cog==</X509Certificate>
          </X509Data>
       </KeyInfo>
    </Signature>
</payment>

Dynamic Descriptor

Just like Credit Card it is also possible to use a Dynamic Descriptor with SEPA.

Reporting

A reconciliation file is available to download by merchants. This allows merchant to have the most up-to-date status for their transactions. For more information about the reconciliation file see chapter Data Reconciliation or please contact Wirecard Merchant Support.

Bank Data Validation

The Wirecard Payment Gateway validates the consumer’s bank data, to ensure transactions with faulty bank data are not forwarded to the bank for processing.

IBAN Validation

Wirecard Payment Gateway validates the consumer’s IBAN in the following manner:

  • The validity of the country code within the IBAN

  • The validity of the country code within the SEPA scheme

  • The structure of the IBAN including:

    • the length of the IBAN based on the issuing country

    • the position of the bank identifier

    • the position of the country code

    • the position of the check digits

  • Check digit verification

BIC Validation

Wirecard Payment Gateway validates the consumer’s BIC in the following manner:

  • The length of the BIC may only be either 8 or 11 characters

  • The validity of the BIC within the SEPA scheme

SEPA IBAN Only

According to the EU’s SEPA migration directive, as of February 1, 2016, the BIC is no longer required to process cross-border SEPA Direct Debit and SEPA Credit Transfer transactions. The merchant may still submit the BIC along with the IBAN, however, it is no longer a mandatory field.

Depending on the payment method, some providers may still use the BIC as support functionality.

Return Codes

SEPA transactions may be returned by either the merchant or consumer bank for several reasons described below.

SEPA Return Codes
EE Status Code Reason Name Reason Description

201.0001

Return reason not specified

Reason for the return was not specified by the debtor bank

201.0002

Debtor / Account holder deceased

Debtor or account holder is deceased

201.0003

Debtor bank details incorrect

Debtor bank details are incorrect

201.0004

Debtor account closed

Debtor account is closed

201.0005

Insufficient funds on debtor account

There are insufficient funds on the debtor bank account

201.0006

Mandate not valid, not active or cancelled

Mandate reference provided is not valid, not active or cancelled

201.0008

Transaction forbidden

The payment type is not allowed for this type of account

201.0009

Invalid Bank Operation Code

Invalid transaction code or incorrect data format (issued by debtor bank)

201.0010

Duplicate transaction on debtor account

A duplicate transaction has been found on the debtor account

201.0011

creditor address missing

Missing creditor address (only in the case of direct debit)

201.0012

missing mandatory mandate information

Incomplete or incorrect mandatory information on the mandate (issued by debtor bank)

201.0013

Invalid File Format

Data format is invalid for any reason other than grouping indicator

201.0014

Refund request by End-Customer (payer)

A refund has been requested by the debtor (payer)

201.0015

Regulatory reasons

Refusal due to regulatory reasons

201.0016

Invalid due date or execution date

The due date or execution date specified in the request is not within the limits required by the payment method

201.0017

Incorrect BIC

Bank Identifier Code (BIC) is incorrect or invalid

201.0018

Amendment of mandate reference

There has been an amendment to the mandate reference provided

201.0019

Returned due to technical problems

The transaction has been returned due to technical problems.

SEPA Credit Transfer

Wirecard Payment Gateway supports referenced and non-referenced SEPA Credit Transfer options.

General Information
Payment Mode, Countries and Currencies

This table illustrates which payment mode SEPA Credit Transfer belongs to. It also provides detailed information about the countries and currencies which are relevant for SEPA Credit Transfer.

Payment Mode

Offline Bank Transfer

Countries

Please contact merchant support for Countries.

Currencies

Please contact merchant support for Currencies.

Communication Formats

This table illustrates how SEPA Credit Transfer notifications are encoded and which formats and methods can be used for requests and responses.

Requests/Responses

Format

XML

Methods

POST

IPN Encodement

Please follow the instructions given at Instant Payment Notification to set up IPN.

Transactions
Transaction Types

For transaction type details which are not given here look at Appendix B: Transaction Types.

Transaction Type Description Link to the Samples

authorization

Verifies payment details for structural validity and / or generates a reference ID for the merchant (not mandatory).

pending-credit

Transaction is processed in the Wirecard Payment Gateway.

See samples.

void-pending-credit

Voids a pending-credit.
Only available when the restrictions are met.

See samples.

credit

Transaction is processed by Wirecard Bank.

credit-return

The payment is returned by the consumer bank. See Return Codes.

Recurring Transactions are not supported for SEPA Credit Transfer.
The transaction type within the request must be credit or pending-credit. A credit will be transformed into a pending-credit by default.
refund

SEPA Credit Transfer may be used as a method for merchants to return funds to consumers. If it is being used as a way for the merchant to refund a specific debit transaction, it is recommended that a parent-transaction ID (i.e. the transaction ID of the successful Debit) is included in the request in order to be able to match the refund to the original transaction.

void

SEPA void can be used with both SEPA payment methods: SEPA Credit Transfer and SEPA Direct Debit.

Execution Date
This is the date on which the transfer will be executed. According to SEPA regulations, it is required to be one (1) business day after it has entered the banking system. This date is set by Wirecard during processing and is not part of the request or the response.
Test Credentials

URLs (Endpoints)

https://api-test.wirecard.com/engine/rest/paymentmethods/

Merchant Account ID (MAID)

59a01668-693b-49f0-8a1f-f3c1ba025d45

Username

16390-testing

Password

3!3013=D3fD8X7

Secret Key

Please contact merchant support for complete test credentials.

Workflow
SEPA Credit Transfer Workflow
  1. The transaction type within the request must be credit or pending-credit.

  2. If the request is successful, a response will be returned with status Success. This response means that the transaction has entered the Wirecard Payment Gateway successfully. The transaction itself is in a pending status, waiting to be sent to the merchant’s bank.

  3. If the request is not successful, a response will be returned with status Failed. The response always contains a status code and a description. Please read this description carefully as it will help to understand why the transaction request has failed and what needs to be fixed in order to send a successful transaction request.

  4. Once the transaction has been successfully sent to and processed by the bank, a new transaction with type credit will be created in status Success. This process usually takes up to 2 business days. The transaction will then be forwarded the Central Bank for processing.

  5. If the transaction has been rejected by the merchant’s bank, a credit transaction on status Failed will be created and the transaction will not be sent to the Central Bank.

  6. The merchant will receive a notification of the credit transaction.

Although a transaction has been successfully processed by the merchant’s bank, the transaction may still be reversed by the consumer’s bank for reasons such as insufficient funds, account owner deceased, bank account closed, etc. In this case, a credit-return transaction will be created and matched to the original credit transaction to ensure the merchant has a complete overview for his debtor management. For a full list of credit-return reasons, please refer to the list of SEPA Return Codes.

The merchant can request the status of the transaction at any time by sending a "Retrieve Transaction by Transaction ID" or "Retrieve Transaction by Request ID".

Fields

The fields used for SEPA Credit Transfer requests, responses and notifications are the same as the REST API fields. Please refer to: REST API Fields.

Only the fields listed below have different properties.

The following elements are mandatory (M), optional (O) or conditional (C) for a request/response/notification.

Field Request Response Notification Datatype Size Description

descriptor

O

O

O

String

100

Description on the settlement of the account holder’s account about a transaction.

For SEPA Credit Transfer transactions, it will be combined with the Provider Transaction Reference ID and the merchant’s static descriptor and will appear on the consumer’s bank account statement.

payment-methods.payment-method-Name

M

M

M

String

15

This is the name of the payment method sepacredit.

api-id

M

api-id

25

The API id is always returned in the notification. For SEPA it is "---"

bank-account.bic

O

O

O

String

8 or 11

This is the Business Identifier Code of the bank of the end-consumer. In SEPA Area where IBAN Only is enabled, BIC is an optional field.

bank-account.iban

C

C

C

String

34

This is the International Bank Account Number of the end-consumer.

If no parent-transaction-id is provided it remains mandatory.

provider-transaction-reference-id

M

M

String

10

This ID provides a reference for the complete end-to-end lifecycle of a SEPA Credit Transfer transaction. It is used as a reference within the banking system to ensure all transactions referencing each other (eg: a credit and a debit-return) are matched and that the complete lifecycle of a payment is identifiable. Wirecard generates this ID for the merchant.

account-holder.last-name

M

M

M

String

32

This is the last name of the end-consumer.

Samples

Go to Notification Examples, if you want to see corresponding notification samples.

pending-credit

XML

XML Pending-Credit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>pending-credit</transaction-type>
    <!-- optional  <parent-transaction-id>a31d8dcc-fedc-11e4-8671-005056a97162</parent-transaction-id> -->
    <requested-amount currency="EUR">0.11</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
        <email>john.doe@example.com</email>
        <address>
            <street1>Example Street 1</street1>
            <city>Example City</city>
            <country>DE</country>
        </address>
    </account-holder>
    <!-- optional  <order-number>4509334</order-number> -->
    <!-- optional   <descriptor>test</descriptor> -->
    <payment-methods>
        <payment-method name="sepacredit" />
    </payment-methods>
    <bank-account>
        <iban>HU29117080012054779400000000</iban>
        <bic>GENODEF1OGK</bic>
    </bank-account>
    <!-- optional  <cancel-redirect-url>http://sandbox-engine.thesolution.com/shop_urlViaRequest/cancel.html</cancel-redirect-url> --></payment>
XML Pending-Credit Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
  <transaction-id>d1bb484a-2d12-4f2c-91fa-138b34197497</transaction-id>
  <request-id>cca8ea3c-6203-459f-9cbf-8705fd0f3800</request-id>
  <transaction-type>pending-credit</transaction-type>
  <transaction-state>success</transaction-state>
  <completion-time-stamp>2018-04-13T08:39:19.000Z</completion-time-stamp>
  <statuses>
    <status code="201.0000" description="The resource was successfully created." severity="information" />
  </statuses>
  <requested-amount currency="EUR">0.11</requested-amount>
  <account-holder>
    <first-name>John</first-name>
    <last-name>Doe</last-name>
    <email>john.doe@example.com</email>
    <address>
      <street1>Example Street 1</street1>
      <city>Example City</city>
      <country>DE</country>
    </address>
  </account-holder>
  <payment-methods>
    <payment-method name="sepacredit" />
  </payment-methods>
  <bank-account>
    <iban>HU29117080012054779400000000</iban>
    <bic>GENODEF1OGK</bic>
  </bank-account>
  <provider-transaction-reference-id>BA89E3BADC</provider-transaction-reference-id>
</payment>
XML Pending-Credit Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>pending-credit</transaction-type>
    <requested-amount currency="EUR">10.01</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepacredit" />
    </payment-methods>
    <bank-account>
        <bic>WIREDEMMXXX</bic>
    </bank-account></payment>
XML Pending-Credit Response (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
 <transaction-id>c9d5f0c2-9331-4c7e-afd6-e1eb407243ad</transaction-id>
 <request-id>54d9d8fd-f33b-43b7-8f0e-753ba16991f0</request-id>
 <transaction-type>pending-credit</transaction-type>
 <transaction-state>failed</transaction-state>
 <completion-time-stamp>2018-04-13T08:42:39.000Z</completion-time-stamp>
 <statuses>
  <status code="400.1081" description="The Bank Account IBAN information has not been provided.  Please check your input and try again." severity="error" />
 </statuses>
 <requested-amount currency="EUR">10.01</requested-amount>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
 </account-holder>
 <payment-methods>
  <payment-method name="sepacredit" />
 </payment-methods>
 <bank-account>
  <bic>WIREDEMMXXX</bic>
 </bank-account>
</payment>

JSON

JSON Pending-Credit Request (Successful)
{
  "payment" : {
    "merchant-account-id" : {
      "value" : "4c901196-eff7-411e-82a3-5ef6b6860d64"
    },
    "request-id" : "${unique for each request}",
    "transaction-type" : "pending-credit",
    "requested-amount" : {
      "value" : 0.11,
      "currency" : "EUR"
    },
    "account-holder" : {
      "first-name" : "John",
      "last-name" : "Doe",
      "email" : "daemonize@yahoo.co.uk",
      "address" : {
        "street1" : "Tiefstraße 3",
        "city" : "München",
        "country" : "DE"
      }
    },
    "payment-methods" : {
      "payment-method" : [ {
        "name" : "sepacredit"
      } ]
    },
    "bank-account" : {
      "iban" : "HU29117080012054779400000000",
      "bic" : "GENODEF1OGK"
    },
    "mandate" : {
      "mandate-id" : "12345678",
      "signed-date" : "2014-05-06"
    },
    "consumer" : {
      "first-name" : "",
      "last-name" : ""
    }
  }
}
JSON Pending-Credit Response (Successful)
 {
  "payment" : {
    "merchant-account-id" : {
      "value" : "4c901196-eff7-411e-82a3-5ef6b6860d64"
    },
    "transaction-id" : "7c55532a-34f9-11e5-b074-005056a96a54",
    "request-id" : "${request}",
    "transaction-type" : "pending-credit",
    "transaction-state" : "success",
    "completion-time-stamp" : 1438068184000,
    "statuses" : {
      "status" : [ {
        "value" : "",
        "code" : "201.0000",
        "description" : "The resource was successfully created.",
        "severity" : "information"
      } ]
    },
    "requested-amount" : {
      "value" : 0.11,
      "currency" : "EUR"
    },
    "account-holder" : {
      "first-name" : "John",
      "last-name" : "Doe",
      "email" : "daemonize@yahoo.co.uk",
      "address" : {
        "street1" : "Tiefstraße 3",
        "city" : "München",
        "country" : "DE"
      }
    },
    "payment-methods" : {
      "payment-method" : [ {
        "name" : "sepacredit"
      } ]
    },
    "bank-account" : {
      "iban" : "HU29117080012054779400000000",
      "bic" : "GENODEF1OGK"
    },
    "mandate" : {
      "mandate-id" : "12345678",
      "signed-date" : "2014-05-06"
    },
    "consumer" : {
      "first-name" : "",
      "last-name" : ""
    },
    "provider-transaction-reference-id" : "FD787FBC69"
  }
}
void-pending-credit

Void-Pending-Credit Restrictions

void-pending-credit transactions can be sent until the transaction is not sent to the bank.

XML

XML Void-Pending-Credit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>void-pending-credit</transaction-type>
    <requested-amount currency="EUR">0.15</requested-amount>
    <parent-transaction-id>${derived from former pending-credit transaction}</parent-transaction-id>
    <payment-methods>
        <payment-method name="sepacredit" />
    </payment-methods>
</payment>
XML Void-Pending-Credit Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
 <transaction-id>75abb31d-30fc-472e-97d8-67081dbd9e6c</transaction-id>
 <request-id>cf9fddf3-97e8-4fef-989d-0b0274ceab17</request-id>
 <transaction-type>void-pending-credit</transaction-type>
 <transaction-state>success</transaction-state>
 <completion-time-stamp>2018-04-13T08:45:05.000Z</completion-time-stamp>
 <statuses>
  <status code="200.0000" description="The request completed successfully." severity="information" />
 </statuses>
 <requested-amount currency="EUR">0.15</requested-amount>
 <parent-transaction-id>8938d389-6575-4467-95e4-ca9cf89266b9</parent-transaction-id>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@example.com</email>
  <address>
   <street1>Example Street 1</street1>
   <city>Example City</city>
   <country>DE</country>
  </address>
 </account-holder>
 <payment-methods>
  <payment-method name="sepacredit" />
 </payment-methods>
 <bank-account>
  <iban>HU29117080012054779400000000</iban>
  <bic>GENODEF1OGK</bic>
 </bank-account>
 <api-id>---</api-id>
</payment>
XML Void-Pending-Credit Request (Failed)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>void-pending-credit</transaction-type>
    <requested-amount currency="EUR">10.00</requested-amount>
    <payment-methods>
        <payment-method name="sepacredit" />
    </payment-methods></payment>
XML Void-Pending-Credit Response (Failed)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id ref="unknown">59a01668-693b-49f0-8a1f-f3c1ba025d45</merchant-account-id>
 <request-id>41595b1c-8994-4c2e-ae05-d48c00471b29</request-id>
 <transaction-type>void-pending-credit</transaction-type>
 <transaction-state>failed</transaction-state>
 <completion-time-stamp>2018-04-13T08:47:59.131Z</completion-time-stamp>
 <statuses>
  <status code="400.1021" description="The Parent Transaction Id is required, and not provided.  Please check your input and try again." severity="error" />
 </statuses>
 <requested-amount currency="EUR">10.00</requested-amount>
 <payment-methods>
  <payment-method name="sepacredit" />
 </payment-methods>
</payment>

SEPA Direct Debit

SEPA Direct Debit is a payment method which authorizes a transaction before it transfers money from the consumer account to the merchant.

During the authorization process SEPA Direct Debit checks the validity of IBAN/BIC and Creditor ID. If the check is positive, SEPA Direct Debit performs a debit via Wirecard Bank to consumer’s bank on the referred consumer account. If the balance on the consumer account is not sufficient, the consumer receives a notification from his bank about the rejection and the merchant receives a debit-return.

There might be other reasons for a debit-return right after the debit transaction was processed successfully:

  • The consumer account might be locked, closed or the account is not enabled for Direct Debit.

  • The consumer declines a transaction by the given SEPA Scheme time constraints without giving any reasons: 8 weeks by default or 13 months in case the debit was not authorized. All these reasons cannot be checked by Wirecard Payment Gateway or Wirecard Bank.

General Information
Payment Mode, Countries and Currencies

This table illustrates which payment mode SEPA Direct Debit belongs to. It also provides detailed information about the countries and currencies which are relevant for SEPA Direct Debit.

Payment Mode

Offline Bank Transfer

Countries

The 28 EU Member States as well as Iceland, Liechtenstein, Monaco, Norway, and Switzerland.

Currencies

EUR

Communication Formats

This table illustrates how SEPA Direct Debit notifications are encoded and which formats and methods can be used for requests and responses.

Requests/Responses

Format

XML

Methods

POST, GET

IPN Encodement

targeting the endpoint /engine/rest/payments/ (e.g. Credit Card)

non-encoded

targeting the endpoint /engine/rest/paymentmethods/ (e.g. SEPA)

Base64

Transaction Types

For transaction type details which are not given here look at Appendix B: Transaction Types.

Transaction Type Description Link to the Samples

authorization

Verifies payment details for structural validity and/or generates a reference ID for the merchant (not mandatory).

See samples.

pending-debit

Transaction is processed in the Wirecard Payment Gateway.

void-pending-debit

Voids a pending-debit.
Only available when the restrictions are met.

See samples.

debit

Transaction is processed by Wirecard Bank.

debit-return

The payment is returned by the consumer bank. See Return Codes.

Recurring Transaction

The Wirecard Payment Gateway allows a merchant to submit recurring transactions for SEPA Direct Debit transactions.

To submit a recurring transaction, the merchant must submit a request with the transaction type debit or pending-debit including a PERIODIC TYPE and a SEQUENCE TYPE element.

Restrictions

Read which general restrictions have to be met to use a recurring transaction.

Additionally to the general restrictions, SEPA Direct Debit recurring transactions must meet the following restrictions:

  • The Account Holder IBAN, Account Holder BIC, Account Holder Name, Creditor ID, Mandate ID, and Mandate Signature Date must be the same for recurring and final transactions as was provided in the first transaction.

The following figure describes a possible flow of sequence types: SEPA Sequence Type

Referencing to a "FIRST" Recurring Transaction

A merchant must reference a pending-debit with sequence type recurring or final to an already existing pending-debit with sequence type first.

This is done by entering the transaction ID of the first transaction into the parent-transaction-id field within the recurring or final pending-debit request.

This results in the following:

  • Transactions will be referenced to each other and considered as part of the same group of transactions.

  • Fields provided in the first pending-debit will be copied into the recurring or final pending-debit.

If the merchant does not want any information to be copied, the information must be completely re-submitted as required for a regular pending-debit request.

The merchant may specify a new value for a field in a recurring or final pending-debit. However, the rest of the fields will still be copied from the first pending-debit.

There are exceptions to this point above.

If the merchant specifies a new value within any of the following sections for a recurring or final pending-debit, the information previously submitted for any of the fields within this section in the first pending-debit will NOT be copied:

  • bank account

  • payment methods

  • shipping

  • mandate

  • airline industry

  • cruise industry

All Fields Copied

If Account Holder First Name, Account Holder Last Name, and Account Holder Gender are provided in the "first" transaction and a new Account Holder First Name is sent in the "recurring" or "final" transaction without an Account Holder Last Name and Gender, these fields will be copied from the "first" transaction.

Due Date Calculation

The due date calculation of a recurring transaction is the same as for one-off transactions. Please refer to Due Date, which defines how to calculate a due date for each sequence type.

authorization

The Wirecard Payment Gateway allows a merchant to submit authorization transactions for SEPA Direct Debit payments.

To submit an authorization transaction, the merchant must submit a request with the transaction type authorization and the payment-method name SEPA Direct Debit.

The authorization transaction type is not mandatory to use for SEPA Direct Debit transactions. A transaction with type authorization is not sent on for further processing to the provider. It remains in the Wirecard Payment Gateway for future reference.

If the merchant sends a transaction request with transaction type authorization, the merchant will receive a Transaction ID in response which can be used to reference future pending-debit transactions.

A few reasons, among others, a merchant may decide to use the authorization transaction are the following:

  • to split a payment into two or more debits referencing one original authorization; or

  • to validate an end-customer’s banking details before sending in a pending-debit at a different time

Referencing to an authorization

A merchant is able to reference a pending-debit to an authorization by entering the authorization's transaction ID into the parent-transaction-id in the pending-debit request.

This results in the following:

  • Transactions will be referenced to each other and considered as part of the same payment.

  • Fields provided in the authorization will be copied into the pending-debit.

If the merchant does not want any information to be copied, the information must be completely re-submitted as required for a regular pending-debit request.

The merchant may specify a new value for a field in a pending-debit. However, the rest of the fields will still be copied from the authorization.

There are exceptions to this point above.

If the merchant specifies a new value within any of the following sections for a recurring or final pending-debit, the information previously submitted for any of the fields within this section in the authorization will NOT be copied:

  • bank account

  • payment methods

  • shipping

  • mandate

  • airline industry

  • cruise industry

It is also possible to reference a refund to an authorization if the merchant’s business flow requires this.

Referencing to a Failed authorization

An authorization is used for the merchant’s purpose only. It is not forwarded to a provider. It aids a merchant’s business flow or in deciding how to proceed further. When a merchant’s business flow requires a transaction to be referenced to a failed authorization transaction, then it is possible to do so.

void

SEPA void can be used with both SEPA payment methods: SEPA Credit Transfer and SEPA Direct Debit.

Test Credentials

URLs (Endpoints)

https://api-test.wirecard.com/engine/rest/paymentmethods/

Merchant Account ID (MAID)

933ad170-88f0-4c3d-a862-cff315ecfbc0

Username

16390-testing

Password

3!3013=D3fD8X7

Secret Key

5caf2ed9-5f79-4e65-98cb-0b70d6f569aa

Workflow
SEPA Direct Debit Workflow
  1. The transaction type within the request must be debit or pending-debit.

  2. If the request is successful, a response will be returned with status Success. This response means that the transaction has entered the Wirecard Payment Gateway successfully. The transaction itself is in a pending status, waiting to be sent to the merchant’s bank.

  3. If the request is not successful, a response will be returned with status Failed. The response always contains a status code and a description. Please read this description carefully as it will help to understand why the transaction request has failed and what needs to be fixed in order to send a successful transaction request.

  4. Once the transaction has been successfully sent to and processed by the bank, a new transaction with type debit will be created in status Success. This process usually takes up to 2 business days. The transaction will then be forwarded the Central Bank for processing.

  5. If the transaction has been rejected by the merchant’s bank, a debit transaction on status Failed will be created and the transaction will not be sent to the Central Bank.

  6. The merchant will receive a notification of the debit transaction.

Although a transaction has been successfully processed by the merchant’s bank, the transaction may still be reversed by the consumer’s bank for reasons such as insufficient funds, account owner deceased, bank account closed, etc. In this case, a debit-return transaction will be created and matched to the original debit transaction to ensure the merchant has a complete overview for his debtor management. For a full list of debit-return reasons, please refer to the list of SEPA Return Codes.

The merchant can request the status of the transaction at any time by sending a "Retrieve Transaction by Transaction ID" or "Retrieve Transaction by Request ID".

Fields
Direct Debit

The fields used for SEPA Direct Debit requests, responses and notifications are the same as the REST API Fields. Please refer to the REST API fields or the request example for the fields required in a Direct Debit transaction.

Only the fields listed below have different properties.

The following elements are mandatory (M), optional (O) or conditional (C) for a request/response/notification. If the respective cell is empty, the field is disregarded or not sent.

Field Request Response Notification Datatype Size Description

descriptor

O

O

O

String

100

Description on the settlement of the account holder’s account about a transaction.

For SEPA Direct Debit transactions, it will be combined with the Provider Transaction Reference ID and the merchant’s static descriptor and will appear on the consumer’s bank account statement.

payment-methods.payment-method-Name

M

M

M

String

15

This is the name of the payment method sepadirectdebit.

api-id

M

String

25

The API id is always returned in the notification. For SEPA it is "---"

b2b

O

O

O

Boolean

Can be used with the transaction types debit and pending-debit. This field is set to false by default. When set to true, the transaction automatically will be processed as b2b.

For transaction type authorization SEPA Direct Debit does not allow the b2b flag to be set to true. Setting the b2b flag for the transaction type authorization to true results in an error.
It is possible to do followup-operations for authorization (without b2b) where the b2b flag is set to true.

bank-account.bic

O

O

O

String

8 or 11

This is the Bank Identifier Code of the end-consumer’s bank. In SEPA Area where IBAN Only is enabled, BIC is an optional field.

bank-account.iban

C

C

C

String

34

This is the end-consumer’s International Bank Account Number.

Allowed characters: [a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}

If no parent-transaction-id is provided it remains mandatory.

mandate.mandate-id

M

M

M

String

35

The ID of the signed mandate between the merchant and the consumer.

The mandate ID may NOT be generated by the Wirecard Payment Gateway. It is solely the responsibility of the merchant.

Allowed characters: [A-Za-z0-9][ + ? - : ( ) . , ']){1,35}

mandate.signed-date

M

M

M

Date

n/a

This is the date on which the above-mentioned mandate was signed by the consumer.

The date cannot be in the future, the validity is checked against the server time. Merchant may choose to specify the UTC timezone as +/- number of hours, e.g. <signed-date>2013-09-24+03.00</signed-date>. The timezone is considered during the validation process, sign date is stored with transaction using server’s timezone afterwards.

The Mandate Signature Date is only required for SEPA Direct Debit and not for SEPA Credit Transfer transactions.

creditor-id

M

M

M

String

1,35

Identifies and allows a merchant to process SEPA Direct Debit transactions.

Allowed characters: [a-zA-Z]\{2,2}[0-9]\{2,2}[a-zA-Z0-9]\{3,3}[a-zA-Z0-9]\{1,28}

provider-transaction-reference-id

M

String

10

This ID provides a reference for the complete end-to-end lifecycle of a SEPA Direct Debit transaction. It is used as a reference within the banking system to ensure all transactions referencing each other (eg: a direct debit and a debit-return) are matched and that the complete lifecycle of a payment is identifiable. Wirecard generates this ID for the merchant.

Recurring Transaction

The following fields are required additionally for a Recurring transaction.

The following elements are mandatory (M), optional (O) or conditional (C) for a request/response/notification.

Field Cardinality (Request) Response Notification Datatype Size Description

parent-transaction-id

M

M

M

Alphanumeric

36

Transaction ID of the first transaction of a payment. It is mandatory for "recurring" and "final".

periodic.periodic-type

M

M

M

Alpha

11

Indicates how and why a payment occurs more than once. Only two possible values: "recurring" or "installment".

periodic.sequence-type

M

M

M

Alpha

11

Indicates the sequence of the recurring transaction. Possible values: "first", "recurring" or "final".

authorization

The fields used for authorization requests, responses and notifications are the same as the REST API Fields. Please refer to the REST API fields or the request example for the fields required in an authorization transaction.

Some of the elements that are mandatory for a SEPA Direct Debit transaction are not mandatory for a SEPA authorization transaction.

For example, IBAN and BIC are optional. If a merchant requires an IBAN and BIC to be validated, they must be sent in the request. If they are sent within the request the system validates their formal correctness.

SEPA Direct Debit Specific Fields

The following elements should be kept in mind when sending in a SEPA Direct Debit payment request:

  • Creditor ID or Creditor Identifier

  • Mandate ID

  • Mandate Signature Date

  • Provider Transaction Reference ID

  • Due Date

Creditor ID

The Creditor ID is a mandatory Identifier for each Merchant who wants to perform SEPA Direct Debits. Depending on the originating country, the merchant may need to apply for the Creditor ID at a tax office, local authority, or another organization. The format for the ID is not unique.

In order to be able to offer SEPA Direct Debit as a payment method, a merchant must apply for a Creditor Identifier. The Creditor ID identifies a merchant and allows consumers to be able to manage their mandates with merchants more easily.

This strongly depends on the local rules and regulations.

The current validation of the Creditor ID follows the rule of the 'European Payment Council' based on Document 'EPC260-08 Creditor Identifier Overview v4.0'.

The countries currently validated by the Wirecard Payment Gateway are the following: DE, AT, NL, CH, LI, GB.

The remaining countries mentioned in the documentation are currently not validated.

For more Details please see the official page of the 'European Payment Council'.

The following characters are allowed: [a-zA-Z]\{2,2}[0-9]\{2,2}[a-zA-Z0-9]\{3,3}[a-zA-Z0-9]\{1,28}

Error Messages in case of an incorrectly submitted Creditor ID

For detailed information concerning the error code please see:

Mandate ID

A two-party mandate between the merchant and the debtor is required for SEPA Direct Debit payments. The mandate is an agreement giving the merchant permission to debit the consumer’s account for the sum upon which the two parties agreed. Every mandate has an ID provided by the merchant that, when combined with the Creditor ID, creates a unique mandate ID. This mandate reference must be sent to the Wirecard Payment Gateway within the request.

The mandate ID may not be generated by the Wirecard Payment Gateway. It is solely the responsibility of the merchant.
Mandate Signature Date

This is the date on which the above-mentioned mandate was signed by the consumer.

Provider Transaction Reference ID

This ID provides a reference for the complete end-to-end lifecycle of a SEPA Direct Debit transaction. It is used as a reference within the banking system to ensure all transactions referencing each other (e.g. a direct debit and a debit return) are matched and that the complete lifecycle of a payment is identifiable. Wirecard generates this ID for the merchant.

Due Date

The due date is the day when the funds will be cleared on the debtors bank account. Wirecard can calculate the best (earliest) due date for the Merchant. When the Due Date field in the request is left empty, Wirecard will calculate the due date for the merchant automatically.

The merchant may, however, send in a due date inside the request if a specific date is requested. This date may only be used if it passes validation. If validation is not passed, Wirecard will return a failed transaction and the transaction must be re-submitted.

Wirecard cannot replace an incorrect due date sent in by the merchant with a correct due date calculated by the system as this would change the content of the transaction sent in by the merchant.

Calculating the Due Date

In order to keep processing times transparent for all transactions within SEPA, a transaction’s due date has been clearly defined. If the merchant chooses to specify a due date, it is important to ensure all payments are submitted on time and are processed correctly. Wirecard requires merchants to submit

  • all transactions, regardless of sequence type, at least three (3) banking days before the due date

This is not a requirement. It is an option. If a merchant chooses to send in a transaction later than the earliest possible due date, this is possible. Wirecard will always validate a due date if one is sent in with the transaction request.

The transaction request must be received by the Wirecard Payment Gateway no earlier than 14 calendar days before the due date.

It is also necessary for the merchant to take into consideration the European Central Bank’s Target 2 Calendar which specifies all non-banking days. These include:

  • Saturdays and Sundays

  • New Year’s Day

  • Good Friday

  • Easter Monday

  • 1 May (Labour Day)

  • Christmas Day

  • 26 December

For more information about recurring SEPA Direct Debit payments, please read chapter SEPA Direct Debit Recurring Transaction.

Delayed processing of SEPA Direct Debit transactions

Wirecard offers the possibility to delay the processing of a SEPA Direct Debit transaction by providing the element:

payment/capture-date

inside the SEPA Direct Debit request.

According to the date which is provided in the request the corresponding SEPA transaction will be sent to the Wirecard bank for the processing. This feature enables the merchant to cancel the transaction before the cut-off time of the capture date. The capture date range is from 1-14 calendar days. Dates outside of this range lead to a transaction rejection with the status code 400.1321. If the capture date is a non-working bank day, the processing will start on the next bank working day. For example, if the capture date is pointing to a Saturday, the transaction processing will start on next Monday.

The capture date influences the validation rule and the calculation logic of the due date. The due date is validated and calculated according to the same rules as described in the chapter 'Due Date' but starting from the capture date. For example, if the capture date is the Tuesday 25.11.2015, the next possible due date for the one-off transaction is 25.11.2015 + 1 bank working day = Friday 26.11.2015.

The due date may only be used if it passes validation. If validation is not passed, Wirecard will return a failed transaction (400.1175) and the transaction must be re-submitted.

The provided capture date does not guarantee the money flow on this date. The real money flow will occur according to the provided or calculated due date.
B2B

B2B (B2B SDD) is an optional field. It is a business-to-business scheme, intended solely for use of debtors that are professionals or companies.

Private individuals (consumers) or micro enterprises use B2C (Core SDD) instead.

Differences between SEPA Direct Debit Core (Core SDD) and SEPA Direct Debit B2B (B2B SDD) Schemes

Core SDD B2B SDD

Transaction Process

  1. Merchant sends mandate to consumer

  2. Consumer sends signed mandate to merchant

  3. Merchant captures mandate data and sends the transaction information to the WPG

  4. Merchant stores mandate

  1. Merchant sends 2 mandate copies to business

  2. Business:

    1. Sends signed mandate to merchant

    2. Sends signed mandate to his/her bank to authorize the account for B2B collections

  3. Merchant captures mandate data and sends the transaction information to the WPG

  4. Merchant stores mandate

Usage

  • Consumers

  • Exceptionally small businesses

  • Businesses only

  • Small businesses may be excluded from the scheme on a country by country basis. Please contact the individual banks.

Bank Participation

  • Mandatory

  • Optional

  • The consumer’s bank must be enrolled in the SEPA B2B scheme in order to process B2B SEPA Direct Debit transactions. Please ensure the consumer notifies their bank about the upcoming B2B debit transaction. Otherwise, the transaction may be rejected.

Debit Return

  • possible up to 8 weeks after debit

  • possible up to 13 months after debit (in case of missing mandate)

  • No return possible after debit has been executed

Refund

  • Refund possible via SEPA Credit

  • Refund possible via SEPA Credit

Mandate Check by Debtor Bank

  • Optional

  • Mandatory

Submission Deadlines

  1. Pre-notification: 14 calendar days prior to the due date (D–14): Merchant notifies the consumer of the upcoming debit transaction. (Merchant and consumer may agree upon a different timeframe.)

  2. Due Date: The transaction must be submitted to the bank earliest one business day prior to the due date (D–1) for the submission of one-off, first, and subsequent debits.

Same as Core DD

For more information regarding the differences between CORE SDD and B2B SDD, please refer to Annex V in the European Payments Council SEPA Direct Debit Business to Business Rulebook.
Samples

Go to Notification Examples if you want to see corresponding notification samples.

debit
XML Pending-Debit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>pending-debit</transaction-type>
    <requested-amount currency="EUR">10.01</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-09-24</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
</payment>
XML Pending-Debit Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>35fb9a68-b31b-4451-a73a-c1c86d549ced</transaction-id>
  <request-id>cdb35487-fb20-4dc4-b57d-e2c0c172e46f</request-id>
  <transaction-type>pending-debit</transaction-type>
  <transaction-state>success</transaction-state>
  <completion-time-stamp>2018-03-08T11:22:13.000Z</completion-time-stamp>
  <statuses>
    <status code="201.0000" description="The resource was successfully created." severity="information" />
  </statuses>
  <requested-amount currency="EUR">10.01</requested-amount>
  <account-holder>
    <first-name>John</first-name>
    <last-name>Doe</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <mandate>
    <mandate-id>12345678</mandate-id>
    <signed-date>2013-09-24</signed-date>
  </mandate>
  <creditor-id>DE98ZZZ09999999999</creditor-id>
  <due-date>2018-03-13</due-date>
  <provider-transaction-reference-id>A4DC3876AC</provider-transaction-reference-id>
</payment>
XML Pending-Debit Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>pending-debit</transaction-type>
    <requested-amount currency="EUR">10.01</requested-amount>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-09-24</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
</payment>
XML Pending-Debit Response (Failed)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>bdf80eca-5d7d-48cd-b030-7a988a9f79d5</transaction-id>
  <request-id>22763feb-07f8-4908-b492-db4ed6ffcf7f</request-id>
  <transaction-type>pending-debit</transaction-type>
  <transaction-state>failed</transaction-state>
  <completion-time-stamp>2018-03-08T11:22:34.000Z</completion-time-stamp>
  <statuses>
    <status code="400.1007" description="The account holder information has not been provided.  Please check your input and try again." severity="error" />
  </statuses>
  <requested-amount currency="EUR">10.01</requested-amount>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <mandate>
    <mandate-id>12345678</mandate-id>
    <signed-date>2013-09-24</signed-date>
  </mandate>
  <creditor-id>DE98ZZZ09999999999</creditor-id>
</payment>

pending-debit with IBAN Only feature

XML Pending-Debit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>pending-debit</transaction-type>
    <requested-amount currency="EUR">10.01</requested-amount>
    <account-holder>
         <first-name>John</first-name>
         <last-name>Doe</last-name>
         <!-- optional
         <email>john.doe@test.com</email>
         <address>
              <street1>Test Street 123</street1>
              <city>Test City</city>
              <country>DE</country>
         </address> -->
    </account-holder>
    <!-- optional
    <order-number>4509334</order-number> -->
    <descriptor>reseller test transaction</descriptor>
    <payment-methods>
         <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
         <iban>DE42512308000000060004</iban>
         <!--bic>WIREITMMXXX</bic-->
    </bank-account>
    <mandate>
         <mandate-id>12345678</mandate-id>
         <signed-date>2015-08-24</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <!-- optional
    <cancel-redirect-url>http://sandbox-engine.thesolution.com/shop_urlViaRequest/cancel.html</cancel-redirect-url>-->
    <!--<due-date>2015-08-27</due-date>-->
    <consumer>
         <first-name>Jack</first-name>
         <last-name>Smith</last-name>
   </consumer>
</payment>
XML Pending-Debit Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
     <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
     <transaction-id>eeaf7205-659e-4252-b1f6-c6a5a80de137</transaction-id>
     <request-id>b9cf5517-7d30-46e3-80ec-2fa6cf739bb1</request-id>
     <transaction-type>pending-debit</transaction-type>
     <transaction-state>success</transaction-state>
     <completion-time-stamp>2018-03-08T11:23:25.000Z</completion-time-stamp>
     <statuses>
          <status code="201.0000" description="The resource was successfully created." severity="information" />
     </statuses>
     <requested-amount currency="EUR">10.01</requested-amount>
     <account-holder>
          <first-name>John</first-name>
          <last-name>Doe</last-name>
     </account-holder>
     <descriptor>reseller test transaction</descriptor>
     <payment-methods>
          <payment-method name="sepadirectdebit" />
     </payment-methods>
     <bank-account>
          <iban>DE42512308000000060004</iban>
     </bank-account>
     <mandate>
          <mandate-id>12345678</mandate-id>
          <signed-date>2015-08-24</signed-date>
     </mandate>
     <creditor-id>DE98ZZZ09999999999</creditor-id>
     <due-date>2018-03-13</due-date>
     <consumer>
          <first-name>Jack</first-name>
          <last-name>Smith</last-name>
     </consumer>
     <provider-transaction-reference-id>3F7DD467BA</provider-transaction-reference-id>
</payment>

<b2b> set to true

XML Debit Request, <b2b> = true (Successful)
POST http://127.0.0.1:8080/engine/rest/paymentmethods/?request-id=1c7ba19e-1ae8-42b5-9b29-fa5a24608685&iban=DE42512308000000060004&bic=WIREDEMMXXX&mandate-id=12345678&signed-date=2017-10-20&consumer-first-name=Jack&consumer-last-name=Smith&creditor-id=DE98ZZZ09999999999&payment-method-name=sepadirectdebit HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/xml;charset=UTF-8
Content-Length: 1349
Host: 127.0.0.1:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.3.1 (java 1.5)
Authorization: Basic dGVhbWNpdHk6dGVhbWNpdHk=
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>a0a371cc-44d4-4c23-a592-f04b7e8b18e8</merchant-account-id>
   <request-id>1c7ba19e-1ae8-42b5-9b29-fa5a24608685</request-id>
   <transaction-type>debit</transaction-type>
   <requested-amount currency="EUR">1.01</requested-amount>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
   </account-holder>
   <payment-methods>
      <payment-method name="sepadirectdebit"/>
   </payment-methods>
   <bank-account>
      <iban>DE42512308000000060004</iban>
      <bic>WIREDEMMXXX</bic>
   </bank-account>
   <mandate>
      <mandate-id>12345678</mandate-id>
      <signed-date>2017-10-20</signed-date>
   </mandate>
   <creditor-id>DE98ZZZ09999999999</creditor-id>
   <consumer>
      <first-name>Jack</first-name>
      <last-name>Smith</last-name>
   </consumer>
   <b2b>true</b2b>
</payment>
XML Debit Response, <b2b> = true (Successful)
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
   <merchant-account-id>a0a371cc-44d4-4c23-a592-f04b7e8b18e8</merchant-account-id>
   <transaction-id>c02b954f-af80-4afe-8285-23345ab46b16</transaction-id>
   <request-id>1c7ba19e-1ae8-42b5-9b29-fa5a24608685</request-id>
   <transaction-type>debit</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2017-11-20T09:22:41.000+01:00</completion-time-stamp>
   <statuses>
      <status code="201.0000" description="The resource was successfully created." severity="information"/>
   </statuses>
   <requested-amount currency="EUR">1.01</requested-amount>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
   </account-holder>
   <payment-methods>
      <payment-method name="sepadirectdebit"/>
   </payment-methods>
   <bank-account>
      <iban>DE42512308000000060004</iban>
      <bic>WIREDEMMXXX</bic>
   </bank-account>
   <mandate>
      <mandate-id>12345678</mandate-id>
      <signed-date>2017-10-20</signed-date>
   </mandate>
   <creditor-id>DE98ZZZ09999999999</creditor-id>
   <due-date>2017-11-23</due-date>
   <consumer>
      <first-name>Jack</first-name>
      <last-name>Smith</last-name>
   </consumer>
   <provider-transaction-reference-id>FDF5803E2A</provider-transaction-reference-id>
   <instrument-country>DE</instrument-country>
   <b2b>true</b2b>
</payment>
XML Pending-Debit Request, <b2b> = true (Successful)
POST http://127.0.0.1:8080/engine/rest/paymentmethods/?request-id=316fab47-5508-456e-a962-ff4b927c0792&iban=DE42512308000000060004&bic=WIREDEMMXXX&mandate-id=12345678&signed-date=2017-10-20&consumer-first-name=Jack&consumer-last-name=Smith&creditor-id=DE98ZZZ09999999999&payment-method-name=sepadirectdebit HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/xml;charset=UTF-8
Content-Length: 1357
Host: 127.0.0.1:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.3.1 (java 1.5)
Authorization: Basic dGVhbWNpdHk6dGVhbWNpdHk=
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>a0a371cc-44d4-4c23-a592-f04b7e8b18e8</merchant-account-id>
   <request-id>316fab47-5508-456e-a962-ff4b927c0792</request-id>
   <transaction-type>pending-debit</transaction-type>
   <requested-amount currency="EUR">1.01</requested-amount>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
   </account-holder>
   <payment-methods>
      <payment-method name="sepadirectdebit"/>
   </payment-methods>
   <bank-account>
      <iban>DE42512308000000060004</iban>
      <bic>WIREDEMMXXX</bic>
   </bank-account>
   <mandate>
      <mandate-id>12345678</mandate-id>
      <signed-date>2017-10-20</signed-date>
   </mandate>
   <creditor-id>DE98ZZZ09999999999</creditor-id>
   <consumer>
      <first-name>Jack</first-name>
      <last-name>Smith</last-name>
   </consumer>
   <b2b>true</b2b>
</payment>
XML Pending-Debit Response, <b2b> = true (Successful)
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
   <merchant-account-id>a0a371cc-44d4-4c23-a592-f04b7e8b18e8</merchant-account-id>
   <transaction-id>b3335f51-bf5d-4af4-8fff-1e0ad8a1c73b</transaction-id>
   <request-id>316fab47-5508-456e-a962-ff4b927c0792</request-id>
   <transaction-type>pending-debit</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2017-11-20T09:35:11.000+01:00</completion-time-stamp>
   <statuses>
      <status code="201.0000" description="The resource was successfully created." severity="information"/>
   </statuses>
   <requested-amount currency="EUR">1.01</requested-amount>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
   </account-holder>
   <payment-methods>
      <payment-method name="sepadirectdebit"/>
   </payment-methods>
   <bank-account>
      <iban>DE42512308000000060004</iban>
      <bic>WIREDEMMXXX</bic>
   </bank-account>
   <mandate>
      <mandate-id>12345678</mandate-id>
      <signed-date>2017-10-20</signed-date>
   </mandate>
   <creditor-id>DE98ZZZ09999999999</creditor-id>
   <due-date>2017-11-23</due-date>
   <consumer>
      <first-name>Jack</first-name>
      <last-name>Smith</last-name>
   </consumer>
   <provider-transaction-reference-id>82A7DFAC09</provider-transaction-reference-id>
   <instrument-country>DE</instrument-country>
   <b2b>true</b2b>
</payment>

Recurring Transactions

XML Debit Request "First" (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>debit</transaction-type>
    <requested-amount currency="EUR">20.02</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-12-19</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <periodic>
        <periodic-type>recurring</periodic-type>
        <sequence-type>first</sequence-type>
    </periodic>
</payment>
XML Debit Response "First" (Successful)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>4c901196-eff7-411e-82a3-5ef6b6860d64</merchant-account-id>
    <transaction-id>e6604f91-663c-11e3-a07b-18037336c0b3</transaction-id>
    <request-id>${response}</request-id>
    <transaction-type>debit</transaction-type>
    <transaction-state>success</transaction-state>
    <completion-time-stamp>2013-12-19T10:29:02.000Z</completion-time-stamp>
    <statuses>
        <status code="201.0000" description="The resource was successfully created." severity="information"/>
    </statuses>
    <requested-amount currency="EUR">20.02</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit"/>
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-12-19</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <due-date>2014-01-02</due-date>
    <periodic>
        <periodic-type>recurring</periodic-type>
        <sequence-type>first</sequence-type>
    </periodic>
    <provider-transaction-reference-id>5A00C85484</provider-transaction-reference-id>
</payment>
XML Debit Request "Recurring" (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>debit</transaction-type>
    <requested-amount currency="EUR">20.02</requested-amount>
    <parent-transaction-id>6f3b6ec5-60aa-49e7-85f7-5b386d49efeb</parent-transaction-id>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-12-19</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <periodic>
        <periodic-type>recurring</periodic-type>
        <sequence-type>recurring</sequence-type>
    </periodic>
</payment>
XML Debit Response "Recurring" (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>96549f47-4972-4df2-b5d5-61955d586246</transaction-id>
  <request-id>f761537c-2a4d-432b-b69f-93f318026f82</request-id>
  <transaction-type>debit</transaction-type>
  <transaction-state>success</transaction-state>
  <completion-time-stamp>2018-03-08T11:24:46.000Z</completion-time-stamp>
  <statuses>
    <status code="201.0000" description="The resource was successfully created." severity="information" />
  </statuses>
  <requested-amount currency="EUR">20.02</requested-amount>
  <parent-transaction-id>6f3b6ec5-60aa-49e7-85f7-5b386d49efeb</parent-transaction-id>
  <account-holder>
    <first-name>John</first-name>
    <last-name>Doe</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <mandate>
    <mandate-id>12345678</mandate-id>
    <signed-date>2013-12-19</signed-date>
  </mandate>
  <creditor-id>DE98ZZZ09999999999</creditor-id>
  <api-id>---</api-id>
  <due-date>2018-03-13</due-date>
  <periodic>
    <periodic-type>recurring</periodic-type>
    <sequence-type>recurring</sequence-type>
  </periodic>
  <provider-transaction-reference-id>CBD27ADB5F</provider-transaction-reference-id>
</payment>
XML Debit Request "Recurring" (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>debit</transaction-type>
    <requested-amount currency="EUR">20.02</requested-amount>
    <account-holder>
        <first-name>John</first-name>
        <last-name>Doe</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
    <mandate>
        <mandate-id>12345678</mandate-id>
        <signed-date>2013-12-19</signed-date>
    </mandate>
    <creditor-id>DE98ZZZ09999999999</creditor-id>
    <periodic>
        <periodic-type>recurring</periodic-type>
        <sequence-type>recurring</sequence-type>
    </periodic>
</payment>
XML Debit Response "Recurring" (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>78521961-2c4a-4dc3-8036-c039cba9c001</transaction-id>
  <request-id>c00a49b0-ea95-416f-b95c-6f15da562ce6</request-id>
  <transaction-type>debit</transaction-type>
  <transaction-state>failed</transaction-state>
  <completion-time-stamp>2018-03-08T11:26:07.000Z</completion-time-stamp>
  <statuses>
    <status code="400.1021" description="The Parent Transaction Id is required, and not provided.  Please check your input and try again." severity="error" />
  </statuses>
  <requested-amount currency="EUR">20.02</requested-amount>
  <account-holder>
    <first-name>John</first-name>
    <last-name>Doe</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <mandate>
    <mandate-id>12345678</mandate-id>
    <signed-date>2013-12-19</signed-date>
  </mandate>
  <creditor-id>DE98ZZZ09999999999</creditor-id>
  <periodic>
    <periodic-type>recurring</periodic-type>
    <sequence-type>recurring</sequence-type>
  </periodic>
</payment>
authorization
XML Authorization Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>authorization</transaction-type>
    <requested-amount currency="EUR">15.55</requested-amount>
    <account-holder>
        <first-name>john</first-name>
        <last-name>Constatine</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <iban>DE42512308000000060004</iban>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
</payment>
XML Authorization Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>aaf7b07d-4302-4197-8886-ffc2642467c8</transaction-id>
  <request-id>aec8c5d2-a6b2-4afe-a023-904304a8e7ed</request-id>
  <transaction-type>authorization</transaction-type>
  <transaction-state>success</transaction-state>
  <completion-time-stamp>2018-03-08T11:26:26.000Z</completion-time-stamp>
  <statuses>
    <status code="201.0000" description="The resource was successfully created." severity="information" />
  </statuses>
  <requested-amount currency="EUR">15.55</requested-amount>
  <account-holder>
    <first-name>john</first-name>
    <last-name>Constatine</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <provider-transaction-reference-id>9F7FCE48BE</provider-transaction-reference-id>
</payment>
XML Authorization Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>authorization</transaction-type>
    <requested-amount currency="EUR">15.55</requested-amount>
    <account-holder>
        <first-name>john</first-name>
        <last-name>Constatine</last-name>
    </account-holder>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
    <bank-account>
        <bic>WIREDEMMXXX</bic>
    </bank-account>
</payment>
XML Authorization Response (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>921f36ba-aae5-4736-ab4e-c4bfdc568e9e</transaction-id>
  <request-id>0ffd92fe-433c-4be4-923d-eb75351dd13d</request-id>
  <transaction-type>authorization</transaction-type>
  <transaction-state>failed</transaction-state>
  <completion-time-stamp>2018-03-08T11:27:19.000Z</completion-time-stamp>
  <statuses>
    <status code="400.1196" description="IBAN is invalid." severity="error" />
  </statuses>
  <requested-amount currency="EUR">15.55</requested-amount>
  <account-holder>
    <first-name>john</first-name>
    <last-name>Constatine</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
</payment>
void-pending-debit

void-pending-debit transactions can also be used with SEPA Credit Transfer.

XML Void-Pending-Debit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>{unique for each request}</request-id>
    <transaction-type>void-pending-debit</transaction-type>
    <requested-amount currency="EUR">10.01</requested-amount>
    <parent-transaction-id>${derived from former authorization transaction}</parent-transaction-id>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
</payment>
XML Void-Pending-Debit Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <transaction-id>681222f6-b521-4c94-9f8e-3ba9351665ca</transaction-id>
  <request-id>0fa66fea-8b07-4300-b935-0c4e342e0316</request-id>
  <transaction-type>void-pending-debit</transaction-type>
  <transaction-state>success</transaction-state>
  <completion-time-stamp>2018-03-08T11:28:25.000Z</completion-time-stamp>
  <statuses>
    <status code="200.0000" description="The request completed successfully." severity="information" />
  </statuses>
  <requested-amount currency="EUR">10.01</requested-amount>
  <parent-transaction-id>35fb9a68-b31b-4451-a73a-c1c86d549ced</parent-transaction-id>
  <account-holder>
    <first-name>John</first-name>
    <last-name>Doe</last-name>
  </account-holder>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
  <bank-account>
    <iban>DE42512308000000060004</iban>
    <bic>WIREDEMMXXX</bic>
  </bank-account>
  <mandate>
    <mandate-id>12345678</mandate-id>
    <signed-date>2013-09-24</signed-date>
  </mandate>
  <creditor-id>DE98ZZZ09999999999</creditor-id>
  <api-id>---</api-id>
</payment>
XML Void-Pending-Debit Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
    <request-id>${unique for each request}</request-id>
    <transaction-type>void-pending-debit</transaction-type>
    <requested-amount currency="EUR">15.55</requested-amount>
    <payment-methods>
        <payment-method name="sepadirectdebit" />
    </payment-methods>
</payment>
XML Void-Pending-Debit Response (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
  <merchant-account-id ref="unknown">933ad170-88f0-4c3d-a862-cff315ecfbc0</merchant-account-id>
  <request-id>74d7e07b-519d-49cf-9d2f-b6fa28cd2913</request-id>
  <transaction-type>void-pending-debit</transaction-type>
  <transaction-state>failed</transaction-state>
  <completion-time-stamp>2018-03-08T11:29:22.907Z</completion-time-stamp>
  <statuses>
    <status code="400.1019" description="This Merchant Account Identifier does not exist, or is not assigned to this Processing User.  Please contact technical support." severity="error" />
    <status code="400.1127" description="The Transaction Amount does not qualify to the parent transaction amount.  Please try another amount." severity="error" />
    <status code="400.1021" description="The Parent Transaction Id is required, and not provided.  Please check your input and try again." severity="error" />
    <status code="400.1109" description="Invalid Payment Method  Please check your input and try again." severity="error" />
  </statuses>
  <requested-amount currency="EUR">15.55</requested-amount>
  <payment-methods>
    <payment-method name="sepadirectdebit" />
  </payment-methods>
</payment>
Custom URL: