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

eps.png

Execute an EPS call

Executing an EPS transaction is a three step process:

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"
  }