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

Sofort

120

paymentmethod=DIB

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

Description

Sofort is the direct transfer process of Sofort GmbH. With Sofort the purchaser, still whilst placing an order, conveniently transfers the respective amount into his or her online banking account. The merchant receives a real-time confirmation after the conclusion of Sofort. He can thus forward stock goods and digital goods immediately – in this way the purchaser receives the goods quicker.
Payment Method provider website 🔗

Test

  • In the test environment you can enter any data

Web payment flow

 1 
[Not supported by viewer]
Customer clicks Pay
Customer clicks Pay
Merchant Website
Merchant Website
Merchant Server
Merchant Server
Redirects to Sofort
Redirects to Sofort
Sofort
Sofort<br>
Customer enters Baking Information
[Not supported by viewer]
 2 
[Not supported by viewer]
 4 
[Not supported by viewer]
Validates and prepares forwarding to Acquirer
Validates and prepares forwarding to Acquirer
 5 
[Not supported by viewer]
Authorization / Forwarding
Authorization / Forwarding
 7 
[Not supported by viewer]
Receives Result 
Receives Result 
7.1
[Not supported by viewer]
 8 
[Not supported by viewer]
Invokes merchant's
POST URL (Webhook)
Invokes merchant's<br>POST URL (Webhook)
Receives Result 
Receives Result 
 9 
[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
Bank
Bank
 3 
[Not supported by viewer]
Authorization / Forwarding
Authorization / Forwarding
 6 
[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

Is only possible through the web interface.

Cancel

Can not be canceled since it is a direct debit method

Credit

Credits are only possible, if you have a bank account at sofortbank.

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="1000011011">
    <transaction refno="999273">
      <request>
        <amount>100</amount>
        <currency>CHF</currency>
        <uppTransactionId>180830142308354616</uppTransactionId>
        <transtype>06</transtype>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1000011011' status='accepted'>
        <transaction refno='999273' trxStatus='response'>
            <request>
                <amount>100</amount>
                <currency>CHF</currency>
                <uppTransactionId>180830142308354616</uppTransactionId>
                <transtype>06</transtype>
                <reqtype>COA</reqtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>credit succeeded</responseMessage>
                <uppTransactionId>180830142358524975</uppTransactionId>
                <authorizationCode>358734976</authorizationCode>
                <acqAuthorizationCode>0</acqAuthorizationCode>
            </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" ?>
<statusService version="5">
  <body merchantId="1000011011">
    <transaction>
      <request>
        <uppTransactionId>180830142308354616</uppTransactionId>
        <reqtype>STX</reqtype>
      </request>
    </transaction>
  </body>
</statusService>

Response

<?xml version='1.0' encoding='UTF-8'?>
<statusService version='5'>
    <body merchantId='1000011011' status='accepted'>
        <transaction trxStatus='response'>
            <request>
                <uppTransactionId>180830142358524975</uppTransactionId>
                <reqtype>STX</reqtype>
            </request>
            <response itemNr='1'>
                <responseCode>21</responseCode>
                <responseMessage>Trx already settled</responseMessage>
                <refno>999273</refno>
                <amount>100</amount>
                <currency>CHF</currency>
                <authorizationCode>358734976</authorizationCode>
                <pmethod>DIB</pmethod>
                <uppTransactionId>180830142358524975</uppTransactionId>
                <maskedCC></maskedCC>
                <aliasCC></aliasCC>
                <expm></expm>
                <expy></expy>
                <trxDate>20180830</trxDate>
                <trxTime>142358</trxTime>
                <trtype>06</trtype>
                <settledAmount>100</settledAmount>
            </response>
        </transaction>
    </body>
</statusService>