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

Billpay Invoice

120

paymentmethod=BPY

Payment ProcessIntegration
Authorization:heavy-check-mark:Payment Page:heavy-check-mark:
Deferred Settlement:heavy-check-mark:Split Mode:x:
Refund:heavy-check-mark:Mobile SDK:x:
Cancel:heavy-check-mark:
Alias:x:

Description

BillPay makes purchasing on the internet secure, simple and convenient for merchants and customers. The company employs the popular methods of purchase on account, hire purchase and direct debit. The platform for the handling of payments is offered for Germany, Austria and Switzerland.

With BillPay’s 100% payment guarantee merchants do not incur a risk as their transactions are guaranteed to be paid - irrespective of whether the customer settles the debt. Moreover BillPay takes on the risk management and collection for the merchant.
Payment Method provider website :link:

📘

Request and response parameter reference

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

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 starts billing process
Validates client and starts billing process
 5 
[Not supported by viewer]
Receives Result 
Receives Result 
5.1
[Not supported by viewer]
 7 
[Not supported by viewer]
Invokes merchant's
POST URL (Webhook)
Invokes merchant's<br>POST URL (Webhook)
Receives Result 
Receives Result 
 8 
[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]

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>BPY</pmethod>
		<amount>350</amount>
		<currency>EUR</currency>
		<refno>1536047306558</refno>
		<reqtype>NOA</reqtype>
		<sign>130930145825488031</sign>
		<uppCustomerDetails>
			<uppCustomerGender>Herr</uppCustomerGender>
			<uppCustomerEmail>[email protected]</uppCustomerEmail>
			<uppCustomerFirstName>Max552523652323552</uppCustomerFirstName>
			<uppCustomerLastName>Mustermann55663553565525</uppCustomerLastName>
			<uppCustomerBirthDate>25.08.1979</uppCustomerBirthDate>
			<uppCustomerStreet>Spengerstrasse</uppCustomerStreet>
			<uppCustomerStreet2>37</uppCustomerStreet2>
			<uppCustomerCity>Bern</uppCustomerCity>
			<uppCustomerZipCode>1050</uppCustomerZipCode>
			<uppCustomerCountry>CHE</uppCustomerCountry>
			<uppShippingPrice>20</uppShippingPrice>
			<uppShippingPriceGross>20</uppShippingPriceGross>
			<uppShippingDetails>no</uppShippingDetails>
			<uppArticle_1_Id>PK4000</uppArticle_1_Id>
			<uppArticle_1_Price>270</uppArticle_1_Price>
			<uppArticle_1_PriceGross>300</uppArticle_1_PriceGross>
			<uppArticle_1_Quantity>1</uppArticle_1_Quantity>
			<uppArticle_1_Name>Bottle+Opener</uppArticle_1_Name>
			<uppArticle_1_Description>Nice+gadget</uppArticle_1_Description>
			<uppArticle_2_Id>PK4002</uppArticle_2_Id>
			<uppArticle_2_Price>12</uppArticle_2_Price>
			<uppArticle_2_PriceGross>15</uppArticle_2_PriceGross>
			<uppArticle_2_Quantity>2</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>BPY</pmethod>
        <amount>350</amount>
        <currency>EUR</currency>        
        <reqtype>NOA</reqtype>
        <sign>130930145825488031</sign>
        <uppCustomerDetails>
          <uppCustomerGender>Herr</uppCustomerGender>
        <uppCustomerEmail>[email protected]</uppCustomerEmail>
          <uppCustomerFirstName>Max552523652323552</uppCustomerFirstName>
          <uppCustomerLastName>Mustermann55663553565525</uppCustomerLastName>
          <uppCustomerBirthDate>25.08.1979</uppCustomerBirthDate>
          <uppCustomerStreet>Spengerstrasse</uppCustomerStreet>
          <uppCustomerStreet2>37</uppCustomerStreet2>
          <uppCustomerCity>Bern</uppCustomerCity>
          <uppCustomerZipCode>1050</uppCustomerZipCode>
          <uppCustomerCountry>CHE</uppCustomerCountry>
          <uppShippingPrice>20</uppShippingPrice>
          <uppShippingPriceGross>20</uppShippingPriceGross>
          <uppShippingDetails>no</uppShippingDetails>
          <uppArticle_1_Id>PK4000</uppArticle_1_Id>
          <uppArticle_1_Price>270</uppArticle_1_Price>
          <uppArticle_1_PriceGross>300</uppArticle_1_PriceGross>
          <uppArticle_1_Quantity>1</uppArticle_1_Quantity>
          <uppArticle_1_Name>Bottle+Opener</uppArticle_1_Name>
          <uppArticle_1_Description>Nice+gadget</uppArticle_1_Description>
          <uppArticle_2_Id>PK4002</uppArticle_2_Id>
          <uppArticle_2_Price>12</uppArticle_2_Price>
          <uppArticle_2_PriceGross>15</uppArticle_2_PriceGross>
          <uppArticle_2_Quantity>2</uppArticle_2_Quantity>
          <uppArticle_2_Name>Printer</uppArticle_2_Name>
          <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>350</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>350</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>350</amount>
        <netAmount>350</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>350</amount>
                <netAmount>350</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>350</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>350</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>350</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>