EPS
EPS
EPS (short for Electronic Payment Standard) is an online payment system in Austria, based on online banking. By either specifying a BIC or choosing a bank from the bank chooser list of EPS, the customer gets redirected to the online banking interface of his bank. After entering his credentials, the payment is treated like a normal, secure direct bank transfer. That way, no sensible data is exchanged between merchant and customer.
EPS is the official online banking implementation of Austrian banks.
How to integrate EPS
Execute an EPS call
Executing an EPS transaction is a three step process:
- Step1: Create a new resource API reference. We recommend using the JavaScript SDK, mobile SDK for iOS or mobile SDK for Android.
- Step 2: Execute a API reference with the reference to the types resource.
- Step 3: Forward customer to redirectUrl provided within charge response.
Step 1: Creating an EPS resource
Create EPS types
POST https://api.unzer.com/v1/types/eps/
Body: {}
With this request the end customer will be redirected to the EPS bank choosing page, where the end customer will choose his bank.
Additionally you can pass a BIC in the body
of the JSON object. That way, the redirect link will take you directly to the online banking interface of the specified bank:
Create EPS types with BIC
POST https://api.unzer.com/v1/types/eps/
Body:
{
"bic": "STZZATWWXXX"
}
Sample Successful Response
{
"id": "s-eps-9rxdhskuhnea",
"method": "EPS",
"recurring": false,
"geoLocation": {
"clientIp": "115.77.189.143",
"countryCode": "VN"
},
"bic": "STZZATWWXXX"
}
By using these requests, a resource is created and the resource id (e.g. s-eps-9ta3utzr8a98
) is returned.
Step 2: Creating a payment and charging it
After creating the types resources, it is possible to create a charge request.
Giropay charge
POST https://api.unzer.com/v1/payments/charges
Body:
{
"amount": "12.4500",
"currency": "EUR",
"returnUrl": "https://www.unzer.com",
"resources": {
"typeId": "s-eps-9ta3utzr8a98",
}
}
The result will be a pending charge with a redirectUrl.
Response example
{
"id" : "s-chg-1",
"isSuccess" : false,
"isPending" : true,
"isError" : false,
"redirectUrl" : "https://dev-payment.unzer.com/v1/redirect/eps/s-3DCCtPb5nZkS",
"message" : {
"code" : "COR.000.200.000",
"customer" : "Transaction Pending"
},
"amount" : "50.0000",
"currency" : "EUR",
"returnUrl" : "https://www.unzer.com",
"date" : "2019-01-09 16:33:44",
"resources" : {
"customerId" : "s-cst-ed5801724a21",
"paymentId" : "s-pay-15713",
"basketId" : "",
"metadataId" : "",
"typeId" : "s-eps-9ta3utzr8a98"
},
"orderId" : "",
"processing" : {
"uniqueId" : "31HA07BC811CBAA376AE2797749D29DE",
"shortId" : "4109.7802.3776"
}
}
Step 3 Forwarding the customer to the redirect URL
After successfully creating a charge call, you need to redirect the customer to the redirectURL
, where he will be forwarded to the EPS payment page. After a successful payment or cancelation, he will be redirected back to the returnURL
(as specified in the charge call).
After the customer is redirected back to the returnUrl
, you should check the status of the payment. You can fetch the payment using the payment Id to do so:
Fetch final result
GET https://api.unzer.com/v1/payments/<id>/charges/<id>
{
"id" : "s-chg-1",
"isSuccess" : true,
"isPending" : false,
"isError" : false,
"redirectUrl" : "",
"message" : {
"code" : "COR.000.100.112",
"customer" : "Request successfully processed in 'Merchant in Connector Test Mode'"
},
"amount" : "50.0000",
"currency" : "EUR",
"returnUrl" : "http://www.unzer.com",
"date" : "2019-01-10 13:10:57",
"resources" : {
"customerId" : "s-cst-99d06a558093",
"paymentId" : "s-pay-71655",
"basketId" : "",
"metadataId" : "",
"typeId" : "s-eps-nxutppqdwlvw"
},
"processing" : {
"uniqueId" : "31HA07BC812983BC3E54797D57731593",
"shortId" : "4110.5203.7034"
}