Guides
These docs are for v1.0.1. Click to read the latest docs for v2.1.0.

Billpay Direct Debit

120

paymentmethod=BPD

Payment ProcessIntegration
Authorization✔️Payment Page
Deferred Settlement✔️Split Mode✔️
Refund✔️Mobile SDK
Cancel✔️
Alias

Description

Direct debit offers a simple way to pay. It is particularly convenient for recurring payment transactions and repeat orders. Buy multiple times from a shop you trust and the payment will simply be deducted from your account.
Payment Method provider website 🔗

📘

Request and response parameter reference

For a more detailed description of the request and response parameters for Billpay Direct Debit
please check the API Reference

Test

Account Numer: DE12500105170648489890
Bank Code: INGDDEFFXXX

Web payment flow

 1 
[Not supported by viewer]
Customer clicks Pay
Customer clicks Pay
Merchant Website
Merchant Website
Merchant Server
Merchant Server
Redirects to Billpay
Redirects to Billpay
Billpay
Billpay<br>
Checks data received
[Not supported by viewer]
 2 
[Not supported by viewer]
 4 
[Not supported by viewer]
Validates client and checks with bank
Validates client and checks with bank
 5 
[Not supported by viewer]
Receives Result 
Receives Result 
5.1
[Not supported by viewer]
 6 
[Not supported by viewer]
Invokes merchant's
POST URL (Webhook)
Invokes merchant's<br>POST URL (Webhook)
Receives Result 
Receives Result 
 7 
[Not supported by viewer]
Redirects customer back to merchant
Redirects customer back to merchant
Customer gets redirected to merchant page
Customer gets redirected to merchant page
 3 
[Not supported by viewer]
Bank
Bank<br>
Checks if debit is possible
Checks if debit is possible
 3.1 
[Not supported by viewer]

Server to Server API calls

After a transactionId or alias was received by completing the payment flow on the web, the following server to server API calls can be used to do other actions.

Authorization

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_authorize.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<authorizationService version="6">
  <body merchantId="1100003268">
    <transaction refno="749532">
      <request>
        <pmethod>BPL</pmethod>
		<amount>43000</amount>
		<currency>EUR</currency>	
		<reqtype>NOA</reqtype>
		<sign>130930145825488031</sign>
		<uppCustomerDetails>
			<uppCustomerDetails>yes</uppCustomerDetails>
          <uppCustomerOccurence>EXISTING</uppCustomerOccurence>
          <uppCustomerGender>Frau</uppCustomerGender>
          <uppCustomerEmail>[email protected]</uppCustomerEmail>
          <uppCustomerId>8574843</uppCustomerId>
          <uppCustomerTitle>Dr</uppCustomerTitle>
          <uppCustomerFirstName>Max1536066420406</uppCustomerFirstName>
          <uppCustomerLastName>Mustermann</uppCustomerLastName>
          <uppRebate>1681</uppRebate>
          <uppRebateGross>2000</uppRebateGross>
          <uppCustomerType>P</uppCustomerType>
          <uppCustomerCompanyHolderName></uppCustomerCompanyHolderName>
          <uppCustomerBirthDate>25.08.1979</uppCustomerBirthDate>
          <uppCustomerStreet>Musterstraße</uppCustomerStreet>
          <uppCustomerStreet2>37</uppCustomerStreet2>
          <uppCustomerStreet3></uppCustomerStreet3>
          <uppCustomerCity>Musterstadt</uppCustomerCity>
          <uppCustomerZipCode>12345</uppCustomerZipCode>
          <uppCustomerPhone>19876543</uppCustomerPhone>
          <uppCustomerCellPhone>0177123443534</uppCustomerCellPhone>
          <uppCustomerCountry>DEU</uppCustomerCountry>
          <uppShippingPrice>840</uppShippingPrice>
          <uppShippingPriceGross>1000</uppShippingPriceGross>
          <uppShippingCarrier></uppShippingCarrier>
          <uppShippingDetails>no</uppShippingDetails>
          <uppArticle_1_Id>1234</uppArticle_1_Id>
          <uppArticle_1_Price>10084</uppArticle_1_Price>
          <uppArticle_1_PriceGross>12000</uppArticle_1_PriceGross>
          <uppArticle_1_Quantity>2</uppArticle_1_Quantity>
          <uppArticle_1_Name>Bottle+Opener</uppArticle_1_Name>
          <uppArticle_1_Description>Nice+gadget</uppArticle_1_Description>
          <uppArticle_2_Id>2345</uppArticle_2_Id>
          <uppArticle_2_Price>16807</uppArticle_2_Price>
          <uppArticle_2_PriceGross>20000</uppArticle_2_PriceGross>
          <uppArticle_2_Quantity>1</uppArticle_2_Quantity>
          <uppArticle_2_Name>Printer</uppArticle_2_Name>
          <uppArticle_2_Description></uppArticle_2_Description>
		</uppCustomerDetails>
      </request>
    </transaction>
  </body>
