Sofort

Sofort

Sofort is a payment method that arranges transactions between the online shop and the customer’s banking account. After selection, all transfer data will be handed over automatically so the consumer only needs to log into the bank account using the account number, PIN and to authorize the transaction, so the information will be sent to the bank in encrypted form.

Integration, Registration and Setup

To integrate and offer the payment method Sofort to the consumers in the online shop some requirements needed to be fulfilled:

Commands

Pre Transaction Commands

The first step is to generate a unique order number with the command CREATEORDER.

Transaction Commands

INITIATEPAYMENT

Request Parameters
Table 1. Request Parameters
Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

INITTYPE

ORDERREFERENCE

PAYMENTTYPE

CUSTOMERSTATEMENT

AMOUNT

APPLICATIONTYPE

CURRENCY

CANCELURL

ORDERNUMBER

SERVICEURL

ORDERDESCRIPTION

ORIGINATOR

SUCCESSURL

Optional request parameters CUSTOMERSTATEMENT and ORDERREFERENCE, are more restricted about their length and allowed characters than usual.

Response Parameters
Table 2. Response Parameters
Required Parameters Optional Parameters

status

header

version

body

errorCode

message

paySysMessage

originator

Initialization example
Sofort payment method can be initialized if the merchant sends SOFORTUEBERWEISUNG for parameter INITTYPE.
  1. Send a request.

    Example of Request for Initiation
    COMMAND=INITIATEPAYMENT&
    MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
    INITTYPE=SOFORTUEBERWEISUNG&
    ORDERNUMBER=15924224&
    LANGUAGE=en&
    AMOUNT=1&
    CURRENCY=EUR&
    APPLICATIONTYPE=S&
    SERVICEURL=http://yourimprint.com/&
    CUSTOMERSTATEMENT=eh3462t3hg346&
    SUCCESSURL=https://yoursuccessurl.com&
    ORDERDESCRIPTION=Test&
    FAILUREURL=https://yourfailureurl.com&
    IP_ADDRESS=77.238.209.2&
  2. The response looks like this:

    Example of Response for Initiation
    header=Content-Type%3A+text%2Fhtml%0D%0A&
    body=%3Chtml%3E%3Chead%3E%3Cmeta+http-equiv%3D%22refresh%22+content%3D%220%3BURL%3Dhttps%3A%2F%2Fwww.sofort.com%2Fpayment%2Fgo%2Ff9af541b717c84cb0277bc15596f057da7805b47%22%3E%3C%2Fhead%3E%3C%2Fhtml%3E&
    version=qtillserver+3.23.0.48&
    status=0
  3. Decode the text with URL Decoder. Use Notepad ++ or some other URL Decoder. After decoding the response should look like this.

    header=Content-Type: text/html
    &body=<html><head><meta http-equiv="refresh" content="0;URL=https://www.sofort.com/payment/go/f9af541b717c84cb0277bc15596f057da7805b47"></head></html>&version=qtillserver 3.23.0.48&status=0
  4. Beautify code (delete everything above and below html tag, and replace every "+" with empty space).

    <html>
        <head>
            <meta http-equiv="refresh" content="0;URL=https://www.sofort.com/payment/go/f9af541b717c84cb0277bc15596f057da7805b47">
        </head>
    </html>
  5. Execute the HTML, and the Sofort mask should be seen in a browser. Enter specific test data for Sofort payment method. After that, the merchant will be redirected to the successUrl (which is invalid in this example).

VERIFYPAYMENT

Request Parameters
Table 3. Request Parameters
Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

ORDERNUMBER

APPLICATIONTYPE

PAYMENTNUMBER

QTILL_CLIENT_IP_ADDRESS

ORIGINATOR

Response Parameters
Table 4. Response Parameters
Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

Order as a basis type of properties in the response can be returned for this command.
The additional required and additional optional parameters will be returned.
Table 5. Response Parameters
Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

Order as a basis type of properties in the response can be returned for this command.
The additional required and additional optional parameters will be returned.
Verifying payment example
  1. Send a request.

    Request Parameters
    MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
    COMMAND=VERIFYPAYMENT&
    APPLICATIONTYPE=S&
    ORDERNUMBER=15924224&
    LANGUAGE=en&
  2. The response looks like this:

    Response Parameters
    order.1.amount=1.00&
    payment.1.1.paymentNumber=15924224&
    payment.1.1.senderIBAN=DE06000000000023456789&
    payment.1.1.senderBankNumber=88888888&
    payment.1.1.timeModified=09.11.2022+08%3A04%3A56&
    payment.1.1.paymentType=SOFORTBANKING&
    order.1.merchantNumber=840&
    payment.1.1.senderAccountOwner=Max+Mustermann&
    order.1.depositAmount=1.00&
    payment.1.1.approvalCode=28978-473003-636B4EA5-B0BC&
    payment.1.1.providerReferenceNumber=28978-473003-636B4EA5-B0BC&
    payment.1.1.orderNumber=15924224&
    order.1.approveAmount=0&
    order.1.credits=0&
    payment.1.1.merchantNumber=840&
    order.1.payments=1&
    version=qtillserver+3.23.0.48&
    order.1.refundAmount=0&
    payment.1.1.currency=EUR&
    order.1.state=ORDERED&
    orders=1&
    payment.1.1.batchNumber=300000636&
    order.1.acquirer=SOFORT&
    order.1.brand=sofortueberweisung&
    status=0&
    payment.1.1.depositAmount=1.00&
    order.1.orderText=Test&
    order.1.contractNumber=28978%2F473003&
    payment.1.1.senderAccountNumber=23456789&
    payment.1.1.state=payment_deposited&
    order.1.customerStatement=eh3462t3hg346&
    order.1.providerContractNumber=72ee7187-cf31-4aae-9773-20d6bec114af&
    payment.1.1.senderBIC=SFRTDE20XXX&
    payment.1.1.securityCriteria=1&
    order.1.timeModified=09.11.2022+08%3A04%3A56&
    order.1.orderNumber=15924224&
    payment.1.1.gatewayReferenceNumber=15924224&
    payment.1.1.approveAmount=1.00&
    order.1.currency=EUR&
    payment.1.1.senderBankName=Demo+Bank&
    order.1.timeCreated=09.11.2022+07%3A54%3A28&
    order.1.orderDescription=Test&
    payment.1.1.timeCreated=09.11.2022+08%3A04%3A56&
    order.1.paymentType=SOFORTBANKING

