Giropay
Learn about Giropay, a common payment method in Germany.
EPS and Giropay used to be payment methods only for their respective national markets. Both reach out to establish online payments in e-commerce in Europe based on the approved high-security standards of online banking.
Because of that, EPS and Giropay interlink their systems for interoperability. Merchants can now receive payments from customers from Germany using the already implemented EPS-interface without technical effort.
Payment type | Online banking |
Market | Germany |
Customer currencies | EUR |
Processing currencies | EUR |
One-time Payment | No |
Refunds | No |
General flow
The status of the transaction is pending during redirect.
status=2000&errormessage=pending&redirect_url=https://routing.epsgiropay.com/...
As soon customer completes the payment:
- Customer is redirected to the url_return page sent in the original request.
- An asynchronous notification to the notification_url is sent in the original request which can be used to update the shops database.
errorcode=0&payment_state=not_credited_yet
- When the bank transfer from the customer bank reaches the bank account a second notification is sent to the notification_url
errorcode=0&payment_state=credited
Step 1. Make a transaction request
From your server, make a POST /payment_preauthorize request.
POST https://sandbox.payabl.com/pay/backoffice/payment_preauthorize
Include in request:
Parameter | Format | Description |
---|---|---|
merchantid | 40 characters | Merchant identification number assigned during account creation |
orderid | max. 40 characters | The field orderid is optional and exclusively for the merchants' convenience |
amount | digits only, either no decimals or two decimal places (e.g. 8 or 8.50) | Transaction’s total amount that will be deducted from the customer |
currency | 3 characters. ISO 4217 | The currency field contains the alpha-3 currency code for the transaction. Links to ISO |
payment_method | 118 | payabl. Payment methods IDs |
signature | 40 characters | Signature Calculation |
country | 3 characters. ISO 3166-1 alpha-3 | Customer countries. List of official country codes |
email | max. 50 characters | Customer email. An RFC 822 compliant email address |
firstname | max. 50 characters | First name of the customer |
lastname | max. 50 characters | Last name of the customer |
url_return | max. 255 characters starting with http or https | URL for customer redirection |
You can see a full list of parameters in Pre-Authorization.
Request example:
merchantid=gateway_test&orderid=Payabl-Test&amount=19.99¤cy=EUR&payment_method=118&language=en&[email protected]&firstname=John&
lastname=Doe&zip=3035&street=Olympion&house=23&city=Limassol&country=CYP&customerip=93.109.250.238&url_return=https://yourshop.example/thank_you&
notification_url=https://yourshop.example/notification&url_success=https://yourshop.example/payment_successful&url_failed=https://yourshop.example/
payment_failed&signature=751db6a0a131215cb272fec013d0850d6a544f07
Public Sandbox information
Do not use your personal email address, Order ID with sensitive information, real customer details and credit card data in the public Sandbox. For email field you may use [email protected].
Redirection to
url_return
does not confirm that the transaction is successful. Always check the transaction vianotification_url
or use diagnose interface to get the final status of the transaction.
Step 2. Handle the redirect
To complete the payment, you need to redirect the customer to the correct URL in the response.
Response example:
transactionid=105153378&transid=105153378&status=2000&errormessage=pending&errmsg=pending&amount=19.99&price=19.99&
currency=EUR&orderid=Payabl-Test&iban=&bic=&account_name=&country=&user_id=466838&redirect_url=https%3A%2F%2Fsandbox.
payabl.com%2Fpay%2F56ef57fb29dbd2dca81c471bf84a04a4693c86fe%2Fpayment%2Fredirect_to_bank
Response fields reference:
Parameter | Description |
---|---|
transactionid | payabl. internal transaction id. Please use this transaction id when referring to the transaction in communications with the payabl. team |
transid | The same as transactionid |
status | Transaction error code |
errormessage | Brief explanation of transaction decline reason (empty on success) |
errmsg | The same as errormessage |
amount | Transaction amount |
price | The same as amount |
currency | Transaction currency |
orderid | Optional transaction identifier given by the merchant |
redirect_url | URL for customer redirection to finalize the payment (URL encoded) |
user_id | Payment system user identifier |
Step 3. Receive the final status
Once the customer completes the payment, we will send a notification with the transaction's status to the notification_url
specified by you.
url_return
and notification_url
should be passed by you in the Pre-authorization request.
Alternatively, you can communicate a notifciation_url
to be used by default to payabl. technical team. By doing so, you won't need to send it in every request.
Giropay contains an additional notification parameter which is payment_state
, which could contain the following values:
not_credited_yet
: Capture - Accepted.credited
: Capture - Successful.not_credited
: Capture - Failed.
Each state change would trigger a notification to the notification URL, either provided in the request body or configured when the merchant account was created.
Notification example - Accepted Capture:
orderid=Payabl-Test&errormessage=&security=c6c541af55c337c7b094c3d1e332c9fd450a4975f12e3e4ae6bc5839ab24a278&
type=capture&transactionid=105153378&payment_state=not_credited_yet&errorcode=0×tamp=1682688182
Notification example - Successful Capture:
amount=19.99&errorcode=0&payment_state=credited×tamp=1682688605&type=capture&transactionid=105153378&orderid=Payabl-Test&
security=c9f35d9f262d5939235eb7515aa08407c72533ed4824e36a8d08ab8bf8060a71&errormessage=
Notification fields reference:
Parameter | Description |
---|---|
transactionid | payabl. internal transaction id. Please use this transaction id when referring to the transaction in communications with the payabl. team |
type | Transaction type |
errorcode | Transaction error code (0 for success) |
errormessage | Brief explanation of transaction decline reason (empty on success) |
amount | Transaction amount |
orderid | Optional transaction identifier given by the merchant |
security | Signature to verify the authenticity of the notification. You can find more information here |
timestamp | Notification timestamp |
payment_state | Transaction acceptance state as described above |
Additional Customer details can be added to both callbacks. Please contact Tech support to enable them:
Parameter | Description |
---|---|
bank_country | Customer bank country in ISO-3166 alpha-2 format |
bic | Customer bank BIC |
payment_system | Identify if EPS or Giropay was used |
account_holder | Account holder name |
iban | Customer IBAN |
Notification example - Accepted Capture (additional parameters):
errormessage=×tamp=1669899829&transactionid=105153456&account_holder=Muster+Mann&bic=STZZATWWXXX&security=72e1a33
74be4e76bfabadd587ed9e840a180c0b827a562d9dd357db7222207bc&errorcode=0&payment_state=not_credited_yet&iban=DE978900000001100243&
payment_system=giropay&type=capture&bank_country=DE&orderid=Payabl-Test
Notification example - Successful Capture (additional parameters):
payment_state=credited&orderid=Payabl-Test&security=6df735e958d57993278c7be571c4452640adb87b97cbf53bd557b4adfbd72023&
timestamp=1669900507&errormessage=&iban=DE978900000001100243&errorcode=0&transactionid=105153456&amount=19.99&
bic=STZZATWWXXX&bank_country=DE&account_holder=Muster+Mann&type=capture
When the customer finished or canceled the payment, he will be redirected back to url_return
, provided by you in the initial request to payment_preauthorize. After that, you will receive a notification, posted to notification_url
, with the final transaction status, which you suppose to use to update your system.
Notification URL can be configured by our tech support team in your account on our side,
or you can send it as a parameternotification_url
in the initial request topayment_preauthorize
.
In case 15 days pass and payabl. didn't receive any funds from an issuer, the transaction will be failed automatically. You will receive a notification update.
Declines
Below you will find additional information on some common declines that can occur during a Giropay payment attempt.
Redirect timeout
In case the customer wasn't redirected to the Giropay interface to complete the payment within 1 hour and the redirect link got expired, the transaction will be failed with error 021 – Transaction not completed. We will post a notification to your notification_url
.
errorcode=021&payment_state=not_credited&payment_system=giropay&type=order&iban=&errormessage=transaction+not+completed&
bic=&transactionid=105153974&security=2c6e4bdd42b987a51479360e38eae2c87aaad8d2&account_holder=&orderid=Payabl-Test
Transaction aborted
In case the customer has been successfully redirected to the Giropay interface, but aborted the payment in the process, pressed the browser back button, or performed other action that interrupted the process – the transaction will be failed and we will post a notification containing error code -1315 – Response failed to your notification_url
.
iban=XX000&bank_country=DE&errorcode=-1315&transactionid=105153879&security=c5f4b290c233267ddfcd2785b3a3deec9af5ba52&
errormessage=Response+failed&payment_system=giropay&account_holder=&payment_state=not_credited&bic=STZZATWWXXX&type=order&
orderid=Payabl-Test
Funds not arriving within the waiting period
As it was described above, in cases where the transaction has been in not_credited_yet
payment state for 15 days and payabl. still haven't received the funds from the customer's bank, the transaction will be failed automatically with error -6211 – No confirmation from bank, triggering a notification to your notification_url
.
iban=DE978900000001100243&security=46c8730b2422a84ad8c3ab981e7d2fad909e476fd9af524842aed2c868f61d9e&type=capture&
errormessage=No+confirmation+from+bank&payment_system=eps&bank_country=DE×tamp=1688169282&bic=STZZATWWXXX&payment_state=not_credited&
transactionid=105153988&account_holder=Muster+Mann&errorcode=-6211&orderid=Payabl-Test
Our Technical Support team is there to help you:
Email: [email protected]
Available Monday – Friday between 09:00 and 17:00 CET/CEST
Updated 2 months ago