</authorizationService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<authorizationService version='6'>
  <body merchantId='1100003268' status='accepted'>
    <transaction refno='749532' trxStatus='response'>
      <request>
        <pmethod>BPL</pmethod>
        <amount>43000</amount>
        <currency>EUR</currency>
        <refno>1536047306558</refno>
        <reqtype>NOA</reqtype>
        <sign>130930145825488031</sign>
        <uppCustomerDetails>
                    <uppCustomerOccurence>EXISTING</uppCustomerOccurence>
          <uppCustomerGender>Frau</uppCustomerGender>
          <uppCustomerEmail>[email protected]</uppCustomerEmail>
          <uppCustomerId>8574843</uppCustomerId>
          <uppCustomerTitle>Dr</uppCustomerTitle>
          <uppCustomerFirstName>Max1536066420406</uppCustomerFirstName>
          <uppCustomerLastName>Mustermann</uppCustomerLastName>
          <uppRebate>1681</uppRebate>
          <uppRebateGross>2000</uppRebateGross>
          <uppCustomerType>P</uppCustomerType>
          <uppCustomerCompanyHolderName></uppCustomerCompanyHolderName>
          <uppCustomerBirthDate>25.08.1979</uppCustomerBirthDate>
          <uppCustomerStreet>Musterstraße</uppCustomerStreet>
          <uppCustomerStreet2>37</uppCustomerStreet2>
          <uppCustomerStreet3></uppCustomerStreet3>
          <uppCustomerCity>Musterstadt</uppCustomerCity>
          <uppCustomerZipCode>12345</uppCustomerZipCode>
          <uppCustomerPhone>19876543</uppCustomerPhone>
          <uppCustomerCellPhone>0177123443534</uppCustomerCellPhone>
          <uppCustomerCountry>DEU</uppCustomerCountry>
          <uppShippingPrice>840</uppShippingPrice>
          <uppShippingPriceGross>1000</uppShippingPriceGross>
          <uppShippingCarrier></uppShippingCarrier>
          <uppShippingDetails>no</uppShippingDetails>
          <uppArticle_1_Id>1234</uppArticle_1_Id>
          <uppArticle_1_Price>10084</uppArticle_1_Price>
          <uppArticle_1_PriceGross>12000</uppArticle_1_PriceGross>
          <uppArticle_1_Quantity>2</uppArticle_1_Quantity>
          <uppArticle_1_Name>Bottle+Opener</uppArticle_1_Name>
          <uppArticle_1_Description>Nice+gadget</uppArticle_1_Description>
          <uppArticle_2_Id>2345</uppArticle_2_Id>
          <uppArticle_2_Price>16807</uppArticle_2_Price>
          <uppArticle_2_PriceGross>20000</uppArticle_2_PriceGross>
          <uppArticle_2_Quantity>1</uppArticle_2_Quantity>
          <uppArticle_2_Name>Printer</uppArticle_2_Name>
          <uppArticle_2_Description></uppArticle_2_Description>
		</uppCustomerDetails>
      </request>
      <response>
        <responseCode>01</responseCode>
        <responseMessage></responseMessage>
        <uppTransactionId>180904130510805661</uppTransactionId>
        <authorizationCode>510815662</authorizationCode>
        <acqAuthorizationCode>e891cacb-3216-4a97-9ed3-ae4756503113</acqAuthorizationCode>
        <accountHolder>Billpay GmbH</accountHolder>
        <bankCode>TESTBIC0003</bankCode>
        <invoiceReference>BP749532/4388</invoiceReference>
        <bankName>BillPay Test Bank</bankName>
        <accountNumber>DE2501200000TEST000000000003</accountNumber>
      </response>
    </transaction>
  </body>