Post Transaction Commands

GETORDERDETAILS

Request Parameters
Table 6. Request Parameters
Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

ORDERNUMBER

APPLICATIONTYPE

ADMIN_PASSWORD

ORIGINATOR

Response Parameters
Table 7. Response Parameters
Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

Order as a basis type of properties in the response can be returned for this command.
The additional required and additional optional parameters will be returned.
Table 8. Response Parameters
Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

Order as a basis type of properties in the response can be returned for this command.
The additional required and additional optional parameters will be returned.
Getting order details example
  1. Send a request.

    Request Parameters
    MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
    COMMAND=GETORDERDETAILS&
    ORDERNUMBER=15924224&
    ADMIN_PASSWORD=9p3a0m5f&
    APPLICATIONTYPE=S&
  2. The response looks like this:

    Response Parameters
    order.1.amount=1.00&
    payment.1.1.paymentNumber=15924224&
    payment.1.1.senderIBAN=DE06000000000023456789&
    payment.1.1.timeModified=09.11.2022+08%3A04%3A56&
    payment.1.1.senderBankNumber=88888888&
    payment.1.1.paymentType=SOFORTBANKING&
    order.1.merchantNumber=840&
    payment.1.1.senderAccountOwner=Max+Mustermann&
    order.1.depositAmount=1.00&
    payment.1.1.approvalCode=28978-473003-636B4EA5-B0BC&
    payment.1.1.providerReferenceNumber=28978-473003-636B4EA5-B0BC&
    payment.1.1.orderNumber=15924224&
    order.1.approveAmount=0&
    order.1.credits=0&
    payment.1.1.merchantNumber=840&
    order.1.payments=1&
    version=qtillserver+3.23.0.48&
    order.1.state=ORDERED&
    payment.1.1.currency=EUR&
    order.1.refundAmount=0&
    orders=1&
    order.1.brand=sofortueberweisung&
    order.1.acquirer=SOFORT&
    payment.1.1.batchNumber=300000636&
    status=0&
    payment.1.1.depositAmount=1.00&
    order.1.orderText=Test&
    order.1.contractNumber=28978%2F473003&
    payment.1.1.senderAccountNumber=23456789&
    payment.1.1.state=payment_deposited&
    order.1.customerStatement=eh3462t3hg346&
    order.1.providerContractNumber=72ee7187-cf31-4aae-9773-20d6bec114af&
    order.1.orderNumber=15924224&
    order.1.timeModified=09.11.2022+08%3A04%3A56&
    payment.1.1.senderBIC=SFRTDE20XXX&
    payment.1.1.securityCriteria=1&
    payment.1.1.gatewayReferenceNumber=15924224&
    objectsTotal=1&
    payment.1.1.approveAmount=1.00&
    order.1.currency=EUR&
    payment.1.1.senderBankName=Demo+Bank&
    order.1.timeCreated=09.11.2022+07%3A54%3A28&
    order.1.orderDescription=Test&
    payment.1.1.timeCreated=09.11.2022+08%3A04%3A56&
    order.1.paymentType=SOFORTBANKING

DEPOSIT

The transaction is automatically deposited by using the command INITIATEPAYMENT, in this case, the command DEPOSIT isn’t used.

RECURPAYMENT

The backend operation RECURPAYMENT is only possible via payment method SEPA Direct Debit, i.e. SEPA Direct Debit should be supported to do recurring payments for Sofort.
Response Parameters
Table 10. Response Parameters
Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

Recurring payment example
  1. Send a request.

    Request Parameters
    COMMAND=RECURPAYMENT&
    MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
    ORDERNUMBER=7995859&
    CONSUMER_MERCHANT_CRM_ID=13423072&
    SOURCEORDERNUMBER=15924224&
    AMOUNT=1&
    CURRENCY=EUR&
    ORDERDESCRIPTION=Test:0000&
    ADMIN_PASSWORD=9p3a0m5f&
    APPLICATIONTYPE=S&
  2. The response looks like this:

    Response Parameters
    version=qtillserver+3.23.0.48&
    status=0

Query Commands

For every payment method commands QUERYORDERS, QUERYCREDITS, and QUERYBATCHES are used.

Order Flow Diagram

Image

To interpret this diagram, the successful completion of a NEW PAYMENT is assumed. Starting from this command it’s possible to carry out the commands RECURPAYMENT. SEPA Direct Debit has to be supported for recurring payments for Sofort.

All possible commands for specific acquirers are found here.

Defining Display Options

When the consumer selects the payment method Sofort, a pop-up will open by default to enter the relevant consumer’s payment details. Since many consumers have pop-up blockers enabled, to allow consumers to proceed with the checkout even if pop-up blockers are enabled, QENTA offers the option to open Sofort as a page. Contact our integration specialists to enable this feature.