Alternative Payment Methods
1. Sofort
1.1. Introduction
Sofort Banking is a real-time online banking payment service available to customers who have a bank account in Germany, Italy, Poland, Sweden, Switzerland, Austria, Belgium, or the Netherlands. More countries are being added. The key benefit of Sofort Banking compared to normal credit transfer is the instant confirmation of the order that is sent to a merchant allowing for an instant delivery of services including instant notification, once money is received and credited to a merchant’s account. Transactions need to be in the EUR currency, otherwise they will fail.
As this is a bank transfer, there is no refund functionality via the ISX dashboard.
All returns need to be arranged directly by a merchant.
Sofort is a single use, notification payment method, that requires customers to authenticate their payment.
It redirects them to their bank's portal to authenticate the payment, and it typically takes a few seconds to a few days to receive notification of success or failure.
Additional information can be included in the API request, however, there are some specific objects that are required for a successful authentication process.
In our case, the workflow of this Alternative Payment Method (APM) consists of the following four steps:
Create API Request.
Receive API Request Response.
ISX Transaction Page.
Result Page.
1.2. Create API Request
The API request consists of four steps: Method, URL, Header, and Body.
Request Method: POST
The API is accessed from the Request URL. This is a combination of our URL and the addition of the following text at the end of the URL: “/v1/authorization/”.
URL For Production Environment: https://gateway.isignthis.com/v1/authorization/
URL For Stage Environment: https://stage-gateway.isignth.is/v1/authorization/
Fill in the appropriate header information.
The API Header information is provided by the ISX relationship management team.
Field Name | Field Value |
---|---|
From | API client name |
Authorization | Bearer API token |
Content-Type | application/json |
Example:
Field Name | Field Value |
---|---|
From | Test_APIClient |
Authorization | Bearer TEXnkvZCtFucXebHYwrYLIGbkhjygvBTbxWELCCnCQJTKsx6bYNh5fOjEE |
Content-Type | application/json |
The word Bearer must be present in the API token or else an error will result.
In order to generate the “Transaction API call” the following API Objects are required.
Each object has a number of specific attributes in order to be successful.
Below you can view each object name, description, and whether it’s required or not.
Also, the glossary column has a link that directs you to detailed information about each object, including examples.
Object Name | Description | Required | Glossary |
---|---|---|---|
merchant | Information of the merchant | Yes | |
transaction | Information of the transaction | Yes | |
client | Information of the client | Yes | |
account | Information of the account | Yes |
In the API body request, add the “workflow” name and the “id” in the “merchant_id” with the ones provided by the ISX relationship management team.
“Test_Workflow” text (below) should be replaced with the “workflow” name provided by the ISX relationship management team.
"workflow":"Test_Workflow"
“Test_Merchant” text (below) should be replaced with the “merchant_id” provided by the ISX relationship management team.
"id":"Test_Merchant"
The API call consists of the following required fields, complete to proceed with the payment:
first_name
last_name
email
Refer to the JSON code entitled “Sample JSON body for APM” for reference.
Sample JSON body for APM
{
"workflow":"Test_Workflow",
"merchant":{
"id":"Test_Merchant"
},
"transaction":{
"id":"Test_ID",
"amount":"100",
"currency":"AUD",
"reference":"Test_Ref"
},
"client":{
"first_name":"Shana",
"last_name":"Barrows",
"email":"shana.barrows@isignthis.com"
},
"account":{
"identifier":"Test_ID"
}
}
1.3. Receive API Request Response
Once the POST is sent, a response message will be received.
Field | Type | Description |
---|---|---|
id/uid | String | Unique response identification code. |
secret | String | The transaction secret code that can be used to validate ISX notifications. |
mode | String | The transaction mode detected by ISX. |
original_message | Object | Information about your transaction request. |
state | String | Information about the state of the transaction. |
compound_state | String | The ISX meaningful state of the transaction. |
redirect_url | String | The redirect URL. |
Sample JSON Payment Response
Following the “redirect_url”, will lead you to the transaction page.
1.4. Changing Language
If the language needs to be changed, add an extra parameter in the redirect URL, that you received in your response.
Add the code of the required language at the trailing end of the URL.
The available languages include:
Code | Language |
---|---|
da | Danish |
de | German |
en | English |
es | Spanish |
fr | French |
ja | Japanese |
no | Norwegian |
se | Swedish |
1.5. ISX Transaction Page (how to receive notifications)
Once the ISX transaction page is opened, the customer maybe prompted to insert additional information, (depending on the settings that you requested), once completed, proceed with the transaction.
For each unsuccessful transaction a customer makes, an appropriate event notification will be provided to your webhook.
Refer to Notifications and Transaction Events & States for more information.
1.6. Results Page
Depending on which page you have decided to show, the ISX results page or your own page will be displayed to the customer with the according message.
Refer to Transaction Events & States for more information.
If any issues arise, contact the ISX relationship management team.
1.7. Sofort Notifications
1.7.1. Where to find the notifications
All the required information in the transaction, is sent to the notification URL provided.
A sample of the objects is given below.
To receive notifications on the configured URL, your URL must end with /v1/notification.
1.7.2. Receive Notification Request
The code provided (below right) is a sample Sofort notification (after a transaction).
In the response you will be able to find all the required information regarding the transaction.
The notification will be attempted in the following intervals, until a response is received: 5 seconds, 1 minute, 1 hour, 6 hours, 12 hours, 1 day, and finally one more day.
Field | Type | Description |
---|---|---|
original_sender_name | String | Original senders name |
beneficiary_iban | String | Beneficiary’s IBAN Number |
Data Types
Field | Type | Description |
---|---|---|
id | String | Unique response identification code. |
secret | String | The transaction secret code. |
mode | String | The transaction mode detected by ISX. |
recurring_transaction | Boolean | Whether the transaction was a recurring operation or not. |
original_message | Object | Information about your transaction request. |
workflow_state | Object | State information about the workflow. |
event | String | Event name of the notification. Refer to Transaction Events & States for full list. |
state | String | State of the transaction. Refer to Transaction Events & States. |
compound_state | String | Compound State of the transaction. Refer to Transaction Events & States. |
card_reference | Object | information of the card that was used. |
payment_provider_responses | Array | Information about payments or credits made. |
payment_amount | Object | Original requested payment amount. |
identity | Object | Information about the identity. |
response_code | String | Response code of the transaction. Refer to Transaction Events & States. |
response_code_description | String | Response code description. |
test_transaction | Boolean | Denotes use of test card. |
Sample Sofort Notification
1.7.3. Additional notification fields for Sofort
Events
Successful Transaction
Event | Description |
---|---|
transaction_start | The transaction has started. |
transaction_success | The transaction has been successful. |
transaction_accepted | The transaction request has been accepted. |
Expired Transaction
Event | Description |
---|---|
transaction_start | The transaction has started. |
transaction_success | The transaction has been successful. |
transaction_expired | The transaction request has expired. |
Rejected Transaction
Event | Description |
---|---|
transaction_start | The transaction has started. |
transaction_success | The transaction has been successful. |
transaction_declined | The transaction request has been declined. |
Pending Reconciliation Review
Event | Description |
---|---|
transaction_start | The transaction has started. |
transaction_success | The transaction has been successful. |
Pending Starting Transaction
Event | Description |
---|---|
transaction_start | The transaction has started. |
© ISX Financial EU PLC 2024. All rights reserved.