</authorizationService>

Settlement

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1100003268">
    <transaction refno="749532">
      <request>
        <amount>43000</amount>
        <currency>EUR</currency>
        <uppTransactionId>180904130510805661</uppTransactionId>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1100003268' status='accepted'>
        <transaction refno='749532' trxStatus='response'>
            <request>
                <amount>43000</amount>
                <currency>EUR</currency>
                <uppTransactionId>180904130510805661</uppTransactionId>
                <reqtype>COA</reqtype>
                <transtype>05</transtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>settlement succeeded</responseMessage>
                <accountHolder>Billpay GmbH</accountHolder>
                <bankCode>TESTBIC0003</bankCode>
                <invoiceReference>BP749532/4388</invoiceReference>
                <bankName>BillPay Test Bank</bankName>
                <accountNumber>DE2501200000TEST000000000003</accountNumber>
                <invoiceDueDate>04.10.2018</invoiceDueDate>
            </response>
        </transaction>
    </body>
</paymentService>

Credit

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1100003268">
    <transaction refno="749532">
      <request>
        <amount>43000</amount>
        <netAmount>43000</netAmount>
        <currency>EUR</currency>
        <uppTransactionId>180904130510805661</uppTransactionId>
        <transtype>06</transtype>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1100003268' status='accepted'>
        <transaction refno='749532' trxStatus='response'>
            <request>
                <amount>43000</amount>
                <netAmount>43000</netAmount>
                <currency>EUR</currency>
                <uppTransactionId>180904130510805661</uppTransactionId>
                <transtype>06</transtype>
                <reqtype>COA</reqtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>credit succeeded</responseMessage>
                <uppTransactionId>180904130740676984</uppTransactionId>
                <authorizationCode>740946985</authorizationCode>
                <acqAuthorizationCode>0</acqAuthorizationCode>
            </response>
        </transaction>
    </body>
</paymentService>

Cancel

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1100003268">
    <transaction refno="749532">
      <request>
        <amount>43000</amount>
        <currency>EUR</currency>
        <uppTransactionId>180904131036478067</uppTransactionId>
        <reqtype>DOA</reqtype>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1100003268' status='accepted'>
        <transaction refno='749532' trxStatus='response'>
            <request>
                <amount>43000</amount>
                <currency>EUR</currency>
                <uppTransactionId>180904131036478067</uppTransactionId>
                <reqtype>DOA</reqtype>
                <transtype>05</transtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>cancellation succeeded</responseMessage>
            </response>
        </transaction>
    </body>
</paymentService>

Status

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_status.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<statusService version="5">
  <body merchantId="1100003268">
    <transaction>
      <request>
        <uppTransactionId>180904131036478067</uppTransactionId>
        <reqtype>STX</reqtype>
      </request>
    </transaction>
  </body>
</statusService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<statusService version='5'>
    <body merchantId='1100003268' status='accepted'>
        <transaction trxStatus='response'>
            <request>
                <uppTransactionId>180904131036478067</uppTransactionId>
                <reqtype>STX</reqtype>
            </request>
            <response itemNr='1'>
                <responseCode>7</responseCode>
                <responseMessage>MOA Cancel</responseMessage>
                <refno>1536059435088</refno>
                <amount>43000</amount>
                <currency>EUR</currency>
                <authorizationCode>937798088</authorizationCode>
                <pmethod>BPY</pmethod>
                <uppTransactionId>180904131036478067</uppTransactionId>
                <maskedCC></maskedCC>
                <aliasCC></aliasCC>
                <expm></expm>
                <expy></expy>
                <trxDate>20180904</trxDate>
                <trxTime>131036</trxTime>
                <trtype>05</trtype>
            </response>
        </transaction>
    </body>
</statusService>