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

Authorizations: Basic Auth

Request

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.

Sofort payment method can be initialized if the merchant sends SOFORTUEBERWEISUNG for parameter INITTYPE.

Responses

201 Successful initialization.

Required Parameters Optional Parameters

status

header

version

body

errorCode

message

paySysMessage

originator

400 Validating the request data failed

Parameters

errorCode

message

paySysMessage

POST / https://api.qenta.com/enterprise

Request samples

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&

Response samples

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
  1. 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
  2. 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>
  3. 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

Authorizations: Basic Auth

Request

Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

ORDERNUMBER

APPLICATIONTYPE

PAYMENTNUMBER

QTILL_CLIENT_IP_ADDRESS

ORIGINATOR

Responses

201 Successful verification.

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.
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.

400 Validating the request data failed

Parameters

errorCode

message

paySysMessage

POST / https://api.qenta.com/enterprise

Request samples

MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
COMMAND=VERIFYPAYMENT&
APPLICATIONTYPE=S&
ORDERNUMBER=15924224&
LANGUAGE=en&

Response samples

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

Authorizations: Basic Auth

Request

Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

ORDERNUMBER

APPLICATIONTYPE

ADMIN_PASSWORD

ORIGINATOR

Responses

201 Successful getting order details.

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.
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.

400 Validating the request data failed

Parameters

errorCode

message

paySysMessage

POST / https://api.qenta.com/enterprise

Request samples

MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_&
COMMAND=GETORDERDETAILS&
ORDERNUMBER=15924224&
ADMIN_PASSWORD=9p3a0m5f&
APPLICATIONTYPE=S&

Response samples

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.

Authorizations: Basic Auth

Request

Required Parameters Optional Parameters

MERCHANTKEY

LOGPATH

COMMAND

LANGUAGE

ORDERNUMBER

APPLICATIONTYPE

SOURCEORDERNUMBER

CUSTOMERSTATEMENT

CURRENCY

ORIGINATOR

AMOUNT

ORDERDESCRIPTION

ADMIN_PASSWORD

CONSUMER_MERCHANT_CRM_ID

Responses

201 Successful approving reversal.

Required Parameters Optional Parameters

status

orders

version

errorCode

message

paySysMessage

originator

400 Validating the request data failed

Parameters

errorCode

message

paySysMessage

POST / https://api.qenta.com/enterprise

Request samples

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&

Response samples

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.