Search docs

Are you looking for test card numbers?

Would you like to contact support?

Start searching Adyen's documentation...



Learn how to accept giropay payments.

giropay is the official implementation of German banks for online banking. It is supported by most German public and cooperative banks. 

When paying with giropay, the shopper is redirected to their bank's website or app to complete the payment. For most giropay payments, you'll receive immediate confirmation of whether the payment was successful. For a small number of payments you will not receive an immediate confirmation, and will need to rely on a notification to confirm whether the payment was successful.

Payment Type Payment flow Recurring Refunds Partial Refunds Captures Partial Captures Chargebacks
Online Banking Redirect Yes, via SEPA Yes Yes No No No*

*There is a chargeback risk for recurring payments, since they are processed via SEPA Direct Debit

You can accept giropay payments with:

Integrate with Checkout SDKs

Our Checkout SDKs support giropay payments without any additional configuration. 

Integrate with API

In this section, we show you the API integration steps for giropay. 

Before you begin this section, make sure you read and understand our API Integration guide.

Step 1: Collect shopper details

To collect the shopper's details, add our pre-built giropay Component to your payments form:

  1. Make sure that you have already added the Components JavaScript file and the required configuration on your payments page.

  2. Create a DOM element, placing it where you want the giropay form to be rendered: 

    <div id="giropay"></div>
  3.  Create an instance of the giropay Component, and mount it: 

    const giropay = checkout.create("giropay", {
        onChange: handleOnChange 
  4. Create a function to listen to and handle the onChange event triggered by the Component: 

    function handleOnChange(state, component) {    
        state.isValid // true or false.
        // {type: "giropay", bic: "DEUTDE2H"}
  5. When state.isValid is true, collect the values passed in the You'll use these to make the payment.

Step 2: Make a payment

To initiate a giropay payment, make a /payments API call, providing:

  • reference: Your unique reference for this payment.
  • amount
  • paymentMethod.typegiropay
  • paymentMethod.bic: The value of the bic provided in the object.

  • returnUrl: The URL that your shopper is redirected to after they have completed the payment.
  "reference":"giropay test",

This returns a /payments response containing:

  • resultCodeRedirectShopper.
  • redirect object containing a url.

Step 3: Redirect shopper

To complete the giropay payment, the shopper will need to approve it on their bank's website or app.

  • Redirect the shopper to the URL specified at redirect.url.
    When the shopper has completed the payment, they will be redirected back to your website or app using the returnUrl you specified earlier. This will be appended with a payload.

    Do not use the resultCode you receive from the returnUrl to determine whether the payment was successful. Instead, verify the result on your server.

Step 4: Present payment result

  1. Submit the payload to the /payments/details endpoint to verify the result of the payment:


    The response will contain a pspReference, which is our unique identifier for this payment, and a resultCode

  2. Use the resultCode to present the result of the payment to your shopper via your website or app. If the shopper failed to return to your website or app after completing the payment, you will not receive a resultCode. To track the status of the payment, you should use notifications.

giropay result codes

 The resultCodes you can receive for giropay are:

  • Authorised – The payment was successful. You will receive the funds in 1-2 working days.
  • Refused –  The payment was not completed. Ask the shopper to try the payment again. For a description of the refusal reason, check the Payment Details page in your Customer Area.
  • Cancelled – The payment was not completed. Ask the shopper to try the payment again.
  • Pending: The shopper has completed the payment but the final result is not yet known. Inform the shopper that you've received their order, and are waiting for the payment to be completed. When the shopper has completed the payment. you will receive a successful AUTHORISATION notification

To find out more about result codes and how you can action them, refer to Result codes

giropay notifications

If you're accepting giropay payments, you will need to set up notifications to know whether some payments are successful. Once set up, we'll notify you of the result of payments, including those:

  • With a Pending status.
  • Where the shopper failed to return to your website or app after completing the payment.

Successful payments

You'll know that a giropay payment has been successful when you receive a notification with: 

  • successtrue

Recurring giropay payments

If you have a subscription or recurring business model, we recommend creating a shopper token.

Although giropay does not support recurring payments, you can make recurring payments for a giropay shopper by tokenizing their payment details. When you create a shopper token from a giropay payment, we'll store the shopper's SEPA details with the token. You can use this token to make recurring payments using SEPA Direct Debit.

You can create a shopper token with either the SDK or API integrations, but to make recurring payments with the token you'll need to use the  /payments endpoint.

We strongly recommend that you request explicit permission from the shopper if you intend to make recurring payments. Being transparent about the payment schedule and the amount they will be charged will reduce the risk of chargebacks.

Create shopper token

Tokenize the shopper's payment details when you make the initial giropay payment. The steps for doing this depend on whether you integrated with our Checkout SDKs or our API integration.

Checkout SDKs

  1. When you call /paymentSession to create a payment session, additionally include:

    • shopperReference: Your unique ID for this shopper.

    • enableRecurringtrue
  2. If the shopper's payment details were successfully tokenized, you'll receive a successful payment notification that includes a recurringDetailReference. This is the token you will need to make recurring payments for this shopper.

API integration

  1. When you call /payments to make a payment, additionally include:
    • shopperReference: Your unique ID for this shopper.
    • paymentMethod.storeDetailstrue
  2. If the shopper's payment details were successfully tokenized, you'll receive a successful payment notification that includes a recurringDetailReference. This is the token you will need to make recurring payments for this shopper.

Make recurring payments

Any recurring payments for the giropay shopper are made as a SEPA Direct Debit payment.

  • Make a /payments request for a SEPA payment, and additionally include:

    • paymentMethod.typesepadirectdebit.
    • recurringDetailReference: Token received back from the giropay payment.
    • shopperReference: The same shopper ID you used to create the shopper token.
    • shopperInteractionContAuth.
       "reference":"Your Reference Here",

    If the payment was successfully received, the response will contain a Received resultCode and a pspReference, which is our unique identifier for this transaction. You can track whether the payment was successful using notifications.

Testing giropay payments

Before making live giropay payments, use the following details to test your integration:

Bank Name BIC Customer name IBAN Account ID Bankleitzahl
Test DE Bank GENODEFF123


DE36444488881234567890 1234567890 44448888

After selecting Test DE Bank, you are redirected to a page where you can select different statuses to simulate with. We recommend testing each giropay status code:  

sc extensionSc importance
10 4000 The payment was successful.
20 2000,2100,2200,2300,2400,2500,2600,2700,3100,3900,4900 The payment was not successful.
30 4500 Status of the payment is unknown.
40 0

Bank is not unlocked for giropay.

You can check the status of a giropay test payment in your Customer Area > Transactions > Payments.

See also